using HRD.WebApi.DAL;
using System.ComponentModel.DataAnnotations.Schema;

namespace DAL.Models.Entities
{
    public partial class Employee : BaseEntity
    {
        public int EmployeeId { get; set; }
        public string EmployeeNo { get; set; }
        public string Salutation { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string ShortName { get; set; }
        public string Title { get; set; }
        public string Position { get; set; }
        public string LoginName { get; set; }
        public string Email { get; set; }
        public int? RangId { get; set; }
        public int ClientId { get; set; }
        public bool? IsActive { get; set; }

        [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
        public string MandantCode { get; set; }

        [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
        public int? MainDepartmentId { get; set; }

        [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
        public string DepartmentNamesList { get; set; }

        [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
        public string DepartmentIdList { get; set; }

        [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
        public string WebappNamesList { get; set; }

        [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
        public string WebappIdList { get; set; }

        [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
        public string AttributeNamesList { get; set; }

        [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
        public string AttributeIdList { get; set; }

        public string MobilePhoneNo { get; set; }
        public string PhoneNo { get; set; }

        //generic Id
        public override int GetEntityId() => EmployeeId;

        //generic ToString()
        public override string ToString() => $"EmployeeId: {GetEntityId()}; LoginName: {LoginName}";

        //generic EntityInfo()
        public override string EntityInfo() => base.EntityInfo();
    }
}