hotspot / App /Plans /Schema.py
Mbonea's picture
plan
7754df5
raw
history blame
1.57 kB
from pydantic import BaseModel, Field
from typing import Optional, List
from decimal import Decimal
class BaseResponse(BaseModel):
code: int
message: str
payload: Optional[dict] = None
class CreatePlanRequest(BaseModel):
name: str = Field(..., description="Name of the subscription plan")
amount: Decimal = Field(..., description="Cost of the plan")
duration: int = Field(..., description="Duration of the subscription in hours")
download_speed: float = Field(..., description="Download speed in Mbps")
upload_speed: float = Field(..., description="Upload speed in Mbps")
is_promo: Optional[bool] = Field(False, description="is it a promo")
promo_days: Optional[int] = Field(None, description="promotion days")
class UpdatePlanRequest(BaseModel):
name: Optional[str] = Field(None, description="Name of the subscription plan")
amount: Optional[Decimal] = Field(None, description="Cost of the plan")
duration: Optional[int] = Field(
None, description="Duration of the subscription in hours"
)
download_speed: Optional[float] = Field(None, description="Download speed in Mbps")
upload_speed: Optional[float] = Field(None, description="Upload speed in Mbps")
class PlanResponse(BaseModel):
id: str
name: str
amount: Decimal
duration: int
download_speed: float
upload_speed: float
class Config:
from_attributes = True
class PlanListResponse(BaseModel):
plans: List[PlanResponse]
total_count: int
class Config:
from_attributes = True