46 lines
1.3 KiB
JavaScript
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 $$
|
|
`);
|
|
};
|