diff --git a/PyroFetes/Models/.idea/.gitignore b/PyroFetes/Models/.idea/.gitignore
new file mode 100644
index 0000000..516c578
--- /dev/null
+++ b/PyroFetes/Models/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/.idea.Models.iml
+/modules.xml
+/contentModel.xml
+/projectSettingsUpdater.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/PyroFetes/Models/.idea/encodings.xml b/PyroFetes/Models/.idea/encodings.xml
new file mode 100644
index 0000000..df87cf9
--- /dev/null
+++ b/PyroFetes/Models/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/PyroFetes/Models/.idea/indexLayout.xml b/PyroFetes/Models/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/PyroFetes/Models/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PyroFetes/Models/Brand.cs b/PyroFetes/Models/Brand.cs
new file mode 100644
index 0000000..49016ca
--- /dev/null
+++ b/PyroFetes/Models/Brand.cs
@@ -0,0 +1,12 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace PyroFetes.Models;
+
+public class Brand
+{
+ [Key] public int Id { get; set; }
+ [Required, MaxLength(100)] public string? Name { get; set; }
+
+ [Required] public int ProductId { get; set; }
+ [Required] public Product? Product { get; set; }
+}
\ No newline at end of file
diff --git a/PyroFetes/Models/Classification.cs b/PyroFetes/Models/Classification.cs
new file mode 100644
index 0000000..6ef006b
--- /dev/null
+++ b/PyroFetes/Models/Classification.cs
@@ -0,0 +1,11 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace PyroFetes.Models;
+
+public class Classification
+{
+ [Key] public int Id { get; set; }
+ [Required] public string? Label { get; set; }
+
+ [Required] public List? Products { get; set; }
+}
\ No newline at end of file
diff --git a/PyroFetes/Models/Color.cs b/PyroFetes/Models/Color.cs
new file mode 100644
index 0000000..00bb147
--- /dev/null
+++ b/PyroFetes/Models/Color.cs
@@ -0,0 +1,10 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace PyroFetes.Models;
+
+public class Color
+{
+ [Key] public int Id { get; set; }
+ [Required] public string? Label { get; set; }
+
+}
\ No newline at end of file
diff --git a/PyroFetes/Models/Effect.cs b/PyroFetes/Models/Effect.cs
new file mode 100644
index 0000000..2d0ba45
--- /dev/null
+++ b/PyroFetes/Models/Effect.cs
@@ -0,0 +1,9 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace PyroFetes.Models;
+
+public class Effect
+{
+ [Key] public int Id { get; set; }
+ [Required] public string? Label { get; set; }
+}
\ No newline at end of file
diff --git a/PyroFetes/Models/Material.cs b/PyroFetes/Models/Material.cs
new file mode 100644
index 0000000..d1ad0a9
--- /dev/null
+++ b/PyroFetes/Models/Material.cs
@@ -0,0 +1,13 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace PyroFetes.Models;
+
+public class Material
+{
+ [Key] public int Id {get; set;}
+ [Required, MaxLength(100)] public string? Name {get; set;}
+ [Required] public int Quantity {get; set;}
+
+ [Required] public int WarehouseId {get; set;}
+ [Required] public Warehouse? Warehouse {get; set;}
+}
\ No newline at end of file
diff --git a/PyroFetes/Models/Movement.cs b/PyroFetes/Models/Movement.cs
new file mode 100644
index 0000000..ad42494
--- /dev/null
+++ b/PyroFetes/Models/Movement.cs
@@ -0,0 +1,21 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace PyroFetes.Models;
+
+public class Movement
+{
+ [Key] public int Id { get; set; }
+ [Required] public DateTime Date { get; set; }
+ [Required] public DateTime Start {get; set;}
+ [Required] public DateTime Arrival {get; set;}
+ [Required] public int Quantity {get; set;}
+
+ [Required] public int ProductId {get; set;}
+ [Required] public Product? Product {get; set;}
+
+ [Required] public int? SourceWarehouseId {get; set;}
+ [Required] public Warehouse? SourceWarehouse {get; set;}
+
+ [Required] public int? DestinationWarehouseId {get; set;}
+ [Required] public Warehouse? DestinationWarehouse {get; set;}
+}
\ No newline at end of file
diff --git a/PyroFetes/Models/Product.cs b/PyroFetes/Models/Product.cs
new file mode 100644
index 0000000..8f1cff9
--- /dev/null
+++ b/PyroFetes/Models/Product.cs
@@ -0,0 +1,31 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace PyroFetes.Models
+{
+ public class Product
+ {
+ [Key] public int Id { get; set; }
+ [Required] public int References { get; set; }
+ [Required, MaxLength(100)] public string? Name { get; set; }
+ [Required] public decimal Duration {get; set;}
+ [Required] public decimal Caliber { get; set; }
+ [Required] public int ApprovalNumber { get; set; }
+ [Required] public decimal Weight { get; set; }
+ [Required] public decimal Nec { get; set; }
+ [Required] public decimal SellingPrice { get; set; }
+ [Required] public string? Image { get; set; }
+ [Required] public string? Link { get; set; }
+
+ // Relations
+ [Required] public int ClassificationId { get; set; }
+ [Required] public Classification? Classification { get; set; }
+
+ [Required] public int ProductCategoryId { get; set; }
+ [Required] public ProductCategory? ProductCategory { get; set; }
+
+ [Required] public List? Brands { get; set; }
+
+ [Required] public List? Movements { get; set; }
+
+ }
+}
\ No newline at end of file
diff --git a/PyroFetes/Models/ProductCategory.cs b/PyroFetes/Models/ProductCategory.cs
new file mode 100644
index 0000000..2e339ba
--- /dev/null
+++ b/PyroFetes/Models/ProductCategory.cs
@@ -0,0 +1,11 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace PyroFetes.Models;
+
+public class ProductCategory
+{
+ [Key] public int Id { get; set; }
+ [Required] public string? Label { get; set; }
+
+ [Required] public List? Products { get; set; }
+}
\ No newline at end of file
diff --git a/PyroFetes/Models/ProductColor.cs b/PyroFetes/Models/ProductColor.cs
new file mode 100644
index 0000000..66acf11
--- /dev/null
+++ b/PyroFetes/Models/ProductColor.cs
@@ -0,0 +1,14 @@
+using System.ComponentModel.DataAnnotations;
+using Microsoft.EntityFrameworkCore;
+
+namespace PyroFetes.Models;
+
+[PrimaryKey(nameof(ProductId), nameof(ColorId))]
+public class ProductColor
+{
+ [Required] public Product? Product { get; set; }
+ [Required] public int ProductId { get; set; }
+
+ [Required] public Color? Color { get; set; }
+ [Required] public int ColorId { get; set; }
+}
\ No newline at end of file
diff --git a/PyroFetes/Models/ProductEffect.cs b/PyroFetes/Models/ProductEffect.cs
new file mode 100644
index 0000000..4ac084b
--- /dev/null
+++ b/PyroFetes/Models/ProductEffect.cs
@@ -0,0 +1,14 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace PyroFetes.Models;
+
+[PrimaryKey(nameof(ProductId), nameof(EffectId))]
+public class ProductEffect
+{
+ [Required] public Product? Product { get; set; }
+ [Required] public int ProductId { get; set; }
+
+ [Required] public Effect? Effect { get; set; }
+ [Required] public int EffectId { get; set; }
+
+}
\ No newline at end of file
diff --git a/PyroFetes/Models/Warehouse.cs b/PyroFetes/Models/Warehouse.cs
new file mode 100644
index 0000000..3b0f833
--- /dev/null
+++ b/PyroFetes/Models/Warehouse.cs
@@ -0,0 +1,22 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace PyroFetes.Models;
+
+public class Warehouse
+{
+ [Key] public int Id {get; set;}
+ [Required, MaxLength(100)] public string? Name {get; set;}
+ [Required] public int MaxWeight {get; set;}
+ [Required] public int Current {get; set;}
+ [Required] public int MinWeight {get; set;}
+ [Required] public string? Address { get; set; }
+ [Required] public int ZipCode { get; set; }
+ [Required] public string? City { get; set; }
+
+
+ [Required] public List? Materials {get; set;}
+
+
+ [Required] public List? MovementsSource { get; set; }
+ [Required] public List? MovementsDestination { get; set; }
+}
\ No newline at end of file
diff --git a/PyroFetes/Models/WarehouseProduct.cs b/PyroFetes/Models/WarehouseProduct.cs
new file mode 100644
index 0000000..ca3716c
--- /dev/null
+++ b/PyroFetes/Models/WarehouseProduct.cs
@@ -0,0 +1,14 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace PyroFetes.Models;
+
+public class WarehouseProduct
+{
+ [Key] public int Quantity { get; set; }
+
+ [Required] public int ProductId { get; set; }
+ [Required] public Product? Product { get; set; }
+
+ [Required] public int WarehouseId { get; set; }
+ [Required] public Warehouse? Warehouse { get; set; }
+}
\ No newline at end of file