Files

67 lines
1.3 KiB
Python

from datetime import datetime
from typing import Optional
from pydantic import BaseModel
class ColumnCreate(BaseModel):
name: str
type: str # text, number, date, select, etc.
required: bool = False
default_value: Optional[str] = None
position: int = 0
options: Optional[dict] = None
class ColumnRead(BaseModel):
id: int
table_id: int
name: str
type: str
required: bool
default_value: Optional[str]
position: int
options: Optional[dict]
created_at: datetime
class Config:
from_attributes = True
class ColumnUpdate(BaseModel):
name: Optional[str] = None
type: Optional[str] = None
required: Optional[bool] = None
default_value: Optional[str] = None
position: Optional[int] = None
options: Optional[dict] = None
class TableCreate(BaseModel):
name: str
description: Optional[str] = None
class TableRead(BaseModel):
id: int
workspace_id: int
name: str
description: Optional[str]
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
class TableUpdate(BaseModel):
name: Optional[str] = None
description: Optional[str] = None
class TableDetailRead(TableRead):
columns: list[ColumnRead] = []
class Config:
from_attributes = True