Files
railway_cloud/app/schemas/account.py
2025-09-27 14:20:23 +08:00

61 lines
1.6 KiB
Python

from pydantic import BaseModel, Field, ConfigDict, field_serializer
from typing import Optional
from datetime import datetime
class AccountBase(BaseModel):
username: str
password: str
status: Optional[int] = 1
today_updated: Optional[int] = 0
project_name: Optional[str] = None
class AccountCreate(AccountBase):
pass
class AccountUpdate(BaseModel):
username: Optional[str] = None
password: Optional[str] = None
status: Optional[int] = None
today_updated: Optional[int] = None
project_name: Optional[str] = None
class AccountResponse(AccountBase):
account_id: int
created_at: datetime
updated_at: datetime
model_config = ConfigDict(
from_attributes=True
)
@classmethod
def from_orm_account(cls, account):
"""从ORM对象创建响应对象"""
return cls(
account_id=account.id,
username=account.username,
password=account.password,
status=account.status,
today_updated=account.today_updated,
project_name=account.project_name,
created_at=account.created_at,
updated_at=account.updated_at
)
class AccountListRequest(BaseModel):
skip: Optional[int] = 0
limit: Optional[int] = 100
class AccountGetRequest(BaseModel):
account_id: Optional[int] = None
username: Optional[str] = None
project_name: Optional[str] = None
status: Optional[int] = None
today_updated: Optional[int] = None
class AccountUpdateRequest(BaseModel):
account_id: int
account_data: AccountUpdate
class AccountDeleteRequest(BaseModel):
account_id: int