Files
helpdesk/backend/HelpDesk.Models/Entities/Ticket.cs
T

50 lines
1.4 KiB
C#

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using HelpDesk.Models.Enums;
namespace HelpDesk.Models.Entities;
[Table("tickets")]
public class Ticket
{
[Key]
public Guid Id { get; set; }
[Required]
[MaxLength(200)]
public string Title { get; set; } = string.Empty;
[Required]
public string Description { get; set; } = string.Empty;
[Required]
[MaxLength(50)]
public TicketStatus Status { get; set; } = TicketStatus.Open;
[Required]
[MaxLength(50)]
public TicketPriority Priority { get; set; } = TicketPriority.Medium;
[Required]
[MaxLength(50)]
public string TicketNumber { get; set; } = string.Empty;
public Guid RequesterId { get; set; }
public Guid? AssigneeId { get; set; }
public Guid? GroupId { get; set; }
public Guid? SlaPolicyId { get; set; }
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
public DateTime? FirstResponseAt { get; set; }
public DateTime? ResolvedAt { get; set; }
public DateTime? ClosedAt { get; set; }
// Navigation
public User Requester { get; set; } = null!;
public User? Assignee { get; set; }
public Group? Group { get; set; }
public SLAPolicy? SlaPolicy { get; set; }
public ICollection<TicketComment> Comments { get; set; } = new List<TicketComment>();
}