-- +goose Up
-- +goose StatementBegin

CREATE TABLE IF NOT EXISTS corte_fichas (
    id               UUID          PRIMARY KEY DEFAULT uuid_generate_v4(),
    tenant_id        UUID          NOT NULL,
    ordem_id         UUID          NOT NULL REFERENCES ordens_producao(id) ON DELETE CASCADE,
    produto_nome     TEXT          NOT NULL DEFAULT '',
    tecido           TEXT          NOT NULL DEFAULT '',
    cor              TEXT          NOT NULL DEFAULT '',
    folhas           INTEGER       NOT NULL DEFAULT 1,
    pcs_por_folha    INTEGER       NOT NULL DEFAULT 1,
    largura_m        NUMERIC(8,3)  NOT NULL DEFAULT 0,
    comprimento_m    NUMERIC(8,3)  NOT NULL DEFAULT 0,
    pct_encaixe      NUMERIC(5,2)  NOT NULL DEFAULT 0,
    peso_gramas_m2   NUMERIC(8,2)  NOT NULL DEFAULT 0,
    custo_metro      NUMERIC(10,2) NOT NULL DEFAULT 0,
    cortador_id      UUID          REFERENCES users(id) ON DELETE SET NULL,
    cortador_nome    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()
);

CREATE INDEX IF NOT EXISTS idx_corte_fichas_ordem ON corte_fichas(ordem_id);
CREATE INDEX IF NOT EXISTS idx_corte_fichas_tenant ON corte_fichas(tenant_id);

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