pounce/backend/app/schemas/telemetry.py
Yves Gugger bb7ce97330
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
Deploy: referral rewards antifraud + legal contact updates
2025-12-15 13:56:43 +01:00

48 lines
1.0 KiB
Python

"""
Telemetry schemas (4A.2).
"""
from __future__ import annotations
from datetime import datetime
from typing import Optional
from pydantic import BaseModel, Field
class TelemetryKpiWindow(BaseModel):
days: int = Field(ge=1, le=365)
start: datetime
end: datetime
class DealFunnelKpis(BaseModel):
listing_views: int = 0
inquiries_created: int = 0
seller_replied_inquiries: int = 0
inquiry_reply_rate: float = 0.0
listings_with_inquiries: int = 0
listings_sold: int = 0
inquiry_to_sold_listing_rate: float = 0.0
median_reply_seconds: Optional[float] = None
median_time_to_sold_seconds: Optional[float] = None
class YieldFunnelKpis(BaseModel):
connected_domains: int = 0
clicks: int = 0
conversions: int = 0
conversion_rate: float = 0.0
payouts_paid: int = 0
payouts_paid_amount_total: float = 0.0
class TelemetryKpisResponse(BaseModel):
window: TelemetryKpiWindow
deal: DealFunnelKpis
yield_: YieldFunnelKpis = Field(alias="yield")