Files
mercadodevida/project/migrations/046_pos_backoffice_roles.js
2026-08-21 21:55:43 +02:00

46 lines
1.3 KiB
JavaScript

/**
* POS-002 — Extend `backoffice_users.role` CHECK to include POS roles.
*
* New roles: `pos_cashier`, `pos_manager`. The application-side enum
* (`Role` in `project/src/shared/auth.ts`) is updated in the same ticket.
*
* Idempotent: `IF EXISTS` on the old constraint + `IF NOT EXISTS` guard on
* the new one.
*
* @param {import('node-pg-migrate').MigrationBuilder} pgm
*/
export const up = (pgm) => {
pgm.sql(`ALTER TABLE backoffice_users DROP CONSTRAINT IF EXISTS backoffice_users_role_check`);
pgm.sql(`
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'backoffice_users_role_check'
) THEN
ALTER TABLE backoffice_users
ADD CONSTRAINT backoffice_users_role_check
CHECK (role IN ('admin','editor','pos_cashier','pos_manager'));
END IF;
END $$
`);
};
export const down = (pgm) => {
pgm.sql(`ALTER TABLE backoffice_users DROP CONSTRAINT IF EXISTS backoffice_users_role_check`);
pgm.sql(`
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'backoffice_users_role_check'
) THEN
ALTER TABLE backoffice_users
ADD CONSTRAINT backoffice_users_role_check
CHECK (role IN ('admin','editor'));
END IF;
END $$
`);
};