| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- from pydantic import BaseModel
- from typing import List, Optional
- from datetime import datetime
- class ProjectBase(BaseModel):
- project_name: str
- description: Optional[str] = None
- class ProjectCreate(ProjectBase):
- pass
- class ProjectOut(ProjectBase):
- id: str
- created_at: datetime
- class Config:
- from_attributes = True
- # Keep old name for backward compatibility
- Project = ProjectOut
- class DataFileBase(BaseModel):
- relative_path: str
- file_size: int
- file_type: str
- file_sha: str
- direction: Optional[str] = None
- label: Optional[str] = None
- extracted_value: Optional[str] = None
- group_key: Optional[str] = None
- class DataFileOut(DataFileBase):
- id: int
- storage_path: str
- created_at: datetime
- class Config:
- from_attributes = True
- # Keep old name for backward compatibility
- DataFile = DataFileOut
- class DataVersionBase(BaseModel):
- stage: str
- commit_id: str
- author: Optional[str] = None
- commit_message: Optional[str] = None
- manifest_snapshot: Optional[str] = None
- class DataVersionOut(DataVersionBase):
- id: str
- project_id: str
- created_at: datetime
- class Config:
- from_attributes = True
- class DataVersionWithFiles(DataVersionOut):
- files: List[DataFileOut] = []
- # Keep old name for backward compatibility
- DataVersion = DataVersionOut
- class DataRecordBase(BaseModel):
- stage: str
- commit_id: str
- commit_message: Optional[str] = None
- group_key: Optional[str] = None
- content_hash: Optional[str] = None
- inputs: Optional[List] = []
- outputs: Optional[List] = []
- author: Optional[str] = None
- class DataRecordOut(DataRecordBase):
- id: str
- project_id: str
- version_id: str
- created_at: datetime
- class Config:
- from_attributes = True
|