using Lada.Framework.DTO;
using System.ComponentModel.DataAnnotations;

namespace Ladaer.BackEnd.Infrastructures.DTO.Models.Finance
{
    /// <summary>
    /// Model cho việc tạo/cập nhật danh mục doanh thu
    /// </summary>
    public class IncomeCategoryModel : BaseModel<int>
    {
        /// <summary>
        /// Tên danh mục doanh thu
        /// </summary>
        [Required(ErrorMessage = "Tên danh mục doanh thu là bắt buộc")]
        [MaxLength(128, ErrorMessage = "Tên danh mục doanh thu không được vượt quá 128 ký tự")]
        public string Name { get; set; } = "";

        /// <summary>
        /// Mô tả danh mục doanh thu
        /// </summary>
        [MaxLength(256, ErrorMessage = "Mô tả không được vượt quá 256 ký tự")]
        public string Description { get; set; } = "";

        /// <summary>
        /// Thứ tự hiển thị
        /// </summary>
        [Range(0, int.MaxValue, ErrorMessage = "Thứ tự hiển thị phải là số dương")]
        public int DisplayOrder { get; set; }

        /// <summary>
        /// ID của danh mục cha (null nếu là danh mục gốc)
        /// </summary>
        public int? ParentId { get; set; }

        /// <summary>
        /// ID người duyệt
        /// </summary>
        public int ApprovedBy { get; set; }

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

