using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.Core;
using Kreta.Resources;

namespace Kreta.Web.Areas.Intezmeny.Models
{
    public class OktatottSzakmakSearchModel
    {
        [Display(Name = nameof(UjSzktSzakmajegyzekOsszerendelesResource.SzakkepesitesMegnevezese), ResourceType = typeof(UjSzktSzakmajegyzekOsszerendelesResource))]
        public string SzakkepesitesMegnevezeseSearch { get; set; }

        [Display(Name = nameof(UjSzktSzakmajegyzekOsszerendelesResource.AgazatiBesorolas), ResourceType = typeof(UjSzktSzakmajegyzekOsszerendelesResource))]
        public int? AgazatiBesorolasSearch { get; set; }

        [Display(Name = nameof(UjSzktSzakmajegyzekOsszerendelesResource.SzakkepesitesAzonositoszam), ResourceType = typeof(UjSzktSzakmajegyzekOsszerendelesResource))]
        public string SzakkepesitesAzonositoszamSearch { get; set; }

        [Display(Name = nameof(UjSzktSzakmajegyzekOsszerendelesResource.JelenlegZajloKepzes), ResourceType = typeof(UjSzktSzakmajegyzekOsszerendelesResource))]
        public int? JelenlegZajloKepzesSearch { get; set; }

        [Display(Name = nameof(UjSzktSzakmajegyzekOsszerendelesResource.KepzesreFogadhatoTanulokSzama), ResourceType = typeof(UjSzktSzakmajegyzekOsszerendelesResource))]
        public int? KepzesreFogadhatoTanulokSzamaSearch { get; set; }

        [Display(Name = nameof(UjSzktSzakmajegyzekOsszerendelesResource.JelenlegKepzettTanulokSzama), ResourceType = typeof(UjSzktSzakmajegyzekOsszerendelesResource))]
        public int? JelenlegKepzettTanulokSzamaSearch { get; set; }

        public string ControllerName { get; set; } = Constants.Controllers.OktatottSzakmak;

        public string ApiControllerName { get; set; } = Constants.ApiControllers.OktatottSzakmakApi;

        public UjSzktSzakmajegyzekOsszerendelesSearchCo ToCo() =>
            new UjSzktSzakmajegyzekOsszerendelesSearchCo
            {
                SzakkepesitesMegnevezese = SzakkepesitesMegnevezeseSearch,
                AgazatiBesorolas = AgazatiBesorolasSearch,
                SzakkepesitesAzonositoszam = SzakkepesitesAzonositoszamSearch,
                JelenlegZajloKepzes = JelenlegZajloKepzesSearch.ToNullableBoolean(),
                KepzesreFogadhatoTanulokSzama = KepzesreFogadhatoTanulokSzamaSearch,
                JelenlegKepzettTanulokSzama = JelenlegKepzettTanulokSzamaSearch
            };
    }
}