using System.ComponentModel.DataAnnotations.Schema;

namespace Ladaer.BackEnd.Infrastructures.DTO.StoredProcedureResults
{
    /// <summary>
    /// Kết quả trả về từ stored procedure SP_SearchCustomersForTransferPayment
    /// </summary>
    public class CustomerTransferPaymentSummaryResult
    {
        /// <summary>
        /// ID khách hàng
        /// </summary>
        public int CustomerId { get; set; }

        /// <summary>
        /// Tên khách hàng
        /// </summary>
        public string CustomerName { get; set; } = string.Empty;

        /// <summary>
        /// Số điện thoại khách hàng
        /// </summary>
        public string CustomerPhone { get; set; } = string.Empty;

        /// <summary>
        /// Email khách hàng
        /// </summary>
        public string CustomerEmail { get; set; } = string.Empty;

        /// <summary>
        /// Địa chỉ khách hàng
        /// </summary>
        public string CustomerAddress { get; set; } = string.Empty;

        /// <summary>
        /// Số lượng đơn hàng chờ thanh toán
        /// </summary>
        public int PendingOrderCount { get; set; }

        /// <summary>
        /// Tổng số tiền TransferFee chờ thanh toán
        /// </summary>
        public decimal TotalPendingAmount { get; set; }

        /// <summary>
        /// Ngày tạo đơn hàng cũ nhất
        /// </summary>
        public DateTimeOffset? OldestOrderDate { get; set; }

        /// <summary>
        /// Ngày tạo đơn hàng mới nhất
        /// </summary>
        public DateTimeOffset? LatestOrderDate { get; set; }

        /// <summary>
        /// ID quản lý khách hàng
        /// </summary>
        public int? ManagerId { get; set; }

        /// <summary>
        /// Tên quản lý khách hàng
        /// </summary>
        public string ManagerName { get; set; } = string.Empty;

        /// <summary>
        /// Có thể tạo hóa đơn không
        /// </summary>
        public bool CanCreateBill { get; set; }

        /// <summary>
        /// Tổng số bản ghi (cho pagination)
        /// </summary>
        public int TotalRecord { get; set; }

        /// <summary>
        /// Tổng số trang (cho pagination)
        /// </summary>
        public int NumberOfPages { get; set; }

    }
}
