MukeshKapoor25's picture
Initial commit
b143975
"""Analytics metric snapshot model."""
from datetime import datetime
from typing import Optional, Dict, Any
from pydantic import BaseModel, Field
class MetricModel(BaseModel):
metric_id: str = Field(..., description="Unique metric identifier (UUID)")
metric_type: str = Field(..., description="Type of metric")
merchant_id: str = Field(..., description="Merchant this metric belongs to")
period: str = Field(..., description="Aggregation period: hourly | daily | weekly | monthly")
period_start: datetime = Field(..., description="Start of the aggregation period")
period_end: datetime = Field(..., description="End of the aggregation period")
value: float = Field(..., description="Metric value")
dimensions: Optional[Dict[str, Any]] = Field(None, description="Breakdown dimensions (source, category, etc.)")
metadata: Optional[Dict[str, Any]] = Field(None)
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: Optional[datetime] = Field(None)