62 lines
1.9 KiB
Python
62 lines
1.9 KiB
Python
from pydantic import BaseModel, Field
|
|
from datetime import date, datetime
|
|
from typing import Optional
|
|
|
|
|
|
class SSQLotteryBase(BaseModel):
|
|
issue: str = Field(..., description="期号")
|
|
open_time: date = Field(..., description="开奖日期")
|
|
red_ball_1: int = Field(..., ge=1, le=33, description="红球1")
|
|
red_ball_2: int = Field(..., ge=1, le=33, description="红球2")
|
|
red_ball_3: int = Field(..., ge=1, le=33, description="红球3")
|
|
red_ball_4: int = Field(..., ge=1, le=33, description="红球4")
|
|
red_ball_5: int = Field(..., ge=1, le=33, description="红球5")
|
|
red_ball_6: int = Field(..., ge=1, le=33, description="红球6")
|
|
blue_ball: int = Field(..., ge=1, le=16, description="蓝球")
|
|
|
|
|
|
class SSQLotteryCreate(SSQLotteryBase):
|
|
pass
|
|
|
|
|
|
class SSQLottery(SSQLotteryBase):
|
|
id: int
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class DLTLotteryBase(BaseModel):
|
|
issue: str = Field(..., description="期号")
|
|
open_time: date = Field(..., description="开奖日期")
|
|
front_ball_1: int = Field(..., ge=1, le=35, description="前区球1")
|
|
front_ball_2: int = Field(..., ge=1, le=35, description="前区球2")
|
|
front_ball_3: int = Field(..., ge=1, le=35, description="前区球3")
|
|
front_ball_4: int = Field(..., ge=1, le=35, description="前区球4")
|
|
front_ball_5: int = Field(..., ge=1, le=35, description="前区球5")
|
|
back_ball_1: int = Field(..., ge=1, le=12, description="后区球1")
|
|
back_ball_2: int = Field(..., ge=1, le=12, description="后区球2")
|
|
|
|
|
|
class DLTLotteryCreate(DLTLotteryBase):
|
|
pass
|
|
|
|
|
|
class DLTLottery(DLTLotteryBase):
|
|
id: int
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class LotteryQuery(BaseModel):
|
|
start_date: Optional[str] = None
|
|
end_date: Optional[str] = None
|
|
issue: Optional[str] = None
|
|
page: int = 1
|
|
page_size: int = 20
|