2026-03-15 19:36:02 +08:00
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
from typing import Dict, Any, Optional
|
|
|
|
|
from datetime import datetime
|
|
|
|
|
|
|
|
|
|
class DataSourceBase(BaseModel):
|
|
|
|
|
name: str
|
|
|
|
|
type: str # sqlite, postgres, clickhouse, supabase, parquet
|
|
|
|
|
config: Dict[str, Any]
|
2026-03-16 16:12:35 +08:00
|
|
|
project_id: int
|
2026-03-15 19:36:02 +08:00
|
|
|
|
|
|
|
|
class DataSourceCreate(DataSourceBase):
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
class DataSourceUpdate(BaseModel):
|
|
|
|
|
name: Optional[str] = None
|
|
|
|
|
type: Optional[str] = None
|
|
|
|
|
config: Optional[Dict[str, Any]] = None
|
|
|
|
|
|
|
|
|
|
class DataSource(DataSourceBase):
|
|
|
|
|
id: int
|
|
|
|
|
created_at: datetime
|
|
|
|
|
updated_at: datetime
|
|
|
|
|
|
|
|
|
|
class Config:
|
|
|
|
|
from_attributes = True
|
|
|
|
|
|
|
|
|
|
class DataSourceTestRequest(BaseModel):
|
|
|
|
|
type: str
|
|
|
|
|
config: Dict[str, Any]
|