*/ use HasFactory; public const string FINDING_TYPE_DRIFT = 'drift'; public const string SEVERITY_LOW = 'low'; public const string SEVERITY_MEDIUM = 'medium'; public const string SEVERITY_HIGH = 'high'; public const string STATUS_NEW = 'new'; public const string STATUS_ACKNOWLEDGED = 'acknowledged'; protected $guarded = []; protected $casts = [ 'acknowledged_at' => 'datetime', 'evidence_jsonb' => 'array', ]; public function tenant(): BelongsTo { return $this->belongsTo(Tenant::class); } public function baselineRun(): BelongsTo { return $this->belongsTo(InventorySyncRun::class, 'baseline_run_id'); } public function currentRun(): BelongsTo { return $this->belongsTo(InventorySyncRun::class, 'current_run_id'); } public function acknowledgedByUser(): BelongsTo { return $this->belongsTo(User::class, 'acknowledged_by_user_id'); } public function acknowledge(User $user): void { if ($this->status === self::STATUS_ACKNOWLEDGED) { return; } $this->forceFill([ 'status' => self::STATUS_ACKNOWLEDGED, 'acknowledged_at' => now(), 'acknowledged_by_user_id' => $user->getKey(), ]); $this->save(); } }