'boolean', 'daily_mailbox_limit' => 'integer', 'starts_at' => 'datetime', 'ends_at' => 'datetime', 'last_used_at' => 'datetime', 'checked_at' => 'datetime', ]; } /** * Retrieve active username by type and provider. * * @param UsernameType|null $usernameType Filter by username type * @param ProviderType|null $providerType Filter by provider type * @return array Array of usernames */ public static function getActiveUsernameByType( ?UsernameType $usernameType = 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 ($usernameType) { $query->where('username_type', $usernameType); } if ($providerType) { $query->where('provider_type', $providerType); } return $query->pluck('username')->toArray(); } }