"""
Modèle SQLAlchemy pour les bons de livraison
"""
from sqlalchemy import Column, Integer, String, Float, DateTime, Text, Boolean
from datetime import datetime
from app.database import Base


class BonLivraison(Base):
    __tablename__ = "bons_livraison"

    id = Column(Integer, primary_key=True, index=True)
    numero = Column(String(50), nullable=False, unique=True)  # BL-2026-0001
    date_creation = Column(DateTime, default=datetime.utcnow)
    date_str = Column(String(20), nullable=True)  # date formatée FR

    # Projet
    projet_id = Column(Integer, nullable=True)
    projet_nom = Column(String(255), nullable=True)
    client_nom = Column(String(255), nullable=True)
    numero_affaire = Column(String(50), nullable=True)

    # Stats
    nb_pieces = Column(Integer, default=0)
    poids_total = Column(Float, default=0.0)

    # PDF en base64
    pdf_b64 = Column(Text, nullable=True)

    # Statut
    date_livraison = Column(String(50), nullable=True)
    type_transport = Column(String(100), nullable=True)
    commentaire = Column(String(500), nullable=True)
    imprime = Column(Boolean, default=False)

    def __repr__(self):
        return f"<BonLivraison {self.numero}>"
