feat(M03-A): 完成门店与房间基础管理
This commit is contained in:
@@ -27,6 +27,9 @@ const rbacVerifySql = read('database/migrations/2026061805_m02c_rbac.verify.sql'
|
||||
const userManagementUpSql = read('database/migrations/2026061806_m02d_user_management.up.sql');
|
||||
const userManagementDownSql = read('database/migrations/2026061806_m02d_user_management.down.sql');
|
||||
const userManagementVerifySql = read('database/migrations/2026061806_m02d_user_management.verify.sql');
|
||||
const storeRoomUpSql = read('database/migrations/2026061807_m03a_store_room_domain.up.sql');
|
||||
const storeRoomDownSql = read('database/migrations/2026061807_m03a_store_room_domain.down.sql');
|
||||
const storeRoomVerifySql = read('database/migrations/2026061807_m03a_store_room_domain.verify.sql');
|
||||
|
||||
const coreTables = [
|
||||
'qipai_schema_migrations',
|
||||
@@ -133,5 +136,16 @@ assert.match(userManagementVerifySql, /'qipai_user_admin_profiles'/);
|
||||
for (const permission of ['user.read', 'staff.manage', 'session.reset']) {
|
||||
assert.match(userManagementUpSql, new RegExp(permission.replace('.', '\\.')));
|
||||
}
|
||||
for (const table of [
|
||||
'qipai_store_business_hours', 'qipai_room_categories', 'qipai_room_disabled_periods'
|
||||
]) {
|
||||
assert.match(storeRoomUpSql, new RegExp(`CREATE TABLE IF NOT EXISTS ${table}`));
|
||||
assert.match(storeRoomDownSql, new RegExp(`DROP TABLE IF EXISTS ${table}`));
|
||||
assert.match(storeRoomVerifySql, new RegExp(`'${table}'`));
|
||||
}
|
||||
assert.match(storeRoomUpSql, /configuration_status VARCHAR/);
|
||||
assert.match(storeRoomUpSql, /operational_status VARCHAR/);
|
||||
assert.match(storeRoomUpSql, /weekday_price_cents INT UNSIGNED/);
|
||||
assert.match(storeRoomUpSql, /CHECK \(ends_at > starts_at\)/);
|
||||
|
||||
console.log('PASS: M01-B through M02-D migration contracts are present.');
|
||||
console.log('PASS: M01-B through M03-A migration contracts are present.');
|
||||
|
||||
Reference in New Issue
Block a user