Teren-app/app/Models/Activity.php
Simon Pocrnjič fe91c7e4bc Mass changes
2025-10-04 23:36:18 +02:00

79 lines
1.9 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes;
class Activity extends Model
{
/** @use HasFactory<\Database\Factories\ActivityFactory> */
use HasFactory;
use SoftDeletes;
protected $fillable = [
'due_date',
'amount',
'note',
'action_id',
'user_id',
'decision_id',
'contract_id',
'client_case_id',
];
protected $hidden = [
'action_id',
'decision_id',
'client_case_id',
'user_id',
'contract_id',
];
protected static function booted()
{
static::creating(function (Activity $activity) {
if (! isset($activity->user_id)) {
$activity->user_id = auth()->id();
}
// If an activity with a due date is added for a contract, update the related account's promise_date
if (! empty($activity->contract_id) && ! empty($activity->due_date)) {
\App\Models\Account::query()
->where('contract_id', $activity->contract_id)
->update(
['promise_date' => $activity->due_date, 'updated_at' => now()],
);
}
});
}
public function action(): BelongsTo
{
return $this->belongsTo(\App\Models\Action::class);
}
public function decision(): BelongsTo
{
return $this->belongsTo(\App\Models\Decision::class);
}
public function clientCase(): BelongsTo
{
return $this->belongsTo(\App\Models\ClientCase::class);
}
public function contract(): ?BelongsTo
{
return $this->belongsTo(\App\Models\Contract::class);
}
public function user(): BelongsTo
{
return $this->belongsTo(\App\Models\User::class);
}
}