using CMSMicroservice.Application.Common.Models;
using CMSMicroservice.Domain.Enums;

namespace CMSMicroservice.Application.UserOrderCQ.Queries.GetCustomerOrders;

public class GetCustomerOrdersResponseDto
{
    public MetaData MetaData { get; set; }
    public List<CustomerOrderModel> Models { get; set; } = new();
}

public class CustomerOrderModel
{
    public long Id { get; set; }
    public long Amount { get; set; }
    public long? PackageId { get; set; }
    public long? TransactionId { get; set; }
    public PaymentStatus PaymentStatus { get; set; }
    public DateTime? PaymentDate { get; set; }
    public long UserId { get; set; }
    public long UserAddressId { get; set; }
    public PaymentMethod? PaymentMethod { get; set; }
    public string UserAddressText { get; set; }
    public List<FactorDetailModel> FactorDetails { get; set; } = new();
    public DeliveryStatus DeliveryStatus { get; set; }
    public string TrackingCode { get; set; }
    public string DeliveryDescription { get; set; }
    public string UserFullName { get; set; }
    public string UserNationalCode { get; set; }
    public long VatAmount { get; set; }
    public double VatPercentage { get; set; }
}

public class FactorDetailModel
{
    public long ProductId { get; set; }
    public string ProductTitle { get; set; }
    public string ProductThumbnailPath { get; set; }
    public long? UnitPrice { get; set; }
    public int? Count { get; set; }
    public long? UnitDiscountPrice { get; set; }
}
