"""Pydantic schemas for Dashboard endpoints.""" from __future__ import annotations from datetime import datetime from typing import Optional from pydantic import BaseModel, ConfigDict from app.models.activity import ActivityType class KPIOut(BaseModel): """Headline KPIs for the org dashboard.""" open_deals_count: int pipeline_value: float won_this_month: int conversion_rate: float class ActivityFeedItem(BaseModel): """One item in the activity feed.""" model_config = ConfigDict(from_attributes=True) id: int type: ActivityType subject: str body: Optional[str] = None account_id: Optional[int] = None contact_id: Optional[int] = None deal_id: Optional[int] = None owner_id: int completed_at: Optional[datetime] = None due_date: Optional[datetime] = None created_at: datetime __all__ = ["ActivityFeedItem", "KPIOut"]