const Sequelize = require('sequelize');
var db = require("../database/db.js");

const LiberacionHSE = db.sequelize.define('LIBERACION_HSE', {
    ID_LIBERACION: {
        primaryKey: true,
        type: Sequelize.INTEGER,
        allowNull: false,
        autoIncrement: true
    },
    ID_USUARIO: {
        type: Sequelize.INTEGER,
        allowNull: false,
    },
    TIPO_LIBERACION: {
        type: Sequelize.STRING(100),
        allowNull: false,
    },
    FECHA_EXPIRACION: {
        type: Sequelize.DATEONLY,
        allowNull: true,
    },
    EVIDENCIA: {
        type: Sequelize.STRING(500),
        allowNull: true,
    },
    ESTADO: {
        type: Sequelize.BOOLEAN,
        allowNull: false,
        defaultValue: true
    },
    // Campos NEST
    FECHA_NEST: {
        type: Sequelize.DATEONLY,
        allowNull: true,
    },
    QUEST: {
        type: Sequelize.STRING(255),
        allowNull: true,
    },
    INSTRUCTORES: {
        type: Sequelize.TEXT,
        allowNull: true,
        get() {
            const raw = this.getDataValue('INSTRUCTORES');
            if (!raw) return [];
            try { return JSON.parse(raw); } catch (e) { return []; }
        },
        set(value) {
            this.setDataValue('INSTRUCTORES', (Array.isArray(value) && value.length > 0) ? JSON.stringify(value) : null);
        }
    },
    // Campo de vigencia para TARJETA PEC
    FECHA_VIGENCIA: {
        type: Sequelize.DATEONLY,
        allowNull: true,
    },
}, {
    timestamps: false,
    id: false
});

module.exports = LiberacionHSE;
