using Lada.Framework.Data.Domains.BaseEntities;
using Lada.Framework.Data.Domains.Orders;
using System.ComponentModel.DataAnnotations;

namespace Lada.Framework.Data.Domains.Finance
{
    /// <summary>
    /// Entity liên kết giữa hóa đơn thanh toán chuyển khoản và đơn hàng
    /// </summary>
    public class TransferPaymentBillOrder : BaseEntityWithKey<int>
    {
        /// <summary>
        /// ID hóa đơn thanh toán
        /// </summary>
        public int TransferPaymentBillId { get; set; }

        /// <summary>
        /// Hóa đơn thanh toán
        /// </summary>
        public virtual TransferPaymentBill TransferPaymentBill { get; set; }

        /// <summary>
        /// ID đơn hàng
        /// </summary>
        public int OrderId { get; set; }

        /// <summary>
        /// Đơn hàng
        /// </summary>
        public virtual Order Order { get; set; }

        /// <summary>
        /// Mã đơn hàng (để tối ưu query)
        /// </summary>
        [Required]
        [MaxLength(128)]
        public string OrderCode { get; set; } = string.Empty;

        /// <summary>
        /// Số tiền TransferFee của đơn hàng này
        /// </summary>
        public decimal TransferFeeAmount { get; set; }

        /// <summary>
        /// Ghi chú riêng cho đơn hàng này trong hóa đơn
        /// </summary>
        [MaxLength(512)]
        public string Note { get; set; } = string.Empty;
    }
}
