Compare commits

18 Commits

Author SHA1 Message Date
04cb47802b Merge branch 'feature/migrations' into develop 2025-10-08 11:42:23 +01:00
e4677b1aea Migration added and updated 2025-10-08 11:38:42 +01:00
268230daea Fix 2025-10-08 11:20:11 +01:00
ad9c8aa42d Fix in ContactServiceProvider.cs 2025-10-08 11:15:25 +01:00
af208c152b Correcting all 2025-10-08 11:13:37 +01:00
0ddf5d380a Correcting all errors of types, writed, and entities. 2025-10-08 11:10:27 +01:00
af92cdc524 Correcting all type and relations in all entities 2025-10-08 00:03:52 +01:00
856d8e2733 Correction de toutes les erreurs de relations et d'écritures dans tous 2025-10-07 23:46:57 +01:00
89be35ecb0 Fixed all relationship and write errors in all entities 2025-10-07 23:28:16 +01:00
9a5c83161a Exucuting migrations commands 2025-10-07 11:42:04 +02:00
41b0f1892e Writing relations into customer and contact 2025-10-07 11:37:51 +02:00
2bbb771635 Writing OnModelCreating in PyroFetesDbContext.cs 2025-10-07 11:00:35 +02:00
1446fe7b95 Error during migration 2025-10-07 10:20:52 +02:00
5261446ddb Fix comments in PyroFetesDbContext.cs 2025-10-07 10:04:55 +02:00
cfa2d59c0d Fix french comments 2025-10-07 10:01:41 +02:00
fa353446eb Writing OnModelCreating in PyroFetesDbContext.cs. 2025-10-06 19:35:34 +01:00
f4da74e9e2 Idem 2025-10-06 19:29:45 +01:00
df3b820dea Correcting relations into Movement and Warehouse. 2025-10-06 19:23:20 +01:00
50 changed files with 5600 additions and 119 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -4,9 +4,11 @@ namespace PyroFetes.Models;
public class Availability public class Availability
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required] public string? AvailabilityDate { get; set; } [Required] public DateOnly AvailabilityDate { get; set; }
[Required] public DateOnly DeliveryDate { get; set; } [Required] public DateOnly DeliveryDate { get; set; }
[Required] public DateOnly ExpirationDate { get; set; } [Required] public DateOnly ExpirationDate { get; set; }
[Required] public DateOnly RenewallDate { get; set; } [Required] public DateOnly RenewallDate { get; set; }
public List<StaffAvailability>? StaffAvailabilities { get; set; }
} }

12
PyroFetes/Models/City.cs Normal file
View File

@@ -0,0 +1,12 @@
using System.ComponentModel.DataAnnotations;
namespace PyroFetes.Models;
public class City
{
[Key] public int Id { get; set; }
[Required, MaxLength(100)] public string? Name { get; set; }
[Required] public int ZipCode { get; set; }
public List<Show>? Shows { get; set; }
}

View File

@@ -5,7 +5,7 @@ namespace PyroFetes.Models;
public class Classification public class Classification
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required] public string? Label { get; set; } [Required, MaxLength(100)] public string? Label { get; set; }
[Required] public List<Product>? Products { get; set; } public List<Product>? Products { get; set; }
} }

View File

@@ -5,6 +5,7 @@ namespace PyroFetes.Models;
public class Color public class Color
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required] public string? Label { get; set; } [Required, MaxLength(100)] public string? Label { get; set; }
public List<ProductColor>? ProductColors { get; set; }
} }

View File

@@ -5,9 +5,10 @@ namespace PyroFetes.Models;
public class Communication public class Communication
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required] public string? Calling { get; set; } [Required, MaxLength(100)] public string? Calling { get; set; }
[Required] public string? Email { get; set; } [Required, MaxLength(100)] public string? Email { get; set; }
[Required] public string? Meeting { get; set; } [Required, MaxLength(300)] public string? Meeting { get; set; }
//REL [Required] public int ContactId { get; set; }
public Contact? Contact { get; set; }
} }

View File

@@ -7,14 +7,17 @@ public class Contact
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required, MaxLength(100)] public string? LastName { get; set; } [Required, MaxLength(100)] public string? LastName { get; set; }
[Required, MaxLength(100)] public string? FirstName { get; set; } [Required, MaxLength(100)] public string? FirstName { get; set; }
[Required] public string? Email { get; set; } [Required, MaxLength(100)] public string? Email { get; set; }
[Required] public string? PhoneNumber { get; set; } [Required, MaxLength(30)] public string? PhoneNumber { get; set; }
[Required] public string? Address { get; set; } [Required, MaxLength(100)] public string? Address { get; set; }
[Required] public string? ZipCode { get; set; } [Required] public int ZipCode { get; set; }
[Required] public string? City { get; set; } [Required, MaxLength(100)] public string? City { get; set; }
[Required] public string? Role { get; set; } [Required, MaxLength(100)] public string? Role { get; set; }
//RELATIONS DE CON LA public Customer? Customer { get; set; }
public int CommunicationId { get; set; } [Required] public int CustomerId { get; set; }
public Communication? Communication { get; set; }
public List<Communication>? Communications { get; set; }
public List<StaffContact>? StaffContacts { get; set; }
public List<ContactServiceProvider>? ContactServiceProviders { get; set; }
} }

View File

@@ -0,0 +1,14 @@
using System.ComponentModel.DataAnnotations;
using Microsoft.EntityFrameworkCore;
namespace PyroFetes.Models;
[PrimaryKey(nameof(ContactId), nameof(ServiceProviderId))]
public class ContactServiceProvider
{
[Required] public int ContactId { get; set; }
[Required] public int ServiceProviderId { get; set; }
public Contact? Contact { get; set; }
public ServiceProvider? ServiceProvider { get; set; }
}

View File

@@ -0,0 +1,15 @@
using System.ComponentModel.DataAnnotations;
using Microsoft.EntityFrameworkCore;
namespace PyroFetes.Models;
[PrimaryKey(nameof(ShowId), nameof(ServiceProviderId))]
public class Contract
{
[Required] public int ShowId { get; set; }
[Required] public int ServiceProviderId { get; set; }
[Required] public string? TermsAndConditions { get; set; }
public Show? Show { get; set; }
public ServiceProvider? ServiceProvider { get; set; }
}

View File

@@ -5,12 +5,12 @@ namespace PyroFetes.Models;
public class Customer public class Customer
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required] public string? Note { get; set; } [Required, MaxLength(200)] public string? Note { get; set; }
//Les relations //Relations
public int CustomerTypeId { get; set; } [Required] public int CustomerTypeId { get; set; }
public CustomerType? CustomerType { get; set; } public CustomerType? CustomerType { get; set; }
public int ContactId { get; set; } public List<Contact>? Contacts { get; set; }
public Contact? Contact { get; set; } public List<Quotation>? Quotations { get; set; }
} }

View File

@@ -1,13 +0,0 @@
using System.ComponentModel.DataAnnotations;
using Microsoft.EntityFrameworkCore;
namespace PyroFetes.Models;
[PrimaryKey(nameof(ContactId), nameof(CustomerId))]
public class CustomerContact
{
public int CustomerId { get; set; }
public Customer? Customer { get; set; }
public int ContactId { get; set; }
public Contact? Contact { get; set; }
}

View File

@@ -5,7 +5,7 @@ namespace PyroFetes.Models;
public class CustomerType public class CustomerType
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required] public decimal Price { get; set; } [Required, MaxLength(100)] public string? Label { get; set; }
public List<Customer>? Customers { get; set; } public List<Customer>? Customers { get; set; }
} }

View File

@@ -5,7 +5,7 @@ namespace PyroFetes.Models;
public class Deliverer public class Deliverer
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required] public string? Transporter { get; set; } [Required, MaxLength(100)] public string? Transporter { get; set; }
public List<DeliveryNote>? DeliveryNotes { get; set; } public List<DeliveryNote>? DeliveryNotes { get; set; }
} }

View File

@@ -5,11 +5,12 @@ namespace PyroFetes.Models;
public class DeliveryNote public class DeliveryNote
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required] public string? TrackingNumber { get; set; } [Required, MaxLength(100)] public string? TrackingNumber { get; set; }
public int DelivererId { get; set; } public int DelivererId { get; set; }
[Required] public DateOnly EstimateDeliveryDate { get; set; } [Required] public DateOnly EstimateDeliveryDate { get; set; }
[Required] public DateOnly ExpeditionDate { get; set; } [Required] public DateOnly ExpeditionDate { get; set; }
[Required] public DateOnly RealDeliveryDate { get; set; } [Required] public DateOnly RealDeliveryDate { get; set; }
public Deliverer? Deliverer { get; set; } public Deliverer? Deliverer { get; set; }
public List<ProductDelivery>? ProductDeliveries { get; set; }
} }

View File

@@ -5,5 +5,7 @@ namespace PyroFetes.Models;
public class Effect public class Effect
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required] public string? Label { get; set; } [Required, MaxLength(200)] public string? Label { get; set; }
public List<ProductEffect>? ProductEffects { get; set; }
} }

View File

@@ -4,6 +4,9 @@ namespace PyroFetes.Models;
public class ExperienceLevel public class ExperienceLevel
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required] public string? Label { get; set; } [Required, MaxLength(100)] public string? Label { get; set; }
public Staff? Staff { get; set; }
[Required] public int StaffId { get; set; }
} }

View File

@@ -5,6 +5,8 @@ namespace PyroFetes.Models;
public class HistoryOfApproval public class HistoryOfApproval
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required] public DateOnly ExpirationDate { get; set; }
[Required] public DateOnly DeliveryDate { get; set; } [Required] public DateOnly DeliveryDate { get; set; }
[Required] public DateOnly ExpirationDate { get; set; }
public List<StaffHistoryOfApproval>? StaffHistoryOfApprovals { get; set; }
} }

View File

@@ -9,5 +9,8 @@ public class Material
[Required] public int Quantity {get; set;} [Required] public int Quantity {get; set;}
[Required] public int WarehouseId {get; set;} [Required] public int WarehouseId {get; set;}
[Required] public Warehouse? Warehouse {get; set;} public Warehouse? Warehouse {get; set;}
public List<ShowMaterial>? ShowMaterials {get; set;}
public List<MaterialWarehouse>? MaterialWarehouses {get; set;}
} }

View File

@@ -0,0 +1,14 @@
using System.ComponentModel.DataAnnotations;
using Microsoft.EntityFrameworkCore;
namespace PyroFetes.Models;
[PrimaryKey(nameof(MaterialId), nameof(WarehouseId))]
public class MaterialWarehouse
{
[Required] public int MaterialId { get; set; }
[Required] public int WarehouseId { get; set; }
public Material? Material { get; set; }
public Warehouse? Warehouse { get; set; }
}

View File

@@ -10,12 +10,10 @@ public class Movement
[Required] public DateTime Arrival {get; set;} [Required] public DateTime Arrival {get; set;}
[Required] public int Quantity {get; set;} [Required] public int Quantity {get; set;}
[Required] public int ProductId {get; set;} public List<Product>? Products { get; set; }
[Required] public Product? Product {get; set;}
public int? SourceWarehouseId {get; set;}
[Required] public int? SourceWarehouseId {get; set;} public Warehouse? SourceWarehouse {get; set;}
[Required] public Warehouse? SourceWarehouse {get; set;} public int? DestinationWarehouseId {get; set;}
public Warehouse? DestinationWarehouse {get; set;}
[Required] public int? DestinationWarehouseId {get; set;}
[Required] public Warehouse? DestinationWarehouse {get; set;}
} }

View File

@@ -1,4 +1,5 @@
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.Runtime.CompilerServices;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace PyroFetes.Models; namespace PyroFetes.Models;

View File

@@ -14,19 +14,29 @@ namespace PyroFetes.Models
[Required] public decimal Nec { get; set; } [Required] public decimal Nec { get; set; }
[Required] public decimal SellingPrice { get; set; } [Required] public decimal SellingPrice { get; set; }
[Required] public string? Image { get; set; } [Required] public string? Image { get; set; }
[Required] public string? Link { get; set; } [Required, MaxLength(200)] public string? Link { get; set; }
[Required] public int MinimalQuantity { get; set; } [Required] public int MinimalQuantity { get; set; }
// Relations // Relations
[Required] public int ClassificationId { get; set; } [Required] public int ClassificationId { get; set; }
[Required] public Classification? Classification { get; set; } public Classification? Classification { get; set; }
[Required] public int ProductCategoryId { get; set; } [Required] public int ProductCategoryId { get; set; }
[Required] public ProductCategory? ProductCategory { get; set; } public ProductCategory? ProductCategory { get; set; }
[Required] public List<Brand>? Brands { get; set; } [Required] public int MovementId {get; set;}
public Movement? Movement {get; set;}
public List<ProductDelivery>? ProductDeliveries { get; set; }
public List<Brand>? Brands { get; set; }
public List<ProductEffect>? ProductEffects { get; set; }
public List<ProductColor>? ProductColors { get; set; }
public List<PurchaseProduct>? PurchaseProducts { get; set; }
public List<Price>? Prices { get; set; }
public List<QuotationProduct>? QuotationProducts { get; set; }
public List<WarehouseProduct>? WarehouseProducts { get; set; }
public List<ProductTimecode>? ProductTimecodes { get; set; }
[Required] public List<Movement>? Movements { get; set; }
} }
} }

View File

@@ -5,7 +5,7 @@ namespace PyroFetes.Models;
public class ProductCategory public class ProductCategory
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required] public string? Label { get; set; } [Required, MaxLength(100)] public string? Label { get; set; }
[Required] public List<Product>? Products { get; set; } public List<Product>? Products { get; set; }
} }

View File

@@ -6,9 +6,9 @@ namespace PyroFetes.Models;
[PrimaryKey(nameof(ProductId), nameof(ColorId))] [PrimaryKey(nameof(ProductId), nameof(ColorId))]
public class ProductColor public class ProductColor
{ {
[Required] public Product? Product { get; set; } public Product? Product { get; set; }
[Required] public int ProductId { get; set; } [Required] public int ProductId { get; set; }
[Required] public Color? Color { get; set; } public Color? Color { get; set; }
[Required] public int ColorId { get; set; } [Required] public int ColorId { get; set; }
} }

View File

@@ -12,5 +12,4 @@ public class ProductDelivery
public Product? Product { get; set; } public Product? Product { get; set; }
public DeliveryNote? DeliveryNote { get; set; } public DeliveryNote? DeliveryNote { get; set; }
} }

View File

@@ -9,7 +9,7 @@ public class ProductEffect
[Required] public Product? Product { get; set; } [Required] public Product? Product { get; set; }
[Required] public int ProductId { get; set; } [Required] public int ProductId { get; set; }
[Required] public Effect? Effect { get; set; } public Effect? Effect { get; set; }
[Required] public int EffectId { get; set; } [Required] public int EffectId { get; set; }
} }

View File

@@ -0,0 +1,17 @@
using System.ComponentModel.DataAnnotations;
using Microsoft.EntityFrameworkCore;
namespace PyroFetes.Models;
[PrimaryKey(nameof(ProductId), nameof(ShowId))]
public class ProductTimecode
{
public Product? Product { get; set; }
[Required] public int ProductId { get; set; }
public Show? Show { get; set; }
[Required] public int ShowId { get; set; }
[Required] public decimal Start { get; set; }
[Required] public decimal End { get; set; }
}

View File

@@ -6,7 +6,7 @@ namespace PyroFetes.Models;
public class ProviderContact public class ProviderContact
{ {
public int ProviderId { get; set; } public int ProviderId { get; set; }
public Provider? Provider { get; set; } public ServiceProvider? Provider { get; set; }
public int ContactId { get; set; } public int ContactId { get; set; }
public Contact? Contact { get; set; } public Contact? Contact { get; set; }
} }

View File

@@ -5,5 +5,7 @@ namespace PyroFetes.Models;
public class ProviderType public class ProviderType
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required] public string? Label { get; set; } [Required, MaxLength(100)] public string? Label { get; set; }
public List<ServiceProvider>? ServiceProviders { get; set; }
} }

View File

@@ -5,5 +5,7 @@ namespace PyroFetes.Models;
public class PurchaseOrder public class PurchaseOrder
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required] public string? PurchaseConditions { get; set; } [Required, MaxLength(300)] public string? PurchaseConditions { get; set; }
public List<PurchaseProduct>? PurchaseProducts { get; set; }
} }

View File

@@ -5,6 +5,11 @@ namespace PyroFetes.Models;
public class Quotation public class Quotation
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required] public string? Message { get; set; } [Required, MaxLength(200)] public string? Message { get; set; }
[Required] public string? ConditionsSale { get; set; } [Required, MaxLength(300)] public string? ConditionsSale { get; set; }
[Required] public int CustomerId { get; set; }
public Customer? Customer { get; set; }
public List<QuotationProduct>? QuotationProducts { get; set; }
} }

View File

@@ -2,13 +2,15 @@ using System.ComponentModel.DataAnnotations;
namespace PyroFetes.Models; namespace PyroFetes.Models;
public class Provider public class ServiceProvider
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required] public decimal Price { get; set; } [Required] public decimal Price { get; set; }
//Relations //Relations
[Required] public int ProviderTypeId { get; set; }
public int ProviderId { get; set; }
public ProviderType? ProviderType { get; set; } public ProviderType? ProviderType { get; set; }
public List<Contract>? Contracts { get; set; }
public List<ContactServiceProvider>? ContactServiceProviders { get; set; }
} }

View File

@@ -5,16 +5,21 @@ namespace PyroFetes.Models;
public class Show public class Show
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required] public string? Name { get; set; } [Required, MaxLength(100)] public string? Name { get; set; }
[Required, MaxLength(120)] public string? Place { get; set; } [Required, MaxLength(120)] public string? Place { get; set; }
[MaxLength(500)] public string? Description { get; set; } [MaxLength(500)] public string? Description { get; set; }
public DateOnly? Date { get; set; }
// Lien (chemin/URL/nom de fichier) vers le plan dimplémentation pyrotechnique // Link (path/URL/file name) to the pyrotechnic implementation plan
[Required, MaxLength(500)] [Required, MaxLength(500)] public string? PyrotechnicImplementationPlan { get; set; }
public string? PyrotechnicImplementationPlan { get; set; }
[Required] public int CityId { get; set; }
public DateTime? Date { get; set; } public City? City { get; set; }
public ICollection<Staff>? Staff { get; set; }
public ICollection<Truck>? Trucks { get; set; } public List<ShowStaff>? ShowStaffs { get; set; }
public ICollection<SoundTimecode>? SoundCues { get; set; } public List<ShowTruck>? ShowTrucks { get; set; }
public List<SoundTimecode>? SoundTimecodes { get; set; }
public List<ProductTimecode>? ProductTimecodes { get; set; }
public List<Contract>? Contracts { get; set; }
public List<ShowMaterial>? ShowMaterials { get; set; }
} }

View File

@@ -0,0 +1,15 @@
using System.ComponentModel.DataAnnotations;
using Microsoft.EntityFrameworkCore;
namespace PyroFetes.Models;
[PrimaryKey(nameof(ShowId), nameof(MaterialId))]
public class ShowMaterial
{
[Required] public Show? Show { get; set; }
[Required] public int ShowId { get; set; }
public Material? Material { get; set; }
[Required] public int MaterialId { get; set; }
}

View File

@@ -0,0 +1,9 @@
using System.ComponentModel.DataAnnotations;
namespace PyroFetes.Models;
public class ShowServiceProvider
{
[Key] public int Id { get; set; }
}

View File

@@ -0,0 +1,14 @@
using System.ComponentModel.DataAnnotations;
using Microsoft.EntityFrameworkCore;
namespace PyroFetes.Models;
[PrimaryKey(nameof(StaffId), nameof(ShowId))]
public class ShowStaff
{
public Staff? Staff { get; set; }
[Required] public int StaffId { get; set; }
public Show? Show { get; set; }
[Required] public int ShowId { get; set; }
}

View File

@@ -0,0 +1,14 @@
using System.ComponentModel.DataAnnotations;
using Microsoft.EntityFrameworkCore;
namespace PyroFetes.Models;
[PrimaryKey(nameof(ShowId), nameof(TruckId))]
public class ShowTruck
{
public Show? Show { get; set; }
[Required] public int ShowId { get; set; }
public Truck? Truck { get; set; }
[Required] public int TruckId { get; set; }
}

View File

@@ -12,7 +12,9 @@ public class Sound
[Required, MaxLength(40)] public string? Kind { get; set; } [Required, MaxLength(40)] public string? Kind { get; set; }
[Required, MaxLength(40)] public string? Format { get; set; } [Required, MaxLength(40)] public string? Format { get; set; }
public DateTime? CreationDate { get; set; } public DateTime? CreationDate { get; set; }
[Required] public int SoundCategoryId { get; set; } [Required] public int SoundCategoryId { get; set; }
public SoundCategory? Category { get; set; } public SoundCategory? SoundCategory { get; set; }
public ICollection<SoundTimecode>? ShowPlacements { get; set; }
public List<SoundTimecode>? SoundTimecodes { get; set; }
} }

View File

@@ -5,6 +5,7 @@ namespace PyroFetes.Models;
public class SoundCategory public class SoundCategory
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required, MaxLength(60)] public string Name { get; set; } = null!; [Required, MaxLength(100)] public string Name { get; set; } = null!;
public ICollection<Sound>? Sounds { get; set; }
public List<Sound>? Sounds { get; set; }
} }

View File

@@ -1,14 +1,16 @@
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Microsoft.EntityFrameworkCore;
namespace PyroFetes.Models; namespace PyroFetes.Models;
[PrimaryKey(nameof(ShowId), nameof(SoundId))]
public class SoundTimecode public class SoundTimecode
{ {
[Key] public int Id { get; set; }
[Required] public int ShowId { get; set; } [Required] public int ShowId { get; set; }
public Show? Show { get; set; } public Show? Show { get; set; }
[Required] public int SoundId { get; set; } [Required] public int SoundId { get; set; }
public Sound? Sound { get; set; } public Sound? Sound { get; set; }
[Required, Range(0, int.MaxValue)] public int Start { get; set; }
[Required, Range(0, int.MaxValue)] public int End { get; set; } [Required] public decimal Start { get; set; }
[Required] public decimal End { get; set; }
} }

View File

@@ -9,7 +9,12 @@ public class Staff
[Required, MaxLength(60)] public string LastName { get; set; } = null!; [Required, MaxLength(60)] public string LastName { get; set; } = null!;
[Required, MaxLength(100)] public string? Profession { get; set; } [Required, MaxLength(100)] public string? Profession { get; set; }
[Required, MaxLength(120)] public string? Email { get; set; } [Required, MaxLength(120)] public string? Email { get; set; }
[Required] public string? F4T2NumberApproval { get; set; } [Required, MaxLength(100)] public string? F4T2NumberApproval { get; set; }
[Required] public DateOnly F4T2ExpirationDate { get; set; } [Required] public DateOnly F4T2ExpirationDate { get; set; }
public ICollection<Show>? Shows { get; set; }
public List<ShowStaff>? ShowStaffs { get; set; }
public List<ExperienceLevel>? ExperienceLevels { get; set; }
public List<StaffAvailability>? StaffAvailabilities { get; set; }
public List<StaffHistoryOfApproval>? StaffHistoryOfApprovals { get; set; }
public List<StaffContact>? StaffContacts { get; set; }
} }

View File

@@ -1,3 +1,4 @@
using System.ComponentModel.DataAnnotations;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace PyroFetes.Models; namespace PyroFetes.Models;
@@ -5,8 +6,8 @@ namespace PyroFetes.Models;
[PrimaryKey(nameof(ContactId), nameof(StaffId))] [PrimaryKey(nameof(ContactId), nameof(StaffId))]
public class StaffContact public class StaffContact
{ {
public int StaffId { get; set; } [Required] public int StaffId { get; set; }
public Staff? Staff { get; set; } public Staff? Staff { get; set; }
public int ContactId { get; set; } [Required] public int ContactId { get; set; }
public Contact? Contact { get; set; } public Contact? Contact { get; set; }
} }

View File

@@ -6,10 +6,12 @@ public class Supplier
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required, MaxLength(100)] public string? Name { get; set; } [Required, MaxLength(100)] public string? Name { get; set; }
[Required] public string? Email { get; set; } [Required, MaxLength(100)] public string? Email { get; set; }
[Required] public string? Phone { get; set; } [Required, MaxLength(30)] public string? Phone { get; set; }
[Required] public string? Address { get; set; } [Required, MaxLength(100)] public string? Address { get; set; }
[Required] public int ZipCode { get; set; } [Required] public int ZipCode { get; set; }
[Required] public string? City { get; set; } [Required, MaxLength(100)] public string? City { get; set; }
[Required] public int DeliveryDelay { get; set; } [Required] public int DeliveryDelay { get; set; }
public List<Price>? Prices { get; set; }
} }

View File

@@ -6,9 +6,9 @@ public class Truck
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required, MaxLength(40)] public string Type { get; set; } = null!; [Required, MaxLength(40)] public string Type { get; set; } = null!;
[Range(0, double.MaxValue)] public double? MaxExplosiveCapacity { get; set; } [Required] public double? MaxExplosiveCapacity { get; set; }
[Required, MaxLength(80)] public string? Sizes { get; set; } [Required, MaxLength(80)] public string? Sizes { get; set; }
[Required, MaxLength(40)] public string? Status { get; set; } [Required, MaxLength(40)] public string? Status { get; set; }
[Required] public int ShowId { get; set; }
public Show? Show { get; set; } public List<ShowTruck>? ShowTrucks { get; set; }
} }

View File

@@ -6,8 +6,8 @@ public class User
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required, MaxLength(100)] public string? Name { get; set; } [Required, MaxLength(100)] public string? Name { get; set; }
[Required, MinLength(12)] public string? Password { get; set; } [Required, MinLength(12), MaxLength(50)] public string? Password { get; set; }
[Required] public string? Salt { get; set; } [Required, MaxLength(100)] public string? Salt { get; set; }
[Required] public string? Email { get; set; } [Required, MaxLength(100)] public string? Email { get; set; }
[Required] public string? Fonction { get; set; } [Required, MaxLength(100)] public string? Fonction { get; set; }
} }

View File

@@ -9,14 +9,14 @@ public class Warehouse
[Required] public int MaxWeight {get; set;} [Required] public int MaxWeight {get; set;}
[Required] public int Current {get; set;} [Required] public int Current {get; set;}
[Required] public int MinWeight {get; set;} [Required] public int MinWeight {get; set;}
[Required] public string? Address { get; set; } [Required, MaxLength(100)] public string? Address { get; set; }
[Required] public int ZipCode { get; set; } [Required] public int ZipCode { get; set; }
[Required] public string? City { get; set; } [Required, MaxLength(100)] public string? City { get; set; }
public List<WarehouseProduct>? WarehouseProducts { get; set; }
[Required] public List<Material>? Materials {get; set;} public List<MaterialWarehouse>? MaterialWarehouses {get; set;}
public List<Movement>? MovementsSource { get; set; }
[Required] public List<Movement>? MovementsSource { get; set; } public List<Movement>? MovementsDestination { get; set; }
[Required] public List<Movement>? MovementsDestination { get; set; }
} }

View File

@@ -1,14 +1,15 @@
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Microsoft.EntityFrameworkCore;
namespace PyroFetes.Models; namespace PyroFetes.Models;
[PrimaryKey(nameof(ProductId), nameof(WarehouseId))]
public class WarehouseProduct public class WarehouseProduct
{ {
[Key] public int Quantity { get; set; }
[Required] public int ProductId { get; set; } [Required] public int ProductId { get; set; }
[Required] public Product? Product { get; set; } public Product? Product { get; set; }
[Required] public int WarehouseId { get; set; } [Required] public int WarehouseId { get; set; }
[Required] public Warehouse? Warehouse { get; set; } public Warehouse? Warehouse { get; set; }
[Required] public int Quantity { get; set; }
} }

View File

@@ -1,5 +1,6 @@
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using PyroFetes.Models; using PyroFetes.Models;
using ServiceProvider = PyroFetes.Models.ServiceProvider;
namespace PyroFetes; namespace PyroFetes;
@@ -13,7 +14,6 @@ public class PyroFetesDbContext : DbContext
public DbSet<Communication> Communications { get; set; } public DbSet<Communication> Communications { get; set; }
public DbSet<Contact> Contacts { get; set; } public DbSet<Contact> Contacts { get; set; }
public DbSet<Customer> Customers { get; set; } public DbSet<Customer> Customers { get; set; }
public DbSet<CustomerContact> CustomerContacts { get; set; }
public DbSet<CustomerType> CustomerTypes { get; set; } public DbSet<CustomerType> CustomerTypes { get; set; }
public DbSet<Deliverer> Deliverers { get; set; } public DbSet<Deliverer> Deliverers { get; set; }
public DbSet<DeliveryNote> DeliveryNotes { get; set; } public DbSet<DeliveryNote> DeliveryNotes { get; set; }
@@ -28,7 +28,7 @@ public class PyroFetesDbContext : DbContext
public DbSet<ProductColor> ProductColors { get; set; } public DbSet<ProductColor> ProductColors { get; set; }
public DbSet<ProductDelivery> ProductDeliveries { get; set; } public DbSet<ProductDelivery> ProductDeliveries { get; set; }
public DbSet<ProductEffect> ProductEffects { get; set; } public DbSet<ProductEffect> ProductEffects { get; set; }
public DbSet<Provider> Providers { get; set; } public DbSet<ServiceProvider> Providers { get; set; }
public DbSet<ProviderContact> ProviderContacts { get; set; } public DbSet<ProviderContact> ProviderContacts { get; set; }
public DbSet<ProviderType> ProviderTypes { get; set; } public DbSet<ProviderType> ProviderTypes { get; set; }
public DbSet<PurchaseOrder> PurchaseOrders { get; set; } public DbSet<PurchaseOrder> PurchaseOrders { get; set; }
@@ -57,7 +57,7 @@ public class PyroFetesDbContext : DbContext
"Server=romaric-thibault.fr;" + "Server=romaric-thibault.fr;" +
"Database=PyroFetes;" + "Database=PyroFetes;" +
"User Id=pyrofetes;" + "User Id=pyrofetes;" +
"Password=Onto9-Cage-Afflicted;" + "Password=Crablike8-Fringe-Swimmable;" +
"TrustServerCertificate=true;"; "TrustServerCertificate=true;";
optionsBuilder.UseSqlServer(connectionString); optionsBuilder.UseSqlServer(connectionString);
@@ -66,5 +66,28 @@ public class PyroFetesDbContext : DbContext
// Models customization // Models customization
protected override void OnModelCreating(ModelBuilder modelBuilder) protected override void OnModelCreating(ModelBuilder modelBuilder)
{ {
modelBuilder.Entity<Movement>()
.HasOne(m => m.SourceWarehouse)
.WithMany(w => w.MovementsSource)
.HasForeignKey(m => m.SourceWarehouseId)
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<Movement>()
.HasOne(m => m.DestinationWarehouse)
.WithMany(w => w.MovementsDestination)
.HasForeignKey(m => m.DestinationWarehouseId)
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<MaterialWarehouse>()
.HasOne(mw => mw.Material)
.WithMany(m => m.MaterialWarehouses)
.HasForeignKey(mw => mw.MaterialId)
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<MaterialWarehouse>()
.HasOne(mw => mw.Warehouse)
.WithMany(w => w.MaterialWarehouses)
.HasForeignKey(mw => mw.WarehouseId)
.OnDelete(DeleteBehavior.Restrict);
} }
} }