'datetime', 'storage_paid_until' => 'datetime', 'storage_grace_ends_at' => 'datetime', 'storage_last_billed_at' => 'datetime', ]; } protected static function booted(): void { static::creating(function (SessionFile $file) { if (empty($file->uuid)) { $file->uuid = (string) Str::uuid(); } }); } public function getRouteKeyName(): string { return 'uuid'; } public function room(): BelongsTo { return $this->belongsTo(Room::class, 'room_id'); } public function session(): BelongsTo { return $this->belongsTo(Session::class, 'session_id'); } public function downloads(): HasMany { return $this->hasMany(FileDownload::class, 'session_file_id'); } public function isExpired(): bool { return $this->expires_at !== null && $this->expires_at->isPast(); } }