127 lines
3.2 KiB
Python
127 lines
3.2 KiB
Python
import uuid
|
|
from datetime import date, datetime
|
|
from typing import Optional
|
|
|
|
from pydantic import BaseModel, ConfigDict
|
|
|
|
|
|
class StartupFeasibilityCreate(BaseModel):
|
|
submit_date: Optional[date] = None
|
|
accept_date: Optional[date] = None
|
|
approved_date: Optional[date] = None
|
|
project_no: Optional[str] = None
|
|
|
|
|
|
class StartupFeasibilityUpdate(BaseModel):
|
|
submit_date: Optional[date] = None
|
|
accept_date: Optional[date] = None
|
|
approved_date: Optional[date] = None
|
|
project_no: Optional[str] = None
|
|
|
|
|
|
class StartupFeasibilityRead(BaseModel):
|
|
id: uuid.UUID
|
|
study_id: uuid.UUID
|
|
submit_date: Optional[date]
|
|
accept_date: Optional[date]
|
|
approved_date: Optional[date]
|
|
project_no: Optional[str]
|
|
created_by: Optional[uuid.UUID]
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
|
|
class StartupEthicsCreate(BaseModel):
|
|
submit_date: Optional[date] = None
|
|
accept_date: Optional[date] = None
|
|
meeting_date: Optional[date] = None
|
|
approved_date: Optional[date] = None
|
|
approval_no: Optional[str] = None
|
|
|
|
|
|
class StartupEthicsUpdate(BaseModel):
|
|
submit_date: Optional[date] = None
|
|
accept_date: Optional[date] = None
|
|
meeting_date: Optional[date] = None
|
|
approved_date: Optional[date] = None
|
|
approval_no: Optional[str] = None
|
|
|
|
|
|
class StartupEthicsRead(BaseModel):
|
|
id: uuid.UUID
|
|
study_id: uuid.UUID
|
|
submit_date: Optional[date]
|
|
accept_date: Optional[date]
|
|
meeting_date: Optional[date]
|
|
approved_date: Optional[date]
|
|
approval_no: Optional[str]
|
|
created_by: Optional[uuid.UUID]
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
|
|
class KickoffMeetingCreate(BaseModel):
|
|
kickoff_date: Optional[date] = None
|
|
attendees: Optional[list[str]] = None
|
|
|
|
|
|
class KickoffMeetingUpdate(BaseModel):
|
|
kickoff_date: Optional[date] = None
|
|
attendees: Optional[list[str]] = None
|
|
|
|
|
|
class KickoffMeetingRead(BaseModel):
|
|
id: uuid.UUID
|
|
study_id: uuid.UUID
|
|
kickoff_date: Optional[date]
|
|
attendees: Optional[list[str]]
|
|
created_by: Optional[uuid.UUID]
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
|
|
class TrainingAuthorizationCreate(BaseModel):
|
|
name: str
|
|
role: Optional[str] = None
|
|
site_name: Optional[str] = None
|
|
trained: bool = False
|
|
authorized: bool = False
|
|
trained_date: Optional[date] = None
|
|
authorized_date: Optional[date] = None
|
|
remark: Optional[str] = None
|
|
|
|
|
|
class TrainingAuthorizationUpdate(BaseModel):
|
|
name: Optional[str] = None
|
|
role: Optional[str] = None
|
|
site_name: Optional[str] = None
|
|
trained: Optional[bool] = None
|
|
authorized: Optional[bool] = None
|
|
trained_date: Optional[date] = None
|
|
authorized_date: Optional[date] = None
|
|
remark: Optional[str] = None
|
|
|
|
|
|
class TrainingAuthorizationRead(BaseModel):
|
|
id: uuid.UUID
|
|
study_id: uuid.UUID
|
|
name: str
|
|
role: Optional[str]
|
|
site_name: Optional[str]
|
|
trained: bool
|
|
authorized: bool
|
|
trained_date: Optional[date]
|
|
authorized_date: Optional[date]
|
|
remark: Optional[str]
|
|
created_by: Optional[uuid.UUID]
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|