using System.ComponentModel.DataAnnotations;

namespace Ladaer.BackEnd.Infrastructures.DTO.Models.Users
{
    /// <summary>
    /// Model để đổi mật khẩu của người dùng
    /// </summary>
    public class ChangePasswordModel
    {
        /// <summary>
        /// ID của người dùng cần đổi mật khẩu
        /// </summary>
        public int UserId { get; set; } = 0;

        /// <summary>
        /// Mật khẩu hiện tại
        /// </summary>
        [Required(ErrorMessage = "Vui lòng nhập mật khẩu hiện tại")]
        [DataType(DataType.Password)]
        [Display(Name = "Mật khẩu hiện tại")]
        public string CurrentPassword { get; set; }

        /// <summary>
        /// Mật khẩu mới
        /// </summary>
        [Required(ErrorMessage = "Vui lòng nhập mật khẩu mới")]
        [StringLength(100, ErrorMessage = "{0} phải có ít nhất {2} ký tự và nhiều nhất {1} ký tự.", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "Mật khẩu mới")]
        public string NewPassword { get; set; }

        /// <summary>
        /// Xác nhận mật khẩu mới
        /// </summary>
        [Required(ErrorMessage = "Vui lòng xác nhận mật khẩu mới")]
        [DataType(DataType.Password)]
        [Display(Name = "Xác nhận mật khẩu mới")]
        [Compare("NewPassword", ErrorMessage = "Mật khẩu mới và xác nhận mật khẩu chưa khớp.")]
        public string ConfirmNewPassword { get; set; }

        /// <summary>
        /// ID người cập nhật
        /// </summary>
        public int UpdatedBy { get; set; }

        /// <summary>
        /// Tên người cập nhật
        /// </summary>
        public string UpdatedByUserName { get; set; } = "";
    }
}
