feat: initial postcard manager - FastAPI + Jinja2 + SQLite
This commit is contained in:
82
app/schemas.py
Normal file
82
app/schemas.py
Normal file
@@ -0,0 +1,82 @@
|
||||
from datetime import datetime
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
# ---------- Auth ----------
|
||||
|
||||
class RegisterRequest(BaseModel):
|
||||
username: str
|
||||
password: str
|
||||
|
||||
|
||||
class LoginRequest(BaseModel):
|
||||
username: str
|
||||
password: str
|
||||
|
||||
|
||||
# ---------- Profile ----------
|
||||
|
||||
class ProfileCreate(BaseModel):
|
||||
nickname: str
|
||||
|
||||
|
||||
class ProfileOut(BaseModel):
|
||||
id: int
|
||||
nickname: str
|
||||
created_at: datetime
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
# ---------- Postcard ----------
|
||||
|
||||
class PostcardCreate(BaseModel):
|
||||
card_number: str
|
||||
status: str # sent / delivered / received
|
||||
recipient_name: str | None = None
|
||||
country: str | None = None
|
||||
send_time: datetime | None = None
|
||||
arrival_time: datetime | None = None
|
||||
sender_name: str | None = None
|
||||
receive_time: datetime | None = None
|
||||
|
||||
|
||||
class PostcardUpdate(BaseModel):
|
||||
card_number: str | None = None
|
||||
status: str | None = None
|
||||
recipient_name: str | None = None
|
||||
country: str | None = None
|
||||
send_time: datetime | None = None
|
||||
arrival_time: datetime | None = None
|
||||
sender_name: str | None = None
|
||||
receive_time: datetime | None = None
|
||||
|
||||
|
||||
class PostcardOut(BaseModel):
|
||||
id: int
|
||||
profile_id: int
|
||||
card_number: str
|
||||
status: str
|
||||
recipient_name: str | None
|
||||
country: str | None
|
||||
send_time: datetime | None
|
||||
arrival_time: datetime | None
|
||||
sender_name: str | None
|
||||
receive_time: datetime | None
|
||||
image_front: str | None
|
||||
image_back: str | None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
# ---------- ApiKey ----------
|
||||
|
||||
class ApiKeyOut(BaseModel):
|
||||
id: int
|
||||
key: str
|
||||
created_at: datetime
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
Reference in New Issue
Block a user