-- ============================================================================
-- Stundenzettel Haupttabelle
-- ============================================================================

CREATE TABLE llx_stundenzettel (
    rowid           INTEGER AUTO_INCREMENT PRIMARY KEY,
    ref             VARCHAR(30) NOT NULL,               -- Stundenzettel-Nummer (SZ2026-00001)
    entity          INTEGER DEFAULT 1 NOT NULL,

    -- Verknüpfungen
    fk_commande     INTEGER NOT NULL,                   -- Verknüpfung zum Auftrag
    fk_facture      INTEGER DEFAULT NULL,               -- Verknüpfung zur Rechnung (nach Übertrag)
    fk_soc          INTEGER NOT NULL,                   -- Kunde
    fk_user_author  INTEGER NOT NULL,                   -- Ersteller
    fk_user_valid   INTEGER DEFAULT NULL,               -- Wer hat freigegeben

    -- Datum
    date_stundenzettel  DATE NOT NULL,                  -- Datum des Stundenzettels
    datec               DATETIME,                       -- Erstelldatum
    date_valid          DATETIME DEFAULT NULL,          -- Freigabedatum

    -- Status: 0=Entwurf, 1=Freigegeben, 2=In Rechnung übertragen, 9=Storniert
    status          TINYINT DEFAULT 0 NOT NULL,

    -- Stundenpreis (abweichend vom Standard)
    hourly_rate             DOUBLE(24,8) DEFAULT NULL,       -- Stundenpreis (NULL = Standard verwenden)
    hourly_rate_is_custom   TINYINT DEFAULT 0 NOT NULL,      -- 1 = manuell geändert

    -- Notizen
    note_private    TEXT,
    note_public     TEXT,

    -- Technisch
    import_key      VARCHAR(14),
    model_pdf       VARCHAR(255),
    tms             TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

    -- Indizes
    UNIQUE KEY uk_stundenzettel_ref (ref, entity),
    INDEX idx_stundenzettel_commande (fk_commande),
    INDEX idx_stundenzettel_soc (fk_soc),
    INDEX idx_stundenzettel_date (date_stundenzettel),
    INDEX idx_stundenzettel_status (status)
) ENGINE=InnoDB;
