'boolean', 'daily_mailbox_limit' => 'integer', 'starts_at' => 'datetime', 'ends_at' => 'datetime', 'last_used_at' => 'datetime', 'checked_at' => 'datetime', ]; } /** * Retrieve active domains by type and provider. * * @param DomainType|null $domainType Filter by domain type * @param ProviderType|null $providerType Filter by provider type * @return array Array of domain names */ public static function getActiveDomainsByType( ?DomainType $domainType = null, ?ProviderType $providerType = null ): array { $query = static::query() ->where('is_active', true) ->where(function ($query) { $query->whereNull('starts_at') ->orWhere('starts_at', '<=', now()); }) ->where(function ($query) { $query->whereNull('ends_at') ->orWhere('ends_at', '>=', now()); }); if ($domainType) { $query->where('domain_type', $domainType->value); } if ($providerType) { $query->where('provider_type', $providerType->value); } return $query->pluck('name')->toArray(); } }