*/ 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); } }