Repository navigation
Expand file tree
/
Copy pathSoftwareLicense.cs
More file actions
40 lines (32 loc) · 1.48 KB
/
Copy pathSoftwareLicense.cs
File metadata and controls
40 lines (32 loc) · 1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
namespace TradeOffStackAPI.Models;
using System.Text.Json.Serialization;
/// <summary>
/// Représente une licence logicielle gérée par l'entreprise.
/// </summary>
public class SoftwareLicense
{
/// <summary>Identifiant unique de la licence.</summary>
[JsonPropertyName("id")]
public Guid Id { get; set; }
/// <summary>Nom du logiciel (ex: Microsoft Office 365).</summary>
[JsonPropertyName("name")]
public string Name { get; set; } = string.Empty;
/// <summary>Clé de licence (peut être vide pour les abonnements basés sur le cloud).</summary>
[JsonPropertyName("license_key")]
public string LicenseKey { get; set; } = string.Empty;
/// <summary>Nombre total de postes/licences achetés.</summary>
[JsonPropertyName("total_seats")]
public int TotalSeats { get; set; }
/// <summary>Date d'expiration de la licence ou de l'abonnement.</summary>
[JsonPropertyName("expiration_date")]
public DateTime? ExpirationDate { get; set; }
/// <summary>Prix d'achat global ou annuel.</summary>
[JsonPropertyName("price")]
public decimal Price { get; set; }
/// <summary>Date d'enregistrement dans le système.</summary>
[JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
/// <summary>Historique des assignations de cette licence à des équipements.</summary>
[JsonIgnore]
public ICollection<EquipmentLicense> EquipmentLicenses { get; set; } = new List<EquipmentLicense>();
}