models + fix DTO

This commit is contained in:
2025-10-02 17:21:25 +02:00
parent 29b9520193
commit 52066ccdc2
14 changed files with 168 additions and 23 deletions

27
PF3/Models/Show.cs Normal file
View File

@@ -0,0 +1,27 @@
using System.ComponentModel.DataAnnotations;
namespace PF3.Models;
public class Show
{
[Key] public int Id { get; set; }
[Required]
public string? Name { get; set; }
[Required, MaxLength(120)]
public string? Place { get; set; }
[MaxLength(500)]
public string? Description { get; set; }
// Lien (chemin/URL/nom de fichier) vers le plan dimplémentation pyrotechnique
[Required, MaxLength(500)]
public string? PyrotechnicImplementationPlan { get; set; }
public DateTime? Date { get; set; }
public ICollection<Staff> Staff { get; set; } = new List<Staff>();
public ICollection<Truck> Trucks { get; set; } = new List<Truck>();
public ICollection<SoundTimecode> SoundCues { get; set; } = new List<SoundTimecode>();
}

35
PF3/Models/Sound.cs Normal file
View File

@@ -0,0 +1,35 @@
using System.ComponentModel.DataAnnotations;
using PF3.Models;
namespace PF3.Models;
public class Sound
{
[Key] public int Id { get; set; }
[Required, MaxLength(120)]
public string Name { get; set; } = null!;
[Required, MaxLength(60)]
public string? Type { get; set; }
[Required, MaxLength(120)]
public string? Artist { get; set; }
[Required, Range(0, int.MaxValue)]
public int? Duration { get; set; }
[Required, MaxLength(40)]
public string? Kind { get; set; }
[Required, MaxLength(40)]
public string? Format { get; set; }
public DateTime? CreationDate { get; set; }
[Required]
public int SoundCategoryId { get; set; }
public SoundCategory? Category { get; set; }
public ICollection<SoundTimecode> ShowPlacements { get; set; } = new List<SoundTimecode>();
}

View File

@@ -0,0 +1,13 @@
using System.ComponentModel.DataAnnotations;
namespace PF3.Models;
public class SoundCategory
{
[Key] public int Id { get; set; }
[Required, MaxLength(60)]
public string Name { get; set; } = null!;
public ICollection<Sound> Sounds { get; set; } = new List<Sound>();
}

View File

@@ -0,0 +1,22 @@
using System.ComponentModel.DataAnnotations;
namespace PF3.Models;
public class SoundTimecode
{
[Key] public int Id { get; set; }
[Required]
public int ShowId { get; set; }
public Show? Show { get; set; }
[Required]
public int SoundId { 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; }
}

22
PF3/Models/Staff.cs Normal file
View File

@@ -0,0 +1,22 @@
using System.ComponentModel.DataAnnotations;
namespace PF3.Models;
public class Staff
{
[Key] public int Id { get; set; }
[Required, MaxLength(60)]
public string FirstName { get; set; } = null!;
[Required, MaxLength(60)]
public string LastName { get; set; } = null!;
[Required, MaxLength(100)]
public string? Profession { get; set; }
[Required, MaxLength(120)]
public string? Email { get; set; }
public ICollection<Show> Shows { get; set; } = new List<Show>();
}

24
PF3/Models/Truck.cs Normal file
View File

@@ -0,0 +1,24 @@
using System.ComponentModel.DataAnnotations;
namespace PF3.Models;
public class Truck
{
[Key] public int Id { get; set; }
[Required, MaxLength(40)]
public string Type { get; set; } = null!;
[Range(0, double.MaxValue)]
public double? MaxExplosiveCapacity { get; set; }
[Required, MaxLength(80)]
public string? Sizes { get; set; }
[Required, MaxLength(40)]
public string? Statut { get; set; }
[Required]
public int ShowId { get; set; }
public Show? Show { get; set; }
}