/
afanasevn
/
MaxSystems
Обзор
Документация
Войти
/
afanasevn
/
MaxSystems
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/MaxSystems.Domain/Entities/Work.cs
88 строк
4 KB
IBS\NAfanasev
Update documentation and comments
22 июн 2026, 19:13
22 июн 2026, 19:13
ff853a6
Код
Авторство
О чём код?
using MaxSystems.Domain.Enums; namespace MaxSystems.Domain.Entities; /// <summary> /// Карточка работы во внутреннем таск-трекере. /// Портал не заменяет Service Desk. /// </summary> public class Work { public Guid Id { get; set; } /// <summary>Номер работы (обязательно).</summary> public string Number { get; set; } = string.Empty; /// <summary> /// Номер заявки Service Desk (обязательно, если работа связана с обращением). /// При связи с обращением требуется номер заявки Service Desk. /// </summary> public string? ServiceDeskTicket { get; set; } /// <summary>Тип работы (обязательно).</summary> public WorkType Type { get; set; } /// <summary>Категория (обязательно). Подкатегория работы в Service Desk.</summary> public string Category { get; set; } = string.Empty; /// <summary>Система (обязательно).</summary> public EquipmentSystem System { get; set; } /// <summary>Оборудование / объект (обязательно).</summary> public Guid? EquipmentId { get; set; } /// <summary>Приоритет (обязательно).</summary> public Priority Priority { get; set; } = Priority.P3; /// <summary>Ответственный главный специалист (обязательно).</summary> public Guid? LeadSpecialistId { get; set; } /// <summary>Исполнитель (обязательно после назначения).</summary> public Guid? AssigneeId { get; set; } /// <summary>Плановая дата (обязательно).</summary> public DateTime PlannedDate { get; set; } /// <summary>Фактическая дата (при закрытии).</summary> public DateTime? ActualDate { get; set; } /// <summary>Статус (обязательно).</summary> public WorkStatus Status { get; set; } = WorkStatus.New; /// <summary>Причина ожидания (обязательно для статусов ожидания).</summary> public string? WaitReason { get; set; } public string Title { get; set; } = string.Empty; /// <summary>Описание проблемы / задачи (обязательно).</summary> public string? Description { get; set; } /// <summary>Результат выполнения (обязательно при закрытии).</summary> public string? Result { get; set; } /// <summary>Требуется закупка (да/нет).</summary> public bool NeedsPurchase { get; set; } /// <summary>Требуется повторная работа (да/нет).</summary> public bool NeedsRework { get; set; } /// <summary>Рекомендации (при необходимости).</summary> public string? Recommendations { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; public Equipment? Equipment { get; set; } public User? LeadSpecialist { get; set; } public User? Assignee { get; set; } public ChecklistResponse? Checklist { get; set; } public ICollection<WarehouseMovement> Movements { get; set; } = []; /// <summary>Использованные материалы (при наличии).</summary> public ICollection<WorkMaterial> Materials { get; set; } = []; }