-- CreateTable chamados
CREATE TABLE IF NOT EXISTS sar.chamados (
  id              SERIAL PRIMARY KEY,
  id_empresa      INTEGER NOT NULL,
  cod_vendedor    INTEGER NOT NULL,
  id_pedido       UUID NOT NULL,
  num_ped_sar     INTEGER NOT NULL,
  id_cliente      INTEGER NOT NULL,
  tipo            VARCHAR(50) NOT NULL,
  assunto         VARCHAR(200) NOT NULL,
  descricao       TEXT NOT NULL,
  status          VARCHAR(30) NOT NULL DEFAULT 'aberto',
  resolucao       VARCHAR(50),
  nota_resolucao  TEXT,
  itens_afetados  JSONB,
  created_at      TIMESTAMPTZ NOT NULL DEFAULT NOW(),
  updated_at      TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

CREATE INDEX IF NOT EXISTS idx_chamados_empresa_vendedor ON sar.chamados(id_empresa, cod_vendedor);
CREATE INDEX IF NOT EXISTS idx_chamados_empresa_status   ON sar.chamados(id_empresa, status);
CREATE INDEX IF NOT EXISTS idx_chamados_pedido           ON sar.chamados(id_pedido);

-- CreateTable chamado_mensagens
CREATE TABLE IF NOT EXISTS sar.chamado_mensagens (
  id          SERIAL PRIMARY KEY,
  id_chamado  INTEGER NOT NULL REFERENCES sar.chamados(id) ON DELETE CASCADE,
  autor       VARCHAR(10) NOT NULL,
  texto       TEXT NOT NULL,
  created_at  TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

CREATE INDEX IF NOT EXISTS idx_chamado_mensagens_chamado ON sar.chamado_mensagens(id_chamado);
