using HospitalContracts.BindingModels; using HospitalContracts.ViewModels; using HospitalDataModels.Models; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace HospitalDatabaseImplement.Models { public class Medicine : IMedicineModel { public int Id { get; private set; } [Required] [MaxLength(60)] public string Name { get; private set; } = string.Empty; [Required] public double Cost { get; private set; } [Required] [MaxLength(10)] public string Dose { get; private set; } = string.Empty; [Required] public int ApothecaryId { get; private set; } public virtual Apothecary Apothecary { get; set; } [ForeignKey("MedicineId")] public virtual List Prescriptions { get; set; } = new(); [ForeignKey("MedicineId")] public virtual List Recipes { get; set; } = new(); [ForeignKey("MedicineId")] public virtual List Procedures { get; set; } = new(); public static Medicine? Create(MedicineBindingModel model) { if (model == null) { return null; } return new Medicine() { Id = model.Id, Name = model.Name, Cost = model.Cost, Dose = model.Dose, ApothecaryId = model.ApothecaryId }; } public void Update(MedicineBindingModel model) { if (model == null) { return; } Name = model.Name; Cost = model.Cost; Dose = model.Dose; } public MedicineViewModel GetViewModel => new() { Id = Id, Name = Name, Cost = Cost, Dose = Dose, ApothecaryId = ApothecaryId, ApothecaryLogin = Apothecary.Login }; } }