-- Migration 003: Tabela de tokens de integração
-- Cada token é exclusivo: 1 token = 1 carteira + 1 domínio

CREATE TABLE IF NOT EXISTS tokens_integracao (
    id            INT UNSIGNED    NOT NULL AUTO_INCREMENT,
    nome          VARCHAR(100)    NOT NULL,
    token         VARCHAR(64)     NOT NULL,
    carteira_id   INT UNSIGNED    NOT NULL,
    dominio       VARCHAR(253)    NOT NULL,
    ativo         TINYINT(1)      NOT NULL DEFAULT 1,
    ultimo_uso    DATETIME            NULL DEFAULT NULL,
    criado_em     DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP,

    PRIMARY KEY (id),
    UNIQUE KEY uq_token (token),
    UNIQUE KEY uq_carteira_dominio (carteira_id, dominio),
    CONSTRAINT fk_token_carteira
        FOREIGN KEY (carteira_id) REFERENCES carteiras (id)
        ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
