using HotelContracts.BindingModels; using HotelContracts.ViewModels; using HotelDataModels.Models; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace HotelDataBaseImplement.Models { public class Headwaiter : IHeadwaiterModel { public int Id { get; private set; } [Required] public string HeadwaiterSurname { get; set; } = string.Empty; [Required] public string HeadwaiterName { get; set; } = string.Empty; [Required] public string HeadwaiterPatronymic { get; set; } = string.Empty; [Required] public string HeadwaiterLogin { get; set; } = string.Empty; [Required] public string HeadwaiterPassword { get; set; } = string.Empty; [Required] public string HeadwaiterEmail { get; set; } = string.Empty; [Required] public string HeadwaiterPhoneNumber { get; set; } = string.Empty; [ForeignKey("HeadwaiterId")] public virtual List Rooms { get; set; } = new(); [ForeignKey("HeadwaiterId")] public virtual List Lunches { get; set; } = new(); [ForeignKey("HeadwaiterId")] public virtual List ConferenceBookings { get; set; } = new(); public static Headwaiter? Create(HeadwaiterBindingModel model) { if (model == null) { return null; } return new Headwaiter() { Id = model.Id, HeadwaiterSurname = model.HeadwaiterSurname, HeadwaiterName = model.HeadwaiterName, HeadwaiterPatronymic = model.HeadwaiterPatronymic, HeadwaiterLogin = model.HeadwaiterLogin, HeadwaiterPassword = model.HeadwaiterPassword, HeadwaiterEmail = model.HeadwaiterEmail, HeadwaiterPhoneNumber = model.HeadwaiterPhoneNumber }; } public static Headwaiter Create(HeadwaiterViewModel model) { return new Headwaiter { Id = model.Id, HeadwaiterSurname = model.HeadwaiterSurname, HeadwaiterName = model.HeadwaiterName, HeadwaiterPatronymic = model.HeadwaiterPatronymic, HeadwaiterLogin = model.HeadwaiterLogin, HeadwaiterPassword = model.HeadwaiterPassword, HeadwaiterEmail = model.HeadwaiterEmail, HeadwaiterPhoneNumber = model.HeadwaiterPhoneNumber }; } public void Update(HeadwaiterBindingModel model) { if (model == null) { return; } HeadwaiterSurname = model.HeadwaiterSurname; HeadwaiterName = model.HeadwaiterName; HeadwaiterPatronymic = model.HeadwaiterPatronymic; HeadwaiterLogin = model.HeadwaiterLogin; HeadwaiterPassword = model.HeadwaiterPassword; HeadwaiterEmail = model.HeadwaiterEmail; HeadwaiterPhoneNumber = model.HeadwaiterPhoneNumber; } public HeadwaiterViewModel GetViewModel => new() { Id = Id, HeadwaiterSurname = HeadwaiterSurname, HeadwaiterName = HeadwaiterName, HeadwaiterPatronymic = HeadwaiterPatronymic, HeadwaiterLogin = HeadwaiterLogin, HeadwaiterPassword = HeadwaiterPassword, HeadwaiterEmail = HeadwaiterEmail, HeadwaiterPhoneNumber = HeadwaiterPhoneNumber }; } }