*/ use Billable, HasFactory, SoftDeletes; protected $guarded = ['id']; protected static function newFactory(): WorkspaceFactory { return WorkspaceFactory::new(); } protected static function booted(): void { static::creating(function (self $model) { if (empty($model->ulid)) { $model->ulid = Str::ulid(); } }); } protected $casts = [ 'ulid' => 'string', 'branding' => 'array', 'stripe_customer_metadata' => 'array', 'trial_ends_at' => 'datetime', ]; public function getRouteKeyName(): string { return 'ulid'; } /** @return BelongsTo */ public function owner(): BelongsTo { return $this->belongsTo(User::class, 'owner_id'); } /** @return HasMany */ public function members(): HasMany { return $this->hasMany(WorkspaceMember::class); } /** @return HasMany */ public function invitations(): HasMany { return $this->hasMany(WorkspaceInvitation::class); } /** @return HasMany */ public function links(): HasMany { return $this->hasMany(Link::class); } /** @return HasMany */ public function domains(): HasMany { return $this->hasMany(Domain::class); } /** @return BelongsTo */ public function plan(): BelongsTo { return $this->belongsTo(Plan::class); } }