"""
DOOBAT - Modèles de réponse
Structures Pydantic pour les réponses API.
Copyright 2026 Vincent Gallet - Vincesoft
"""

from typing import Optional

from pydantic import BaseModel, Field


class WebhookResponse(BaseModel):
    """Réponse standard du webhook Telegram."""
    ok: bool = True


class HealthResponse(BaseModel):
    """Réponse de l'endpoint de santé."""
    status: str = "ok"
    service: str = "DOOBAT"
    version: str = "1.0.0"


class PartnerInfo(BaseModel):
    """Informations d'un partenaire Odoo."""
    id: int
    name: str
    phone: Optional[str] = None
    mobile: Optional[str] = None
    email: Optional[str] = None
    role: str = "unknown"  # "commercial" ou "client"
    is_commercial: bool = False


class PDFGenerationResult(BaseModel):
    """Résultat d'une génération PDF."""
    success: bool
    pdf_path: Optional[str] = None
    error: Optional[str] = None
    file_size_bytes: int = 0
