feat(POS-002): completed feature
This commit is contained in:
45
project/migrations/046_pos_backoffice_roles.js
Normal file
45
project/migrations/046_pos_backoffice_roles.js
Normal file
@@ -0,0 +1,45 @@
|
||||
/**
|
||||
* 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 $$
|
||||
`);
|
||||
};
|
||||
Reference in New Issue
Block a user