Step 3:Study / Site / StudyMember + 项目权限

This commit is contained in:
Cheng Zhou
2025-12-16 16:42:42 +08:00
parent 65df698570
commit f3692e1145
66 changed files with 639 additions and 6 deletions
+39
View File
@@ -0,0 +1,39 @@
import uuid
from datetime import datetime
from typing import Literal, Optional
from pydantic import BaseModel, ConfigDict, Field
StudyStatus = Literal["DRAFT", "ACTIVE", "CLOSED"]
class StudyCreate(BaseModel):
code: str = Field(min_length=1)
name: str = Field(min_length=1)
sponsor: Optional[str] = None
protocol_no: Optional[str] = None
phase: Optional[str] = None
status: StudyStatus = "DRAFT"
class StudyUpdate(BaseModel):
code: Optional[str] = None
name: Optional[str] = None
sponsor: Optional[str] = None
protocol_no: Optional[str] = None
phase: Optional[str] = None
status: Optional[StudyStatus] = None
class StudyRead(BaseModel):
id: uuid.UUID
code: str
name: str
sponsor: Optional[str]
protocol_no: Optional[str]
phase: Optional[str]
status: StudyStatus
created_by: Optional[uuid.UUID]
created_at: datetime
model_config = ConfigDict(from_attributes=True)