backend/prisma/schema.prisma, which is the source of truth for exact fields and constraints. This page covers the core domain models.
Organization models
Client
A retail organisation using MUZE (for example Boxer, Clicks).Region
Geographic grouping of stores within a client. Unique on[clientId, code].
Store
A retail location. Requires a client and a region.Department
Organisational unit within a client, used as entitlement criteria. Unique on[clientId, code].
Access models
User
A staff portal account (better-auth user).UserRole
Links a user to a role with optional scope. A user can hold multiple roles.Session
better-auth session storage.Catalog models
UniformCategory
Groups employees who share entitlement rules. Each employee belongs to exactly one category. Client-scoped.Product
An individual uniform item available for ordering. Unique on[clientId, code].
Employee models
Employee
A uniform recipient. Employees have no portal login;userId is a legacy link kept for technical-debt removal (Phase 11.9).
EmployeeSizeProfile
One per employee (employeeId unique).
Entitlement models
EntitlementRuleSet
Defines entitlements for a uniform category. Client-scoped.EntitlementRuleItem
One allocated product within a rule set.EntitlementRuleCriteria
One criteria row for matching employees to a rule set.EntitlementPeriod
One allocation cycle for one employee against one rule set. Consumption is tracked through the period’s order items.Order models
Order
A uniform order for one employee, placed by a staff user.OrderItem
One product line within an order.OrderStatusHistory
Audit trail of status changes.StoreOrder
Groups the orders from one submission into a batch, tied to a single store.System models
Notification
In-app and email notification records, linked to a recipient user.EmailLog
Audit record of every email attempt, including provider response and errors.AuditLog
ImportBatch
Tracking record for each bulk import: kind, file name, total/success/error row counts, and per-row errors.SystemSetting
Key-value configuration (key unique), grouped by concern. Includes ORDER_NUMBER_PREFIX, STORE_ORDER_NUMBER_PREFIX, and notification toggles.
NumberSequence
Persistent counter backing order and store-order number generation.Supporting models
Account and Verification (better-auth), NotificationTemplate, and InventoryStockLevel complete the schema. See schema.prisma for their fields.