using Meezi.Core.Enums;

namespace Meezi.Infrastructure.Models;

public record SupportTicketDto(
    string Id,
    string CafeId,
    string CafeName,
    string Subject,
    SupportTicketStatus Status,
    SupportTicketPriority Priority,
    string CreatedByEmployeeId,
    string? CreatedByName,
    string? AssignedAdminId,
    DateTime CreatedAt,
    DateTime UpdatedAt,
    int MessageCount);

public record SupportTicketDetailDto(
    SupportTicketDto Ticket,
    IReadOnlyList<SupportTicketMessageDto> Messages);

public record SupportTicketMessageDto(
    string Id,
    TicketMessageSenderKind SenderKind,
    string SenderId,
    string? SenderName,
    string Body,
    DateTime CreatedAt);

public record CreateSupportTicketRequest(string Subject, string Body, SupportTicketPriority? Priority);

public record ReplySupportTicketRequest(string Body);

public record UpdateSupportTicketRequest(
    SupportTicketStatus? Status,
    SupportTicketPriority? Priority,
    string? AssignedAdminId);
