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

namespace Ladaer.BackEnd.Infrastructures.DTO.Items.Finances
{
    public class IncomeItem : BaseItem<Guid>
    {
        /// <summary>
        /// Mô tả doanh thu
        /// </summary>
        public string Description { get; set; } = string.Empty;

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

        /// <summary>
        /// Số tiền doanh thu
        /// </summary>
        public decimal Amount { get; set; }

        /// <summary>
        /// Danh mục doanh thu
        /// </summary>
        public int IncomeCategoryId { get; set; }
        public string IncomeCategoryName { get; set; } = string.Empty;

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

        /// <summary>
        /// UserId của người duyệt
        /// </summary>
        public int? ApprovedBy { get; set; }

        /// <summary>
        /// Tên người duyệt
        /// </summary>
        public string ApprovedByUserName { get; set; } = "";

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

        /// <summary>
        /// Có được phép duyệt doanh thu này không
        /// </summary>
        public bool CanApprove { get; set; }

        /// <summary>
        /// Có được phép từ chối doanh thu này không
        /// </summary>
        public bool CanReject { get; set; }

        /// <summary>
        /// Có được phép đánh dấu đã nhận tiền không
        /// </summary>
        public bool CanMarkAsReceived { get; set; }
    }
}

