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 class SSQLotteryBetRecordBase(BaseModel): batch_id: str issue: str bet_time: Optional[datetime] = None numbers: str recommend_type: Optional[str] = None telegram_msg_id: Optional[str] = None is_winner: Optional[int] = 0 win_level: Optional[str] = None win_amount: Optional[str] = None open_code: Optional[str] = None open_date: Optional[date] = None prize_detail: Optional[str] = None class SSQLotteryBetRecordCreate(SSQLotteryBetRecordBase): pass class SSQLotteryBetRecord(SSQLotteryBetRecordBase): id: int created_at: datetime updated_at: datetime class Config: from_attributes = True class DLTLotteryBetRecordBase(BaseModel): batch_id: str issue: str bet_time: Optional[datetime] = None numbers: str recommend_type: Optional[str] = None telegram_msg_id: Optional[str] = None is_winner: Optional[int] = 0 win_level: Optional[str] = None win_amount: Optional[str] = None open_code: Optional[str] = None open_date: Optional[date] = None prize_detail: Optional[str] = None class DLTLotteryBetRecordCreate(DLTLotteryBetRecordBase): pass class DLTLotteryBetRecord(DLTLotteryBetRecordBase): id: int created_at: datetime updated_at: datetime class Config: from_attributes = True