*/ protected $fillable = [ 'title', 'description', 'status', 'impact', 'started_at', 'resolved_at', 'created_by', 'is_auto', ]; /** * @return array */ protected function casts(): array { return [ 'status' => IncidentStatusEnum::class, 'impact' => IncidentImpactEnum::class, 'started_at' => 'datetime', 'resolved_at' => 'datetime', 'is_auto' => 'boolean', ]; } /** * @return BelongsToMany */ public function services(): BelongsToMany { return $this->belongsToMany(ServiceStatus::class, 'service_incident_service_status') ->withTimestamps(); } /** * @return BelongsTo */ public function creator(): BelongsTo { return $this->belongsTo(User::class, 'created_by'); } public function isResolved(): bool { return $this->status === IncidentStatusEnum::Resolved; } }