Add products module #46

This commit is contained in:
2025-11-26 10:05:43 +01:00
parent 155f0d3525
commit 83dd8e9ecb
21 changed files with 607 additions and 50 deletions
+6 -1
View File
@@ -15,8 +15,8 @@ class LineItem extends Model
'is_section',
'title',
'description',
'unit_id',
'quantity',
'unit',
'price',
];
@@ -24,4 +24,9 @@ public function invoice()
{
return $this->belongsTo(Invoice::class);
}
public function unit()
{
return $this->belongsTo(Unit::class);
}
}
+40
View File
@@ -0,0 +1,40 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use App\Models\ProductCategory;
class Product extends Model
{
/** @use HasFactory<\Database\Factories\ProductFactory> */
use HasFactory;
protected $fillable = [
'title',
'description',
'notes',
'vendor_url',
'category_id',
'price',
'margin',
'unit_id',
'image',
];
protected $casts = [
'price' => 'decimal:2',
'margin' => 'decimal:2'
];
public function category()
{
return $this->belongsTo(ProductCategory::class);
}
public function unit()
{
return $this->belongsTo(Unit::class);
}
}
+15
View File
@@ -0,0 +1,15 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ProductCategory extends Model
{
/** @use HasFactory<\Database\Factories\ProductFactory> */
use HasFactory;
protected $fillable = ['name'];
}
+23
View File
@@ -0,0 +1,23 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Unit extends Model
{
use HasFactory;
protected $fillable = ['name', 'symbol'];
public function products()
{
return $this->hasMany(Product::class);
}
public function lineItems()
{
return $this->hasMany(LineItem::class);
}
}