En esta clase comienza realmente el modelado del dominio del proyecto. Hasta ahora el programa manejaba variables sueltas como nombre, precio y cantidad, lo cual funciona para ejemplos pequeños, pero se vuelve difícil de mantener cuando el proyecto crece.

La solución es agrupar esos datos relacionados en clases, restringir ciertos valores mediante enums y representar datos inmutables mediante records.


¿Por qué dejar de usar variables sueltas?

Hasta ahora podíamos tener algo como:

string nombre = "Laptop";
decimal precio = 1500m;
int cantidad = 5;

Aunque funciona, estas variables no tienen ninguna relación entre sí.

Podríamos incluso equivocarnos y mezclar datos de distintos productos.

En cambio, una clase permite agrupar toda esa información en un solo objeto.

Producto
 ├── Id
 ├── Nombre
 ├── Descripcion
 ├── Precio
 ├── Cantidad
 ├── Categoria
 ├── Estado
 └── FechaRegistro

Todo pertenece al mismo producto.


¿Qué es una clase?

Una clase es un molde (template o blueprint) para crear objetos.

Define:

En el proyecto se crea:

src/
    Models/
        Producto.cs

y dentro: