51 lines
1.1 KiB
Python
51 lines
1.1 KiB
Python
from typing import Optional
|
|
from datetime import datetime
|
|
from pydantic import BaseModel
|
|
import uuid
|
|
from enum import Enum
|
|
|
|
# Models for /token endpoint
|
|
class Token(BaseModel):
|
|
access_token: str
|
|
token_type: str
|
|
|
|
class IntegrationTokenResponse(BaseModel):
|
|
msg: str
|
|
company_name: str
|
|
company_key: str
|
|
|
|
# Models for /sale endpoint
|
|
class SaleCreateRequest(BaseModel):
|
|
ref: Optional[str] = None
|
|
promocode: Optional[str] = None
|
|
sale_id: str
|
|
cost: float
|
|
category: str # название категории продажи
|
|
group_sale_id: str # новое поле для группировки продаж
|
|
|
|
class SaleCreateResponse(BaseModel):
|
|
msg: str
|
|
sale_id: str
|
|
crediting: float
|
|
|
|
class WithdrawRequest(BaseModel):
|
|
tg_id: int
|
|
amount: float
|
|
|
|
class WithdrawResponse(BaseModel):
|
|
msg: str
|
|
transaction_id: uuid.UUID
|
|
|
|
class TransactionStatus(str, Enum):
|
|
NEW = "new"
|
|
PROCESS = "process"
|
|
WAITING = "waiting"
|
|
DONE = "done"
|
|
CANCELED = "canceled"
|
|
ERROR = "error"
|
|
|
|
class PromoValidationRequest(BaseModel):
|
|
promocode: str
|
|
|
|
class PromoValidationResponse(BaseModel):
|
|
validation: bool |