-- ============================================================
-- Doli-RE — Real Estate Property
-- Table : llx_re_valuation
-- Historique de valorisation des biens immobiliers
-- Chaque ligne = un snapshot de valeur à une date donnée
-- ============================================================

CREATE TABLE IF NOT EXISTS llx_re_valuation (
    rowid                   INTEGER      NOT NULL AUTO_INCREMENT,
    fk_property             INTEGER      NOT NULL,          -- FK → llx_re_property.rowid

    -- Date de la valorisation
    date_valuation          DATE         NOT NULL,

    -- Valeurs patrimoniales
    valeur_venale           DOUBLE(16,2) DEFAULT NULL,      -- Valeur vénale estimée (€)
    valeur_achat            DOUBLE(16,2) DEFAULT NULL,      -- Prix d'achat réel (si connu)

    -- Revenus locatifs
    loyer_mensuel_hc        DOUBLE(12,2) DEFAULT NULL,      -- Loyer mensuel hors charges (€)
    loyer_mensuel_cc        DOUBLE(12,2) DEFAULT NULL,      -- Loyer mensuel charges comprises (€)

    -- Fiscalité
    taxe_fonciere           DOUBLE(10,2) DEFAULT NULL,      -- Taxe foncière annuelle (€)
    taxe_habitation         DOUBLE(10,2) DEFAULT NULL,      -- Taxe d'habitation annuelle (€, si applicable)
    cfe                     DOUBLE(10,2) DEFAULT NULL,      -- CFE annuelle (locaux commerciaux)

    -- Devise
    currency                VARCHAR(3)   NOT NULL DEFAULT 'EUR',

    -- Méthode d'évaluation
    methode_evaluation      VARCHAR(30)  DEFAULT NULL,
    -- Valeurs : marche | rendement | cout_remplacement | expert | autre

    -- Commentaire libre sur cette valorisation
    note                    TEXT         DEFAULT NULL,

    -- Traçabilité
    fk_user_creat           INTEGER      NOT NULL,          -- Qui a saisi cette valorisation
    date_creation           DATETIME     NOT NULL,
    tms                     TIMESTAMP    DEFAULT CURRENT_TIMESTAMP
                                         ON UPDATE CURRENT_TIMESTAMP,

    PRIMARY KEY (rowid)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_unicode_ci;

-- Accès rapide à l'historique d'un bien (le plus courant : tri par date DESC)
CREATE INDEX idx_re_valuation_property_date
    ON llx_re_valuation (fk_property, date_valuation DESC);

CREATE INDEX idx_re_valuation_date
    ON llx_re_valuation (date_valuation);

ALTER TABLE llx_re_valuation
    ADD CONSTRAINT fk_re_valuation_property
        FOREIGN KEY (fk_property)
        REFERENCES llx_re_property (rowid)
        ON UPDATE CASCADE
        ON DELETE CASCADE;

ALTER TABLE llx_re_valuation
    ADD CONSTRAINT fk_re_valuation_user_creat
        FOREIGN KEY (fk_user_creat)
        REFERENCES llx_user (rowid)
        ON UPDATE CASCADE
        ON DELETE RESTRICT;
