Files
everything2/EveryThing/Models/Vehicle/Vehicle.cs
David Štaleker 7e7fecc59f partnerji na modal
2023-07-03 16:23:10 +02:00

159 lines
4.9 KiB
C#

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<VehicleFueling> VehicleVehicleFueling { get; set; }
// VehicleIncident
[InverseProperty("Vehicle")]
public virtual ICollection<VehicleIncident> VehicleVehicleIncident { get; set; }
// VehicleIssue
[InverseProperty("Vehicle")]
public virtual ICollection<VehicleIssue> VehicleVehicleIssue { get; set; }
// Note
[InverseProperty("Vehicle")]
public virtual ICollection<GeneralNote> VehicleNote { get; set; }
// VehicleDriver
[InverseProperty("Vehicle")]
public virtual ICollection<VehicleDriver> VehicleVehicleDriver { get; set; }
// VehicleMeterReading
[InverseProperty("Vehicle")]
public virtual ICollection<VehicleMeterReading> VehicleVehicleMeterReading { get; set; }
// VehicleDrive
[InverseProperty("Vehicle")]
public virtual ICollection<VehicleDrive> VehicleVehicleDrive { get; set; }
// VehicleTransportLoadingOrder
[InverseProperty("Vehicle")]
public virtual ICollection<TransportLoadingOrder> VehicleTransportLoadingOrder { get; set; }
}
}