47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
from pydantic import BaseModel, Field
|
|
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 = Field(alias="id")
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
populate_by_name = True
|
|
|
|
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 |