chore: stop tracking frontend node_modules

This commit is contained in:
Cheng Zhou
2026-01-20 08:52:54 +08:00
parent 7fdcfdaadd
commit 8e258d21a7
17405 changed files with 1643 additions and 2086724 deletions
-2
View File
@@ -47,12 +47,10 @@ class DocumentSummary(BaseModel):
id: uuid.UUID
trial_id: uuid.UUID
site_id: Optional[uuid.UUID] = None
doc_no: str
doc_type: str
title: str
scope_type: DocumentScopeType
owner_id: Optional[uuid.UUID]
status: DocumentStatus
current_effective_version_id: Optional[uuid.UUID]
current_effective_version: Optional[DocumentVersionSummary] = None
created_at: datetime
-1
View File
@@ -20,7 +20,6 @@ class DocumentVersionSummary(BaseModel):
id: uuid.UUID
version_no: str
status: DocumentVersionStatus
effective_at: Optional[datetime] = None
model_config = ConfigDict(from_attributes=True)
+48
View File
@@ -0,0 +1,48 @@
"""Overview Schema定义"""
import uuid
from datetime import date
from typing import List, Optional
from pydantic import BaseModel
class CenterOverview(BaseModel):
"""单个中心的概览数据"""
center_id: str
center_name: str
# 各阶段状态
institution_initiation_status: str = "NOT_STARTED"
ethics_status: str = "NOT_STARTED"
contract_sign_status: str = "NOT_STARTED"
startup_status: str = "NOT_STARTED"
enrollment_status: str = "NOT_STARTED"
inspection_status: str = "NOT_STARTED"
closeout_status: str = "NOT_STARTED"
# 各阶段完成日期
institution_initiation_completed_at: Optional[str] = None
ethics_completed_at: Optional[str] = None
contract_sign_completed_at: Optional[str] = None
startup_completed_at: Optional[str] = None
enrollment_completed_at: Optional[str] = None
inspection_completed_at: Optional[str] = None
closeout_completed_at: Optional[str] = None
# 入组数据
enrollment_target: int = 0
enrollment_actual: int = 0
class EnrollmentByMonth(BaseModel):
"""月度入组统计"""
month: str
count: int
class ProjectOverviewResponse(BaseModel):
"""项目概览响应"""
study_id: str
updated_at: str
centers: List[CenterOverview]
enrollment_by_month: List[EnrollmentByMonth]
+3
View File
@@ -11,6 +11,7 @@ class SiteCreate(BaseModel):
pi_name: Optional[str] = None
contact: Optional[str] = None
is_active: bool = True
enrollment_target: Optional[int] = None
class SiteUpdate(BaseModel):
@@ -19,6 +20,7 @@ class SiteUpdate(BaseModel):
pi_name: Optional[str] = None
contact: Optional[str] = None
is_active: Optional[bool] = None
enrollment_target: Optional[int] = None
class SiteRead(BaseModel):
@@ -29,6 +31,7 @@ class SiteRead(BaseModel):
pi_name: Optional[str]
contact: Optional[str]
is_active: bool
enrollment_target: Optional[int]
created_at: datetime
model_config = ConfigDict(from_attributes=True)