-- =====================================================================
--  ALTALYS PROTECTION — Documents, alertes et contrôles périodiques
--  Import via phpMyAdmin > base moso8599_altalys > Importer
--  Sans risque : n'efface aucune donnée existante.
-- =====================================================================
SET NAMES utf8mb4;

-- ---------------------------------------------------------------------
-- SOUS-TRAITANTS
-- ---------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `sous_traitants` (
  `id`             BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  `raison_sociale` VARCHAR(200) NOT NULL,
  `siret`          VARCHAR(20)  NULL,
  `aut_cnaps`      VARCHAR(60)  NULL,
  `adresse`        VARCHAR(200) NULL,
  `code_postal`    VARCHAR(12)  NULL,
  `ville`          VARCHAR(120) NULL,
  `contact_nom`    VARCHAR(120) NULL,
  `contact_email`  VARCHAR(160) NULL,
  `contact_tel`    VARCHAR(30)  NULL,
  `taux_horaire`   DECIMAL(8,4) NULL,
  `actif`          TINYINT(1) NOT NULL DEFAULT 1,
  `notes`          TEXT NULL,
  `cree_le`        DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_rs` (`raison_sociale`),
  KEY `idx_siret` (`siret`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------------------------------------------------------------------
-- DOCUMENTS — refonte : rattachement agent / société / sous-traitant / site
--   proprietaire : agent | societe | sous_traitant | site | client
--   Deux façons de calculer l'échéance :
--     - date_expiration renseignée directement
--     - ou date_document + duree_mois (ex. Kbis 3 mois, vigilance 6 mois)
-- ---------------------------------------------------------------------
ALTER TABLE `documents`
  ADD COLUMN `proprietaire`   ENUM('agent','societe','sous_traitant','site','client') NOT NULL DEFAULT 'agent' AFTER `id`,
  ADD COLUMN `proprietaire_id` BIGINT UNSIGNED NULL AFTER `proprietaire`,
  ADD COLUMN `type`           VARCHAR(40)  NULL AFTER `categorie`,
  ADD COLUMN `date_document`  DATE NULL AFTER `type`,
  ADD COLUMN `duree_mois`     INT NULL AFTER `date_document`,
  ADD COLUMN `preavis_jours`  INT NOT NULL DEFAULT 90 AFTER `duree_mois`,
  ADD COLUMN `taille`         INT NULL,
  ADD COLUMN `mime`           VARCHAR(80) NULL,
  ADD COLUMN `page_debut`     INT NULL,
  ADD COLUMN `page_fin`       INT NULL,
  ADD COLUMN `source`         VARCHAR(200) NULL,
  ADD COLUMN `remarque`       VARCHAR(255) NULL,
  ADD KEY `idx_prop` (`proprietaire`,`proprietaire_id`),
  ADD KEY `idx_type` (`type`);

-- ---------------------------------------------------------------------
-- CONTRÔLES PÉRIODIQUES (vérification DRACAR / CNAPS, visites, audits)
--   L'employeur doit vérifier lui-même la validité des cartes :
--   le CNAPS ne notifie pas les entreprises.
-- ---------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `controles` (
  `id`            BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  `type`          VARCHAR(40) NOT NULL DEFAULT 'dracar',   -- dracar, medical, audit_site
  `agent_id`      BIGINT UNSIGNED NULL,
  `site_id`       BIGINT UNSIGNED NULL,
  `date_controle` DATE NOT NULL,
  `resultat`      ENUM('valide','invalide','introuvable','a_verifier') NOT NULL DEFAULT 'valide',
  `reference`     VARCHAR(80)  NULL,        -- n° de titre vérifié
  `par_qui`       VARCHAR(120) NULL,
  `commentaire`   VARCHAR(255) NULL,
  `cree_le`       DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_agent` (`agent_id`,`type`),
  KEY `idx_date` (`date_controle`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------------------------------------------------------------------
-- Paramètres des alertes
-- ---------------------------------------------------------------------
INSERT INTO `parametres` (`cle`,`valeur`) VALUES
 ('alerte_jours','90'),                 -- documents des agents
 ('alerte_jours_societe','15'),         -- Kbis, assurances, vigilance
 ('kbis_validite_mois','3'),
 ('vigilance_validite_mois','6'),
 ('dracar_periodicite_mois','1'),       -- vérification mensuelle des cartes pro
 ('dracar_url','https://dracar-ultimate.interieur.gouv.fr/')
ON DUPLICATE KEY UPDATE `cle`=`cle`;

-- Retirer l'adresse du site internet (la société n'en a plus)
UPDATE `parametres` SET `valeur`='' WHERE `cle`='societe_web';
