Files
solution-erp/fe-user/src/lib/menuKeys.ts
pqhuy1987 30a99aa03f
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 4m18s
[CLAUDE] Hrm: P11-C Vehicle+Driver catalogs (Mig 44) + gotcha #57 filtered-unique 3 HRM catalog (Mig 45)
P11-C: extend HrmConfigs +2 kind (Vehicle/Driver) declarative. Mig 44 AddVehicleAndDriverCatalogs (2 table filtered-unique Code, tables 91->93). Domain entity + EF config (filtered day-1) + 2 DbSet + HrmConfigFeatures Region5/6 CRUD + Controller +2 route-group (GET public / write Roles=Admin) + MenuKeys +2 +All (auto Admin perm) + DbInitializer 2 menu leaf + idempotent seed 2 veh/2 drv. FE declarative KIND_CONFIG +2 kind x2 app (SHA256 mirror) + 4-place (types/page/menuKeys/Layout staticMap), :kind-driven no new route.

gotcha #57 (bundled; OtPolicy missed in backlog, caught via grep) - Mig 45 FilterHrmCatalogUniqueIndexesByIsDeleted: LeaveType+ShiftPattern+OtPolicy bare .IsUnique() -> .HasFilter([IsDeleted]=0) (recreate-on-soft-deleted-slot 500 fix, mirror Holiday Mig 43). Tests +5 HrmConfigFilteredUniqueTests (181->186 PASS) test-before RED->GREEN. Reviewer caught FE<->BE Driver required-field mismatch -> fixed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 10:32:28 +07:00

72 lines
2.6 KiB
TypeScript

// Đồng bộ tay với BE SolutionErp.Domain.Identity.MenuKeys
export const MenuKeys = {
Dashboard: 'Dashboard',
Master: 'Master',
Suppliers: 'Suppliers',
Projects: 'Projects',
Departments: 'Departments',
// 4 master catalogs cho Details add form autocomplete (Plan CA S29 — UI sang fe-user)
Catalogs: 'Catalogs',
CatalogUnits: 'CatalogUnits',
CatalogMaterials: 'CatalogMaterials',
CatalogServices: 'CatalogServices',
CatalogWorkItems: 'CatalogWorkItems',
Contracts: 'Contracts',
Forms: 'Forms',
Reports: 'Reports',
System: 'System',
Users: 'Users',
Roles: 'Roles',
Permissions: 'Permissions',
MenuVisibility: 'MenuVisibility',
Workflows: 'Workflows',
PurchaseEvaluations: 'PurchaseEvaluations',
PeWorkflows: 'PeWorkflows',
// Quy trình duyệt MỚI (Mig 22 — Session 17, 2026-05-08)
ApprovalWorkflowsV2: 'ApprovalWorkflowsV2',
AwV2_DuyetNcc: 'AwV2_DuyetNcc',
AwV2_DuyetNccPhuongAn: 'AwV2_DuyetNccPhuongAn',
// Module Ngân sách (Phase 7)
Budgets: 'Budgets',
Bg_List: 'Bg_List',
Bg_Create: 'Bg_Create',
Bg_Pending: 'Bg_Pending',
// Module Hồ sơ Nhân sự (Mig 34 — Phase 10.1 G-H1 Session 33, 2026-05-26)
Hrm: 'Hrm',
HrmHoSo: 'Hrm_HoSo',
// Cấu hình HRM (Mig 35 — Phase 10.2 G-H2 Session 34, 2026-05-27)
HrmConfig: 'Hrm_Config',
HrmConfigLeaveTypes: 'Hrm_Config_LeaveTypes',
HrmConfigHolidays: 'Hrm_Config_Holidays',
HrmConfigShifts: 'Hrm_Config_Shifts',
HrmConfigOtPolicies: 'Hrm_Config_OtPolicies',
// P11-C (S51) — danh mục xe công + tài xế (dùng khi đặt xe)
HrmConfigVehicles: 'Hrm_Config_Vehicles',
HrmConfigDrivers: 'Hrm_Config_Drivers',
// Module Văn phòng số — Danh bạ nội bộ (Phase 10.2 G-O1 Session 34, 2026-05-27)
Off: 'Off',
OffDanhBa: 'Off_DanhBa',
// Văn phòng số — Phòng họp (Phase 10.2 G-O2 — Mig 36 Session 36, 2026-05-28)
OffPhongHop: 'Off_PhongHop',
OffPhongHopView: 'Off_PhongHop_View',
OffPhongHopManage: 'Off_PhongHop_Manage',
OffPhongHopBook: 'Off_PhongHop_Book',
// Phase 10.3 G-O3 (S37) — Đề xuất (Proposal)
OffDeXuat: 'Off_DeXuat',
OffDeXuatList: 'Off_DeXuat_List',
OffDeXuatCreate: 'Off_DeXuat_Create',
OffDeXuatInbox: 'Off_DeXuat_Inbox',
// Phase 10.3-10.4 G-O4+G-O5+G-O6+G-P1+G-H3 (S38) — Workflow Apps skeleton
OffDonTu: 'Off_DonTu',
OffDonTuLeave: 'Off_DonTu_Leave',
OffDonTuOt: 'Off_DonTu_Ot',
OffDonTuTravel: 'Off_DonTu_Travel',
OffDatXe: 'Off_DatXe',
OffItTicket: 'Off_ItTicket',
OffChamCong: 'Off_ChamCong',
HrmDashboard: 'Hrm_Dashboard',
} as const
export type MenuKey = typeof MenuKeys[keyof typeof MenuKeys]
export type CrudAction = 'Read' | 'Create' | 'Update' | 'Delete'