using CarShowroomContracts.AbstractModels; using CarShowroomContracts.Views; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Runtime.ConstrainedExecution; using System.Text; using System.Threading.Tasks; namespace CarShowroomDatabaseStorage.Entities { [Table("service")] [Index(nameof(Name), IsUnique = true)] public class Service : IService { [Column("service_id")] public int Id { get; private set; } [Required] [Column("service_name")] [MaxLength(50)] public string Name { get; private set; } = string.Empty; [Required] [Column("service_cost")] public int Cost { get; private set; } public virtual List SaleServices { get; set; } = new(); private Service() { } private Service(IService service) { Id = service.Id; Name = service.Name; Cost = service.Cost; } public static Service? Create(IService service) { if (service == null) return null; return new Service(service); } public void Update(IService service) { if (service == null) return; Name = service.Name; Cost = service.Cost; } public ServiceView GetServiceView() { return new ServiceView(this); } } }