mastercut/app/Models/Expense.php

59 lines
1.4 KiB
PHP

<?php
namespace App\Models;
use App\Observers\ExpenseObserver;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Attributes\ObservedBy;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\MorphOne;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Facades\Auth;
#[ObservedBy([ExpenseObserver::class])]
class Expense extends Model
{
use HasFactory, SoftDeletes;
protected $fillable = [
'user_id',
'barbershop_id',
'name',
'amount',
'use_cash',
];
public function scopeBarbershop(Builder $query): Builder
{
return $query->where('barbershop_id', Auth::user()->barbershop_id);
}
public function scopeToday(Builder $query): Builder
{
return $query->whereDate('created_at', Carbon::today());
}
public function scopeYesterday(Builder $query): Builder
{
return $query->whereDate('created_at', Carbon::yesterday());
}
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
public function barbershop(): BelongsTo
{
return $this->belongsTo(Barbershop::class);
}
public function attachment(): MorphOne
{
return $this->morphOne(Attachment::class, 'attachmentable');
}
}