geo/backend/app/schemas/subscription.py

41 lines
742 B
Python

from pydantic import BaseModel
from typing import List, Optional
from datetime import date, datetime
from uuid import UUID
class PlanFeature(BaseModel):
name: str
included: bool
class PlanDetail(BaseModel):
id: str
name: str
price: float
max_queries: int
features: List[PlanFeature]
class SubscribeRequest(BaseModel):
plan: str
class SubscriptionResponse(BaseModel):
id: UUID
plan: str
status: str
start_date: date
end_date: date
amount: Optional[float] = None
payment_method: Optional[str] = None
created_at: datetime
class Config:
from_attributes = True
class SubscriptionHistoryResponse(BaseModel):
items: List[SubscriptionResponse]
total: int