-- CESTÃO VALENÇA — NOTIFICAÇÃO DE NOVOS PEDIDOS PARA ADMIN
-- Atualização somente desta etapa.
-- Executar com o banco appcentercast_cestaovalenca já selecionado no phpMyAdmin.
-- Executar diretamente no banco já selecionado; não cria nem troca de banco.
-- Não remove nem altera dados existentes.

SET NAMES utf8mb4;

CREATE TABLE IF NOT EXISTS admin_device_tokens (
    id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    admin_id BIGINT UNSIGNED NOT NULL,
    fcm_token VARCHAR(4096) NOT NULL,
    platform VARCHAR(20) NOT NULL DEFAULT 'ANDROID',
    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id),
    UNIQUE KEY uq_admin_device_fcm (fcm_token(190)),
    KEY idx_admin_device_admin (admin_id),
    CONSTRAINT fk_admin_device_admin
        FOREIGN KEY (admin_id) REFERENCES admins(id)
        ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS admin_order_alert_views (
    admin_id BIGINT UNSIGNED NOT NULL,
    order_id BIGINT UNSIGNED NOT NULL,
    viewed_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (admin_id,order_id),
    KEY idx_admin_alert_order (order_id),
    CONSTRAINT fk_admin_alert_admin
        FOREIGN KEY (admin_id) REFERENCES admins(id)
        ON DELETE CASCADE,
    CONSTRAINT fk_admin_alert_order
        FOREIGN KEY (order_id) REFERENCES orders(id)
        ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Pedidos que já existiam antes desta atualização não devem aparecer
-- como "nova compra" na primeira abertura da Central.
INSERT IGNORE INTO admin_order_alert_views(admin_id,order_id,viewed_at)
SELECT a.id,o.id,NOW()
FROM admins a
CROSS JOIN orders o;
