-- =============================================
-- DOMURA OS — Sistema de Tickets
-- Executar no phpMyAdmin: importar este ficheiro
-- =============================================

CREATE TABLE IF NOT EXISTS `tk_tickets` (
  `id`            INT UNSIGNED    AUTO_INCREMENT PRIMARY KEY,
  `titulo`        VARCHAR(255)    NOT NULL,
  `descricao`     TEXT            NOT NULL,
  `categoria`     ENUM('Documentação','Financeiro','Marketing','Jurídico','Técnico','Outro') NOT NULL,
  `prioridade`    ENUM('baixa','media','alta') NOT NULL DEFAULT 'media',
  `status`        ENUM('aberto','tratamento','aguarda','resolvido','fechado') NOT NULL DEFAULT 'aberto',
  `criador_id`    INT UNSIGNED    NOT NULL,
  `criador_nome`  VARCHAR(100)    NOT NULL,
  `criador_role`  ENUM('consultor','agencia','master') NOT NULL,
  `agencia`       VARCHAR(100)    NOT NULL,
  `agencia_id`    INT UNSIGNED    NOT NULL DEFAULT 0,
  `destinatario`  ENUM('agencia','master') NOT NULL DEFAULT 'agencia',
  `ficheiro_entrega_nome` VARCHAR(255) DEFAULT NULL,
  `ficheiro_entrega_url`  VARCHAR(500) DEFAULT NULL,
  `criado_em`     DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `atualizado_em` DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  INDEX `idx_status`    (`status`),
  INDEX `idx_criador`   (`criador_id`),
  INDEX `idx_agencia`   (`agencia_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `tk_mensagens` (
  `id`              INT UNSIGNED    AUTO_INCREMENT PRIMARY KEY,
  `ticket_id`       INT UNSIGNED    NOT NULL,
  `tipo`            ENUM('criacao','mensagem','estado','entrega') NOT NULL DEFAULT 'mensagem',
  `autor_id`        INT UNSIGNED    NOT NULL,
  `autor_nome`      VARCHAR(100)    NOT NULL,
  `autor_role`      ENUM('consultor','agencia','master') NOT NULL,
  `mensagem`        TEXT            DEFAULT NULL,
  `estado_anterior` VARCHAR(30)     DEFAULT NULL,
  `estado_novo`     VARCHAR(30)     DEFAULT NULL,
  `criado_em`       DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (`ticket_id`) REFERENCES `tk_tickets`(`id`) ON DELETE CASCADE,
  INDEX `idx_ticket` (`ticket_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `tk_anexos` (
  `id`          INT UNSIGNED    AUTO_INCREMENT PRIMARY KEY,
  `ticket_id`   INT UNSIGNED    NOT NULL,
  `mensagem_id` INT UNSIGNED    DEFAULT NULL,
  `nome`        VARCHAR(255)    NOT NULL,
  `url`         VARCHAR(500)    NOT NULL,
  `tamanho`     INT UNSIGNED    DEFAULT 0,
  `criado_em`   DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (`ticket_id`) REFERENCES `tk_tickets`(`id`) ON DELETE CASCADE,
  INDEX `idx_ticket` (`ticket_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `tk_notificacoes` (
  `id`             INT UNSIGNED    AUTO_INCREMENT PRIMARY KEY,
  `utilizador_id`  INT UNSIGNED    NOT NULL,
  `ticket_id`      INT UNSIGNED    NOT NULL,
  `tipo`           VARCHAR(50)     NOT NULL,
  `mensagem`       VARCHAR(255)    NOT NULL,
  `lida`           TINYINT(1)      NOT NULL DEFAULT 0,
  `criado_em`      DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP,
  INDEX `idx_user` (`utilizador_id`),
  INDEX `idx_lida` (`lida`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
