diagrams
This commit is contained in:
271
backend/dataconnect/docs/dataconnect.mmd
Normal file
271
backend/dataconnect/docs/dataconnect.mmd
Normal file
@@ -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"
|
||||
Reference in New Issue
Block a user