-- +goose Up
-- +goose StatementBegin
CREATE TABLE IF NOT EXISTS acabamento_registros (
    id                    UUID        PRIMARY KEY DEFAULT uuid_generate_v4(),
    tenant_id             UUID        NOT NULL,
    ordem_id              UUID        NOT NULL,
    funcionario_id        UUID,
    funcionario_nome      TEXT        NOT NULL DEFAULT '',
    -- Operação
    tipo_acabamento       TEXT        NOT NULL DEFAULT 'revisao'
                          CHECK (tipo_acabamento IN ('revisao','limpeza','embalagem','etiquetagem','passadoria','dobra','outros')),
    quantidade_pecas      INTEGER     NOT NULL DEFAULT 0,
    quantidade_reprovada  INTEGER     NOT NULL DEFAULT 0,
    motivo_reprovacao     TEXT        NOT NULL DEFAULT '',
    -- Tempo
    hora_inicio           TIME,
    hora_termino          TIME,
    tempo_total_min       INTEGER     NOT NULL DEFAULT 0,
    -- Qualidade
    qc_amostra_pct        INTEGER     NOT NULL DEFAULT 100, -- % inspecionado
    qc_aprovado           BOOLEAN     NOT NULL DEFAULT false,
    qc_obs                TEXT        NOT NULL DEFAULT '',
    observacoes           TEXT        NOT NULL DEFAULT '',
    concluido             BOOLEAN     NOT NULL DEFAULT false,
    concluido_em          TIMESTAMPTZ,
    criado_em             TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    atualizado_em         TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    UNIQUE (tenant_id, ordem_id)
);
CREATE INDEX IF NOT EXISTS idx_acabamento_tenant ON acabamento_registros (tenant_id, concluido, criado_em DESC);
-- +goose StatementEnd

-- +goose Down
-- +goose StatementBegin
DROP TABLE IF EXISTS acabamento_registros;
-- +goose StatementEnd
