churnflow-api / src /api /models.py
aleem1234's picture
Fix requirements.txt dependencies
38c1a14
Raw
History Blame Contribute Delete
987 Bytes
from pydantic import BaseModel, Field
from typing import List, Dict, Any
class CustomerInput(BaseModel):
recency: int = Field(..., description="Days since last purchase", ge=0, json_schema_extra={"example": 65})
frequency: int = Field(..., description="Number of unique orders/invoices", ge=1, json_schema_extra={"example": 3})
monetary: float = Field(..., description="Average value spend per invoice", ge=0.0, json_schema_extra={"example": 350.50})
basket_size: float = Field(..., description="Average items count per basket size", ge=0.0, json_schema_extra={"example": 12.5})
avg_days_between: float | None = Field(None, description="Average days between purchases.", ge=0.0)
recent_orders_ratio: float | None = Field(None, description="Ratio of orders placed in last 60 days.", ge=0.0, le=1.0)
is_uk: int | None = Field(None, description="1 if customer is in the UK, else 0.", ge=0, le=1)
class BatchInput(BaseModel):
customers: List[CustomerInput]