-- +goose Up
-- +goose StatementBegin

-- ─────────────────────────────────────────────────────────────────────────────
-- Colunas de RH para funcionários (módulo Ponto)
-- ─────────────────────────────────────────────────────────────────────────────
ALTER TABLE users
    ADD COLUMN IF NOT EXISTS setor              TEXT          NOT NULL DEFAULT '',
    ADD COLUMN IF NOT EXISTS salario            NUMERIC(12,2) NOT NULL DEFAULT 0,
    ADD COLUMN IF NOT EXISTS data_admissao      DATE,
    ADD COLUMN IF NOT EXISTS tipo_contrato      TEXT          NOT NULL DEFAULT 'clt'
        CHECK (tipo_contrato IN ('clt','pj','estagio','temporario','autonomo','aprendiz')),
    ADD COLUMN IF NOT EXISTS jornada_id         UUID          REFERENCES jornadas(id) ON DELETE SET NULL,
    -- Benefícios
    ADD COLUMN IF NOT EXISTS vt_valor           NUMERIC(10,2) NOT NULL DEFAULT 0,
    ADD COLUMN IF NOT EXISTS vr_valor           NUMERIC(10,2) NOT NULL DEFAULT 0,
    ADD COLUMN IF NOT EXISTS plano_saude        BOOLEAN       NOT NULL DEFAULT false,
    ADD COLUMN IF NOT EXISTS plano_saude_valor  NUMERIC(10,2) NOT NULL DEFAULT 0,
    ADD COLUMN IF NOT EXISTS seguro_vida        BOOLEAN       NOT NULL DEFAULT false,
    ADD COLUMN IF NOT EXISTS seguro_vida_valor  NUMERIC(10,2) NOT NULL DEFAULT 0,
    -- Status RH
    ADD COLUMN IF NOT EXISTS data_demissao      DATE,
    ADD COLUMN IF NOT EXISTS observacoes_rh     TEXT          NOT NULL DEFAULT '';

-- ativo já deve existir na tabela users; garantir apenas
ALTER TABLE users
    ADD COLUMN IF NOT EXISTS ativo BOOLEAN NOT NULL DEFAULT true;

CREATE INDEX IF NOT EXISTS idx_users_tenant_setor
    ON users (tenant_id, setor) WHERE setor <> '';

CREATE INDEX IF NOT EXISTS idx_users_tenant_admissao
    ON users (tenant_id, data_admissao) WHERE data_admissao IS NOT NULL;

-- +goose StatementEnd

-- +goose Down
-- +goose StatementBegin
ALTER TABLE users
    DROP COLUMN IF EXISTS setor,
    DROP COLUMN IF EXISTS salario,
    DROP COLUMN IF EXISTS data_admissao,
    DROP COLUMN IF EXISTS tipo_contrato,
    DROP COLUMN IF EXISTS jornada_id,
    DROP COLUMN IF EXISTS vt_valor,
    DROP COLUMN IF EXISTS vr_valor,
    DROP COLUMN IF EXISTS plano_saude,
    DROP COLUMN IF EXISTS plano_saude_valor,
    DROP COLUMN IF EXISTS seguro_vida,
    DROP COLUMN IF EXISTS seguro_vida_valor,
    DROP COLUMN IF EXISTS data_demissao,
    DROP COLUMN IF EXISTS observacoes_rh;
-- +goose StatementEnd
