| | | 1 | | using System.ComponentModel.DataAnnotations; |
| | | 2 | | |
| | | 3 | | namespace Pomodoro.Web.Models; |
| | | 4 | | |
| | | 5 | | /// <summary> |
| | | 6 | | /// Represents a task that can be worked on during pomodoro sessions |
| | | 7 | | /// </summary> |
| | | 8 | | public class TaskItem |
| | | 9 | | { |
| | 882 | 10 | | public Guid Id { get; set; } = Guid.NewGuid(); |
| | | 11 | | |
| | | 12 | | [Required(ErrorMessage = Constants.Validation.TaskNameRequiredMessage)] |
| | | 13 | | [StringLength(Constants.Validation.MaxTaskNameLength, ErrorMessage = Constants.Validation.TaskNameMaxLengthMessage)] |
| | 886 | 14 | | public string Name { get; set; } = string.Empty; |
| | 585 | 15 | | public DateTime CreatedAt { get; set; } = DateTime.UtcNow; |
| | 538 | 16 | | public bool IsCompleted { get; set; } |
| | 246 | 17 | | public int TotalFocusMinutes { get; set; } |
| | 318 | 18 | | public int PomodoroCount { get; set; } |
| | 108 | 19 | | public DateTime? LastWorkedOn { get; set; } |
| | | 20 | | |
| | | 21 | | /// <summary> |
| | | 22 | | /// Soft delete flag - when true, task is hidden from active lists but preserved for history |
| | | 23 | | /// </summary> |
| | 114 | 24 | | public bool IsDeleted { get; set; } |
| | | 25 | | |
| | | 26 | | /// <summary> |
| | | 27 | | /// Timestamp when the task was soft-deleted |
| | | 28 | | /// </summary> |
| | 90 | 29 | | public DateTime? DeletedAt { get; set; } |
| | | 30 | | } |