using Lada.Framework.DTO;

namespace Ladaer.BackEnd.Infrastructures.DTO.Items.Finance
{
    /// <summary>
    /// Item hóa đơn thuế
    /// </summary>
    public class TaxInvoiceItem : BaseItem<int>
    {
        /// <summary>
        /// ID phiếu đối soát
        /// </summary>
        public int CustomerReconciliationSlipId { get; set; }

        /// <summary>
        /// Mã phiếu đối soát
        /// </summary>
        public string ReconciliationSlipCode { get; set; } = string.Empty;

        /// <summary>
        /// ID thông tin VAT
        /// </summary>
        public int VatInfoId { get; set; }

        /// <summary>
        /// Mã số thuế
        /// </summary>
        public string TaxCode { get; set; } = string.Empty;

        /// <summary>
        /// Tên công ty
        /// </summary>
        public string CompanyName { get; set; } = string.Empty;

        /// <summary>
        /// Địa chỉ
        /// </summary>
        public string Address { get; set; } = string.Empty;

        /// <summary>
        /// Email nhận hóa đơn
        /// </summary>
        public string InvoiceEmail { get; set; } = string.Empty;

        /// <summary>
        /// Số hóa đơn
        /// </summary>
        public string InvoiceNumber { get; set; } = string.Empty;

        /// <summary>
        /// Ngày xuất hóa đơn
        /// </summary>
        public DateTimeOffset? InvoiceDate { get; set; }

        /// <summary>
        /// Trạng thái
        /// </summary>
        public int Status { get; set; }

        /// <summary>
        /// Tên trạng thái
        /// </summary>
        public string StatusName { get; set; } = string.Empty;

        /// <summary>
        /// Tổng tiền trước thuế
        /// </summary>
        public decimal TotalAmount { get; set; }

        /// <summary>
        /// Tiền thuế VAT
        /// </summary>
        public decimal VatAmount { get; set; }

        /// <summary>
        /// Tổng tiền sau thuế
        /// </summary>
        public decimal TotalAmountIncludingVat { get; set; }

        /// <summary>
        /// Thuế suất (%)
        /// </summary>
        public decimal VatRate { get; set; }

        /// <summary>
        /// URL file PDF hóa đơn
        /// </summary>
        public string PdfUrl { get; set; } = string.Empty;

        /// <summary>
        /// Ghi chú
        /// </summary>
        public string Note { get; set; } = string.Empty;

        /// <summary>
        /// User có quyền cập nhật trạng thái không (Founder hoặc TaxInvoice.Update)
        /// </summary>
        public bool CanUpdate { get; set; }

        /// <summary>
        /// Có thể xóa không (chỉ khi NotIssued hoặc Draft)
        /// </summary>
        public bool CanDelete { get; set; }
    }
}
