classDiagram direction TB class User { id: String email: String fullName: String role: UserBaseRole } class Staff { id: UUID userId: String fullName: String ownerId: UUID hubId: UUID rollId: UUID status: BackgroundCheckStatus } class Account{ id: UUID ownerId:UUID type:AccountType } class Workforce { id: UUID vendorId: UUID staffId: UUID status: WorkforceStatus } class Application { id: UUID shiftId: UUID staffId: UUID roleId: UUID status: ApplicationStatus } class Assignment { id: UUID workforceId: UUID shiftId: UUID roleId: UUID status: AssignmentStatus } class ShiftRole { id: UUID shiftId: UUID roleId: UUID } class Shift { id: UUID orderId: UUID status: ShiftStatus } class Order { id: UUID vendorId: UUID businessId: UUID status: OrderStatus } class Vendor { id: UUID userId: String companyName: String } class Business { id: UUID userId: String businessName: String } class Role { id: UUID name: String vendorId: UUID roleCategoryId: UUID } class StaffDocument { staffId: UUID documentId: UUID status: DocumentStatus } class Document { id: UUID name: String documentType: DocumentType } class StaffCourse { staffId: UUID courseId: UUID } class Course { id: UUID title: String categoryId: UUID } class Category { id: UUID label: String } class StaffAvailability { staffId: UUID day: DayOfWeek slot: AvailabilitySlot } class Certificate { staffId: UUID certificationType: ComplianceType status: CertificateStatus } class BenefitData { staffId: UUID vendorBenefitPlanId: UUID current: int } class Contact { staffId: UUID relationship: RelationshipType name: string } class Invoice { orderId: UUID } class RecentPayment { staffId: UUID applicationId: UUID status: RecentPaymentStatus } class TaxForm { staffId: UUID formType: TaxFormType status: TaxFormStatus } User "1" -- "1" Staff : has Staff "1" -- "*" Application : applies to Staff "1" -- "*" Workforce : part of Staff "1" -- "*" StaffDocument : has Staff "1" -- "*" Certificate : has Staff "1" -- "*" BenefitData : has Staff "1" -- "*" Contact : has Staff "1" -- "*" TaxForm : has Staff "1" -- "*" Account : has Staff "1" -- "*" StaffCourse : takes Staff "1" -- "*" StaffAvailability : sets Workforce "1" -- "*" Assignment : receives Assignment -- ShiftRole Vendor "1" -- "*" Order : receives Business "1" -- "*" Order : places Order "1" -- "1" Invoice : has Invoice "1" -- "*" RecentPayment : has RecentPayment "1" -- "1" Application : has Staff "1" --o "1" Vendor : (ownerId) Staff "1" --o "1" Business : (ownerId) Application -- ShiftRole ShiftRole "*" -- "1" Shift : belongs to ShiftRole "*" -- "1" Role : defines Shift "*" -- "1" Order : belongs to StaffDocument "1" -- "1" Document : references StaffCourse "1" -- "1" Course : references Course "1" -- "1" Category : belongs to