'array', 'metadata' => 'array', 'queued_at' => 'datetime', 'started_at' => 'datetime', 'completed_at' => 'datetime', 'expires_at' => 'datetime', ]; } public function tenant(): BelongsTo { return $this->belongsTo(Tenant::class); } public function event(): BelongsTo { return $this->belongsTo(Event::class); } public function photo(): BelongsTo { return $this->belongsTo(Photo::class); } public function style(): BelongsTo { return $this->belongsTo(AiStyle::class, 'style_id'); } public function requestedBy(): BelongsTo { return $this->belongsTo(User::class, 'requested_by_user_id'); } public function outputs(): HasMany { return $this->hasMany(AiEditOutput::class, 'request_id'); } public function providerRuns(): HasMany { return $this->hasMany(AiProviderRun::class, 'request_id'); } public function usageLedgers(): HasMany { return $this->hasMany(AiUsageLedger::class, 'request_id'); } }