using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using EveryThing.Models.Transport; using Microsoft.AspNetCore.Http; using EveryThing.Models.CodeTable; namespace EveryThing.Models.Vehicle { public enum VehicleMeterType { [Display(Name = "Kilometri")] Km = 0, [Display(Name = "Milje")] Miles = 1, [Display(Name = "Ure")] Hrs = 2 } public class Vehicle { [Key] public int IdVehicle { get; set; } [Required] [ForeignKey("Company")] public int IdCompanyFk { get; set; } [Required] [ForeignKey("VehicleType")] [Display(Name = "Tip vozila")] public int IdVehicleTypeFk { get; set; } [ForeignKey("VehicleMake")] [Display(Name = "Znamka")] public int? IdMakeFk { get; set; } [Display(Name = "Model")] public string Model { get; set; } [Required] [Display(Name = "Letnik")] public int Year { get; set; } [Required] [Display(Name = "Številka VIN")] public string VinNumber { get; set; } [Display(Name = "Številka motorja")] public string EngineNumber { get; set; } [ForeignKey("VehicleFuelType")] [Display(Name = "Vrsta goriva")] public int? IdFuelTypeFk { get; set; } [ForeignKey("Departement")] [Display(Name = "Oddelek")] public int? IdDepartementFk { get; set; } [ForeignKey("VehicleGroup")] [Display(Name = "Skupina")] public int? IdVehicleGroupFk { get; set; } [Required] [Display(Name = "Naziv")] public string Title { get; set; } [Required] [Display(Name = "Vrsta števca")] public VehicleMeterType VehicleMeterType { get; set; } = VehicleMeterType.Km; [Display(Name = "Opomba")] public string Note { get; set; } [NotMapped] public IFormFile Image { get; set; } [Required] [Display(Name = "Registrska številka")] public string RegistrationNumber { get; set; } [NotMapped] public string DisplayName => $"{Title} ({RegistrationNumber})"; //TODO: Manjkajo polja //[Required] //[Display(Name = "Datum veljavnosti registracije")] //public DateTime RegistrationExpiry { get; set; } //[ForeignKey("Partner")] //[Display(Name = "Zavarovalnica")] //public int IdInsurancePartnerFk { get; set; } //[Display(Name = "Datum veljavnosti zavarovanja")] //public DateTime? InsuranceExpiry { get; set; } //[Display(Name = "Referenčna številka zavarovanja")] //public string InsuranceReference { get; set; } //[Display(Name = "Opomba zavarovanja")] //public string InsuranceNote { get; set; } //[Display(Name = "Datum veljavnosti tehničnega pregleda")] //public DateTime TechnicalInspectionExpiry { get; set; } //[Display(Name = "Referenčna tehničnega pregleda")] //public string TechnicalInspectionReference { get; set; } //[Display(Name = "Opomba tehničnega pregleda")] //public string TechnicalInspectionNote { get; set; } [Required] [Display(Name = "Aktiven")] public bool Active { get; set; } // ForeignKey public CodeTableCompany Company { get; set; } public VehicleType VehicleType { get; set; } public VehicleMake VehicleMake { get; set; } public CodeTableDepartement Departement { get; set; } public VehicleGroup VehicleGroup { get; set; } public VehicleFuelType VehicleFuelType { get; set; } // VehicleFueling [InverseProperty("Vehicle")] public virtual ICollection VehicleVehicleFueling { get; set; } // VehicleIncident [InverseProperty("Vehicle")] public virtual ICollection VehicleVehicleIncident { get; set; } // VehicleIssue [InverseProperty("Vehicle")] public virtual ICollection VehicleVehicleIssue { get; set; } // Note [InverseProperty("Vehicle")] public virtual ICollection VehicleNote { get; set; } // VehicleDriver [InverseProperty("Vehicle")] public virtual ICollection VehicleVehicleDriver { get; set; } // VehicleMeterReading [InverseProperty("Vehicle")] public virtual ICollection VehicleVehicleMeterReading { get; set; } // VehicleDrive [InverseProperty("Vehicle")] public virtual ICollection VehicleVehicleDrive { get; set; } // VehicleTransportLoadingOrder [InverseProperty("Vehicle")] public virtual ICollection VehicleTransportLoadingOrder { get; set; } } }