Task Management: Domain Model

Task Management: Domain Model An architecture diagram generated by Archify. Employee · Сутність співробітника · Доменні сутності (Domain Layer) · Aggregate Root Employee Сутність співробітника Aggregate Root TaskItem · Сутність завдання · Доменні сутності (Domain Layer) · Rich Domain Model TaskItem Сутність завдання Rich Domain Model 1..* створює (Creator, BR5) 0..* виконує (Assignee, BR3) Доменні сутності (Domain Layer) Legend Database

Employee (Співробітник)

  • • Id: uuid [PK, первинний ключ]
  • • Name: string [ПІБ, валідовано C# + btrim]
  • • Email: string [Унікальний індекс ix_employees_email]
  • • IsActive: boolean [BR3: прапорець активності]

TaskItem (Завдання)

  • • Id: uuid [PK, GUID v7 послідовний]
  • • Title: string (до 200 симв.) & Description (опціональний)
  • • Status: TaskItemStatus (New, InProgress, Completed, Cancelled)
  • • PlannedStartAt & DueAt [BR2: DueAt >= PlannedStartAt]
  • • CompletedAt [BR1: тільки для status = Completed]
  • • CreatorId [FK, BR5] & AssigneeId [FK, BR3]
  • • Xmin: uint [OCC токен версії рядка]

Доменні інваріанти (BR1-BR5)

  • • BR1: CompletedAt обов'язковий і дозволений виключно для Completed
  • • BR2: DueAt не може бути раніше за PlannedStartAt
  • • BR3: Призначення дозволено тільки активним (IsActive = true)
  • • BR5: Постановник та виконавець не можуть збігатися (Creator != Assignee)