-- =====================================================
-- Migración: encriptación de datos de tarjeta + asignación a vendedoras
-- Ejecuta esto UNA vez si ya tenías el sistema instalado antes de esta
-- actualización. Si es una instalación nueva, no necesitas correr esto:
-- ya está incluido en schema.sql.
-- =====================================================

USE control_tarjetas;

ALTER TABLE tarjetas_credito
    ADD COLUMN numero_completo_enc TEXT NULL AFTER ultimos_4_digitos,
    ADD COLUMN titular_enc TEXT NULL AFTER numero_completo_enc,
    ADD COLUMN vencimiento_enc TEXT NULL AFTER titular_enc,
    ADD COLUMN codigo_contacto_nombre VARCHAR(150) NULL AFTER responsable_id,
    ADD COLUMN codigo_contacto_valor VARCHAR(150) NULL AFTER codigo_contacto_nombre;

CREATE TABLE IF NOT EXISTS tarjeta_vendedora (
    tarjeta_id INT NOT NULL,
    vendedora_id INT NOT NULL,
    asignado_por INT NOT NULL,
    fecha_asignacion DATETIME DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (tarjeta_id, vendedora_id),
    FOREIGN KEY (tarjeta_id) REFERENCES tarjetas_credito(id) ON DELETE CASCADE,
    FOREIGN KEY (vendedora_id) REFERENCES usuarios(id) ON DELETE CASCADE,
    FOREIGN KEY (asignado_por) REFERENCES usuarios(id)
) ENGINE=InnoDB;

CREATE TABLE IF NOT EXISTS tarjeta_acceso_log (
    id INT AUTO_INCREMENT PRIMARY KEY,
    tarjeta_id INT NOT NULL,
    usuario_id INT NOT NULL,
    ip VARCHAR(45) NULL,
    fecha DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (tarjeta_id) REFERENCES tarjetas_credito(id),
    FOREIGN KEY (usuario_id) REFERENCES usuarios(id)
) ENGINE=InnoDB;
