CREATE TABLE IF NOT EXISTS consultas (
  placa       VARCHAR(7)  NOT NULL PRIMARY KEY,
  dados_json  MEDIUMTEXT  NOT NULL,
  created_at  DATETIME    NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS pedidos (
  id            INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  codigo        CHAR(32)     NOT NULL UNIQUE,       -- token público (URL do checkout/laudo)
  placa         VARCHAR(7)   NOT NULL,
  email         VARCHAR(190) NOT NULL,
  valor         DECIMAL(10,2) NOT NULL,
  status        ENUM('pending','paid','failed') NOT NULL DEFAULT 'pending',
  gateway       VARCHAR(30)  NOT NULL,
  gateway_id    VARCHAR(80)  NULL,
  pix_copia_cola TEXT        NULL,
  pix_qr_base64 MEDIUMTEXT   NULL,
  laudo_json    MEDIUMTEXT   NULL,
  created_at    DATETIME     NOT NULL,
  paid_at       DATETIME     NULL,
  INDEX idx_gateway_id (gateway_id),
  INDEX idx_email_placa (email, placa)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS rate_limit (
  ip      VARCHAR(45) NOT NULL,
  janela  VARCHAR(13) NOT NULL,     -- AAAAMMDDHH
  hits    INT UNSIGNED NOT NULL DEFAULT 0,
  PRIMARY KEY (ip, janela)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS contatos (
  id         INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  nome       VARCHAR(120) NOT NULL,
  email      VARCHAR(190) NOT NULL,
  telefone   VARCHAR(30)  NULL,
  mensagem   TEXT         NOT NULL,
  ip         VARCHAR(45)  NULL,
  created_at DATETIME     NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
