| 32 | |
| 33 | |
| 34 | class BaseUserDTO(BaseUser, BaseCreatorDTO): |
| 35 | language: str = Field(pattern=r"^(zh-CN|zh-TW|en|ko-KR)$", default="zh-CN", description="用户语言") |
| 36 | password: str |
| 37 | status: int = 1 |
| 38 | origin: int = 0 |
| 39 | name: str |
| 40 | |
| 41 | def to_dict(self): |
| 42 | return { |
| 43 | "id": self.id, |
| 44 | "account": self.account, |
| 45 | "oid": self.oid |
| 46 | } |
| 47 | |
| 48 | @field_validator("language") |
| 49 | def validate_language(cls, lang: str) -> str: |
| 50 | if not re.fullmatch(r"^(zh-CN|zh-TW|en|ko-KR)$", lang): |
| 51 | raise ValueError("Language must be 'zh-CN', 'zh-TW', 'en', or 'ko-KR'") |
| 52 | return lang |
| 53 | |
| 54 | |
| 55 | class UserCreator(BaseUser): |