php-commerce/Models/CouponUsage.php
Snider df167eb423
Some checks failed
CI / PHP 8.3 (pull_request) Failing after 3s
CI / PHP 8.4 (pull_request) Failing after 3s
fix(dx): add declare(strict_types=1) and fix PSR-12 compliance
Added missing strict_types declarations to 65 PHP files and ran
Laravel Pint to fix PSR-12 violations (ordered imports, unary
operator spacing, brace positioning, fully qualified strict types).

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 09:08:03 +00:00

65 lines
1.2 KiB
PHP

<?php
declare(strict_types=1);
namespace Core\Mod\Commerce\Models;
use Carbon\Carbon;
use Core\Tenant\Models\Workspace;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/**
* CouponUsage model for tracking coupon redemptions.
*
* @property int $id
* @property int $coupon_id
* @property int $workspace_id
* @property int $order_id
* @property float $discount_amount
* @property Carbon $created_at
*/
class CouponUsage extends Model
{
public $timestamps = false;
protected $fillable = [
'coupon_id',
'workspace_id',
'order_id',
'discount_amount',
];
protected $casts = [
'discount_amount' => 'decimal:2',
'created_at' => 'datetime',
];
// Relationships
public function coupon(): BelongsTo
{
return $this->belongsTo(Coupon::class);
}
public function workspace(): BelongsTo
{
return $this->belongsTo(Workspace::class);
}
public function order(): BelongsTo
{
return $this->belongsTo(Order::class);
}
// Boot
protected static function boot()
{
parent::boot();
static::creating(function ($usage) {
$usage->created_at = now();
});
}
}