-- Suscripciones Web Push por usuario interno.
-- Cada registro representa un dispositivo/navegador donde el usuario acepto recibir push.
-- Un mismo usuario puede tener varias (celular, PC, etc). El endpoint es unico por dispositivo.

SET SESSION sql_mode = '';

CREATE TABLE IF NOT EXISTS push_subscripciones (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    id_usuario_interno INT NOT NULL,
    endpoint TEXT NOT NULL,
    p256dh VARCHAR(255) NOT NULL,
    auth VARCHAR(255) NOT NULL,
    user_agent VARCHAR(500) NULL,
    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    last_used_at DATETIME NULL,
    UNIQUE KEY uk_endpoint (endpoint(500)),
    KEY idx_usuario (id_usuario_interno),
    CONSTRAINT fk_push_usuario FOREIGN KEY (id_usuario_interno)
        REFERENCES usuarios_internos(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
