Files
Cheng Zhou 4ea0e88c98 优化中心联系人展示名称解析
- 新增中心联系人展示名解析服务,支持从逗号分隔用户 ID 解析姓名\n- 中心列表接口返回 contact_display,避免前端依赖项目成员权限才能展示联系人姓名\n- 中心管理和立项会议授权页面优先使用后端联系人展示名\n- 补充联系人解析服务测试和立项会议授权页面展示顺序测试
2026-06-04 16:30:17 +08:00

49 lines
1.4 KiB
Python

import uuid
from datetime import date, datetime
from typing import Optional
from pydantic import BaseModel, ConfigDict, Field
class SiteCreate(BaseModel):
name: str = Field(min_length=1)
city: Optional[str] = None
pi_name: Optional[str] = None
phone: Optional[str] = None
contact: Optional[str] = None
is_active: bool = True
enrollment_plan_start_date: Optional[date] = None
enrollment_plan_end_date: Optional[date] = None
enrollment_plan_note: Optional[str] = None
class SiteUpdate(BaseModel):
name: Optional[str] = None
city: Optional[str] = None
pi_name: Optional[str] = None
phone: Optional[str] = None
contact: Optional[str] = None
is_active: Optional[bool] = None
enrollment_plan_start_date: Optional[date] = None
enrollment_plan_end_date: Optional[date] = None
enrollment_plan_note: Optional[str] = None
class SiteRead(BaseModel):
id: uuid.UUID
study_id: uuid.UUID
name: str
city: Optional[str]
pi_name: Optional[str]
phone: Optional[str]
contact: Optional[str]
contact_display: Optional[str] = None
is_active: bool
enrollment_target: Optional[int]
enrollment_plan_start_date: Optional[date]
enrollment_plan_end_date: Optional[date]
enrollment_plan_note: Optional[str]
created_at: datetime
model_config = ConfigDict(from_attributes=True)