mottery/backend/app/schemas/lottery.py

118 lines
3.2 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
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