"""
Modèle SQLAlchemy pour les événements de niveau
Réceptions armatures et livraisons chantier (multi-dates)
"""
from sqlalchemy import Column, Integer, String, Text, DateTime, ForeignKey
from datetime import datetime
from app.database import Base


class EvenementNiveau(Base):
    """
    Événement lié à un niveau (réception armatures ou livraison chantier)
    """
    __tablename__ = "evenements_niveau"

    id = Column(Integer, primary_key=True, index=True)
    niveau_id = Column(Integer, ForeignKey("niveaux.id", ondelete="CASCADE"), nullable=False, index=True)
    type = Column(String(30), nullable=False)  # reception_armatures | livraison_chantier
    date = Column(DateTime, nullable=False)
    label = Column(String(200), nullable=True)  # Ex: "Armatures RDC", "Livraison partielle"

    # Métadonnées
    date_creation = Column(DateTime, default=datetime.utcnow)

    def __repr__(self):
        return f"<EvenementNiveau {self.type} - {self.date}>"