using CarServiceContracts.BindingModels; using CarServiceContracts.Models; using CarServiceContracts.ViewModels; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace CarServiceDatabase.Models { public class Item : IItemModel { public int Id { get; private set; } [Required] public string Name { get; private set; } = string.Empty; [Required, Column(TypeName = "decimal (10,2)")] public decimal Price { get; private set; } [Required] public int Count { get; private set; } [Required] public int WorkerId { get; private set; } /// /// Затраты на ремонт /// [ForeignKey("ItemId")] public virtual List ItemsForRepair { get; set; } = new(); public virtual Worker Worker { get; set; } = new(); public static Item? Create(CarServiceDbContext context, ItemBindingModel? model) { if (model == null) { return null; } return new() { Name = model.Name, Price = model.Price, Count = model.Count, Worker = context.Workers.First(x => x.Id == model.WorkerId) }; } public void Update(CarServiceDbContext context, ItemBindingModel? model) { if (model == null) { return; } Name = model.Name; Price = model.Price; Count = model.Count; Worker = context.Workers.First(x => x.Id == model.WorkerId); } public ItemViewModel GetViewModel => new() { Id = Id, Name = Name, Price = Price, Count = Count, WorkerId = WorkerId, WorkerName = Worker.Name + " " + Worker.Surname }; } }