Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
2025-10-16 15:52:52 +02:00
36 changed files with 647 additions and 242 deletions

View File

@@ -1,7 +1,9 @@
namespace API.DTO.Brand.Request; namespace PyroFetes.DTO.Brand.Request
public class CreateBrandDto
{ {
public string? Name { get; set; } // DTO pour créer une nouvelle marque
public class CreateBrandDto
{
// Nom de la marque
public string? Name { get; set; }
}
} }

View File

@@ -1,8 +1,12 @@
namespace API.DTO.Brand.Request; namespace PyroFetes.DTO.Brand.Request
public class UpdateBrandDto
{ {
public int Id { get; set; } // DTO pour mettre à jour une marque existante
public string? Name { get; set; } public class UpdateBrandDto
{
// Identifiant de la marque à mettre à jour
public int Id { get; set; }
// Nouveau nom de la marque
public string? Name { get; set; }
}
} }

View File

@@ -1,8 +1,12 @@
namespace API.DTO.Brand.Response; namespace API.DTO.Brand.Response
public class GetBrandDto
{ {
public int Id { get; set; } // DTO pour récupérer les informations d'une marque
public string? Name { get; set; } public class GetBrandDto
{
// Identifiant de la marque
public int Id { get; set; }
// Nom de la marque
public string? Name { get; set; }
}
} }

View File

@@ -1,7 +1,11 @@
namespace API.DTO.Classification.Request; // Définition de l'espace de noms pour les DTO liés à la création de classifications
namespace API.DTO.Classification.Request
public class CreateClassificationDto
{ {
public string? Label { get; set; } // DTO (Data Transfer Object) utilisé pour créer une nouvelle classification
public class CreateClassificationDto
{
// Propriété représentant le nom ou le label de la classification
// Le type "string?" signifie que cette valeur peut être null
public string? Label { get; set; }
}
} }

View File

@@ -1,8 +1,15 @@
namespace API.DTO.Classification.Request; // Définition de l'espace de noms pour les DTO liés à la mise à jour de classifications
namespace API.DTO.Classification.Request
public class UpdateClassificationDto
{ {
public int Id { get; set; } // DTO (Data Transfer Object) utilisé pour mettre à jour une classification existante
public string? Label { get; set; } public class UpdateClassificationDto
{
// Propriété représentant l'ID unique de la classification à mettre à jour
public int Id { get; set; }
// Propriété représentant le nouveau nom ou label de la classification
// Le type "string?" signifie que cette valeur peut être null
// Si null, le label ne sera pas modifié
public string? Label { get; set; }
}
} }

View File

@@ -1,8 +1,14 @@
namespace API.DTO.Classification.Response; // Définition de l'espace de noms pour les DTO utilisés dans les réponses liées aux classifications
namespace API.DTO.Classification.Response
public class GetClassificationDto
{ {
public int Id { get; set; } // DTO (Data Transfer Object) utilisé pour renvoyer les informations d'une classification
public string? Label { get; set; } public class GetClassificationDto
{
// Propriété représentant l'ID unique de la classification
public int Id { get; set; }
// Propriété représentant le nom ou label de la classification
// Le type "string?" signifie que cette valeur peut être null si la classification n'a pas de label
public string? Label { get; set; }
}
} }

View File

@@ -1,6 +1,11 @@
namespace API.DTO.Color.Request; // Définition de l'espace de noms pour les DTO utilisés dans les requêtes liées aux couleurs
namespace API.DTO.Color.Request
public class CreateColorDto
{ {
public string? Label { get; set; } // DTO utilisé pour créer une nouvelle couleur
public class CreateColorDto
{
// Propriété représentant le nom ou label de la couleur à créer
// Le type "string?" signifie que cette valeur peut être null si le label n'est pas fourni
public string? Label { get; set; }
}
} }

View File

@@ -1,7 +1,14 @@
namespace API.DTO.Color.Request; // Définition de l'espace de noms pour les DTO utilisés dans les requêtes liées aux couleurs
namespace API.DTO.Color.Request
public class UpdateColorDto
{ {
public int Id { get; set; } // DTO utilisé pour mettre à jour une couleur existante
public string? Label { get; set; } public class UpdateColorDto
{
// Identifiant unique de la couleur à mettre à jour
public int Id { get; set; }
// Nouveau nom ou label de la couleur
// Le type "string?" signifie que cette valeur peut être null si aucun changement n'est fourni
public string? Label { get; set; }
}
} }

View File

@@ -1,7 +1,14 @@
namespace API.DTO.Color.Response; // Définition de l'espace de noms pour les DTO utilisés dans les réponses liées aux couleurs
namespace API.DTO.Color.Response
public class GetColorDto
{ {
public int Id { get; set; } // DTO utilisé pour renvoyer les informations d'une couleur
public string? Label { get; set; } public class GetColorDto
{
// Identifiant unique de la couleur
public int Id { get; set; }
// Nom ou label de la couleur
// Le type "string?" signifie que cette valeur peut être null si le label n'est pas défini
public string? Label { get; set; }
}
} }

View File

@@ -1,6 +1,11 @@
namespace API.DTO.Effect.Request; // Définition de l'espace de noms pour les DTO utilisés dans les requêtes liées aux effets
namespace API.DTO.Effect.Request
public class CreateEffectDto
{ {
public string? Label { get; set; } // DTO utilisé pour créer un nouvel effet
public class CreateEffectDto
{
// Nom ou label de l'effet
// Le type "string?" signifie que cette valeur peut être null si aucun label n'est fourni
public string? Label { get; set; }
}
} }

View File

@@ -1,7 +1,14 @@
namespace API.DTO.Effect.Request; // Définition de l'espace de noms pour les DTO utilisés dans les requêtes liées aux effets
namespace API.DTO.Effect.Request
public class UpdateEffectDto
{ {
public int Id { get; set; } // DTO utilisé pour mettre à jour un effet existant
public string? Label { get; set; } public class UpdateEffectDto
{
// Identifiant unique de l'effet à mettre à jour
public int Id { get; set; }
// Nouveau nom ou label de l'effet
// Le type "string?" signifie que cette valeur peut être null si aucun label n'est fourni
public string? Label { get; set; }
}
} }

View File

@@ -1,7 +1,14 @@
namespace API.DTO.Effect.Response; // Définition de l'espace de noms pour les DTO utilisés dans les réponses liées aux effets
namespace API.DTO.Effect.Response
public class GetEffectDto
{ {
public int Id { get; set; } // DTO utilisé pour renvoyer les informations d'un effet
public string? Label { get; set; } public class GetEffectDto
{
// Identifiant unique de l'effet
public int Id { get; set; }
// Nom ou label de l'effet
// Le type "string?" signifie que cette valeur peut être null si aucune valeur n'est disponible
public string? Label { get; set; }
}
} }

View File

@@ -1,9 +1,17 @@
namespace API.DTO.Material.Request; // Définition de l'espace de noms pour les DTO utilisés dans les requêtes liées aux matériaux
namespace API.DTO.Material.Request
public class CreateMaterialDto
{ {
public string? Label { get; set; } // DTO utilisé pour créer un nouveau matériau
public int Quantity { get; set; } public class CreateMaterialDto
public int WarehouseId {get; set;} {
// Nom ou label du matériau
// Le type "string?" signifie que cette valeur peut être null si aucune valeur n'est fournie
public string? Label { get; set; }
// Quantité du matériau à créer
public int Quantity { get; set; }
// Identifiant de l'entrepôt dans lequel le matériau sera stocké
public int WarehouseId { get; set; }
}
} }

View File

@@ -1,10 +1,20 @@
namespace API.DTO.Material.Request; // Définition de l'espace de noms pour les DTO utilisés dans les requêtes liées aux matériaux
namespace API.DTO.Material.Request
public class UpdateMaterialDto
{ {
public int Id { get; set; } // DTO utilisé pour mettre à jour un matériau existant
public string? Label { get; set; } public class UpdateMaterialDto
public int Quantity { get; set; } {
public int WarehouseId {get; set;} // Identifiant unique du matériau à mettre à jour
public int Id { get; set; }
// Nom ou label du matériau
// Le type "string?" signifie que cette valeur peut être null si aucune valeur n'est fournie
public string? Label { get; set; }
// Quantité mise à jour du matériau
public int Quantity { get; set; }
// Identifiant de l'entrepôt associé au matériau
public int WarehouseId { get; set; }
}
} }

View File

@@ -1,10 +1,20 @@
namespace API.DTO.Material.Response; // Définition de l'espace de noms pour les DTO utilisés dans les réponses liées aux matériaux
namespace API.DTO.Material.Response
public class GetMaterialDto
{ {
public int Id { get; set; } // DTO utilisé pour renvoyer les informations d'un matériau
public string? Label { get; set; } public class GetMaterialDto
public int Quantity { get; set; } {
public int WarehouseId {get; set;} // Identifiant unique du matériau
public int Id { get; set; }
// Nom ou label du matériau
// Le type "string?" signifie que cette valeur peut être null si aucune valeur n'est définie
public string? Label { get; set; }
// Quantité disponible du matériau
public int Quantity { get; set; }
// Identifiant de l'entrepôt auquel le matériau est associé
public int WarehouseId { get; set; }
}
} }

View File

@@ -1,10 +1,19 @@
namespace API.DTO.Movement.Request; // Définition de l'espace de noms pour les DTO utilisés dans les requêtes liées aux mouvements
namespace API.DTO.Movement.Request
public class CreateMovementDto
{ {
public DateTime Date { get; set; } // DTO utilisé pour créer un nouveau mouvement
public DateTime Start {get; set;} public class CreateMovementDto
public DateTime Arrival {get; set;} {
public int Quantity {get; set;} // Date à laquelle le mouvement est enregistré
public DateTime Date { get; set; }
// Date et heure de début du mouvement
public DateTime Start { get; set; }
// Date et heure d'arrivée prévue du mouvement
public DateTime Arrival { get; set; }
// Quantité de matériaux ou objets impliqués dans le mouvement
public int Quantity { get; set; }
}
} }

View File

@@ -1,11 +1,22 @@
namespace API.DTO.Movement.Request; // Définition de l'espace de noms pour les DTO utilisés dans les requêtes liées aux mouvements
namespace API.DTO.Movement.Request
public class UpdateMovementDto
{ {
public int Id { get; set; } // DTO utilisé pour mettre à jour un mouvement existant
public DateTime Date { get; set; } public class UpdateMovementDto
public DateTime Start {get; set;} {
public DateTime Arrival {get; set;} // ID unique du mouvement à mettre à jour
public int Quantity {get; set;} public int Id { get; set; }
// Date à laquelle le mouvement est enregistré
public DateTime Date { get; set; }
// Date et heure de début du mouvement
public DateTime Start { get; set; }
// Date et heure d'arrivée prévue du mouvement
public DateTime Arrival { get; set; }
// Quantité de matériaux ou objets impliqués dans le mouvement
public int Quantity { get; set; }
}
} }

View File

@@ -1,11 +1,22 @@
namespace API.DTO.Movement.Response; // Définition de l'espace de noms pour les DTO utilisés dans les réponses liées aux mouvements
namespace API.DTO.Movement.Response
public class GetMovementDto
{ {
public int Id { get; set; } // DTO utilisé pour renvoyer les informations d'un mouvement
public DateTime Date { get; set; } public class GetMovementDto
public DateTime Start {get; set;} {
public DateTime Arrival {get; set;} // ID unique du mouvement
public int Quantity {get; set;} public int Id { get; set; }
// Date à laquelle le mouvement est enregistré
public DateTime Date { get; set; }
// Date et heure de début du mouvement
public DateTime Start { get; set; }
// Date et heure d'arrivée prévue du mouvement
public DateTime Arrival { get; set; }
// Quantité de matériaux ou objets impliqués dans le mouvement
public int Quantity { get; set; }
}
} }

View File

@@ -2,25 +2,49 @@
namespace PyroFetes.DTO.Product.Request namespace PyroFetes.DTO.Product.Request
{ {
// DTO utilisé lors de la création dun produit
public class CreateProductDto public class CreateProductDto
{ {
// Référence interne du produit
public int References { get; set; } public int References { get; set; }
// Nom du produit
public string? Name { get; set; } public string? Name { get; set; }
// Durée de leffet du produit
public decimal Duration { get; set; } public decimal Duration { get; set; }
// Calibre du produit
public decimal Caliber { get; set; } public decimal Caliber { get; set; }
// Numéro dhomologation
public int ApprovalNumber { get; set; } public int ApprovalNumber { get; set; }
// Poids du produit
public decimal Weight { get; set; } public decimal Weight { get; set; }
// Matière active (NEC)
public decimal Nec { get; set; } public decimal Nec { get; set; }
// Prix de vente du produit
public decimal SellingPrice { get; set; } public decimal SellingPrice { get; set; }
// Image associée au produit (URL ou chemin)
public string? Image { get; set; } public string? Image { get; set; }
// Lien vers une ressource externe (vidéo, fiche, etc.)
public string? Link { get; set; } public string? Link { get; set; }
public int ClassificationId { get; set;}
// Identifiant de la classification du produit
public int ClassificationId { get; set; }
// Identifiant de la catégorie du produit
public int ProductCategoryId { get; set; } public int ProductCategoryId { get; set; }
// Liste des fournisseurs liés au produit // Liste des fournisseurs liés au produit venant du DTO ProductSupplierPriceDto
public List<ProductSupplierPriceDto>? Suppliers { get; set; } public List<ProductSupplierPriceDto>? Suppliers { get; set; }
// Liste des entrepôts liés au produit // Liste des entrepôts liés au produit venant du DTO CreateProductWarehouseDto
public List<CreateProductWarehouseDto>? Warehouses { get; set; } public List<CreateProductWarehouseDto>? Warehouses { get; set; }
} }
} }

View File

@@ -2,26 +2,52 @@
namespace PyroFetes.DTO.Product.Request namespace PyroFetes.DTO.Product.Request
{ {
// DTO utilisé pour la mise à jour dun produit existant
public class UpdateProductDto public class UpdateProductDto
{ {
// Identifiant unique du produit à modifier
public int Id { get; set; } public int Id { get; set; }
// Référence interne du produit
public int References { get; set; } public int References { get; set; }
// Nom du produit
public string? Name { get; set; } public string? Name { get; set; }
// Durée de leffet du produit
public decimal Duration { get; set; } public decimal Duration { get; set; }
// Calibre du produit
public decimal Caliber { get; set; } public decimal Caliber { get; set; }
// Numéro dhomologation
public int ApprovalNumber { get; set; } public int ApprovalNumber { get; set; }
// Poids du produit
public decimal Weight { get; set; } public decimal Weight { get; set; }
// Matière active (NEC)
public decimal Nec { get; set; } public decimal Nec { get; set; }
// Prix de vente du produit
public decimal SellingPrice { get; set; } public decimal SellingPrice { get; set; }
// Image associée au produit (URL ou chemin)
public string? Image { get; set; } public string? Image { get; set; }
// Lien vers une ressource externe (fiche, vidéo, etc.)
public string? Link { get; set; } public string? Link { get; set; }
// Identifiant de la classification du produit
public int ClassificationId { get; set; } public int ClassificationId { get; set; }
// Identifiant de la catégorie du produit
public int ProductCategoryId { get; set; } public int ProductCategoryId { get; set; }
// Liste des fournisseurs associés // Liste des fournisseurs associés venant du DTO ProductSupplierPriceDto
public List<ProductSupplierPriceDto> Suppliers { get; set; } = new(); public List<ProductSupplierPriceDto> Suppliers { get; set; } = new();
// Liste des entrepôts associés // Liste des entrepôts associés venant du DTO UpdateProductWarehouseDto
public List<UpdateProductWarehouseDto> Warehouses { get; set; } = new(); public List<UpdateProductWarehouseDto> Warehouses { get; set; } = new();
} }
} }

View File

@@ -1,29 +1,54 @@
using PyroFetes.DTO.Product.Request; using PyroFetes.DTO.Product.Request;
using PyroFetes.DTO.Product.Request;
using PyroFetes.DTO.Product.Response; using PyroFetes.DTO.Product.Response;
namespace PyroFetes.DTO.Product.Response namespace PyroFetes.DTO.Product.Response
{ {
// DTO utilisé pour renvoyer les informations complètes dun produit
public class GetProductDto public class GetProductDto
{ {
// Identifiant unique du produit
public int Id { get; set; } public int Id { get; set; }
// Référence interne du produit
public int Reference { get; set; } public int Reference { get; set; }
// Nom du produit
public string? Name { get; set; } public string? Name { get; set; }
// Durée de leffet du produit
public decimal Duration { get; set; } public decimal Duration { get; set; }
// Calibre du produit
public decimal Caliber { get; set; } public decimal Caliber { get; set; }
// Numéro dhomologation
public int ApprovalNumber { get; set; } public int ApprovalNumber { get; set; }
// Poids du produit
public decimal Weight { get; set; } public decimal Weight { get; set; }
// Matière active (NEC)
public decimal Nec { get; set; } public decimal Nec { get; set; }
// Prix de vente du produit
public decimal SellingPrice { get; set; } public decimal SellingPrice { get; set; }
// Image du produit (URL ou chemin)
public string? Image { get; set; } public string? Image { get; set; }
// Lien externe vers plus dinformations (fiche, vidéo, etc.)
public string? Link { get; set; } public string? Link { get; set; }
// Identifiant de la classification du produit
public int ClassificationId { get; set; } public int ClassificationId { get; set; }
// Identifiant de la catégorie du produit
public int ProductCategoryId { get; set; } public int ProductCategoryId { get; set; }
// Fournisseurs liés // Fournisseurs liés venant du DTO ProductSupplierPriceDto
public List<ProductSupplierPriceDto> Suppliers { get; set; } = new(); public List<ProductSupplierPriceDto> Suppliers { get; set; } = new();
// Entrepôts liés // Entrepôts liés venant du DTO ProductWarehouseDto
public List<GetProductWarehouseDto> Warehouses { get; set; } = new(); public List<GetProductWarehouseDto> Warehouses { get; set; } = new();
} }
} }

View File

@@ -1,6 +1,9 @@
namespace API.DTO.ProductCategory.Request; namespace API.DTO.ProductCategory.Request
public class CreateProductCategoryDto
{ {
public string? Label { get; set; } // DTO pour créer une catégorie de produit
public class CreateProductCategoryDto
{
// Nom de la catégorie
public string? Label { get; set; }
}
} }

View File

@@ -1,7 +1,12 @@
namespace API.DTO.ProductCategory.Request; namespace API.DTO.ProductCategory.Request
public class UpdateProductCategoryDto
{ {
public int Id { get; set; } // DTO pour mettre à jour une catégorie de produit
public string? Label { get; set; } public class UpdateProductCategoryDto
{
// Identifiant de la catégorie
public int Id { get; set; }
// Nom de la catégorie
public string? Label { get; set; }
}
} }

View File

@@ -1,8 +1,12 @@
namespace API.DTO.ProductCategory.Response; namespace API.DTO.ProductCategory.Response
public class GetProductCategoryDto
{ {
public int Id { get; set; } // DTO pour récupérer une catégorie de produit
public string? Label { get; set; } public class GetProductCategoryDto
{
// Identifiant de la catégorie
public int Id { get; set; }
// Nom de la catégorie
public string? Label { get; set; }
}
} }

View File

@@ -1,11 +1,18 @@
namespace PyroFetes.DTO.Product.Response namespace PyroFetes.DTO.Product.Response
{ {
// DTO pour la lecture des fournisseurs liés à un produit // DTO utilisé pour renvoyer les informations dun fournisseur lié à un produit
public class GetProductSupplierDto public class GetProductSupplierDto
{ {
public int ProductId { get; set; } // Identifiant du produit concerné
public int SupplierId { get; set; } public int ProductId { get; set; }
public string SupplierName { get; set; } = string.Empty;
public decimal SellingPrice { get; set; } // Identifiant du fournisseur
} public int SupplierId { get; set; }
// Nom du fournisseur
public string SupplierName { get; set; } = string.Empty;
// Prix de vente du produit fourni par ce fournisseur
public decimal SellingPrice { get; set; }
}
} }

View File

@@ -1,17 +1,28 @@
namespace PyroFetes.DTO.Product.Request namespace PyroFetes.DTO.Product.Request
{ {
// DTO utilisé pour créer ou mettre à jour la relation Product <-> Warehouse // DTO utilisé lors de la création dune relation entre un produit et un entrepôt
public class CreateProductWarehouseDto public class CreateProductWarehouseDto
{ {
// Identifiant de l'entrepôt concerné
public int WarehouseId { get; set; } public int WarehouseId { get; set; }
// Identifiant du produit associé à cet entrepôt
public int ProductId { get; set; } public int ProductId { get; set; }
// Quantité du produit disponible dans cet entrepôt
public int Quantity { get; set; } public int Quantity { get; set; }
} }
// DTO utilisé lors de la mise à jour dune relation entre un produit et un entrepôt
public class UpdateProductWarehouseDto public class UpdateProductWarehouseDto
{ {
// Identifiant de l'entrepôt concerné
public int WarehouseId { get; set; } public int WarehouseId { get; set; }
// Identifiant du produit associé à cet entrepôt
public int ProductId { get; set; } public int ProductId { get; set; }
// Nouvelle quantité du produit dans cet entrepôt
public int Quantity { get; set; } public int Quantity { get; set; }
} }
} }

View File

@@ -1,11 +1,18 @@
namespace PyroFetes.DTO.Product.Response namespace PyroFetes.DTO.Product.Response
{ {
// DTO pour la lecture des entrepôts liés à un produit // DTO utilisé pour renvoyer les informations dun entrepôt lié à un produit
public class GetProductWarehouseDto public class GetProductWarehouseDto
{ {
// Identifiant de l'entrepôt
public int WarehouseId { get; set; } public int WarehouseId { get; set; }
// Identifiant du produit associé à cet entrepôt
public int ProductId { get; set; } public int ProductId { get; set; }
// Nom de l'entrepôt (utile pour laffichage)
public string WarehouseName { get; set; } = string.Empty; public string WarehouseName { get; set; } = string.Empty;
// Quantité du produit stockée dans cet entrepôt
public int Quantity { get; set; } public int Quantity { get; set; }
} }
} }

View File

@@ -1,20 +1,37 @@
namespace PyroFetes.DTO.Supplier.Request; namespace PyroFetes.DTO.Supplier.Request
public class CreateSupplierDto
{ {
public string Name { get; set; } // DTO pour créer un nouveau fournisseur
public string Email { get; set; } public class CreateSupplierDto
public string PhoneNumber { get; set; } {
public string Adress { get; set; } // Nom du fournisseur
public int ZipCode { get; set; } public string Name { get; set; }
public string City { get; set; }
// Produits que ce fournisseur fournit // Email du fournisseur
public List<SupplierProductPriceDto>? Products { get; set; } public string Email { get; set; }
}
public class SupplierProductPriceDto // Numéro de téléphone du fournisseur
{ public string PhoneNumber { get; set; }
public int ProductId { get; set; }
public decimal SellingPrice { get; set; } // Adresse du fournisseur
public string Adress { get; set; }
// Code postal de l'adresse
public int ZipCode { get; set; }
// Ville de l'adresse
public string City { get; set; }
// Liste des produits fournis par ce fournisseur dans la classe SupplierProductPriceDto
public List<SupplierProductPriceDto>? Products { get; set; }
}
// DTO pour relier un produit et son prix à un fournisseur
public class SupplierProductPriceDto
{
// Identifiant du produit fourni
public int ProductId { get; set; }
// Prix de vente du produit par ce fournisseur
public decimal SellingPrice { get; set; }
}
} }

View File

@@ -1,14 +1,30 @@
namespace PyroFetes.DTO.Supplier.Request; namespace PyroFetes.DTO.Supplier.Request
public class UpdateSupplierDto
{ {
public int Id { get; set; } // DTO pour mettre à jour un fournisseur existant
public string Name { get; set; } public class UpdateSupplierDto
public string Email { get; set; } {
public string PhoneNumber { get; set; } // Identifiant du fournisseur à mettre à jour
public string Adress { get; set; } public int Id { get; set; }
public int ZipCode { get; set; }
public string City { get; set; }
public List<SupplierProductPriceDto>? Products { get; set; } // Nom du fournisseur
public string Name { get; set; }
// Email du fournisseur
public string Email { get; set; }
// Numéro de téléphone du fournisseur
public string PhoneNumber { get; set; }
// Adresse du fournisseur
public string Adress { get; set; }
// Code postal de l'adresse
public int ZipCode { get; set; }
// Ville de l'adresse
public string City { get; set; }
// Liste des produits fournis par ce fournisseur relié à la classe SupplierProductPriceDto
public List<SupplierProductPriceDto>? Products { get; set; }
}
} }

View File

@@ -1,24 +1,45 @@
using PyroFetes.DTO.Supplier.Request; using PyroFetes.DTO.Supplier.Request;
namespace PyroFetes.DTO.Supplier.Response; namespace PyroFetes.DTO.Supplier.Response
public class GetSupplierDto
{ {
public int Id { get; set; } // DTO pour récupérer les informations d'un fournisseur
public string Name { get; set; } public class GetSupplierDto
public string Email { get; set; } {
public string PhoneNumber { get; set; } // Identifiant du fournisseur
public string Adress { get; set; } public int Id { get; set; }
public int ZipCode { get; set; }
public string City { get; set; }
// Liste des produits liés avec leur prix fournisseur // Nom du fournisseur
public List<SupplierProductPriceDto> Products { get; set; } public string Name { get; set; }
}
public class GetSupplierProductDto // Email du fournisseur
{ public string Email { get; set; }
public int ProductId { get; set; }
public string ProductName { get; set; } = string.Empty; // Numéro de téléphone
public decimal SellingPrice { get; set; } public string PhoneNumber { get; set; }
// Adresse du fournisseur
public string Adress { get; set; }
// Code postal
public int ZipCode { get; set; }
// Ville
public string City { get; set; }
// Liste des produits fournis par la classe SupplierProductPriceDto
public List<SupplierProductPriceDto> Products { get; set; } = new();
}
// DTO pour les détails d'un produit lié à un fournisseur
public class GetSupplierProductDto
{
// Identifiant du produit
public int ProductId { get; set; }
// Nom du produit
public string ProductName { get; set; } = string.Empty;
// Prix de vente fourni par le fournisseur
public decimal SellingPrice { get; set; }
}
} }

View File

@@ -1,21 +1,40 @@
namespace API.DTO.Warehouse.Request; namespace API.DTO.Warehouse.Request
public class CreateWarehouseDto
{ {
public string Name { get; set; } // DTO pour créer un entrepôt
public int MaxWeight { get; set; } public class CreateWarehouseDto
public int Current { get; set; } {
public int MinWeight { get; set; } // Nom de l'entrepôt
public string Adress { get; set; } public string Name { get; set; }
public int ZipCode { get; set; }
public string City { get; set; }
// Liste des produits à stocker dans cet entrepôt // Poids maximal que l'entrepôt peut contenir
public List<CreateWarehouseProductDto>? Products { get; set; } public int MaxWeight { get; set; }
}
public class CreateWarehouseProductDto // Poids actuel stocké
{ public int Current { get; set; }
public int ProductId { get; set; }
public int Quantity { get; set; } // Poids minimal souhaité
public int MinWeight { get; set; }
// Adresse de l'entrepôt
public string Adress { get; set; }
// Code postal
public int ZipCode { get; set; }
// Ville
public string City { get; set; }
// Liste des produits à stocker dans cet entrepôt venant de la classe en dessous
public List<CreateWarehouseProductDto>? Products { get; set; }
}
// DTO pour associer un produit à un entrepôt
public class CreateWarehouseProductDto
{
// Identifiant du produit
public int ProductId { get; set; }
// Quantité du produit dans l'entrepôt
public int Quantity { get; set; }
}
} }

View File

@@ -1,21 +1,43 @@
namespace API.DTO.Warehouse.Request; namespace API.DTO.Warehouse.Request
public class UpdateWarehouseDto
{ {
public int Id { get; set; } // DTO pour mettre à jour un entrepôt
public string Name { get; set; } public class UpdateWarehouseDto
public int MaxWeight { get; set; } {
public int Current { get; set; } // Identifiant de l'entrepôt à mettre à jour
public int MinWeight { get; set; } public int Id { get; set; }
public string Adress { get; set; }
public int ZipCode { get; set; }
public string City { get; set; }
public List<UpdateWarehouseProductDto>? Products { get; set; } // Nom de l'entrepôt
} public string Name { get; set; }
public class UpdateWarehouseProductDto // Poids maximal que l'entrepôt peut contenir
{ public int MaxWeight { get; set; }
public int ProductId { get; set; }
public int Quantity { get; set; } // Poids actuel stocké
public int Current { get; set; }
// Poids minimal souhaité
public int MinWeight { get; set; }
// Adresse de l'entrepôt
public string Adress { get; set; }
// Code postal
public int ZipCode { get; set; }
// Ville
public string City { get; set; }
// Liste des produits à mettre à jour dans cet entrepôt
public List<UpdateWarehouseProductDto>? Products { get; set; }
}
// DTO pour mettre à jour la quantité d'un produit dans un entrepôt
public class UpdateWarehouseProductDto
{
// Identifiant du produit
public int ProductId { get; set; }
// Nouvelle quantité du produit dans l'entrepôt
public int Quantity { get; set; }
}
} }

View File

@@ -1,22 +1,46 @@
namespace API.DTO.Warehouse.Response; namespace API.DTO.Warehouse.Response
public class GetWarehouseDto
{ {
public int Id { get; set; } // DTO pour la lecture d'un entrepôt
public string Name { get; set; } public class GetWarehouseDto
public int MaxWeight { get; set; } {
public int Current { get; set; } // Identifiant de l'entrepôt
public int MinWeight { get; set; } public int Id { get; set; }
public string Adress { get; set; }
public int ZipCode { get; set; }
public string City { get; set; }
public List<WarehouseProductDto>? Products { get; set; } // Nom de l'entrepôt
} public string Name { get; set; }
public class WarehouseProductDto // Poids maximal que l'entrepôt peut contenir
{ public int MaxWeight { get; set; }
public int ProductId { get; set; }
public string? ProductName { get; set; } // Poids actuellement stocké
public int Quantity { get; set; } public int Current { get; set; }
// Poids minimal souhaité
public int MinWeight { get; set; }
// Adresse de l'entrepôt
public string Adress { get; set; }
// Code postal
public int ZipCode { get; set; }
// Ville
public string City { get; set; }
// Liste des produits stockés dans l'entrepôt
public List<WarehouseProductDto>? Products { get; set; }
}
// DTO pour la lecture d'un produit dans un entrepôt
public class WarehouseProductDto
{
// Identifiant du produit
public int ProductId { get; set; }
// Nom du produit
public string? ProductName { get; set; }
// Quantité du produit dans l'entrepôt
public int Quantity { get; set; }
}
} }

View File

@@ -1,6 +1,6 @@
using API.DTO.Brand.Request;
using API.DTO.Brand.Response; using API.DTO.Brand.Response;
using FastEndpoints; using FastEndpoints;
using PyroFetes.DTO.Brand.Request;
namespace PyroFetes.Endpoints.Brand; namespace PyroFetes.Endpoints.Brand;

View File

@@ -1,6 +1,6 @@
using API.DTO.Brand.Request;
using API.DTO.Brand.Response; using API.DTO.Brand.Response;
using FastEndpoints; using FastEndpoints;
using PyroFetes.DTO.Brand.Request;
namespace PyroFetes.Endpoints.Brand; namespace PyroFetes.Endpoints.Brand;

50
README.md Normal file
View File

@@ -0,0 +1,50 @@
# Gestionnaire de Stocks et Commandes
Cette application web permet de **suivre les stocks**, **automatiser les commandes fournisseurs** et **gérer le cycle complet dapprovisionnement**.
Elle est conçue pour simplifier le travail des entreprises en offrant une vue en temps réel sur les produits, leurs fournisseurs et létat des livraisons.
---
## ✨ Fonctionnalités principales
### 1⃣ Suivi et réapprovisionnement des stocks
- Définissez un **niveau minimal de stock** pour chaque produit.
- Surveillez les **niveaux en temps réel** grâce à une interface claire.
- Lorsquun produit atteint ou descend sous son seuil minimal, le système **génère automatiquement un bon de commande** pour le réapprovisionner.
### 2⃣ Gestion des fournisseurs
- Enregistrez les informations complètes des fournisseurs : nom, adresse, coordonnées, produits fournis, délais de livraison.
- **Associez un ou plusieurs fournisseurs** à chaque produit.
- Lorsquun bon de commande est créé, le système **propose automatiquement les fournisseurs appropriés**.
### 3⃣ Devis et bons de commande
- Créez des **devis personnalisés** : sélection des produits, quantités, prix, ajout dun logo, message ou conditions de vente.
- **Imprimez ou exportez** vos devis au format PDF.
- Générez des **bons de commande** en quelques clics, avec personnalisation (logo, conditions dachat) et exportation en PDF.
### 4⃣ Suivi des livraisons
- **Transformez un bon de commande en bon de livraison** dès lexpédition des produits par le fournisseur.
- Enregistrez toutes les informations importantes : date dexpédition, transporteur, numéro de suivi, date prévue et date effective de livraison.
- Recevez des **alertes en cas de retard**.
- Gérez la **réception des produits** et vérifiez leur conformité.
---
## 🗂️ Livrables prévus
- **Modèle de données** : diagramme de classes commun à tous les groupes.
- **Interface utilisateur** : maquettes ou prototypes interactifs.
- **Code source commenté** pour une meilleure compréhension.
- **Documentation technique** : description des fonctionnalités, architecture de lapplication et API.
---
## 👥 Équipe
- **Mathys**
- **Enzo**
- **Cristiano**
- **Arsène**
---
## 🚀 Objectif
Fournir un outil complet pour automatiser la gestion des stocks et des commandes, réduisant les erreurs humaines, améliorant le suivi des livraisons et facilitant la communication avec les fournisseurs.