"""Catalogue patrimonial livré avec l'assistant de première installation.

Ces valeurs reprennent les catégories et les lots du dump SQL de référence.
Les noms sont les clés fonctionnelles utilisées pour une synchronisation idempotente :
le wizard ne supprime jamais une ligne déjà présente dans la base.
"""
from .preventive_catalog import LOT_TASKS

EQUIPMENT_CATEGORIES = (
    "Chauffage", "Courants faibles", "Gros œuvre", "Revêtement de façades",
    "Menuiseries extérieures", "Cloisons", "Menuiseries intérieures", "Métallerie",
    "Faux-plafonds", "Revêtements de sols souples", "Peinture", "Signalétique",
    "Ventilation", "Plomberie", "Traitement de l'eau", "Gaz", "Courants forts",
    "Portes et portails", "Ascenseur", "Réseaux enterrés", "Voirie", "Espaces verts",
    "Clôtures", "Equipements sportifs", "Occultations", "Eau chaude sanitaire",
    "Jeux d'enfants", "Couverture et étanchéité", "Désenfumage", "Flocages",
    "Charpente", "Paratonnerre", "Revêtements de sols durs", "Revêtements de sols",
    "Divers", "Mobilier",
)

LOTS = (
    ("Local chaufferie : ventilations haute et basse, extincteur, bloc autonome, conduit de fumées, siphon de sol, porte d'accès", "Chauffage"),
    ("Chaudières et équipements (armoire électrique, vannes, panoplie, vase d'expansion, pot à boues, …)", "Chauffage"),
    ("Réseaux de distribution et radiateurs", "Chauffage"),
    ("Chaudières dans logements", "Chauffage"), ("Régulation", "Chauffage"),
    ("Système de sécurité incendie, détection, centrale de mise en sécurité, équipement d'alarme", "Courants faibles"),
    ("Déclencheur manuel", "Courants faibles"), ("Autocommutateur", "Courants faibles"),
    ("Alarme technique", "Courants faibles"), ("Caméras", "Courants faibles"),
    ("Sonorisation - horloge", "Courants faibles"),
    ("Vidéoprojecteurs fixes (TICE salles de classes)", "Courants faibles"),
    ("Alarme anti-agression - Protection des travailleurs isolés (PTI)", "Courants faibles"),
    ("Alarme anti-intrusion", "Courants faibles"), ("Interphonie - Contrôle d'accès", "Courants faibles"),
    ("Vide sanitaire", "Gros œuvre"), ("Structure béton : poteaux, voiles, planchers, poutres", "Gros œuvre"),
    ("Structure béton : poteaux, voiles, planchers, poutres, balcons, consoles, appuis de fenêtre, escaliers béton", "Gros œuvre"),
    ("Bardages", "Revêtement de façades"), ("Enduits de façade", "Revêtement de façades"),
    ("Portes extérieures", "Menuiseries extérieures"), ("Fenêtres", "Menuiseries extérieures"),
    ("Joints de vitrages et joints entre ouvrants et dormants", "Menuiseries extérieures"),
    ("Cloisons intérieures", "Cloisons"), ("Portes coupe-feu", "Menuiseries intérieures"),
    ("Portes de distribution simples", "Menuiseries intérieures"),
    ("Escaliers, mains courantes, garde-corps, ouvrages de métallerie", "Métallerie"),
    ("Rideaux et grilles métalliques (manuels ou motorisés)", "Métallerie"),
    ("Faux plafonds minéraux ou métalliques", "Faux-plafonds"), ("Faux plafonds métalliques", "Faux-plafonds"),
    ("Sols souples linoléum, PVC, sols coulés", "Revêtements de sols souples"), ("Peintures", "Peinture"),
    ("Signalétique de sécurité et d'orientation", "Signalétique"), ("Groupes froids", "Ventilation"),
    ("Centrales de traitement d'air (CTA)", "Ventilation"), ("Climatiseur split", "Ventilation"),
    ("Extracteurs, gaines, clapets coupe-feu", "Ventilation"), ("Surpresseur d'eau", "Plomberie"),
    ("Canalisations d'eau froide", "Plomberie"), ("Equipement sanitaires terminaux", "Plomberie"),
    ("Robinetterie", "Plomberie"), ("Compteurs d'arrivée d'eau, gaz", "Plomberie"),
    ("Extincteurs", "Plomberie"), ("Disconnecteurs", "Plomberie"),
    ("RIA, colonnes sèches et humides", "Plomberie"), ("Adoucisseurs", "Traitement de l'eau"),
    ("Alimentation, détente et distribution gaz", "Gaz"), ("Onduleur", "Courants forts"),
    ("Local transformateur privatif et local TGBT", "Courants forts"), ("Armoires divisionnaires", "Courants forts"),
    ("Eclairage de sécurité", "Courants forts"), ("Compteurs électrique", "Courants forts"),
    ("Eclairage", "Courants forts"), ("Eclairage extérieur", "Courants forts"),
    ("courants forts Eclairage", "Courants forts"), ("courants forts Eclairage extérieur", "Courants forts"),
    ("courants forts Eclairage de sécurité", "Courants forts"),
    ("Portes automatiques - portes basculantes", "Portes et portails"), ("Portail électrique", "Portes et portails"),
    ("Ascenseur", "Ascenseur"), ("Réseaux enterrés, regards de visite, caniveaux et avaloirs", "Réseaux enterrés"),
    ("Séparateur à graisses à fécules, à hydrocarbures", "Réseaux enterrés"),
    ("Pompes de relevage des eaux usées ou des eaux pluviales", "Réseaux enterrés"),
    ("Voirie, chaussées", "Voirie"), ("Voirie, dallages", "Voirie"), ("Parking enherbé", "Espaces verts"),
    ("Pelouses", "Espaces verts"), ("Arbres de haute tige", "Espaces verts"),
    ("Arbustes et haies (à hauteur d'homme)", "Espaces verts"), ("Clôtures", "Clôtures"),
    ("Buts de football, volley, paniers de basket", "Equipements sportifs"), ("Murs d'escalade", "Equipements sportifs"),
    ("Stores et volets roulants", "Occultations"),
    ("Production d'eau chaude (chaudière, ballon)", "Eau chaude sanitaire"),
    ("Distribution d'eau chaude", "Eau chaude sanitaire"), ("Toboggans, structures, jeux divers", "Jeux d'enfants"),
    ("Toiture terrasse traditionnelle ou végétalisée", "Couverture et étanchéité"),
    ("Toiture à pente", "Couverture et étanchéité"), ("Descentes d'eaux pluviales (EP)", "Couverture et étanchéité"),
    ("Trappes, lanterneaux, skydômes, verrières (installations qui n'assurent pas le désenfumage)", "Couverture et étanchéité"),
    ("Echelles, garde aux corps, protections pour interventions ultérieures en toiture", "Couverture et étanchéité"),
    ("Ligne de vie", "Couverture et étanchéité"),
    ("Exutoires de désenfumage et mécanisme d'ouverture", "Désenfumage"),
    ("Flocages et peintures intumescentes", "Flocages"), ("Charpente bois", "Charpente"),
    ("Charpente métallique", "Charpente"),
    ("Paratonnerres et paratonnerres à dispositifs d'amorçage (PDA)", "Paratonnerre"),
    ("Sols durs et faïences murales", "Revêtements de sols durs"),
    ("souples Sols souples linoléum, PVC, sols coulés", "Revêtements de sols"),
    ("Informatique", "Divers"), ("Mobilier", "Mobilier"),
)


def grouped_catalog():
    """Format compact destiné à l'aperçu du wizard."""
    grouped = {category: [] for category in EQUIPMENT_CATEGORIES}
    for lot_name, category_name in LOTS:
        grouped[category_name].append(lot_name)
    return grouped


def task_count_by_lot():
    """Nombre de règles préventives historiques pour chaque lot."""
    counts = {}
    for task in LOT_TASKS:
        counts[task["lot"]] = counts.get(task["lot"], 0) + 1
    return counts
