using APP.Domain;
using CORE.APP.Models;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace APP.Models
{
public class UserRequest : Request
{
[Required(ErrorMessage = "{0} is required!")]
[StringLength(30, MinimumLength = 3, ErrorMessage = "{0} must be minimum {2} maximum {1} characters!")]
[DisplayName("User Name")]
public string UserName { get; set; }
[Required(ErrorMessage = "{0} is required!")]
[StringLength(15, MinimumLength = 4, ErrorMessage = "{0} must be minimum {2} maximum {1} characters!")]
public string Password { get; set; }
[StringLength(50, ErrorMessage = "{0} must be maximum {1} characters!")]
[DisplayName("First Name")]
public string FirstName { get; set; }
[StringLength(50, ErrorMessage = "{0} must be maximum {1} characters!")]
[DisplayName("Last Name")]
public string LastName { get; set; }
public Genders Gender { get; set; }
[DisplayName("Birth Date")]
public DateTime? BirthDate { get; set; }
// We don't need to get the RegistrationDate from the client since it will be assigned automatically in the service.
[Range(0, 5, ErrorMessage = "{0} must be between {1} and {2}!")] // minimum value can be 0, maximum value can be 5
[Required(ErrorMessage = "{0} is required!")]
public decimal? Score { get; set; } // changed from decimal to decimal? and added [Required] to show validation error message
[DisplayName("Active")]
public bool IsActive { get; set; }
public string Address { get; set; }
//[Required(ErrorMessage = "{0} is required!")] // can be defined if each user must belong to a group
[DisplayName("Group")]
public int? GroupId { get; set; }
[Required(ErrorMessage = "{0} is required!")] // each user must have at least one role
[DisplayName("Roles")]
public List<int> RoleIds { get; set; }
//[Required(ErrorMessage = "{0} is required!")] // can be defined if each user must belong to a country
[DisplayName("Country")]
public int? CountryId { get; set; }
//[Required(ErrorMessage = "{0} is required!")] // can be defined if each user must belong to a city
[DisplayName("City")]
public int? CityId { get; set; }
}
}