init
This commit is contained in:
56
app/schemas/__init__.py
Normal file
56
app/schemas/__init__.py
Normal file
@@ -0,0 +1,56 @@
|
||||
from datetime import datetime
|
||||
from decimal import Decimal
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
|
||||
|
||||
class DevLoginRequest(BaseModel):
|
||||
telegram_id: int = Field(default=100001, ge=1)
|
||||
username: str | None = "dev_user"
|
||||
first_name: str | None = "Traveler"
|
||||
|
||||
|
||||
class TelegramAuthRequest(BaseModel):
|
||||
init_data: str
|
||||
|
||||
|
||||
class TokenResponse(BaseModel):
|
||||
access_token: str
|
||||
token_type: str = "bearer"
|
||||
|
||||
|
||||
class UserResponse(BaseModel):
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
id: int
|
||||
telegram_id: int | None
|
||||
username: str | None
|
||||
first_name: str | None
|
||||
balance: Decimal
|
||||
agreement_accepted: bool
|
||||
agreement_accepted_at: datetime | None
|
||||
created_at: datetime
|
||||
|
||||
|
||||
class DepositRequest(BaseModel):
|
||||
amount: Decimal = Field(..., description="Allowed stub amounts: 100, 500, 1000")
|
||||
|
||||
|
||||
class DepositResponse(BaseModel):
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
id: int
|
||||
amount: Decimal
|
||||
created_at: datetime
|
||||
|
||||
|
||||
class WalletResponse(BaseModel):
|
||||
balance: Decimal
|
||||
deposits: list[DepositResponse]
|
||||
|
||||
|
||||
class GameStub(BaseModel):
|
||||
slug: str
|
||||
title: str
|
||||
description: str
|
||||
status: str = "coming_soon"
|
||||
Reference in New Issue
Block a user