namespace GreenHome.Application; public sealed class ChecklistDto { public int Id { get; set; } public int DeviceId { get; set; } public string DeviceName { get; set; } = string.Empty; public string Title { get; set; } = string.Empty; public string? Description { get; set; } public bool IsActive { get; set; } public List Items { get; set; } = new(); public DateTime CreatedAt { get; set; } public int CreatedByUserId { get; set; } public string CreatedByUserName { get; set; } = string.Empty; } public sealed class ChecklistItemDto { public int Id { get; set; } public string Title { get; set; } = string.Empty; public string? Description { get; set; } public int Order { get; set; } public bool IsRequired { get; set; } } public sealed class CreateChecklistRequest { public required int DeviceId { get; set; } public required int CreatedByUserId { get; set; } public required string Title { get; set; } public string? Description { get; set; } public required List Items { get; set; } } public sealed class CreateChecklistItemRequest { public required string Title { get; set; } public string? Description { get; set; } public int Order { get; set; } public bool IsRequired { get; set; } } public sealed class ChecklistCompletionDto { public int Id { get; set; } public int ChecklistId { get; set; } public string ChecklistTitle { get; set; } = string.Empty; public int CompletedByUserId { get; set; } public string CompletedByUserName { get; set; } = string.Empty; public string PersianDate { get; set; } = string.Empty; public List ItemCompletions { get; set; } = new(); public string? Notes { get; set; } public DateTime CompletedAt { get; set; } } public sealed class ChecklistItemCompletionDto { public int Id { get; set; } public int ChecklistItemId { get; set; } public string ItemTitle { get; set; } = string.Empty; public bool IsChecked { get; set; } public string? Note { get; set; } } public sealed class CompleteChecklistRequest { public required int ChecklistId { get; set; } public required int CompletedByUserId { get; set; } public required string PersianDate { get; set; } public required List ItemCompletions { get; set; } public string? Notes { get; set; } } public sealed class CompleteChecklistItemRequest { public required int ChecklistItemId { get; set; } public bool IsChecked { get; set; } public string? Note { get; set; } }