CREATE TABLE IF NOT EXISTS mail_templates (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    type_document VARCHAR(30) NOT NULL,
    nom VARCHAR(100) NOT NULL,
    objet VARCHAR(255) NOT NULL,
    contenu_html TEXT NOT NULL,
    contenu_texte TEXT NULL,
    actif TINYINT(1) NOT NULL DEFAULT 1,
    date_creation DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    date_modification DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
        ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (id),
    UNIQUE KEY uk_mail_templates_type (type_document)
) ENGINE=InnoDB
  DEFAULT CHARSET=utf8mb4
  COLLATE=utf8mb4_unicode_ci;

UPDATE mail_templates
SET
    nom = 'Modèle standard devis',
    objet = 'Votre devis {NUMERO}',
    contenu_html = 'Bonjour {CLIENT},\n\nVeuillez trouver ci-joint notre devis {NUMERO}.\n\nNous restons à votre disposition pour tout complément d’information.\n\nCordialement,\n{SOCIETE}',
    contenu_texte = 'Bonjour {CLIENT},\n\nVeuillez trouver ci-joint notre devis {NUMERO}.\n\nNous restons à votre disposition pour tout complément d’information.\n\nCordialement,\n{SOCIETE}',
    actif = 1
WHERE type_document = 'DEVIS';

INSERT INTO mail_templates (
    type_document,
    nom,
    objet,
    contenu_html,
    contenu_texte,
    actif
)
SELECT
    'DEVIS',
    'Modèle standard devis',
    'Votre devis {NUMERO}',
    'Bonjour {CLIENT},\n\nVeuillez trouver ci-joint notre devis {NUMERO}.\n\nNous restons à votre disposition pour tout complément d’information.\n\nCordialement,\n{SOCIETE}',
    'Bonjour {CLIENT},\n\nVeuillez trouver ci-joint notre devis {NUMERO}.\n\nNous restons à votre disposition pour tout complément d’information.\n\nCordialement,\n{SOCIETE}',
    1
WHERE NOT EXISTS (
    SELECT 1
    FROM mail_templates
    WHERE type_document = 'DEVIS'
);

UPDATE mail_templates
SET
    nom = 'Modèle standard facture',
    objet = 'Votre facture {NUMERO}',
    contenu_html = 'Bonjour {CLIENT},\n\nVeuillez trouver ci-joint notre facture {NUMERO}.\n\nNous restons à votre disposition pour tout complément d’information.\n\nCordialement,\n{SOCIETE}',
    contenu_texte = 'Bonjour {CLIENT},\n\nVeuillez trouver ci-joint notre facture {NUMERO}.\n\nNous restons à votre disposition pour tout complément d’information.\n\nCordialement,\n{SOCIETE}',
    actif = 1
WHERE type_document = 'FACTURE';

INSERT INTO mail_templates (
    type_document,
    nom,
    objet,
    contenu_html,
    contenu_texte,
    actif
)
SELECT
    'FACTURE',
    'Modèle standard facture',
    'Votre facture {NUMERO}',
    'Bonjour {CLIENT},\n\nVeuillez trouver ci-joint notre facture {NUMERO}.\n\nNous restons à votre disposition pour tout complément d’information.\n\nCordialement,\n{SOCIETE}',
    'Bonjour {CLIENT},\n\nVeuillez trouver ci-joint notre facture {NUMERO}.\n\nNous restons à votre disposition pour tout complément d’information.\n\nCordialement,\n{SOCIETE}',
    1
WHERE NOT EXISTS (
    SELECT 1
    FROM mail_templates
    WHERE type_document = 'FACTURE'
);

CREATE TABLE IF NOT EXISTS document_mail_deliveries (
    id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    type_document VARCHAR(30) NOT NULL,
    document_id INT UNSIGNED NOT NULL,
    numero_document VARCHAR(100) NOT NULL,
    destinataire VARCHAR(255) NOT NULL,
    objet VARCHAR(255) NOT NULL,
    envoye_par_id INT UNSIGNED NULL,
    envoye_par_nom VARCHAR(150) NOT NULL,
    date_envoi DATETIME NOT NULL,
    PRIMARY KEY (id),
    UNIQUE KEY uk_document_mail_delivery (
        type_document,
        document_id
    ),
    KEY idx_document_mail_date (date_envoi)
) ENGINE=InnoDB
  DEFAULT CHARSET=utf8mb4
  COLLATE=utf8mb4_unicode_ci;
