diff --git a/docs/backend-diagram/apps_screen_functions_dataconnect.xlsx b/docs/backend-diagram/apps_screen_functions_dataconnect.xlsx
new file mode 100644
index 00000000..aa20de1f
Binary files /dev/null and b/docs/backend-diagram/apps_screen_functions_dataconnect.xlsx differ
diff --git a/docs/backend-diagram/client_app_diagram.mmd b/docs/backend-diagram/client_app_diagram.mmd
new file mode 100644
index 00000000..38d4868c
--- /dev/null
+++ b/docs/backend-diagram/client_app_diagram.mmd
@@ -0,0 +1,74 @@
+flowchart LR
+
+subgraph C1["Login"]
+ S_client_sign_in["client_sign_in_screen.dart"]
+ S_client_sign_in --> S_client_sign_in_Q["Queries
* user - getUserById
* business - getBusinessesByUserId"]
+ S_client_sign_in --> S_client_sign_in_F["Firebase
* user - auth"]
+end
+
+subgraph C2["Create account"]
+ S_client_sign_up["client_sign_up_screen.dart"]
+ S_client_sign_up --> S_client_sign_up_Q["Queries
* business - getBusinessesByUserId"]
+ S_client_sign_up --> S_client_sign_up_M["Mutations
* user - createUser
* business - createBusiness"]
+end
+
+subgraph C3["Edit account"]
+ S_edit_account_na["manual_or_unknown_screen.dart"]
+ S_edit_account_na --> S_edit_account_na_M["Mutations
* business - updateBusiness"]
+end
+
+subgraph C4["Profile"]
+ S_client_settings["client_settings_screen.dart"]
+ S_client_settings --> S_client_settings_Q["Queries
* user - getUserById
* business - getBusinessesByUserId"]
+end
+
+subgraph C5["Hubs"]
+ S_client_hubs["client_hubs_screen.dart"]
+ S_client_hubs --> S_client_hubs_Q["Queries
* hub - getHubsByOwnerId"]
+ S_client_hubs --> S_client_hubs_M["Mutations
* hub - createHub
* hub - updateHub
* hub - deleteHub"]
+end
+
+subgraph C6["Orders"]
+ S_client_shifts["client_shifts_screen.dart"]
+ S_client_shifts --> S_client_shifts_Q["Queries
* order - getOrdersByOwnerId"]
+end
+
+subgraph C7["RAPID Order"]
+ S_rapid_order["rapid_order_flow_page.dart"]
+ S_rapid_order --> S_rapid_order_M["Mutations
* order - createOrder"]
+end
+
+subgraph C8["One-time Order"]
+ S_one_time["one_time_order_flow_page.dart"]
+ S_one_time --> S_one_time_Q["Queries
* role - listRolesByOwnerId"]
+ S_one_time --> S_one_time_M["Mutations
* position - createPosition
* order - createOrder"]
+end
+
+subgraph C9["Permanent Placement"]
+ S_permanent["permanent_order_flow_page.dart"]
+ S_permanent --> S_permanent_Q["Queries
* role - listRolesByOwnerId"]
+ S_permanent --> S_permanent_M["Mutations
* position - createPosition
* order - createOrder"]
+end
+
+subgraph C10["Recurring Order"]
+ S_recurring["recurring_order_flow_page.dart"]
+ S_recurring --> S_recurring_Q["Queries
* role - listRolesByOwnerId"]
+ S_recurring --> S_recurring_M["Mutations
* position - createPosition
* order - createOrder"]
+end
+
+subgraph C11["Billing"]
+ S_billing["client_billing_screen.dart"]
+ S_billing --> S_billing_Q["Queries
* account - getAccountsByOwnerId
* invoice - getInvoicesByOwnerId
* recentPayment - filterRecentPayments"]
+ S_billing --> S_billing_M["Mutations
* account - createAccount
* account - updateAccount
* account - deleteAccount"]
+end
+
+subgraph C12["Coverage"]
+ S_coverage["coverage_dashboard.dart"]
+ S_coverage --> S_coverage_Q["Queries
* order - getOrdersByOwnerId
* shift - filterShifts
* application - getApplicationsByShiftId"]
+end
+
+subgraph C13["Home"]
+ S_client_home["client_home_screen.dart"]
+ S_client_home --> S_client_home_Q["Queries
* order - getOrdersByOwnerId
* shift - filterShifts
* application - getApplicationsByShiftId
* recentPayment - filterRecentPayments"]
+ S_client_home --> S_client_home_M["Mutations
* order - createOrder"]
+end
diff --git a/docs/backend-diagram/dataconnect-schema.mmd b/docs/backend-diagram/dataconnect-schema.mmd
new file mode 100644
index 00000000..b67267f0
--- /dev/null
+++ b/docs/backend-diagram/dataconnect-schema.mmd
@@ -0,0 +1,271 @@
+erDiagram
+ User {
+ String id PK
+ String email
+ String fullName
+ Timestamp createdDate
+ }
+ Business {
+ UUID id PK
+ String userId FK
+ String businessName
+ Timestamp createdAt
+ }
+ Vendor {
+ UUID id PK
+ String userId FK
+ String companyName
+ Timestamp createdAt
+ }
+ Staff {
+ UUID id PK
+ String userId FK
+ UUID hubId FK
+ UUID ownerId FK
+ String fullName
+ Timestamp createdAt
+ }
+ Shift {
+ UUID id PK
+ UUID orderId FK
+ UUID ownerId FK
+ ShiftStatus status
+ Timestamp createdAt
+ }
+ Order {
+ UUID id PK
+ UUID ownerId FK
+ UUID hubId FK
+ OrderStatus status
+ Timestamp createdAt
+ }
+ Position {
+ UUID id PK
+ UUID orderId FK
+ UUID roleId FK
+ UUID ownerId FK
+ Timestamp createdAt
+ }
+ Task {
+ UUID id PK
+ UUID ownerId FK
+ TaskStatus status
+ Timestamp createdAt
+ }
+ Team {
+ UUID id PK
+ String ownerId FK
+ String teamName
+ Timestamp createdAt
+ }
+ TeamMember {
+ UUID id PK
+ UUID teamId FK
+ UUID hubId FK
+ String memberName
+ Timestamp createdAt
+ }
+ Hub {
+ UUID id PK
+ UUID ownerId FK
+ String name
+ Timestamp createdAt
+ }
+ Account {
+ UUID id PK
+ UUID ownerId FK "polymorphic ownerId"
+ String bank
+ Timestamp createdAt
+ }
+ Document {
+ UUID id PK
+ UUID staffId FK
+ DocumentStatus status
+ Timestamp createdAt
+ }
+ Certificate {
+ UUID id PK
+ UUID staffId FK
+ CertificateStatus status
+ Timestamp createdAt
+ }
+ Contact {
+ UUID id PK
+ UUID staffId FK
+ String name
+ Timestamp createdAt
+ }
+ BenefitsData {
+ UUID id PK
+ UUID staffId FK
+ String title
+ Timestamp createdAt
+ }
+ Course {
+ UUID id PK
+ String title
+ Timestamp createdAt
+ }
+ TaxForm {
+ UUID id PK
+ UUID staffId FK
+ TaxFormStatus status
+ Timestamp createdAt
+ }
+ TimeSheet {
+ UUID id PK
+ UUID staffId FK
+ UUID shiftId FK
+ TimeSheetStatus status
+ Timestamp createdAt
+ }
+ Invoice {
+ UUID id PK
+ UUID ownerId FK
+ InvoiceStatus status
+ Timestamp createdAt
+ }
+ Assignment {
+ UUID id PK
+ UUID staffId FK
+ UUID ownerId FK
+ AssignmentStatus status
+ Timestamp createdAt
+ }
+ Conversation {
+ UUID id PK
+ String subject
+ Timestamp createdAt
+ }
+ Message {
+ UUID id PK
+ UUID conversationId FK
+ String senderId
+ Timestamp createdAt
+ }
+ Role {
+ UUID id PK
+ UUID ownerId FK
+ String name
+ Timestamp createdAt
+ }
+ RecentPayment {
+ UUID id PK
+ UUID payedUserId FK
+ UUID ownerId FK
+ RecentPaymentStatus status
+ Timestamp createdAt
+ }
+ RequiredDoc {
+ UUID id PK
+ UUID ownerId FK
+ ReqDocumentStatus status
+ Timestamp createdAt
+ }
+ VendorRate {
+ UUID id PK
+ UUID vendorId FK
+ String roleName
+ Timestamp createdAt
+ }
+ Schedule {
+ UUID id PK
+ UUID positionId FK
+ Timestamp createdAt
+ }
+ TaskComment {
+ UUID id PK
+ UUID taskId FK
+ String authorName
+ Timestamp createdAt
+ }
+ TeamHub {
+ UUID id PK
+ UUID teamId FK
+ String hubName
+ Timestamp createdAt
+ }
+ Application {
+ UUID id PK
+ UUID shiftId FK
+ UUID staffId FK
+ ApplicationStatus status
+ Timestamp createdAt
+ }
+ StaffShift {
+ UUID id PK
+ UUID staffId FK
+ UUID shiftId FK
+ Timestamp createdAt
+ }
+ MemberTask {
+ UUID id PK
+ UUID teamMemberId FK
+ UUID taskId FK
+ Timestamp createdAt
+ }
+ StaffCourse {
+ UUID id PK
+ UUID staffId FK
+ UUID courseId FK
+ Timestamp createdAt
+ }
+
+ User ||--|{ Staff : "has profile"
+ User ||--|{ Vendor : "can be"
+ User ||--|{ Business : "can be"
+ User ||--o{ ActivityLog : "generates"
+
+ Business ||--o{ "Order" : "creates"
+ Business ||--o{ Invoice : "receives"
+ Business ||--o{ Task : "owns"
+ Business ||--o{ Hub : "owns"
+ Business ||--o{ Role : "defines"
+ Business ||--o{ Shift : "posts"
+ Business ||--o{ Staff : "employs"
+ Business ||--o{ Account : "owns"
+
+ Vendor ||--o{ VendorRate : "defines"
+ Vendor ||--o{ Task : "owns"
+ Vendor ||--o{ Hub : "owns"
+ Vendor ||--o{ Role : "defines"
+ Vendor ||--o{ Shift : "posts"
+ Vendor ||--o{ Staff : "employs"
+ Vendor ||--o{ Account : "owns"
+
+ Staff ||--o{ Document : "has"
+ Staff ||--o{ Certificate : "holds"
+ Staff ||--o{ Contact : "has emergency"
+ Staff ||--o{ BenefitsData : "accrues"
+ Staff ||--o{ TaxForm : "submits"
+ Staff ||--o{ TimeSheet : "fills"
+ Staff ||--o{ Assignment : "receives"
+ Staff ||--o{ Account : "owns"
+ Staff ||--o{ RecentPayment : "is paid to"
+ Staff ||--o{ RequiredDoc : "owns"
+ Staff ||--o{ Application : "submits"
+ Hub ||--o{ Staff : "is based at"
+
+ Shift ||--o{ TimeSheet : "generates"
+ Shift ||--o{ Application : "receives"
+
+ "Order" ||--o{ Shift : "contains"
+ "Order" ||--o{ Position : "requires"
+
+ Task ||--o{ TaskComment : "has"
+
+ Team ||--o{ TeamMember : "has"
+ Team ||--o{ TeamHub : "operates in"
+
+ Conversation ||--o{ Message : "contains"
+
+ Position ||--o{ Schedule : "has"
+ Role ||--o{ Position : "is for"
+
+ %% Join Tables
+ Staff ||--|{ StaffShift : "works"
+ Shift ||--|{ StaffShift : "is worked by"
+ Staff ||--|{ StaffCourse : "enrolls in"
+ Course ||--|{ StaffCourse : "is taken by"
+ TeamMember ||--|{ MemberTask : "assigned to"
+ Task ||--|{ MemberTask : "is assigned to"
diff --git a/docs/backend-diagram/dataconnect-schemas-mutations-queries.mmd b/docs/backend-diagram/dataconnect-schemas-mutations-queries.mmd
new file mode 100644
index 00000000..f241b3a5
--- /dev/null
+++ b/docs/backend-diagram/dataconnect-schemas-mutations-queries.mmd
@@ -0,0 +1,124 @@
+flowchart LR
+ subgraph "Profile & Onboarding"
+ User --> User_Q["Queries
- listUsers
- getUserById"]
+ User --> User_M["Mutations
- createUser
- updateUser
- deleteUser"]
+ Staff --> Staff_Q["Queries
- listStaff
- getStaffById
- getStaffByUserId"]
+ Staff --> Staff_M["Mutations
- createStaff
- updateStaff
- deleteStaff"]
+ Contact --> Contact_Q["Queries
- listContacts
- getContactById
- listContactsByStaffId"]
+ Contact --> Contact_M["Mutations
- createContact
- updateContact
- deleteContact"]
+ AttireOption --> AttireOption_Q["Queries
- listAttireOptions
- getAttireOptionById"]
+ AttireOption --> AttireOption_M["Mutations
- createAttireOption
- updateAttireOption
- deleteAttireOption"]
+ end
+
+ subgraph "Compliance"
+ Document --> Document_Q["Queries
- listDocuments
- getDocumentById
- listDocumentsByStaffId"]
+ Document --> Document_M["Mutations
- createDocument
- updateDocument
- deleteDocument"]
+ Certificate --> Certificate_Q["Queries
- listCertificates
- getCertificateById
- listCertificatesByStaffId"]
+ Certificate --> Certificate_M["Mutations
- CreateCertificate
- UpdateCertificate
- DeleteCertificate"]
+ TaxForm --> TaxForm_Q["Queries
- listTaxForms
- getTaxFormById
- getTaxFormsByStaffId
- filterTaxForms"]
+ TaxForm --> TaxForm_M["Mutations
- createTaxForm
- updateTaxForm
- deleteTaxForm"]
+ RequiredDoc --> RequiredDoc_Q["Queries
- listRequiredDocs
- getRequiredDocById
- listRequiredDocsByUserId"]
+ RequiredDoc --> RequiredDoc_M["Mutations
- createRequiredDoc
- updateRequiredDoc
- deleteRequiredDoc"]
+ end
+
+ subgraph "Finances"
+ Account --> Account_Q["Queries
- listAccounts
- getAccountById
- listAccountsByOwnerId"]
+ Account --> Account_M["Mutations
- createAccount
- updateAccount
- deleteAccount"]
+ TimeSheet --> TimeSheet_Q["Queries
- listTimeSheets
- getTimeSheetById
- listTimeSheetsByStaffId"]
+ TimeSheet --> TimeSheet_M["Mutations
- createTimeSheet
- updateTimeSheet
- deleteTimeSheet"]
+ RecentPayment --> RecentPayment_Q["Queries
- listRecentPayments
- getRecentPaymentById
- listRecentPaymentsByUserId"]
+ RecentPayment --> RecentPayment_M["Mutations
- createRecentPayment
- updateRecentPayment
- deleteRecentPayment"]
+ Invoice --> Invoice_Q["Queries
- listInvoices
- getInvoiceById"]
+ Invoice --> Invoice_M["Mutations
- createInvoice
- updateInvoice
- deleteInvoice"]
+ InvoiceTemplate --> InvoiceTemplate_Q["Queries
- listInvoiceTemplates
- getInvoiceTemplateById"]
+ InvoiceTemplate --> InvoiceTemplate_M["Mutations
- createInvoiceTemplate
- updateInvoiceTemplate
- deleteInvoiceTemplate"]
+ VendorRate --> VendorRate_Q["Queries
- listVendorRates
- getVendorRateById"]
+ VendorRate --> VendorRate_M["Mutations
- createVendorRate
- updateVendorRate
- deleteVendorRate"]
+ CustomRateCard --> CustomRateCard_Q["Queries
- listCustomRateCards
- getCustomRateCardById"]
+ CustomRateCard --> CustomRateCard_M["Mutations
- createCustomRateCard
- updateCustomRateCard
- deleteCustomRateCard"]
+ end
+
+ subgraph "Shifts & Work"
+ Shift --> Shift_Q["Queries
- listShifts
- getShiftById
- filterShifts"]
+ Shift --> Shift_M["Mutations
- CreateShift
- UpdateShift
- DeleteShift"]
+ Application --> Application_Q["Queries
- getApplicationById
- listApplicationsByStaffId"]
+ Application --> Application_M["Mutations
- createApplication
- updateApplication
- deleteApplication"]
+ StaffShift --> StaffShift_Q["Queries
- getMyShifts
- getStaffShiftById
- getStaffShiftsByShiftId"]
+ StaffShift --> StaffShift_M["Mutations
- createStaffShift
- updateStaffShift
- deleteStaffShift"]
+ StaffAvailability --> StaffAvailability_Q["Queries
- listStaffAvailabilities
- getStaffAvailabilityById
- getStaffAvailabilityByStaffId"]
+ StaffAvailability --> StaffAvailability_M["Mutations
- createStaffAvailability
- updateStaffAvailability
- deleteStaffAvailability"]
+ Assignment --> Assignment_Q["Queries
- listAssignments
- getAssignmentById
- listAssignmentsByStaffId"]
+ Assignment --> Assignment_M["Mutations
- CreateAssignment
- UpdateAssignment
- DeleteAssignment"]
+ Order --> Order_Q["Queries
- listOrders
- getOrderById"]
+ Order --> Order_M["Mutations
- createOrder
- updateOrder
- deleteOrder"]
+ Position --> Position_Q["Queries
- listPositions
- getPositionById
- listPositionsByOrderId"]
+ Position --> Position_M["Mutations
- createPosition
- updatePosition
- deletePosition"]
+ Category --> Category_Q["Queries
- listCategories
- getCategoryById"]
+ Category --> Category_M["Mutations
- createCategory
- updateCategory
- deleteCategory"]
+ Role --> Role_Q["Queries
- listRoles
- getRoleById"]
+ Role --> Role_M["Mutations
- createRole
- updateRole
- deleteRole"]
+ RoleCategory --> RoleCategory_Q["Queries
- listRoleCategories
- getRoleCategoryById"]
+ RoleCategory --> RoleCategory_M["Mutations
- createRoleCategory
- updateRoleCategory
- deleteRoleCategory"]
+ Schedule --> Schedule_Q["Queries
- listSchedules
- getScheduleById
- getScheduleByPositionId"]
+ Schedule --> Schedule_M["Mutations
- createSchedule
- updateSchedule
- deleteSchedule"]
+ Workforce --> Workforce_Q["Queries"]
+ Workforce --> Workforce_M["Mutations"]
+ end
+
+ subgraph "Learning"
+ Course --> Course_Q["Queries
- listCourses
- getCourseById
- filterCourses"]
+ Course --> Course_M["Mutations
- createCourse
- updateCourse
- deleteCourse"]
+ Level --> Level_Q["Queries
- listLevels
- getLevelById"]
+ Level --> Level_M["Mutations
- createLevel
- updateLevel
- deleteLevel"]
+ StaffCourse --> StaffCourse_Q["Queries
- getStaffCourseById
- listStaffCoursesByStaffId
- listStaffCoursesByCourseId
- getStaffCourseByStaffAndCourse"]
+ StaffCourse --> StaffCourse_M["Mutations
- createStaffCourse
- updateStaffCourse
- deleteStaffCourse"]
+ end
+
+ subgraph "Benefits"
+ BenefitsData --> BenefitsData_Q["Queries
- listBenefitsData
- getBenefitsDataById
- getBenefitsDataByStaffId"]
+ BenefitsData --> BenefitsData_M["Mutations
- createBenefitsData
- updateBenefitsData
- deleteBenefitsData"]
+ end
+
+ subgraph "Business & Vendors"
+ Business --> Business_Q["Queries
- listBusinesses
- getBusinessById
- getBusinessesByUserId"]
+ Business --> Business_M["Mutations
- createBusiness
- updateBusiness
- deleteBusiness"]
+ Vendor --> Vendor_Q["Queries
- listVendors
- getVendorById"]
+ Vendor --> Vendor_M["Mutations
- createVendor
- updateVendor
- deleteVendor"]
+ Hub --> Hub_Q["Queries
- listHubs
- getHubById"]
+ Hub --> Hub_M["Mutations
- createHub
- updateHub
- deleteHub"]
+ end
+
+ subgraph "Teams"
+ Team --> Team_Q["Queries
- listTeams
- getTeamById"]
+ Team --> Team_M["Mutations
- createTeam
- updateTeam
- deleteTeam"]
+ TeamMember --> TeamMember_Q["Queries
- listTeamMembers
- getTeamMemberById
- listTeamMembersByTeamId"]
+ TeamMember --> TeamMember_M["Mutations
- createTeamMember
- updateTeamMember
- deleteTeamMember"]
+ MemberTask --> MemberTask_Q["Queries
- getMyTasks
- getMemberTaskById
- getMemberTasksByTaskId"]
+ MemberTask --> MemberTask_M["Mutations
- createMemberTask
- updateMemberTask
- deleteMemberTask"]
+ TeamHub --> TeamHub_Q["Queries
- listTeamHubs
- getTeamHubById
- listTeamHubsByTeamId"]
+ TeamHub --> TeamHub_M["Mutations
- createTeamHub
- updateTeamHub
- deleteTeamHub"]
+ Task --> Task_Q["Queries
- listTasks
- getTaskById"]
+ Task --> Task_M["Mutations
- createTask
- updateTask
- deleteTask"]
+ TaskComment --> TaskComment_Q["Queries
- listTaskComments
- getTaskCommentById
- listTaskCommentsByTaskId"]
+ TaskComment --> TaskComment_M["Mutations
- createTaskComment
- updateTaskComment
- deleteTaskComment"]
+ end
+
+ subgraph "Communication"
+ Conversation --> Conversation_Q["Queries
- listConversations
- getConversationById
- getConversationsByUserId"]
+ Conversation --> Conversation_M["Mutations
- createConversation
- updateConversation
- deleteConversation"]
+ Message --> Message_Q["Queries
- listMessages
- getMessageById
- listMessagesByConversationId"]
+ Message --> Message_M["Mutations
- createMessage
- updateMessage
- deleteMessage"]
+ end
+
+ subgraph "Others"
+ ActivityLog --> ActivityLog_Q["Queries
- listActivityLogs
- getActivityLogById
- listActivityLogsByUserId"]
+ ActivityLog --> ActivityLog_M["Mutations
- createActivityLog
- updateActivityLog
- deleteActivityLog"]
+ ClientFeedback --> ClientFeedback_Q["Queries
- listClientFeedbacks
- getClientFeedbackById"]
+ ClientFeedback --> ClientFeedback_M["Mutations
- createClientFeedback
- updateClientFeedback
- deleteClientFeedback"]
+ FaqData --> FaqData_Q["Queries
- listFaqDatas
- getFaqDataById"]
+ FaqData --> FaqData_M["Mutations
- createFaqData
- updateFaqData
- deleteFaqData"]
+ end
+
+ subgraph "Reporting"
+ Reports --> Reports_Q["Queries
- getCoverageReport
- getNoShowReport
- getSpendReport
- getForecastReport
- getPerformanceReport
- getDailyOpsReport"]
+ end
diff --git a/docs/backend-diagram/staff_app_diagram.mmd b/docs/backend-diagram/staff_app_diagram.mmd
new file mode 100644
index 00000000..d251a18e
--- /dev/null
+++ b/docs/backend-diagram/staff_app_diagram.mmd
@@ -0,0 +1,121 @@
+flowchart LR
+
+subgraph L1["login/create user"]
+ S_auth_phone["phone_verification_screen.dart"]
+ S_auth_phone --> S_auth_phone_Q["Queries
* user - getUserById
* staff - getStaffByUserId"]
+ S_auth_phone --> S_auth_phone_M["Mutations
* user - createUser"]
+ S_auth_phone --> S_auth_phone_F["Firebase
* user - auth"]
+end
+
+subgraph L2["Profile"]
+ S_worker_profile["worker_profile_screen.dart"]
+ S_worker_profile --> S_worker_profile_Q["Queries
* user - getUserById
* staff - getStaffByUserId"]
+end
+
+subgraph L3["Personal info"]
+ S_personal_info["personal_info_screen.dart"]
+ S_personal_info --> S_personal_info_Q["Queries
* staff - getStaffByUserId"]
+ S_personal_info --> S_personal_info_M["Mutations
* staff - UpdateStaff"]
+end
+
+subgraph L4["Emergency Contact"]
+ S_emergency["emergency_contact_screen.dart"]
+ S_emergency --> S_emergency_Q["Queries
* contact - getContactsByStaffId"]
+ S_emergency --> S_emergency_M["Mutations
* contact - updateContact
* contact - createContact
* contact - deleteContact"]
+end
+
+subgraph L5["Experience & skills"]
+ S_experience["experience_screen.dart"]
+ S_experience --> S_experience_Q["Queries
* staff - getStaffByUserId"]
+ S_experience --> S_experience_M["Mutations
* staff - UpdateStaff"]
+end
+
+subgraph L6["Attire"]
+ S_attire["attire_screen.dart"]
+ S_attire --> S_attire_Q["Queries
* attireOption - listAttireOptions
* staff - getStaffByUserId"]
+ S_attire --> S_attire_M["Mutations
* staff - UpdateStaff"]
+end
+
+subgraph L7["Documents"]
+ S_documents["documents_screen.dart"]
+ S_documents --> S_documents_Q["Queries
* document - getDocumentsByStaffId"]
+ S_documents --> S_documents_M["Mutations
* document - updateDocument"]
+end
+
+subgraph L8["Certificates"]
+ S_certificates["certificates_screen.dart"]
+ S_certificates --> S_certificates_Q["Queries
* certificate - listCertificatesByStaffId"]
+ S_certificates --> S_certificates_M["Mutations
* certificate - UpdateCertificate
* certificate - CreateCertificate
* certificate - DeleteCertificate"]
+end
+
+subgraph L9["Tax Documents"]
+ S_tax_forms["tax_forms_screen.dart"]
+ S_tax_forms --> S_tax_forms_Q["Queries
* taxForm - getTaxFormsBystaffId"]
+ S_tax_forms --> S_tax_forms_M["Mutations
* taxForm - createTaxForm
* taxForm - updateTaxForm"]
+end
+
+subgraph L10["KROW University"]
+ S_uni["krow_university_screen.dart"]
+ S_uni --> S_uni_Q["Queries
* course - listCourses
* staffCourse - listStaffCoursesByStaffId
* staff - getStaffByUserId
* level - listLevels
* certificate - listCertificatesByStaffId"]
+end
+
+subgraph L11["Trainings"]
+ S_trainings["trainings_screen.dart"]
+ S_trainings --> S_trainings_Q["Queries
* course - listCourses
* staffCourse - listStaffCoursesByStaffId"]
+end
+
+subgraph L12["Leaderboard"]
+ S_leaderboard["leaderboard_screen.dart"]
+ S_leaderboard --> S_leaderboard_Q["Queries
* staffCourse - missing"]
+end
+
+subgraph L13["Bank Account"]
+ S_bank["bank_account_screen.dart"]
+ S_bank --> S_bank_Q["Queries
* account - getAccountsByOwnerId"]
+ S_bank --> S_bank_M["Mutations
* account - createAccount
* account - updateAccount
* account - deleteAccount"]
+end
+
+subgraph L14["Earnings/Payments"]
+ S_payments["payments_screen.dart"]
+ S_payments --> S_payments_Q["Queries
* recentPayment - getRecentPaymentsByPayedUserId"]
+end
+
+subgraph L15["Timecard"]
+ S_timecard["time_card_screen.dart"]
+ S_timecard --> S_timecard_Q["Queries
* timeSheet - getTimeSheetsByStaffId"]
+end
+
+subgraph L16["Clock in"]
+ S_clockin["clock_in_screen.dart"]
+ S_clockin --> S_clockin_Q["Queries
* application - getApplicationsByStaffId"]
+ S_clockin --> S_clockin_M["Mutations
* application - createApplication
* application - updateApplicationStatus"]
+end
+
+subgraph L17["Shifts"]
+ S_shifts["shifts_screen.dart"]
+ S_shifts --> S_shifts_Q["Queries
* application - getApplicationsByStaffId
* shift - filterShifts
* timeSheet - getTimeSheetsByStaffId"]
+ S_shifts --> S_shifts_M["Mutations
* application - updateApplicationStatus
* shift - CreateShift
* application - createApplication
* staffShift - createStaffShift"]
+end
+
+subgraph L18["My availability"]
+ S_availability["availability_screen.dart"]
+ S_availability --> S_availability_Q["Queries
* staffAvailability - getStaffAvailabilityByStaffId"]
+ S_availability --> S_availability_M["Mutations
* staffAvailability - updateStaffAvailability
* staffAvailability - createStaffAvailability
* staffAvailability - deleteStaffAvailability"]
+end
+
+subgraph L19["Your Benefits Overview"]
+ S_benefits["benefits_screen.dart"]
+ S_benefits --> S_benefits_Q["Queries
* benefitsData - getBenefitsDataByStaffId"]
+ S_benefits --> S_benefits_M["Mutations
* benefitsData - updateBenefitsData"]
+end
+
+subgraph L20["Home"]
+ S_home["worker_home_screen.dart"]
+ S_home --> S_home_Q["Queries
* application - getApplicationsByStaffId
* shift - filterShifts
* benefitsData - getBenefitsDataByStaffId"]
+end
+
+subgraph L21["Shift detail"]
+ S_shift_detail["shift_details_screen.dart"]
+ S_shift_detail --> S_shift_detail_Q["Queries
* application - getApplicationsByStaffId"]
+ S_shift_detail --> S_shift_detail_M["Mutations
* application - updateApplicationStatus"]
+end