tablas y modelos

This commit is contained in:
GianellaDelMestre
2025-12-07 00:08:18 -03:00
parent 2f0a256b6c
commit 832f9228af
12 changed files with 298 additions and 14 deletions
+18
View File
@@ -0,0 +1,18 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Appointment extends Model
{
protected $guarded = [];
// Así podrás hacer cosas como $turno->fecha_programada->format('d/m/Y')
protected $casts = [
'fecha_programada' => 'datetime',
];
public function clients()
{
return $this->belongsTo(Client::class);
}
}
+16
View File
@@ -0,0 +1,16 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Client extends Model
{
protected $guarded = [];
// Un usuario (cliente) realiza muchas compras (ventas)
public function sales()
{
return $this->hasMany(Sale::class);
}
}
+29 -7
View File
@@ -9,13 +9,35 @@ class Product extends Model
{
use HasFactory;
protected $fillable = [
'codigo',
'nombre',
'marca',
'modelo',
'rodado',
'color',
'tipo',
'descripcion',
'precio'
'costo',
'precio',
'stock',
'min_stock',
'categoria',
'descripcion'
];
public function supplier()
{
return $this->belongsTo(Suppliers::class);
}
// Opción 1: Relación directa con los detalles (Renglones de ticket)
// Útil para saber cantidad total vendida: $product->saleDetails->sum('quantity')
public function saleDetails()
{
return $this->hasMany(SaleDetail::class);
}
// Opción 2 (Pro Tip): Relación directa con las Ventas a través de los detalles
// Útil para saber EN QUÉ fechas se vendió: $product->sales
public function sales()
{
return $this->belongsToMany(Sale::class, 'sale_details');
}
}
/**$user->sales: Te da la lista de todas las compras de ese usuario.
$product->saleDetails->count(): Te dice cuántas veces aparece ese producto en tickets.**/
+28
View File
@@ -0,0 +1,28 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Sale extends Model
{
use HasFactory;
protected $fillable = [
'metodo_pago'
];
// Permitimos asignación masiva para poder guardar rápido
protected $guarded = [];
// Relación 1: Una venta pertenece a un Cliente (User)
public function user()
{
return $this->belongsTo(User::class);
}
// Relación 2: Una venta tiene muchos items o detalles
public function details()
{
return $this->hasMany(SaleDetail::class);
}
}
+23
View File
@@ -0,0 +1,23 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class SaleDetail extends Model
{
use HasFactory;
protected $guarded = [];
// este detalle pertenece a una Venta específica
public function sale()
{
return $this->belongsTo(Sale::class);
}
// este detalle corresponde a un Producto
public function product()
{
return $this->belongsTo(Product::class);
}
}
+18
View File
@@ -0,0 +1,18 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Supplier extends Model
{
protected $fillable = [
'nombre',
'telefono',
'email'
];
public function products()
{
return $this->hasMany(Product::class);
}
}