'datetime', 'expires_at' => 'datetime', 'last_paid_at' => 'datetime', 'max_users' => 'integer', 'options' => 'array', 'created_at' => 'datetime', 'updated_at' => 'datetime', 'deleted_at' => 'datetime', ]; protected $hidden = [ 'deleted_at', ]; /** * 활성화된 테넌트만 조회하는 스코프 */ public function scopeActive($query) { return $query->whereIn('tenant_st_code', ['trial', 'active']); } /** * 테넌트가 활성 상태인지 확인 */ public function isActive(): bool { return in_array($this->tenant_st_code, ['trial', 'active']); } /** * 테넌트가 트라이얼 상태인지 확인 */ public function isTrial(): bool { return $this->tenant_st_code === 'trial'; } // 관계 정의 (예시) public function plan() { return $this->belongsTo(Plan::class, 'plan_id'); } public function subscription() { return $this->belongsTo(Subscription::class, 'subscription_id'); } public function userTenants() { return $this->hasMany(UserTenant::class); } public function users() { return $this->belongsToMany(User::class, 'user_tenants'); } public function roles() { return $this->hasMany(Role::class); } public function userRoles() { return $this->hasMany(UserRole::class); } public function files() { return $this->morphMany(File::class, 'fileable'); } }