using Lada.Framework.Data.Enums;
using Lada.Framework.DTO;

namespace Ladaer.BackEnd.Infrastructures.DTO.Models.Finances
{
    public class ExpenseModel : BaseModel<Guid>
    {
        /// <summary>
        /// Mô tả chi phí
        /// </summary>
        public string Description { get; set; } = "";

        /// <summary>
        /// Ghi chú cho chi phí
        /// </summary>
        public string Note { get; set; } = "";

        /// <summary>
        /// Số tiền chi phí
        /// </summary>
        public decimal Amount { get; set; }

        /// <summary>
        /// Danh mục chi phí
        /// </summary>
        public int ExpenseCategoryId { get; set; }

        /// <summary>
        /// Tên danh mục chi phí (chỉ đọc)
        /// </summary>
        public string? ExpenseCategoryName { get; set; } = "";

        /// <summary>
        /// Trạng thái chi phí (chỉ đọc - được set tự động)
        /// </summary>
        public ExpenseStatus Status { get; set; }

        /// <summary>
        /// UserId của người duyệt (chỉ đọc - được lấy từ ExpenseCategory)
        /// </summary>
        public int? ApprovedBy { get; set; }

        /// <summary>
        /// Lý do từ chối (nếu có)
        /// </summary>
        public string? RejectReason { get; set; }

        /// <summary>
        /// ID tài khoản ngân hàng nhận tiền
        /// </summary>
        public int? UserBankAccountId { get; set; }

        /// <summary>
        /// Thông tin tài khoản ngân hàng (chỉ đọc)
        /// </summary>
        public string? UserBankAccountInfo { get; set; } = "";
    }
}