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

namespace Ladaer.BackEnd.Infrastructures.DTO.Models.Finance
{
    /// <summary>
    /// Model cho tài khoản ngân hàng người dùng
    /// </summary>
    public class UserBankAccountModel : BaseModel<int>
    {
        /// <summary>
        /// ID người dùng
        /// </summary>
        public int UserId { get; set; }

        /// <summary>
        /// Số tài khoản
        /// </summary>
        [Required(ErrorMessage = "Số tài khoản là bắt buộc")]
        [MaxLength(64, ErrorMessage = "Số tài khoản không được quá 64 ký tự")]
        public string AccountNumber { get; set; } = string.Empty;

        /// <summary>
        /// Tên chủ tài khoản
        /// </summary>
        [Required(ErrorMessage = "Tên chủ tài khoản là bắt buộc")]
        [MaxLength(256, ErrorMessage = "Tên chủ tài khoản không được quá 256 ký tự")]
        public string AccountHolderName { get; set; } = string.Empty;

        /// <summary>
        /// ID ngân hàng
        /// </summary>
        [Required(ErrorMessage = "Ngân hàng là bắt buộc")]
        public int BankId { get; set; }

        /// <summary>
        /// Có phải tài khoản mặc định không
        /// </summary>
        public bool IsDefault { get; set; } = false;

        /// <summary>
        /// Ghi chú
        /// </summary>
        [MaxLength(512, ErrorMessage = "Ghi chú không được quá 512 ký tự")]
        public string Note { get; set; } = string.Empty;
    }
}
