docs: Restructure backend and API documentation by moving relevant files into a new docs/BACKEND directory.
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
---
|
||||
config:
|
||||
theme: mc
|
||||
layout: dagre
|
||||
---
|
||||
classDiagram
|
||||
direction TB
|
||||
class User {
|
||||
id: String
|
||||
email: String
|
||||
}
|
||||
|
||||
class Business {
|
||||
id: UUID
|
||||
userId: String
|
||||
businessName: String
|
||||
status: BusinessStatus
|
||||
}
|
||||
|
||||
class Vendor {
|
||||
id: UUID
|
||||
userId: String
|
||||
companyName: String
|
||||
}
|
||||
|
||||
class Order {
|
||||
id: UUID
|
||||
businessId: UUID
|
||||
vendorId: UUID
|
||||
status: OrderStatus
|
||||
}
|
||||
|
||||
class Shift {
|
||||
id: UUID
|
||||
orderId: UUID
|
||||
status: ShiftStatus
|
||||
}
|
||||
|
||||
class ShiftRole {
|
||||
shiftId: UUID
|
||||
roleId: UUID
|
||||
}
|
||||
|
||||
class Role {
|
||||
id: UUID
|
||||
name: String
|
||||
vendorId: UUID
|
||||
}
|
||||
|
||||
class Application {
|
||||
id: UUID
|
||||
shiftId: UUID
|
||||
staffId: UUID
|
||||
roleId: UUID
|
||||
}
|
||||
|
||||
class Invoice {
|
||||
id: UUID
|
||||
businessId: UUID
|
||||
vendorId: UUID
|
||||
orderId: UUID
|
||||
status: InvoiceStatus
|
||||
}
|
||||
|
||||
class InvoiceTemplate {
|
||||
id: UUID
|
||||
name: String
|
||||
ownerId: UUID
|
||||
businessId: UUID
|
||||
vendorId: UUID
|
||||
}
|
||||
|
||||
class RecentPayment {
|
||||
id: UUID
|
||||
invoiceId: UUID
|
||||
applicationId: UUID
|
||||
staffId: UUID
|
||||
}
|
||||
|
||||
class ClientFeedback {
|
||||
id: UUID
|
||||
businessId: UUID
|
||||
vendorId: UUID
|
||||
rating: Int
|
||||
}
|
||||
|
||||
class Team {
|
||||
id: UUID
|
||||
teamName: String
|
||||
ownerId: String
|
||||
}
|
||||
|
||||
class TeamMember {
|
||||
id: UUID
|
||||
teamId: UUID
|
||||
userId: String
|
||||
role: TeamMemberRole
|
||||
}
|
||||
|
||||
class TeamHub {
|
||||
id: UUID
|
||||
teamId: UUID
|
||||
hubName: String
|
||||
}
|
||||
|
||||
class Staff {
|
||||
id: UUID
|
||||
userId: String
|
||||
}
|
||||
|
||||
note for Staff "business can create a staff too"
|
||||
|
||||
Business "1" -- "*" Order : places
|
||||
Business "1" -- "*" Invoice : receives
|
||||
Business "1" -- "*" ClientFeedback : gives
|
||||
Business "1" --o "1" Team : (ownerId)
|
||||
Business "1" --o "*" InvoiceTemplate : (ownerId)
|
||||
User "1" -- "1" Business : owns
|
||||
Vendor "1" -- "*" Order : fulfills
|
||||
Vendor "1" -- "*" Invoice : issues
|
||||
Order "1" -- "*" Shift : contains
|
||||
Order "1" -- "1" Invoice : billed via
|
||||
Shift "1" -- "*" ShiftRole : requires
|
||||
ShiftRole "1" -- "1" Role
|
||||
ShiftRole "1" -- "*" Application : target for
|
||||
Application "1" -- "1" Staff
|
||||
Application "1" -- "1" RecentPayment
|
||||
Invoice "1" -- "*" RecentPayment : paid through
|
||||
Team "1" -- "*" TeamHub : contains
|
||||
Team "1" -- "*" TeamMember : has
|
||||
@@ -0,0 +1,181 @@
|
||||
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
|
||||
@@ -0,0 +1,79 @@
|
||||
---
|
||||
config:
|
||||
layout: elk
|
||||
theme: mc
|
||||
---
|
||||
classDiagram
|
||||
class User {
|
||||
id: String
|
||||
email: String
|
||||
fullName: String
|
||||
}
|
||||
|
||||
class TeamMember {
|
||||
id: UUID
|
||||
teamId: UUID
|
||||
userId: String
|
||||
teamHubId: UUID
|
||||
role: TeamMemberRole
|
||||
inviteStatus: TeamMemberInviteStatus
|
||||
inviteCode: UUID
|
||||
}
|
||||
|
||||
class Team {
|
||||
id: UUID
|
||||
teamName: String
|
||||
ownerId: String
|
||||
}
|
||||
|
||||
class TeamHub {
|
||||
id: UUID
|
||||
teamId: UUID
|
||||
hubName: String
|
||||
}
|
||||
|
||||
class TeamHudDepartment {
|
||||
id: UUID
|
||||
name: String
|
||||
teamHubId: UUID
|
||||
}
|
||||
|
||||
class MemberTask {
|
||||
teamMemberId: UUID
|
||||
taskId: UUID
|
||||
}
|
||||
|
||||
class Task {
|
||||
id: UUID
|
||||
taskName: String
|
||||
status: TaskStatus
|
||||
priority: TaskPriority
|
||||
ownerId: UUID
|
||||
}
|
||||
|
||||
class Vendor {
|
||||
id: UUID
|
||||
companyName: String
|
||||
}
|
||||
|
||||
class Business {
|
||||
id: UUID
|
||||
businessName: String
|
||||
}
|
||||
|
||||
User "1" -- "1" TeamMember : has
|
||||
|
||||
Team "1" -- "*" TeamHub : contains
|
||||
Team "1" --o "1" Vendor : (ownerId)
|
||||
Team "1" --o "1" Business : (ownerId)
|
||||
|
||||
TeamHub "1" -- "*" TeamHudDepartment : has
|
||||
TeamHub "1" -- "*" TeamMember : is assigned to
|
||||
|
||||
TeamMember "*" -- "1" Team
|
||||
TeamMember "1" -- "*" MemberTask : has assigned
|
||||
|
||||
Task "1" -- "*" MemberTask : is assigned to
|
||||
Task --o Vendor : (ownerId)
|
||||
Task --o Business : (ownerId)
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
|
||||
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 Vendor {
|
||||
id: UUID
|
||||
userId: String
|
||||
companyName: String
|
||||
}
|
||||
|
||||
class Business {
|
||||
id: UUID
|
||||
userId: String
|
||||
businessName: String
|
||||
}
|
||||
|
||||
class TeamMember {
|
||||
id: UUID
|
||||
teamId: UUID
|
||||
userId: String
|
||||
role: TeamMemberRole
|
||||
}
|
||||
|
||||
class ActivityLog {
|
||||
id: UUID
|
||||
userId: String
|
||||
activityType: ActivityType
|
||||
}
|
||||
|
||||
class UserConversation {
|
||||
conversationId: UUID
|
||||
userId: String
|
||||
}
|
||||
|
||||
class Conversation {
|
||||
id: UUID
|
||||
conversationType: ConversationType
|
||||
}
|
||||
|
||||
class Message{
|
||||
id: UUID
|
||||
conversationId: UUID
|
||||
content: String
|
||||
}
|
||||
|
||||
User <|-- Staff
|
||||
User <|-- Business
|
||||
User <|-- Vendor
|
||||
User <|-- TeamMember
|
||||
|
||||
|
||||
User "1" -- "*" ActivityLog : logs
|
||||
User "1" -- "*" UserConversation : participates in
|
||||
UserConversation "*" -- "1" Conversation : is part of
|
||||
Conversation "1" -- "*" Message : has
|
||||
@@ -0,0 +1,164 @@
|
||||
---
|
||||
config:
|
||||
layout: dagre
|
||||
---
|
||||
classDiagram
|
||||
direction TB
|
||||
class User {
|
||||
id: String
|
||||
email: String
|
||||
}
|
||||
|
||||
class Vendor {
|
||||
id: UUID
|
||||
userId: String
|
||||
companyName: String
|
||||
tier: VendorTier
|
||||
}
|
||||
|
||||
class Staff {
|
||||
id: UUID
|
||||
userId: String
|
||||
fullName: String
|
||||
}
|
||||
|
||||
class VendorBenefitPlan {
|
||||
id: UUID
|
||||
vendorId: UUID
|
||||
title: String
|
||||
}
|
||||
|
||||
class InvoiceTemplate {
|
||||
id: UUID
|
||||
name: String
|
||||
ownerId: UUID
|
||||
}
|
||||
|
||||
class VendorRate {
|
||||
id: UUID
|
||||
vendorId: UUID
|
||||
roleName: String
|
||||
}
|
||||
|
||||
class AttireOption{
|
||||
id: UUID
|
||||
vendorId: UUID
|
||||
}
|
||||
|
||||
class Team {
|
||||
id: UUID
|
||||
teamName: String
|
||||
ownerId: String
|
||||
}
|
||||
|
||||
class TeamMember {
|
||||
id: UUID
|
||||
teamId: UUID
|
||||
userId: String
|
||||
role: TeamMemberRole
|
||||
}
|
||||
|
||||
class TeamHub {
|
||||
id: UUID
|
||||
teamId: UUID
|
||||
hubName: String
|
||||
}
|
||||
|
||||
class Business {
|
||||
id: UUID
|
||||
userId: String
|
||||
businessName: String
|
||||
}
|
||||
|
||||
class ClientFeedback {
|
||||
id: UUID
|
||||
businessId: UUID
|
||||
vendorId: UUID
|
||||
rating: Int
|
||||
}
|
||||
|
||||
class Order {
|
||||
id: UUID
|
||||
vendorId: UUID
|
||||
businessId: UUID
|
||||
status: OrderStatus
|
||||
}
|
||||
|
||||
class Shift {
|
||||
id: UUID
|
||||
orderId: UUID
|
||||
status: ShiftStatus
|
||||
}
|
||||
|
||||
class Role {
|
||||
id: UUID
|
||||
name: String
|
||||
vendorId: UUID
|
||||
}
|
||||
|
||||
class ShiftRole {
|
||||
shiftId: UUID
|
||||
roleId: UUID
|
||||
}
|
||||
|
||||
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 Invoice {
|
||||
id: UUID
|
||||
vendorId: UUID
|
||||
businessId: UUID
|
||||
orderId: UUID
|
||||
status: InvoiceStatus
|
||||
}
|
||||
|
||||
class RecentPayment {
|
||||
id: UUID
|
||||
staffId: UUID
|
||||
applicationId: UUID
|
||||
invoiceId: UUID
|
||||
status: RecentPaymentStatus
|
||||
}
|
||||
|
||||
note for Vendor "All tables has relationship with vendor"
|
||||
|
||||
User "1" -- "1" Vendor : has
|
||||
Vendor "1" o-- "1" Staff : (ownerId)
|
||||
Vendor "1" -- "*" VendorBenefitPlan : offers
|
||||
Vendor "1" -- "*" AttireOption
|
||||
Vendor o-- InvoiceTemplate : (ownerId)
|
||||
Vendor "1" -- "*" VendorRate : has
|
||||
Vendor "1" -- "*" ClientFeedback : receives
|
||||
Vendor "1" -- "*" Order : receives
|
||||
Business "1" -- "*" Order : places
|
||||
Order "1" -- "*" Shift : contains
|
||||
Shift "1" -- "*" ShiftRole : requires
|
||||
Role "1" -- "*" ShiftRole : fills
|
||||
ShiftRole "1" -- "*" Application : receives
|
||||
Assignment "1" -- "1" ShiftRole
|
||||
Assignment "1" -- "1" Workforce
|
||||
Invoice "1" -- "1" Order
|
||||
Invoice "1" -- "*" RecentPayment : details
|
||||
Vendor "1" o-- "1" Team
|
||||
Team "1" -- "*" TeamHub : contains
|
||||
Team "1" -- "*" TeamMember : has
|
||||
Reference in New Issue
Block a user