using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Qusion.WebApp.Areas.Qusion.Filters;
using Qusion.WebApp.Areas.Qusion.Models.Classifications;

namespace Qusion.WebApp.Areas.Qusion.Models.Users
{
    public class UserCreateInput
    {
        private IList<LabelListModel> _labels = new List<LabelListModel>(); 

        /// <summary>
        /// Gets or sets user email adress.
        /// </summary>
        [Required(ErrorMessage = "users.EmailRequire")]
        [DataType(DataType.EmailAddress)]
        [EmailAddress(ErrorMessage = "users.EmailRequire")]
        public string Email { get; set; }

        /// <summary>
        /// Gets or sets user first name.
        /// </summary>
        [Required(ErrorMessage = "users.FirstNameRequire")]
        public string FirstName { get; set; }

        /// <summary>
        /// Gets or sets user last name.
        /// </summary>
        [Required(ErrorMessage = "users.LastNameRequire")]
        public string LastName { get; set; }

        /// <summary>
        /// Gets or sets user password.
        /// </summary>
        [Required(ErrorMessage = "users.PassRequired")]
        public string Password { get; set; }

        /// <summary>
        /// Gets or sets user confirmation password.
        /// </summary>
        [Equal("Password", "users.passNotEqual")]
        public string ConfirmPassword { get; set; }

        /// <summary>
        /// Gets or sets classification labels for user.
        /// </summary>
        public string[] Labels { get; set; }

        /// <summary>
        /// Gets or sets roles for user.
        /// </summary>
        [Required(ErrorMessage = "users.RolesRequire")]
        public string[] Roles { get; set; }

    }
}