From 8c2fae514f5de8b50eb385dd61c1eac08f4cf844 Mon Sep 17 00:00:00 2001 From: Bruna Domingues Leite Date: Tue, 7 Jul 2026 23:16:47 -0300 Subject: [PATCH 01/46] =?UTF-8?q?feat(profile):=20selects=20de=20localiza?= =?UTF-8?q?=C3=A7=C3=A3o=20com=20cache=20lazy=20(World=20API=20+=20Sushi)?= =?UTF-8?q?=20(#388)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - Adiciona selects dinâmicos de **país**, **estado** e **cidade** na página de perfil (`ProfilePage`), com busca assíncrona e dependência entre os campos - Países e estados usam **Sushi** com cache Laravel sob demanda (sync lazy via jobs); cidades ficam em **Postgres** (`geo_cities`) e são buscadas na API apenas quando necessário - Integração com a [World API](https://world.bmbc.cloud/api) (`WorldApiClient` + `config/geo.php`), sem seedar o mundo inteiro no banco - Normaliza colunas de endereço existentes: ISO3 → ISO2, UF brasileira → nome completo do estado, `state` expandido para 100 chars - Tooltip na cidade orientando o usuário a pesquisar caso a cidade não apareça na listagem ## Arquitetura | Camada | País / Estado | Cidade | |--------|---------------|--------| | Modelo | `GeoCountry`, `GeoState` (Sushi) | `GeoCity` (Eloquent/Postgres) | | Cache | `GeoSushiStore` (Laravel cache) | tabela `geo_cities` | | Sync | `SyncWorldCountriesJob`, `SyncWorldStatesJob` | `SyncWorldCitiesJob` | | UI | `GeoSelect` (helpers para Filament selects) | busca local + API com `GeoSearch` (ignora acentos) | ## Migrations - `2026_07_07_180000_create_geo_tables.php` — cria `geo_cities` - `2026_07_07_180001_normalize_address_location_columns.php` — normaliza dados legados em `addresses` ## Config ```env GEO_WORLD_API_URL=https://world.bmbc.cloud/api Test plan - [ ] Abrir perfil e verificar preload de países - [ ] Selecionar país → estados carregam; selecionar estado → cidades do cache aparecem - [ ] Buscar cidade com/sem acento (ex.: sao → São Paulo) - [ ] Salvar perfil e confirmar persistência em addresses (country ISO2, state nome, city nome) - [ ] Rodar php artisan test tests/Feature/Geo tests/Feature/AddressTest.php app-modules/panel-app/tests/Feature/ProfilePageTest.php --------- Co-authored-by: Cursor Co-authored-by: danielhe4rt Co-authored-by: BrunaDomingues --- app-modules/panel-app/lang/en/profile.php | 6 +- app-modules/panel-app/lang/pt_BR/profile.php | 6 +- .../components/profile-preview-card.blade.php | 8 +- .../panel-app/src/Pages/ProfilePage.php | 57 +++----- .../tests/Feature/ProfilePageTest.php | 23 +++ app/Geo/Models/GeoCountry.php | 47 ++++++ app/Geo/Support/GeoLocation.php | 135 ++++++++++++++++++ app/Geo/WorldApiClient.php | 53 +++++++ app/Providers/AppServiceProvider.php | 5 + config/geo.php | 18 +++ ...08_010345_widen_addresses_state_length.php | 27 ++++ tests/Feature/AddressTest.php | 12 +- tests/Feature/Geo/GeoLocationTest.php | 89 ++++++++++++ 13 files changed, 437 insertions(+), 49 deletions(-) create mode 100644 app/Geo/Models/GeoCountry.php create mode 100644 app/Geo/Support/GeoLocation.php create mode 100644 app/Geo/WorldApiClient.php create mode 100644 config/geo.php create mode 100644 database/migrations/2026_07_08_010345_widen_addresses_state_length.php create mode 100644 tests/Feature/Geo/GeoLocationTest.php diff --git a/app-modules/panel-app/lang/en/profile.php b/app-modules/panel-app/lang/en/profile.php index a45f5f399..1eaac516c 100644 --- a/app-modules/panel-app/lang/en/profile.php +++ b/app-modules/panel-app/lang/en/profile.php @@ -28,8 +28,8 @@ 'skill_years_experience' => 'Years', 'platform' => 'Platform', 'handle' => 'Handle / URL', - 'country' => 'Country (ISO)', - 'state' => 'State (UF)', + 'country' => 'Country', + 'state' => 'State', 'city' => 'City', 'avatar' => 'Photo', 'cover' => 'Cover', @@ -54,11 +54,13 @@ 'headline' => 'Your job title or role', 'about' => 'Tell us about yourself...', 'handle' => '@username or https://...', + 'city_search' => 'Search city...', ], 'hints' => [ 'headline' => 'e.g. Frontend Developer, Product Designer', 'available_for_proposals' => 'When active, recruiters will see a green badge on your profile', + 'city' => 'If your city is not listed, search for it.', 'has_disability' => 'Sensitive information — used only for affirmative-action roles.', 'expected_salary' => 'Monthly amount in BRL. Private, used only in proposals.', 'skills' => 'Pick your skills and set your level and years of experience for each.', diff --git a/app-modules/panel-app/lang/pt_BR/profile.php b/app-modules/panel-app/lang/pt_BR/profile.php index 5745ca183..990dacc86 100644 --- a/app-modules/panel-app/lang/pt_BR/profile.php +++ b/app-modules/panel-app/lang/pt_BR/profile.php @@ -28,8 +28,8 @@ 'skill_years_experience' => 'Anos', 'platform' => 'Plataforma', 'handle' => 'Handle / URL', - 'country' => 'País (ISO)', - 'state' => 'Estado (UF)', + 'country' => 'País', + 'state' => 'Estado', 'city' => 'Cidade', 'avatar' => 'Foto', 'cover' => 'Capa', @@ -54,6 +54,7 @@ 'headline' => 'Seu cargo ou título profissional', 'about' => 'Conte um pouco sobre você...', 'handle' => '@usuario ou https://...', + 'city_search' => 'Buscar cidade...', ], 'hints' => [ @@ -62,6 +63,7 @@ 'has_disability' => 'Informação sensível — usada apenas para vagas afirmativas/PcD.', 'expected_salary' => 'Valor mensal em R$. Informação privada, usada apenas em propostas.', 'skills' => 'Selecione suas skills e informe o nível e os anos de experiência em cada uma.', + 'city' => 'Se sua cidade não estiver na listagem, pesquise.', ], 'actions' => [ diff --git a/app-modules/panel-app/resources/views/components/profile-preview-card.blade.php b/app-modules/panel-app/resources/views/components/profile-preview-card.blade.php index d2872fe8d..d77159552 100644 --- a/app-modules/panel-app/resources/views/components/profile-preview-card.blade.php +++ b/app-modules/panel-app/resources/views/components/profile-preview-card.blade.php @@ -37,9 +37,11 @@ ); $address = $data['address'] ?? []; - $location = collect([$address['city'] ?? null, $address['state'] ?? null, $address['country'] ?? null]) - ->filter() - ->implode(', '); + $location = \App\Geo\Support\GeoLocation::formatLocation( + $address['city'] ?? null, + $address['state'] ?? null, + $address['country'] ?? null, + ); $level = $character?->level ?? 1; $experience = $character?->experience ?? 0; diff --git a/app-modules/panel-app/src/Pages/ProfilePage.php b/app-modules/panel-app/src/Pages/ProfilePage.php index d151db5d0..dca53bcbb 100644 --- a/app-modules/panel-app/src/Pages/ProfilePage.php +++ b/app-modules/panel-app/src/Pages/ProfilePage.php @@ -4,6 +4,7 @@ namespace He4rt\PanelApp\Pages; +use App\Geo\Support\GeoLocation; use BackedEnum; use Filament\Actions\Action; use Filament\Forms\Components\DatePicker; @@ -180,54 +181,38 @@ public function form(Schema $schema): Schema Grid::make(3)->schema([ Select::make('country') ->label(__('panel-app::profile.fields.country')) - ->options([ - 'BRA' => '🇧🇷 Brasil', - 'USA' => '🇺🇸 United States', - 'PRT' => '🇵🇹 Portugal', - 'ARG' => '🇦🇷 Argentina', - 'DEU' => '🇩🇪 Deutschland', - 'CAN' => '🇨🇦 Canada', - 'GBR' => '🇬🇧 United Kingdom', - 'FRA' => '🇫🇷 France', - 'ESP' => '🇪🇸 España', - 'ITA' => '🇮🇹 Italia', - 'JPN' => '🇯🇵 Japan', - 'AUS' => '🇦🇺 Australia', - 'MEX' => '🇲🇽 México', - 'COL' => '🇨🇴 Colombia', - 'CHL' => '🇨🇱 Chile', - 'URY' => '🇺🇾 Uruguay', - 'IRL' => '🇮🇪 Ireland', - 'NLD' => '🇳🇱 Nederland', - ]) + ->options(static fn (): array => GeoLocation::countries()) ->default('BRA') ->searchable() + ->preload() ->live() + ->afterStateUpdated(static function (Set $set): void { + $set('state', null); + $set('city', null); + }) ->columnSpan(1), Select::make('state') ->label(__('panel-app::profile.fields.state')) - ->options(fn (Get $get): array => ($get('country') ?? 'BRA') === 'BRA' ? [ - 'AC' => 'Acre', 'AL' => 'Alagoas', 'AP' => 'Amapá', 'AM' => 'Amazonas', - 'BA' => 'Bahia', 'CE' => 'Ceará', 'DF' => 'Distrito Federal', - 'ES' => 'Espírito Santo', 'GO' => 'Goiás', 'MA' => 'Maranhão', - 'MT' => 'Mato Grosso', 'MS' => 'Mato Grosso do Sul', 'MG' => 'Minas Gerais', - 'PA' => 'Pará', 'PB' => 'Paraíba', 'PR' => 'Paraná', 'PE' => 'Pernambuco', - 'PI' => 'Piauí', 'RJ' => 'Rio de Janeiro', 'RN' => 'Rio Grande do Norte', - 'RS' => 'Rio Grande do Sul', 'RO' => 'Rondônia', 'RR' => 'Roraima', - 'SC' => 'Santa Catarina', 'SP' => 'São Paulo', 'SE' => 'Sergipe', - 'TO' => 'Tocantins', - ] : []) + ->options(static fn (Get $get): array => GeoLocation::statesFor($get('country'))) ->searchable() - ->allowHtml(condition: false) ->live() + ->visible(static fn (Get $get): bool => filled($get('country'))) + ->afterStateUpdated(static function (Set $set): void { + $set('city', null); + }) ->columnSpan(1), - TextInput::make('city') + Select::make('city') ->label(__('panel-app::profile.fields.city')) - ->placeholder('São Paulo') - ->maxLength(100) - ->live(onBlur: true) + ->options(static fn (Get $get): array => GeoLocation::citiesFor($get('country'), $get('state'))) + ->getSearchResultsUsing(static fn (string $search, Get $get): array => GeoLocation::citiesFor($get('country'), $get('state'), $search)) + ->getOptionLabelUsing(static fn (?string $value): ?string => $value) + ->searchable() + ->preload() + ->searchPrompt(__('panel-app::profile.placeholders.city_search')) + ->hintIcon('heroicon-o-information-circle', __('panel-app::profile.hints.city')) + ->visible(static fn (Get $get): bool => filled($get('state'))) ->columnSpan(1), ]), ]), diff --git a/app-modules/panel-app/tests/Feature/ProfilePageTest.php b/app-modules/panel-app/tests/Feature/ProfilePageTest.php index 428e7a260..60ff35996 100644 --- a/app-modules/panel-app/tests/Feature/ProfilePageTest.php +++ b/app-modules/panel-app/tests/Feature/ProfilePageTest.php @@ -12,10 +12,33 @@ use He4rt\Profile\Enums\StartAvailability; use He4rt\Profile\Models\Profile; use He4rt\Profile\Models\Skill; +use Illuminate\Support\Facades\Cache; +use Illuminate\Support\Facades\Http; use function Pest\Livewire\livewire; beforeEach(function (): void { + Cache::flush(); + + Http::fake([ + 'world.bmbc.cloud/api/countries*' => Http::response([ + 'success' => true, + 'data' => [ + ['id' => 31, 'iso2' => 'BR', 'iso3' => 'BRA', 'name' => 'Brazil'], + ['id' => 231, 'iso2' => 'US', 'iso3' => 'USA', 'name' => 'United States'], + ], + ]), + 'world.bmbc.cloud/api/states*' => Http::response([ + 'success' => true, + 'data' => [ + ['id' => 486, 'name' => 'São Paulo', 'cities' => [ + ['id' => 2, 'name' => 'São Paulo'], + ['id' => 3, 'name' => 'Campinas'], + ]], + ], + ]), + ]); + $this->user = User::factory()->create(); $this->tenant = Tenant::factory()->create(['slug' => 'test-tenant']); $this->tenant->members()->attach($this->user); diff --git a/app/Geo/Models/GeoCountry.php b/app/Geo/Models/GeoCountry.php new file mode 100644 index 000000000..97600ca5b --- /dev/null +++ b/app/Geo/Models/GeoCountry.php @@ -0,0 +1,47 @@ + + */ + protected $schema = [ + 'id' => 'integer', + 'iso2' => 'string', + 'iso3' => 'string', + 'name' => 'string', + ]; + + /** + * @return list> + */ + public function getRows(): array + { + return Cache::remember( + 'geo.countries', + 60 * 60 * 24 * 30, + static fn (): array => resolve(WorldApiClient::class)->countries(), + ); + } +} diff --git a/app/Geo/Support/GeoLocation.php b/app/Geo/Support/GeoLocation.php new file mode 100644 index 000000000..949044665 --- /dev/null +++ b/app/Geo/Support/GeoLocation.php @@ -0,0 +1,135 @@ + ISO3 => country name + */ + public static function countries(): array + { + return GeoCountry::query() + ->orderBy('name') + ->get() + ->mapWithKeys(static fn (GeoCountry $country): array => [ + $country->iso3 => $country->name, + ]) + ->all(); + } + + public static function countryLabel(?string $iso3): ?string + { + if (blank($iso3)) { + return null; + } + + /** @var string|null $name */ + $name = GeoCountry::query() + ->where('iso3', mb_strtoupper($iso3)) + ->value('name'); + + return $name; + } + + /** + * @return array state name => state name + */ + public static function statesFor(?string $iso3): array + { + return collect(self::statesPayload($iso3)) + ->sortBy('name') + ->mapWithKeys(static fn (array $state): array => [ + (string) $state['name'] => (string) $state['name'], + ]) + ->all(); + } + + /** + * @return array city name => city name + */ + public static function citiesFor(?string $iso3, ?string $stateName, ?string $search = null): array + { + if (blank($stateName)) { + return []; + } + + /** @var array|null $state */ + $state = collect(self::statesPayload($iso3)) + ->firstWhere('name', $stateName); + + if ($state === null) { + return []; + } + + /** @var list> $cities */ + $cities = $state['cities'] ?? []; + $term = mb_trim((string) $search); + + return collect($cities) + ->when($term !== '', static fn (Collection $collection): Collection => $collection->filter( + static fn (array $city): bool => self::matches((string) $city['name'], $term), + )) + ->sortBy('name') + ->take(50) + ->mapWithKeys(static fn (array $city): array => [ + (string) $city['name'] => (string) $city['name'], + ]) + ->all(); + } + + public static function formatLocation(?string $city, ?string $state, ?string $iso3): ?string + { + $country = filled($iso3) ? (self::countryLabel($iso3) ?? $iso3) : null; + + $location = collect([$city, $state, $country]) + ->filter() + ->implode(', '); + + return $location !== '' ? $location : null; + } + + /** + * @return list> + */ + private static function statesPayload(?string $iso3): array + { + if (blank($iso3)) { + return []; + } + + $iso3 = mb_strtoupper($iso3); + + /** @var list> $payload */ + $payload = Cache::remember('geo.states.'.$iso3, self::CACHE_TTL, static function () use ($iso3): array { + /** @var string|null $iso2 */ + $iso2 = GeoCountry::query()->where('iso3', $iso3)->value('iso2'); + + if (blank($iso2)) { + return []; + } + + return resolve(WorldApiClient::class)->states((string) $iso2); + }); + + return $payload; + } + + private static function matches(string $value, string $term): bool + { + return str_contains( + Str::lower(Str::ascii($value)), + Str::lower(Str::ascii($term)), + ); + } +} diff --git a/app/Geo/WorldApiClient.php b/app/Geo/WorldApiClient.php new file mode 100644 index 000000000..c64eaf5a8 --- /dev/null +++ b/app/Geo/WorldApiClient.php @@ -0,0 +1,53 @@ +> + */ + public function countries(): array + { + return $this->get('/countries', [ + 'fields' => 'iso2,iso3', + ]); + } + + /** + * @return list> + */ + public function states(string $iso2): array + { + return $this->get('/states', [ + 'filters' => ['country_code' => $iso2], + 'fields' => 'cities', + ]); + } + + /** + * @param array $query + * @return list> + */ + private function get(string $path, array $query = []): array + { + $response = Http::baseUrl(mb_rtrim($this->baseUrl, '/')) + ->acceptJson() + ->get($path, $query); + + $response->throw(); + + /** @var list> $data */ + $data = $response->json('data', []); + + return $data; + } +} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index ef61eaf3c..0cdc36993 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -5,6 +5,7 @@ namespace App\Providers; use App\Contracts\Paginator as PaginatorInterface; +use App\Geo\WorldApiClient; use App\Providers\Tools\DebugbarServiceProvider; use App\Providers\Tools\TelescopeServiceProvider; use App\Support\Paginator; @@ -28,6 +29,10 @@ public function register(): void { $this->app->bind(PaginatorInterface::class, Paginator::class); + $this->app->singleton(WorldApiClient::class, fn (): WorldApiClient => new WorldApiClient( + config()->string('geo.world_api_url'), + )); + $this->registerDebugbar(); $this->registerTelescope(); } diff --git a/config/geo.php b/config/geo.php new file mode 100644 index 000000000..d42109a50 --- /dev/null +++ b/config/geo.php @@ -0,0 +1,18 @@ + env('GEO_WORLD_API_URL', 'https://world.bmbc.cloud/api'), + +]; diff --git a/database/migrations/2026_07_08_010345_widen_addresses_state_length.php b/database/migrations/2026_07_08_010345_widen_addresses_state_length.php new file mode 100644 index 000000000..9c060b1a7 --- /dev/null +++ b/database/migrations/2026_07_08_010345_widen_addresses_state_length.php @@ -0,0 +1,27 @@ +string('state', 120)->nullable()->change(); + }); + } + + public function down(): void + { + Schema::table('addresses', static function (Blueprint $table): void { + $table->string('state', 4)->nullable()->change(); + }); + } +}; diff --git a/tests/Feature/AddressTest.php b/tests/Feature/AddressTest.php index 98590352a..80d3a9fca 100644 --- a/tests/Feature/AddressTest.php +++ b/tests/Feature/AddressTest.php @@ -46,23 +46,23 @@ $user = User::factory()->create(); $user->address()->updateOrCreate([], [ - 'country' => 'BRA', - 'state' => 'SP', + 'country' => 'BR', + 'state' => 'São Paulo', 'city' => 'São Paulo', ]); expect($user->fresh()->address) - ->country->toBe('BRA') - ->state->toBe('SP') + ->country->toBe('BR') + ->state->toBe('São Paulo') ->city->toBe('São Paulo'); $user->address()->updateOrCreate([], [ - 'state' => 'RJ', + 'state' => 'Rio de Janeiro', 'city' => 'Rio de Janeiro', ]); expect($user->fresh()->address) - ->state->toBe('RJ') + ->state->toBe('Rio de Janeiro') ->city->toBe('Rio de Janeiro') ->and(Address::query()->where('addressable_id', $user->id)->count())->toBe(1); }); diff --git a/tests/Feature/Geo/GeoLocationTest.php b/tests/Feature/Geo/GeoLocationTest.php new file mode 100644 index 000000000..a962f9f5a --- /dev/null +++ b/tests/Feature/Geo/GeoLocationTest.php @@ -0,0 +1,89 @@ + Http::response([ + 'success' => true, + 'data' => [ + ['id' => 31, 'iso2' => 'BR', 'iso3' => 'BRA', 'name' => 'Brazil'], + ['id' => 231, 'iso2' => 'US', 'iso3' => 'USA', 'name' => 'United States'], + ], + ]), + 'world.bmbc.cloud/api/states*' => Http::response([ + 'success' => true, + 'data' => [ + ['id' => 485, 'name' => 'Acre', 'cities' => [ + ['id' => 1, 'name' => 'Rio Branco'], + ]], + ['id' => 486, 'name' => 'São Paulo', 'cities' => [ + ['id' => 2, 'name' => 'São Paulo'], + ['id' => 3, 'name' => 'Campinas'], + ]], + ], + ]), + ]); +}); + +it('returns an ISO3 => name map of countries', function (): void { + expect(GeoLocation::countries())->toBe([ + 'BRA' => 'Brazil', + 'USA' => 'United States', + ]); +}); + +it('resolves a country label from an ISO3 code', function (): void { + expect(GeoLocation::countryLabel('BRA'))->toBe('Brazil') + ->and(GeoLocation::countryLabel('USA'))->toBe('United States') + ->and(GeoLocation::countryLabel(iso3: null))->toBeNull(); +}); + +it('returns state names for a country', function (): void { + expect(GeoLocation::statesFor('BRA'))->toBe([ + 'Acre' => 'Acre', + 'São Paulo' => 'São Paulo', + ]); +}); + +it('returns cities embedded in the states payload without a separate request', function (): void { + expect(GeoLocation::citiesFor('BRA', 'São Paulo'))->toBe([ + 'Campinas' => 'Campinas', + 'São Paulo' => 'São Paulo', + ]); + + Http::assertNotSent(static fn ($request): bool => str_contains((string) $request->url(), '/cities')); +}); + +it('filters cities accent-insensitively', function (): void { + expect(GeoLocation::citiesFor('BRA', 'São Paulo', 'sao')) + ->toBe(['São Paulo' => 'São Paulo']); +}); + +it('caches the states payload for a country across calls', function (): void { + GeoLocation::statesFor('BRA'); + GeoLocation::statesFor('BRA'); + + Http::assertSentCount(2); + + $statesRequests = 0; + + Http::recorded(static function ($request) use (&$statesRequests): void { + if (str_contains((string) $request->url(), '/states')) { + $statesRequests++; + } + }); + + expect($statesRequests)->toBe(1); +}); + +it('formats a full location string', function (): void { + expect(GeoLocation::formatLocation('São Paulo', 'São Paulo', 'BRA')) + ->toBe('São Paulo, São Paulo, Brazil'); +}); From b0ebc990465f4854890a765f2ff580e4adb04dac Mon Sep 17 00:00:00 2001 From: Daniel Reis Date: Tue, 7 Jul 2026 23:50:11 -0300 Subject: [PATCH 02/46] fix(activity): reassign timeline ownership on account merge (#395) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Problema O feed da timeline retorna **500** com `Attempt to read property "name" on null` em `panel-app/resources/views/components/timeline/header.blade.php` sempre que o autor de um post resolve para `null`. Como o feed renderiza todos os posts, **um único post órfão derruba a página inteira** para todos. ## Causa raiz — merge de contas Quando duas contas são mergeadas, `MergeAccountsAction` reatribui `ExternalIdentity` e tenants para a conta sobrevivente e faz **hard delete** da conta perdedora — mas **nunca reatribui `activity_timeline.user_id`**. Não existe FK nessa coluna, então os posts da conta mergeada ficam órfãos e o feed quebra. ``` MergeAccountsAction (identity) activity module reatribui ExternalIdentity + tenants event(AccountsMerged(survivor, merged)) ──► ReassignTimelineOwnership (listener) currentUser->delete() UPDATE activity_timeline SET user_id = survivor WHERE user_id = merged ``` ## Fix — 3 camadas (defense-in-depth) 1. **Merge (causa raiz):** novo evento `AccountsMerged` disparado dentro da transação do merge; listener em `activity` reatribui as linhas da timeline para o sobrevivente. **Preserva os posts** e previne órfãos futuros. Feito via evento para não criar dependência circular entre módulos (`activity` já depende de `identity`). `activity_reactions` não tem `user_id`, então a timeline é a única tabela a reatribuir. 2. **Filtro do feed:** `TimelineFeed` usa `whereHas('user')` para blindar o feed contra os **órfãos que já existem em prod** (o mapeamento id-antigo→novo se perdeu no hard delete e não dá pra reatribuir automaticamente). 3. **View guard:** `header`/`post-show` toleram autor null e mostram "Usuário removido" em vez de quebrar. ## Testes 22/22 verdes (3 novos + os existentes de timeline/merge): - `MergeAccountsActionTest` — merge reatribui os posts ao sobrevivente (exercita evento→listener ponta a ponta). - `TimelineFeedQueryTest` — feed exclui posts de autor inexistente. - `ThreadPageTest` — `PostShow` renderiza sem quebrar quando o autor foi deletado. ## Observação Os órfãos **já existentes** em produção continuam no banco — o filtro só os esconde do feed. Uma limpeza/reatribuição retroativa precisaria de uma fonte pro mapeamento (logs / `ExternalIdentity`) e fica fora deste PR. --- .../activity/src/ActivityServiceProvider.php | 3 +++ .../Listeners/ReassignTimelineOwnership.php | 23 +++++++++++++++++ .../src/Timeline/Queries/TimelineFeed.php | 1 + .../Unit/Timeline/TimelineFeedQueryTest.php | 25 +++++++++++++++++++ .../src/Auth/Actions/MergeAccountsAction.php | 3 +++ .../src/Auth/Events/AccountsMerged.php | 22 ++++++++++++++++ .../Feature/Auth/MergeAccountsActionTest.php | 19 ++++++++++++++ .../components/timeline/header.blade.php | 10 +++++--- .../livewire/timeline/post-show.blade.php | 2 +- .../tests/Feature/Timeline/ThreadPageTest.php | 18 +++++++++++++ 10 files changed, 121 insertions(+), 5 deletions(-) create mode 100644 app-modules/activity/src/Timeline/Listeners/ReassignTimelineOwnership.php create mode 100644 app-modules/identity/src/Auth/Events/AccountsMerged.php diff --git a/app-modules/activity/src/ActivityServiceProvider.php b/app-modules/activity/src/ActivityServiceProvider.php index 3e9fb4b56..d79f3f9f9 100644 --- a/app-modules/activity/src/ActivityServiceProvider.php +++ b/app-modules/activity/src/ActivityServiceProvider.php @@ -8,8 +8,10 @@ use He4rt\Activity\Moderation\Models\ModerationEvent; use He4rt\Activity\Timeline\Delegated\PostEntry; use He4rt\Activity\Timeline\Listeners\PublishModerationToTimeline; +use He4rt\Activity\Timeline\Listeners\ReassignTimelineOwnership; use He4rt\Activity\Timeline\Timeline; use He4rt\Activity\Voice\Models\Voice; +use He4rt\Identity\Auth\Events\AccountsMerged; use He4rt\Moderation\Enforcement\ActionExecuted; use Illuminate\Database\Eloquent\Relations\Relation; use Illuminate\Support\Facades\Event; @@ -36,5 +38,6 @@ public function boot(): void ]); Event::listen(ActionExecuted::class, [PublishModerationToTimeline::class, 'handle']); + Event::listen(AccountsMerged::class, [ReassignTimelineOwnership::class, 'handle']); } } diff --git a/app-modules/activity/src/Timeline/Listeners/ReassignTimelineOwnership.php b/app-modules/activity/src/Timeline/Listeners/ReassignTimelineOwnership.php new file mode 100644 index 000000000..607acdc3a --- /dev/null +++ b/app-modules/activity/src/Timeline/Listeners/ReassignTimelineOwnership.php @@ -0,0 +1,23 @@ +where('user_id', $event->mergedId) + ->update(['user_id' => $event->survivorId]); + } +} diff --git a/app-modules/activity/src/Timeline/Queries/TimelineFeed.php b/app-modules/activity/src/Timeline/Queries/TimelineFeed.php index 328d470c2..fdbd43483 100644 --- a/app-modules/activity/src/Timeline/Queries/TimelineFeed.php +++ b/app-modules/activity/src/Timeline/Queries/TimelineFeed.php @@ -19,6 +19,7 @@ public function builder(): Builder return Timeline::query() ->where('tenant_id', $this->tenantId) ->where('is_ignored', operator: false) + ->whereHas('user') ->whereNull('parent_id')->latest(); } } diff --git a/app-modules/activity/tests/Unit/Timeline/TimelineFeedQueryTest.php b/app-modules/activity/tests/Unit/Timeline/TimelineFeedQueryTest.php index 5b008a4a1..65f60a4a3 100644 --- a/app-modules/activity/tests/Unit/Timeline/TimelineFeedQueryTest.php +++ b/app-modules/activity/tests/Unit/Timeline/TimelineFeedQueryTest.php @@ -84,6 +84,31 @@ ->and($result->first()->id)->toBe($visible->id); }); +test('excludes posts whose author no longer exists', function (): void { + $tenant = Tenant::factory()->create(); + $author = User::factory()->create(); + $ghost = User::factory()->create(); + + $visible = Timeline::factory()->for($author)->create([ + 'tenant_id' => $tenant->id, + 'postable_type' => (new PostEntry)->getMorphClass(), + 'postable_id' => PostEntry::factory()->create()->id, + ]); + + Timeline::factory()->for($ghost)->create([ + 'tenant_id' => $tenant->id, + 'postable_type' => (new PostEntry)->getMorphClass(), + 'postable_id' => PostEntry::factory()->create()->id, + ]); + + $ghost->delete(); + + $result = new TimelineFeed($tenant->id)->builder()->simplePaginate(15); + + expect($result)->toHaveCount(1) + ->and($result->first()->id)->toBe($visible->id); +}); + test('does not show posts from other tenants', function (): void { $tenantA = Tenant::factory()->create(); $tenantB = Tenant::factory()->create(); diff --git a/app-modules/identity/src/Auth/Actions/MergeAccountsAction.php b/app-modules/identity/src/Auth/Actions/MergeAccountsAction.php index bf04b364c..c23d43e74 100644 --- a/app-modules/identity/src/Auth/Actions/MergeAccountsAction.php +++ b/app-modules/identity/src/Auth/Actions/MergeAccountsAction.php @@ -4,6 +4,7 @@ namespace He4rt\Identity\Auth\Actions; +use He4rt\Identity\Auth\Events\AccountsMerged; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; use He4rt\Identity\User\Models\User; use Illuminate\Database\UniqueConstraintViolationException; @@ -28,6 +29,8 @@ public function execute(User $currentUser, User $oldUser): void $currentUser->tenants()->pluck('tenants.id') ); + event(new AccountsMerged($oldUser->id, $currentUser->id)); + $currentUser->delete(); $this->enrichOldUser($currentUser, $oldUser); diff --git a/app-modules/identity/src/Auth/Events/AccountsMerged.php b/app-modules/identity/src/Auth/Events/AccountsMerged.php new file mode 100644 index 000000000..99714df30 --- /dev/null +++ b/app-modules/identity/src/Auth/Events/AccountsMerged.php @@ -0,0 +1,22 @@ +toBe(collect([$tenantA->id, $tenantB->id])->sort()->values()->all()); }); +test('reassigns timeline posts from current to old user so they are not orphaned', function (): void { + $tenant = Tenant::factory()->create(); + $oldUser = User::factory()->create(['first_login_at' => now()]); + $currentUser = User::factory()->create(); + + $post = Timeline::factory()->for($currentUser)->create([ + 'tenant_id' => $tenant->id, + 'postable_type' => (new PostEntry)->getMorphClass(), + 'postable_id' => PostEntry::factory()->create()->id, + ]); + + $action = new MergeAccountsAction(); + $action->execute($currentUser, $oldUser); + + expect($post->refresh()->user_id)->toBe($oldUser->id); +}); + test('deletes current user after merge', function (): void { $oldUser = User::factory()->create(['first_login_at' => now()]); $currentUser = User::factory()->create(); diff --git a/app-modules/panel-app/resources/views/components/timeline/header.blade.php b/app-modules/panel-app/resources/views/components/timeline/header.blade.php index ab386a812..a01d3bf15 100644 --- a/app-modules/panel-app/resources/views/components/timeline/header.blade.php +++ b/app-modules/panel-app/resources/views/components/timeline/header.blade.php @@ -1,15 +1,17 @@ -@props (['user', 'pinned' => false, 'createdAt']) +@props (['user' => null, 'pinned' => false, 'createdAt']) + +@php($displayName = $user?->name ?? 'Usuário removido')
- {{ str($user->name)->substr(0, 2)->upper() }} + {{ str($displayName)->substr(0, 2)->upper() }}
- {{ $user->name }} - @if ($user->username) + {{ $displayName }} + @if ($user?->username) children_count > 0)
@foreach ($timeline->children->take(3) as $reply) - @continue (!$reply->postable) + @continue (!$reply->postable || !$reply->user)
assertSeeInOrder(['First reply', 'Second reply']); }); +test('post renders without crashing when its author was deleted', function (): void { + $ghost = User::factory()->create(); + $entry = PostEntry::factory()->create(['content' => 'Orphaned post content']); + $orphan = Timeline::factory()->for($ghost)->create([ + 'tenant_id' => $this->tenant->id, + 'postable_type' => (new PostEntry)->getMorphClass(), + 'postable_id' => $entry->id, + ]); + + $ghost->delete(); + + livewire(PostShow::class, ['timelineId' => $orphan->id]) + ->assertOk() + ->assertSee('Usuário removido') + ->assertSee('Orphaned post content'); +}); + // --- Critical: Tenant isolation --- test('thread page returns 404 for post from another tenant', function (): void { From b6393d5ffd05c0e6fc3fb414b5826d05b53ad957 Mon Sep 17 00:00:00 2001 From: Bruna Domingues Leite Date: Wed, 8 Jul 2026 13:40:28 -0300 Subject: [PATCH 03/46] fix(panel): ajustes de UI no perfil e sidebar (#399) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - Corrige visibilidade do círculo de iniciais no dark mode (header e preview card do perfil) - Evita que o hover de upload da capa fique por cima do avatar - Melhora visibilidade do avatar no menu lateral no dark mode - Adiciona borda discreta na sidebar, no mesmo peso das bordas dos inputs do form **Antes:** no dark mode, o círculo das iniciais quase sumia no perfil; o hover de upload da capa cobria parte do avatar; o avatar do menu lateral ficava sem contorno visível; e não havia separação clara entre sidebar e conteúdo. Captura de tela 2026-07-08 131101 **Depois:** iniciais com borda/ring visível no header e no preview card; avatar sempre acima do hover da capa; contorno discreto no avatar do menu lateral; e borda suave na sidebar, no mesmo peso das bordas dos inputs do form. Captura de tela 2026-07-08 130813 ## Commits 1. `fix(profile): keep initials avatar visible in dark mode preview card` 2. `fix(profile): keep initials avatar visible in dark mode header` 3. `fix(profile): keep avatar above cover upload hover overlay` 4. `fix(panel): keep sidebar user avatar visible in dark mode` 5. `style(panel): add subtle sidebar border` *(fácil de reverter isoladamente se necessário)* ## Test plan - [ ] Abrir `/app/{tenant}/profile` em light e dark mode - [ ] Sem foto: conferir se o círculo com iniciais aparece no header e no preview card - [ ] Passar o mouse na capa: hover não deve cobrir o avatar - [ ] No menu lateral: avatar do usuário visível no dark mode - [ ] Conferir se a borda da sidebar está discreta (similar aos inputs do form) --------- Co-authored-by: Cursor --- .../views/components/profile-media-header.blade.php | 8 ++++---- .../views/components/profile-preview-card.blade.php | 4 ++-- resources/css/filament/app/theme.css | 12 ++++++++++++ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/app-modules/panel-app/resources/views/components/profile-media-header.blade.php b/app-modules/panel-app/resources/views/components/profile-media-header.blade.php index 962087ae3..66d6d2353 100644 --- a/app-modules/panel-app/resources/views/components/profile-media-header.blade.php +++ b/app-modules/panel-app/resources/views/components/profile-media-header.blade.php @@ -59,10 +59,10 @@ class="absolute inset-0 z-30 flex items-center justify-center bg-black/50"
{{-- Bottom section: avatar + fields --}} -
+
{{-- Avatar (overlapping cover) --}}
@else
{{ $initials }}
diff --git a/app-modules/panel-app/resources/views/components/profile-preview-card.blade.php b/app-modules/panel-app/resources/views/components/profile-preview-card.blade.php index d77159552..5386dac5f 100644 --- a/app-modules/panel-app/resources/views/components/profile-preview-card.blade.php +++ b/app-modules/panel-app/resources/views/components/profile-preview-card.blade.php @@ -100,11 +100,11 @@ class="absolute top-3 right-3 rounded-md bg-white/20 px-2 py-0.5 text-xs font-bo {{ $name }} @else
{{ $initials }}
diff --git a/resources/css/filament/app/theme.css b/resources/css/filament/app/theme.css index 8bc6c0311..5c4830ef6 100644 --- a/resources/css/filament/app/theme.css +++ b/resources/css/filament/app/theme.css @@ -47,3 +47,15 @@ opacity: 0.35; } } + +/* Keep user avatar circle visible against dark sidebar + (default ui-avatars uses gray-950, which blends into dark mode) */ +.fi-sidebar .fi-user-avatar { + @apply ring-1 ring-gray-300 dark:ring-white/20; +} + +/* Soft edge between sidebar navigation and main content + (same weight as Filament form input borders) */ +.fi-sidebar { + @apply border-e border-gray-200 dark:border-white/10; +} From 87db5d3823b6d4cc9e8f4202ca850f76016eacb1 Mon Sep 17 00:00:00 2001 From: Gabriel Vieira <48625433+gvieira18@users.noreply.github.com> Date: Thu, 9 Jul 2026 11:03:58 -0300 Subject: [PATCH 04/46] chore: sync conventions, tooling, and tests (#402) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit > 📄 Visual overview of this PR — one-screen interactive summary of every change. > [!NOTE] > **Why `tests/.pest/shards.json` is committed — it's intentional.** Pest v4.6.0 balances the suite across shards using recorded per-test timings. Committing this baseline (instead of regenerating it every run) makes the split **deterministic and evenly balanced from the first CI run** — no warm-up pass and no cross-run artifact upload to wire up. It's refreshed automatically as the suite grows. See [Time-based sharding in Pest v4.6.0](https://laravel-news.com/time-based-sharding-in-pest-v4-6-0). ## Summary - **Guidelines** — sync AI guidelines to he4rt conventions (namespace/naming, issue-tracker repo `he4rt/heartdevs.com`, added typed-JSON-cast + enum-contract guidance); drop 3 stale `docs/agents/*` mirrors. - **Modular** — fix `make:module` stubs + `config/app-modules.php` so a module's ServiceProvider scaffolds at `src/` root (not `Providers/`); migrate `squads` and `onboarding` to match. - **Testing DX** — add tracked `.env.testing.example`, untrack the per-dev `.env.testing`, bootstrap it via `post-root-package-install`; use `LazilyRefreshDatabase` for feature tests. - **CI** — run the Pest suite in 2 balanced shards (committed timings baseline); gate the pipeline on canonical branch prefixes (`feature/**`, `bugfix/**`, `chore/**`, `story/**`, `*.x`). - **Deps** — pin intra-repo `he4rt/*` modules to `^1.0.0`; bump dependencies. - **Refactor** — apply the Rector named-argument convention across models, commands, jobs and Livewire components. - **Cleanup** — remove 24 redundant `.gitkeep` placeholders. ## Test plan - [ ] `composer check` — Rector, Pint, PHPStan all clean - [ ] `php artisan test` — 881 pass (539 feature + 342 unit, 2515 assertions) - [ ] Fresh clone: `make setup` creates `.env.testing`; `make setup-test-db` migrates it - [ ] Scaffolding a new module places its ServiceProvider at `src/` root --- .../domain/02-module-architecture.blade.php | 38 ++ .../domain/06-typed-json-casts.blade.php | 55 ++ .../07-enum-filament-contracts.blade.php | 101 ++++ .../workflow/01-issue-tracker.blade.php | 62 +- .../workflow/04-branch-naming.blade.php | 51 ++ .env.testing => .env.testing.example | 14 +- .github/workflows/_pest.yml | 28 +- .github/workflows/continuous-integration.yml | 29 +- .github/workflows/dependabot-automerge.yml | 4 + .gitignore | 5 + Makefile | 9 +- Taskfile.yml | 7 +- .../activity/database/factories/.gitkeep | 0 .../activity/database/migrations/.gitkeep | 0 .../src/Moderation/Models/ModerationEvent.php | 2 +- .../activity/src/Voice/Models/Voice.php | 2 +- .../community/database/factories/.gitkeep | 0 .../community/database/migrations/.gitkeep | 0 .../src/Console/Commands/CacheDocsCommand.php | 4 +- .../economy/database/factories/.gitkeep | 0 .../economy/database/migrations/.gitkeep | 0 .../gamification/database/factories/.gitkeep | 0 .../gamification/database/migrations/.gitkeep | 0 .../gamification/database/seeders/.gitkeep | 0 .../identity/database/factories/.gitkeep | 0 .../identity/database/migrations/.gitkeep | 0 .../identity/src/Tenant/Models/TenantUser.php | 2 +- app-modules/identity/src/User/Models/User.php | 2 +- .../src/Polling/SyncDevToArticles.php | 4 +- .../database/factories/.gitkeep | 0 .../database/migrations/.gitkeep | 0 .../ETL/Console/BackfillVoiceLogsCommand.php | 4 +- .../Console/ImportDiscordMessagesCommand.php | 4 +- .../Console/ImportDiscordProfilesCommand.php | 4 +- .../MergeDuplicateDiscordProfilesCommand.php | 4 +- .../Console/PurgeUnusedInvitesCommand.php | 4 +- .../Sync/Console/SyncDiscordGuildCommand.php | 4 +- .../database/factories/.gitkeep | 0 .../database/migrations/.gitkeep | 0 .../Jobs/BackfillGithubRepository.php | 4 +- .../src/Console/BackfillGithubCommand.php | 4 +- .../integration-github/tests/Feature/.gitkeep | 0 .../database/migrations/.gitkeep | 0 .../src/Console/LinkTwitchChannelCommand.php | 4 +- .../Console/SubscribeTwitchEventsCommand.php | 4 +- .../src/Models/WhatsAppEventLog.php | 2 +- .../src/Appeals/ModerationAppeal.php | 4 +- .../src/Audit/ModerationAuditLog.php | 2 +- .../src/Cases/Models/ModerationCase.php | 4 +- .../src/Cases/Models/ModerationReport.php | 4 +- .../Classification/Jobs/ClassifyAndRoute.php | 2 +- .../src/Classification/Jobs/ScreenContent.php | 2 +- .../src/Enforcement/ModerationAction.php | 4 +- .../moderation/src/Rules/ModerationRule.php | 2 +- app-modules/moderation/tests/Feature/.gitkeep | 0 app-modules/moderation/tests/Unit/.gitkeep | 0 app-modules/onboarding/composer.json | 2 +- .../OnboardingServiceProvider.php | 2 +- .../panel-admin/resources/views/.gitkeep | 0 .../panel-admin/tests/Feature/.gitkeep | 0 .../panel-app/src/Livewire/Timeline/Feed.php | 6 +- .../src/Livewire/Timeline/PostShow.php | 2 +- .../src/Livewire/Timeline/ThreadReplies.php | 4 +- .../panel-app/src/Pages/ProfilePage.php | 4 +- .../Livewire/CommunityRetrospectivePage.php | 4 +- app-modules/portal/src/Livewire/Homepage.php | 4 +- .../portal/src/Livewire/SocialLinksPage.php | 4 +- .../Retrospective/CommunityRetrospective.php | 2 +- .../Feature/CommunityRetrospectiveTest.php | 22 + app-modules/profile/src/Models/Profile.php | 2 +- .../profile/src/Models/WorkExperience.php | 2 +- app-modules/squads/composer.json | 2 +- .../{Providers => }/SquadsServiceProvider.php | 2 +- .../Commands/AnalyzeDiscordProfiles.php | 4 +- app/Console/Commands/CommunityReport.php | 4 +- app/Console/Commands/FetchDiscordMembers.php | 4 +- app/Console/Commands/FetchDiscordProfile.php | 4 +- app/Console/Commands/FetchDiscordProfiles.php | 4 +- .../FixPostSwitchTimestampsCommand.php | 4 +- .../Commands/GenerateDiscordTenant.php | 4 +- app/Console/Commands/ImportDiscordMembers.php | 4 +- app/Support/PestShardPlugin.php | 558 ++++++++++++++++++ composer.json | 86 +-- composer.lock | 454 ++++++++------ config/app-modules.php | 2 +- database/factories/.gitkeep | 0 docs/agents/domain.md | 43 -- docs/agents/issue-tracker.md | 22 - docs/agents/triage-labels.md | 15 - package-lock.json | 207 ++++--- package.json | 8 +- phpstan.neon | 6 +- phpunit.xml | 1 - rector.php | 7 +- stubs/app-modules/.gitkeep | 0 stubs/app-modules/ServiceProvider.php | 2 +- stubs/app-modules/composer-stub.json | 2 +- tests/.pest/shards.json | 140 +++++ tests/Feature/.gitkeep | 0 99 files changed, 1604 insertions(+), 530 deletions(-) create mode 100644 .ai/guidelines/domain/06-typed-json-casts.blade.php create mode 100644 .ai/guidelines/domain/07-enum-filament-contracts.blade.php create mode 100644 .ai/guidelines/workflow/04-branch-naming.blade.php rename .env.testing => .env.testing.example (73%) delete mode 100644 app-modules/activity/database/factories/.gitkeep delete mode 100644 app-modules/activity/database/migrations/.gitkeep delete mode 100644 app-modules/community/database/factories/.gitkeep delete mode 100644 app-modules/community/database/migrations/.gitkeep delete mode 100644 app-modules/economy/database/factories/.gitkeep delete mode 100644 app-modules/economy/database/migrations/.gitkeep delete mode 100644 app-modules/gamification/database/factories/.gitkeep delete mode 100644 app-modules/gamification/database/migrations/.gitkeep delete mode 100644 app-modules/gamification/database/seeders/.gitkeep delete mode 100644 app-modules/identity/database/factories/.gitkeep delete mode 100644 app-modules/identity/database/migrations/.gitkeep delete mode 100644 app-modules/integration-discord/database/factories/.gitkeep delete mode 100644 app-modules/integration-discord/database/migrations/.gitkeep delete mode 100644 app-modules/integration-github/database/factories/.gitkeep delete mode 100644 app-modules/integration-github/database/migrations/.gitkeep delete mode 100644 app-modules/integration-github/tests/Feature/.gitkeep delete mode 100644 app-modules/integration-twitch/database/migrations/.gitkeep delete mode 100644 app-modules/moderation/tests/Feature/.gitkeep delete mode 100644 app-modules/moderation/tests/Unit/.gitkeep rename app-modules/onboarding/src/{Providers => }/OnboardingServiceProvider.php (84%) delete mode 100644 app-modules/panel-admin/resources/views/.gitkeep delete mode 100644 app-modules/panel-admin/tests/Feature/.gitkeep rename app-modules/squads/src/{Providers => }/SquadsServiceProvider.php (85%) create mode 100644 app/Support/PestShardPlugin.php delete mode 100644 database/factories/.gitkeep delete mode 100644 docs/agents/domain.md delete mode 100644 docs/agents/issue-tracker.md delete mode 100644 docs/agents/triage-labels.md delete mode 100644 stubs/app-modules/.gitkeep create mode 100644 tests/.pest/shards.json delete mode 100644 tests/Feature/.gitkeep diff --git a/.ai/guidelines/domain/02-module-architecture.blade.php b/.ai/guidelines/domain/02-module-architecture.blade.php index 66736cd0b..c13412d40 100644 --- a/.ai/guidelines/domain/02-module-architecture.blade.php +++ b/.ai/guidelines/domain/02-module-architecture.blade.php @@ -101,9 +101,47 @@ public function boot(): void @endverbatim +## Version constraints — mandatory `^1.0.0` style + +Every intra-repo `he4rt/*` module dependency (in the root `composer.json` and in any +module's `composer.json`) MUST be declared with the caret style `^1.0.0`. Never use +loose constraints like `>=1`, `*`, `dev-main`, or a truncated `^1.0`. + +@verbatim + +{ + "require": { + // GOOD — caret with full three-part version: + "he4rt/identity": "^1.0.0", + "he4rt/moderation": "^1.0.0", + + // BAD — loose or truncated constraints: + "he4rt/identity": ">=1", + "he4rt/moderation": "^1.0", + "he4rt/economy": "*" + } +} + +@endverbatim + +This keeps every module pinned to a predictable, SemVer-compatible range and avoids +accidental major upgrades. When you add a new module dependency, match this style. + ## Dependency rules - **Domain** modules never import from Presentation or Integration. - **Integration** modules may depend on Domain (e.g., Identity for user resolution). - **Presentation** imports from Domain and Integration, never the reverse. - Check `CONTEXT-MAP.md` for cross-context constraints. + +## Registering a new module — mandatory label sync + +Every `app-modules//` has exactly one `mod:` triage label, and vice +versa. When you scaffold a **new** module you MUST, in the same change: + +1. **Add a row** to the module table in `workflow/triage-labels` (`mod:` → ``). +2. **Create the label on GitHub** so the issue tracker can use it: + `gh label create "mod:" --color "c2e0c6" --description ""` + +Do not leave the guideline table and the live GitHub labels out of sync — an issue +that can't be tagged with its module's label means triage and routing break. diff --git a/.ai/guidelines/domain/06-typed-json-casts.blade.php b/.ai/guidelines/domain/06-typed-json-casts.blade.php new file mode 100644 index 000000000..46c8f77d1 --- /dev/null +++ b/.ai/guidelines/domain/06-typed-json-casts.blade.php @@ -0,0 +1,55 @@ +@php + /** @var \Laravel\Boost\Install\GuidelineAssist $assist */ +@endphp + +# Typed JSON Casts — Ban the Loose Array Cast + +**Priority: HIGH.** Every JSON/jsonb column with a known or semi-structured shape MUST be +cast to a typed value object. A loose `'metadata' => 'array'` is an untyped, unvalidated, +refactor-hostile blind spot: PHPStan collapses to `mixed`, malformed payloads become +silent missing keys, and renaming a key is find-and-pray. + +The same rule applies beyond casts: **prefer DTOs/VOs over associative arrays and +`stdClass` anywhere a shape is predictable** — command payloads, event properties, +integration Response Objects (Saloon), service returns. + +## Banned casts (mechanically enforced) + +Banned inside any model's `casts()`/`$casts`: `'array'`, `'json'`, `'object'`, +`'collection'`, `encrypted:array|collection|object`, `AsArrayObject`, `AsCollection`, +`AsEnumArrayObject`, `AsEnumCollection`, `AsEncryptedArrayObject`, +`AsEncryptedCollection`, and `SchemalessAttributes`. + +The gate is `tests/Unit/NoLooseArrayCastsTest.php` — it reflects over every concrete +model (`app/Models` + `app-modules/*/src`), reads the real merged `getCasts()`, and fails +on any banned cast not explicitly allowlisted there. The allowlist is the documented +escape hatch for **genuinely polymorphic** JSON (each entry carries a reason); keep it +trending toward empty. + +## The pattern + + +// BEFORE — blind +'metadata' => 'array', +$model->metadata['last_projects_sync_at'] ?? null; // mixed · magic string + +// AFTER — typed VO cast (see AsCredentials in the identity module for a live example) +'metadata' => AsIdentityMetadata::class, +$model->metadata->lastSyncAt(Capability::Projects); // ?CarbonImmutable · verified + + +The VO owns shape, validation and accessors (`fromArray()` / `toArray()` / immutable +`withX()` copies). The cast is only the JSON ↔ VO bridge. + +## Rules of thumb + +- **Key/format conventions live on ONE owner** (usually the enum: + `$capability->lastSyncedAtKey()`) — never reverse-parse strings to recover a key. +- **The cast generic is a contract for the setter too**: declare + `CastsAttributes>` so legacy array assignment stays + a reachable, typed branch (`match (true)`). +- `json_decode` returns `array`, never your shape — guard keys or + iterate `EnumClass::cases()` instead of touching arbitrary keys. +- Genuinely polymorphic/freeform JSON → allowlist it **with a reason** and revisit. +- Never introduce `stdClass` in domain code; defensive layers (e.g. the kernel's + `CanonicalJson`) may normalize it, but no domain object produces one. diff --git a/.ai/guidelines/domain/07-enum-filament-contracts.blade.php b/.ai/guidelines/domain/07-enum-filament-contracts.blade.php new file mode 100644 index 000000000..f0b1bf397 --- /dev/null +++ b/.ai/guidelines/domain/07-enum-filament-contracts.blade.php @@ -0,0 +1,101 @@ +@php +/** @var \Laravel\Boost\Install\GuidelineAssist $assist */ +@endphp + +# Enums — Implement the Filament Contracts Immediately + +**Priority: HIGH.** Every time you create a **new** backed enum, implement the Filament +"enum trick" contracts in the **same change** — never as a follow-up pass. Retrofitting +later means touching every enum (and every call site that assumed a bare `->value`) twice. + +Domain enums implementing Filament contracts is the established precedent here (the +moderation enums — `CaseStatus`, `Severity`, `AppealStatus`, `ModerationType`, … — all do +it). The panel leans on these contracts for badges, table/infolist columns, `SelectFilter` +options, select descriptions and state-gated UI. + +## Mandatory contracts + +| Contract | Method | Always? | +|----------|--------|---------| +| `Filament\Support\Contracts\HasLabel` | `getLabel(): string` | Yes | +| `Filament\Support\Contracts\HasColor` | `getColor()` | Yes | +| `Filament\Support\Contracts\HasDescription` | `getDescription(): ?string` | Yes | +| `Filament\Support\Contracts\HasIcon` | `getIcon()` | Only when an icon is genuinely meaningful | + +Every getter is a `match ($this)` over **all** cases — no `default` arm, so adding a case +is a compile-time reminder to fill in every trick. + +## HasColor — ordered enums ramp light → red + +When the enum encodes an **ordered scale** (access level, seniority, severity, risk, SLA +health), `getColor()` MUST form a monotonic light→red heat ramp: the least/lowest case gets +the lightest color, the most/highest gets `danger` (red). The six semantic strings +(`gray`, `info`, `primary`, `success`, `warning`, `danger`) cover short scales; for a longer +monotonic gradient use the `Filament\Support\Colors\Color` palette. + +For an **unordered** enum (e.g. document kinds), pick distinct semantic colors per case — +the ramp rule does not apply. + +## The pattern + + +use Filament\Support\Colors\Color; +use Filament\Support\Contracts\HasColor; +use Filament\Support\Contracts\HasDescription; +use Filament\Support\Contracts\HasIcon; +use Filament\Support\Contracts\HasLabel; +use Filament\Support\Icons\Heroicon; + +enum AccessTier: string implements HasColor, HasDescription, HasIcon, HasLabel +{ + case None = 'none'; + case Analyst = 'analyst'; + case Admin = 'admin'; + + public function getLabel(): string + { + return match ($this) { + self::None => 'No access', + self::Analyst => 'Analyst', + self::Admin => 'Administration', + }; + } + + // Ordered scale → light (no access) ramps to red (apex authority). + public function getColor(): string|array + { + return match ($this) { + self::None => 'gray', + self::Analyst => Color::Blue, + self::Admin => Color::Red, + }; + } + + public function getDescription(): ?string + { + return match ($this) { + self::None => 'Notification audience — no panel access', + self::Analyst => 'Day-to-day operator: triage, review, moderation', + self::Admin => 'Final authority: configures the panel, decides cases', + }; + } + + public function getIcon(): Heroicon + { + return match ($this) { + self::None => Heroicon::OutlinedNoSymbol, + self::Analyst => Heroicon::OutlinedMagnifyingGlass, + self::Admin => Heroicon::OutlinedScale, + }; + } +} + + +## Verification + +Before marking an enum task done, confirm: + +1. The enum `implements HasColor, HasDescription, HasLabel` (and `HasIcon` when meaningful). +2. Every getter `match`es **all** cases with no `default`. +3. Ordered enums ramp light → `danger`; the apex case is red. +4. `{{ $assist->binCommand('pint') }}` and PHPStan pass. diff --git a/.ai/guidelines/workflow/01-issue-tracker.blade.php b/.ai/guidelines/workflow/01-issue-tracker.blade.php index ff1b4571e..55cb021c4 100644 --- a/.ai/guidelines/workflow/01-issue-tracker.blade.php +++ b/.ai/guidelines/workflow/01-issue-tracker.blade.php @@ -4,7 +4,58 @@ # Issue tracker: GitHub -Issues and PRDs for this repo live as GitHub issues on `he4rt/he4rt-bot-api`. Use the `gh` CLI for all operations. +Issues and PRDs for this repo live as GitHub issues on `he4rt/heartdevs.com`. Use the +`gh` CLI for all operations — `gh` infers the repo from `git remote -v`, so never +hard-code the `owner/repo`. + +## When a skill says "publish to the issue tracker" + +Create a real GitHub issue with `gh`, applying the triage/type/module/difficulty +labels from `workflow/triage-labels`, then show the user the created issue URL: + +@verbatim + +gh issue create \ + --title "(): " \ + --body "" \ + --label "type:feat,mod:panel-admin,needs-triage" + +@endverbatim + +Use a heredoc for multi-line bodies. + +## When a skill says "fetch the relevant ticket" + +Read it from GitHub rather than asking the user to paste it. Always include +`--comments` — the resolution usually lives in the thread (reporter clarifications, +the answer to a `needs-info` question, "dupe of #50"), not the opening post: + +@verbatim + +gh issue view --comments +gh issue list --state open --label "needs-triage" + +@endverbatim + +## Pull requests as a triage surface + +The triage queue is **GitHub Issues** — `/triage` does not pull pull requests; PRs go +through normal code review, not triage. + +Because issues and PRs share one number space, a bare `#42` may be either — resolve +with `gh pr view 42` and fall back to `gh issue view 42`. + +## Triage labels + +The taxonomy in `workflow/triage-labels` maps to **live GitHub labels**. Apply them +with `gh issue edit --add-label "..."`. If a label does not exist yet, +create it first: + +@verbatim + +gh label create "mod:" --description "" --color "c2e0c6" + +@endverbatim ## Conventions @@ -14,13 +65,6 @@ - **Comment on an issue**: `gh issue comment --body "..."` - **Apply / remove labels**: `gh issue edit --add-label "..."` / `--remove-label "..."` - **Close**: `gh issue close --comment "..."` +- Confirm with the user before **bulk** operations or **closing/deleting** issues — those are outward-facing and harder to undo. Infer the repo from `git remote -v` — `gh` does this automatically when run inside a clone. - -## When a skill says "publish to the issue tracker" - -Create a GitHub issue. - -## When a skill says "fetch the relevant ticket" - -Run `gh issue view --comments`. diff --git a/.ai/guidelines/workflow/04-branch-naming.blade.php b/.ai/guidelines/workflow/04-branch-naming.blade.php new file mode 100644 index 000000000..7abf6caea --- /dev/null +++ b/.ai/guidelines/workflow/04-branch-naming.blade.php @@ -0,0 +1,51 @@ +@php +/** @var \Laravel\Boost\Install\GuidelineAssist $assist */ +@endphp + +# Branch Naming & Git Workflow + +Agents MUST create branches using the canonical prefixes below. CI is a **merge +gate** defined in `.github/workflows/continuous-integration.yml`: it runs on a +pull request only when the PR's **base** (target) branch matches one of these +patterns. A branch that becomes a PR target outside this convention gets **no +pipeline**. + +## Canonical branch prefixes + +| Prefix | Use for | Commit type | +| ------------------------ | ------------------------------------------- | ----------- | +| `feature/` | New features | `feat` | +| `bugfix/` | Bug fixes | `fix` | +| `chore/` | Maintenance, dependencies, tooling, config, CI | `chore` | +| `story/-` | Issue-driven work (a GitHub issue is open) | fits the work | + +- `` is lowercase kebab-case, e.g. `feature/public-profile-page`. +- `story/` embeds the issue number, e.g. `story/142-oauth-account-merge`. +- Prefixes map to the `type:` labels documented in the Triage Labels guideline. + +## Base / integration branches + +Every PR targets one of these bases — the patterns CI is gated on: + +| Base pattern | Meaning | +| ----------------------------------------------- | ------------------------------------------------------- | +| `main` | Default line | +| `.x` | Versioned release lines (`1.x`, `2.x`) — Laravel style | +| `feature/**` `bugfix/**` `chore/**` `story/**` | Long-lived integration branches that receive sub-PRs | + +Long-lived integration branches use the **same prefixes**. Sub-work is PR'd into +them (e.g. `story/142-oauth-account-merge → feature/identity`); the integration +branch later merges into `main` or a `.x` line. + +## Rules for agents + +- Branch off the correct base and name it with a canonical prefix. Never push + work directly to `main` or a `.x` line. +- Commit subjects follow conventional commits with the module as scope + (`(): ...`) — see the Title Convention in the Triage Labels + guideline. +- CI runs on PRs only; draft PRs are skipped. Open a non-draft PR — or mark it + ready for review — to trigger the pipeline. +- Keep this table in sync with the `pull_request.branches` filter in + `.github/workflows/continuous-integration.yml`; changing one without the other + drifts the merge gate. diff --git a/.env.testing b/.env.testing.example similarity index 73% rename from .env.testing rename to .env.testing.example index a1077969b..88c9040eb 100644 --- a/.env.testing +++ b/.env.testing.example @@ -1,6 +1,6 @@ -APP_NAME=Laravel -APP_ENV=local -APP_KEY=base64:vCE9NeWv1bkp19JvhTCeMk+qPEC52Vim7shJUljveCg= +APP_NAME=Heartdevs +APP_ENV=testing +APP_KEY= APP_DEBUG=true APP_URL=http://localhost APP_DOMAIN=localhost @@ -12,6 +12,9 @@ APP_LOCALE=en APP_FALLBACK_LOCALE=en APP_FAKER_LOCALE=en_US +# Faster hashing for the test suite +BCRYPT_ROUNDS=4 + DEBUGBAR_ENABLED=false TELESCOPE_ENABLED=false PULSE_ENABLED=false @@ -28,6 +31,11 @@ LOG_STACK=single LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug +# --- Test database — per-user. Copied to .env.testing, which is UNTRACKED. +# No host/port/credentials are shipped: the test DB location is +# infra-specific. Point these at YOUR Postgres (docker-compose, Lerd, +# or a custom stack). Lerd users: find the mapped port via the Lerd +# web UI or `lerd services`. Edit freely; this file never shows in git. --- DB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 diff --git a/.github/workflows/_pest.yml b/.github/workflows/_pest.yml index 6023e3c99..3f8ea4983 100644 --- a/.github/workflows/_pest.yml +++ b/.github/workflows/_pest.yml @@ -23,14 +23,18 @@ permissions: {} jobs: tests: - name: Run + name: 'Shard ${{ matrix.shard }}/2' runs-on: ubuntu-latest - timeout-minutes: 5 + timeout-minutes: 10 permissions: contents: read concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}-tests + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}-tests-${{ matrix.shard }} cancel-in-progress: true + strategy: + fail-fast: false + matrix: + shard: [1, 2] services: postgres: @@ -43,9 +47,10 @@ jobs: - 5432/tcp options: >- --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 + --health-interval 3s + --health-timeout 3s + --health-retries 10 + --health-start-period 5s steps: - name: Checkout code @@ -60,7 +65,7 @@ jobs: php-version: ${{ inputs.PHP_VERSION }} extensions: ${{ inputs.PHP_EXTENSIONS }} ini-values: ${{ inputs.PHP_INI_PROPERTIES }} - coverage: xdebug + coverage: none tools: composer:v2 - name: Setup Problem Matches @@ -91,9 +96,14 @@ jobs: - name: Build Assets run: npm run build + - name: Prepare test env + run: | + composer run-script post-root-package-install + composer run-script key:generate + - name: Run Tests env: - XDEBUG_MODE: coverage DB_PORT: ${{ job.services.postgres.ports['5432'] }} + SHARD: ${{ matrix.shard }} run: | - vendor/bin/pest --ci --parallel + vendor/bin/pest --ci --parallel --shard="${SHARD}"/2 diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index b60b14f5a..80840536f 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -2,7 +2,13 @@ name: Continuous Integration on: pull_request: - branches: [4.x, feat/squads] + branches: + - '*.x' + - 'feature/**' + - 'feat/**' + - 'bugfix/**' + - 'chore/**' + - 'story/**' types: [opened, reopened, synchronize, ready_for_review] concurrency: @@ -124,3 +130,24 @@ jobs: PHP_EXTENSIONS: ${{ needs.setup.outputs.PHP_EXTENSIONS }} PHP_INI_PROPERTIES: ${{ needs.setup.outputs.PHP_INI_PROPERTIES }} PHP_VERSION: ${{ needs.setup.outputs.PHP_VERSION }} + + gate: + name: CI Gate + needs: [setup, pint, rector, phpstan, pest] + if: ${{ always() && !github.event.pull_request.draft }} + runs-on: ubuntu-latest + timeout-minutes: 5 + permissions: {} + steps: + - name: Require every check to succeed + env: + RESULTS: ${{ join(needs.*.result, ', ') }} + run: | + echo "Dependency results: ${RESULTS}" + for result in ${RESULTS//,/ }; do + if [ "${result}" != "success" ]; then + echo "::error::CI did not pass cleanly (${RESULTS})." + exit 1 + fi + done + echo "All CI checks passed." diff --git a/.github/workflows/dependabot-automerge.yml b/.github/workflows/dependabot-automerge.yml index 37c05df68..4b6ffa900 100644 --- a/.github/workflows/dependabot-automerge.yml +++ b/.github/workflows/dependabot-automerge.yml @@ -5,6 +5,10 @@ on: pull_request_target: branches: [4.x] +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number }} + cancel-in-progress: true + permissions: {} jobs: diff --git a/.gitignore b/.gitignore index 34d94f13b..abdcf3a55 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ .env .env.backup .env.production +.env.testing .phpactor.json .phpstorm.meta.php .phpunit.result.cache @@ -41,6 +42,10 @@ yarn-error.log tests/Browser/Screenshots /.composer +# Lerd +.env.before_lerd +.lerd.yaml + # === AI Agents === # Laravel Boost diff --git a/Makefile b/Makefile index 7aa994b5d..32bb6529c 100644 --- a/Makefile +++ b/Makefile @@ -65,7 +65,7 @@ test-feature: ## Run feature tests .PHONY: setup-test-db setup-test-db: ## Create the testing database for running tests - @PGHOST=localhost PGUSER=postgres PGPASSWORD=postgres createdb test_he4rtbot 2>/dev/null || echo "Database test_he4rtbot already exists" + @php artisan migrate --env=testing --no-interaction --force .PHONY: migrate-fresh migrate-fresh: ## Run migrations and seed the database @@ -85,12 +85,7 @@ dev: ## Start the server .PHONY: setup setup: ## Setup the project - @composer install - @npm install - @composer run-script post-root-package-install - @composer run-script post-create-project-cmd - @php artisan key:generate --ansi - @php artisan storage:link --ansi + @composer run-script setup .PHONY: import-db import-db: ## Import a PostgreSQL dump file (usage: make import-db file=path/to/dump) diff --git a/Taskfile.yml b/Taskfile.yml index d18fac78f..a7b580957 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -112,9 +112,4 @@ tasks: desc: Setup the project aliases: [s] cmds: - - 'composer install' - - 'npm install' - - 'composer run post-root-package-install' - - 'composer run post-create-project-cmd' - - 'php artisan key:generate --ansi' - - 'php artisan storage:link --ansi' + - 'composer run setup' diff --git a/app-modules/activity/database/factories/.gitkeep b/app-modules/activity/database/factories/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/activity/database/migrations/.gitkeep b/app-modules/activity/database/migrations/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/activity/src/Moderation/Models/ModerationEvent.php b/app-modules/activity/src/Moderation/Models/ModerationEvent.php index 642f3ff39..950399fd4 100644 --- a/app-modules/activity/src/Moderation/Models/ModerationEvent.php +++ b/app-modules/activity/src/Moderation/Models/ModerationEvent.php @@ -31,7 +31,7 @@ * @property CarbonInterface|null $created_at * @property CarbonInterface|null $updated_at */ -#[ObservedBy(ModerationEventObserver::class)] +#[ObservedBy(classes: ModerationEventObserver::class)] #[Table(name: 'moderation_events')] final class ModerationEvent extends Model { diff --git a/app-modules/activity/src/Voice/Models/Voice.php b/app-modules/activity/src/Voice/Models/Voice.php index 2cd63492e..1329435fd 100644 --- a/app-modules/activity/src/Voice/Models/Voice.php +++ b/app-modules/activity/src/Voice/Models/Voice.php @@ -29,7 +29,7 @@ // `state` is a plain string: the voice experience ticker writes // VoiceStatesEnum values (muted/unmuted/disabled) and the historical // ETL import writes joined/left as raw strings. -#[UseFactory(VoiceFactory::class)] +#[UseFactory(factoryClass: VoiceFactory::class)] #[Table(name: 'voice_messages')] final class Voice extends Model { diff --git a/app-modules/community/database/factories/.gitkeep b/app-modules/community/database/factories/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/community/database/migrations/.gitkeep b/app-modules/community/database/migrations/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/docs/src/Console/Commands/CacheDocsCommand.php b/app-modules/docs/src/Console/Commands/CacheDocsCommand.php index 47f25415a..6e8ccb02d 100644 --- a/app-modules/docs/src/Console/Commands/CacheDocsCommand.php +++ b/app-modules/docs/src/Console/Commands/CacheDocsCommand.php @@ -13,8 +13,8 @@ * Warms or clears the documentation portal cache. Run `docs:cache` during * deploy to pre-build the navigation tree and rendered pages. */ -#[Description('Warm or clear the documentation portal cache')] -#[Signature('docs:cache {--clear : Clear the cached documentation index instead of warming it}')] +#[Description(description: 'Warm or clear the documentation portal cache')] +#[Signature(signature: 'docs:cache {--clear : Clear the cached documentation index instead of warming it}')] final class CacheDocsCommand extends Command { public function handle(DocumentRegistry $registry): int diff --git a/app-modules/economy/database/factories/.gitkeep b/app-modules/economy/database/factories/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/economy/database/migrations/.gitkeep b/app-modules/economy/database/migrations/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/gamification/database/factories/.gitkeep b/app-modules/gamification/database/factories/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/gamification/database/migrations/.gitkeep b/app-modules/gamification/database/migrations/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/gamification/database/seeders/.gitkeep b/app-modules/gamification/database/seeders/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/identity/database/factories/.gitkeep b/app-modules/identity/database/factories/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/identity/database/migrations/.gitkeep b/app-modules/identity/database/migrations/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/identity/src/Tenant/Models/TenantUser.php b/app-modules/identity/src/Tenant/Models/TenantUser.php index f8e7a4333..51d9e6b33 100644 --- a/app-modules/identity/src/Tenant/Models/TenantUser.php +++ b/app-modules/identity/src/Tenant/Models/TenantUser.php @@ -14,5 +14,5 @@ * @property string $user_id */ #[Table(name: 'tenant_users')] -#[ObservedBy(TenantUserObserver::class)] +#[ObservedBy(classes: TenantUserObserver::class)] final class TenantUser extends Pivot {} diff --git a/app-modules/identity/src/User/Models/User.php b/app-modules/identity/src/User/Models/User.php index 6a00432ec..4bb7a97c8 100644 --- a/app-modules/identity/src/User/Models/User.php +++ b/app-modules/identity/src/User/Models/User.php @@ -41,7 +41,7 @@ * @property CarbonInterface|null $created_at * @property CarbonInterface|null $updated_at */ -#[ObservedBy(UserObserver::class)] +#[ObservedBy(classes: UserObserver::class)] #[Table(name: 'users')] #[Hidden('password', 'remember_token', 'email_verified_at')] final class User extends Authenticatable implements FilamentUser, HasMedia, HasName, HasTenants diff --git a/app-modules/integration-devto/src/Polling/SyncDevToArticles.php b/app-modules/integration-devto/src/Polling/SyncDevToArticles.php index 2c1c53a6d..05a0ea022 100644 --- a/app-modules/integration-devto/src/Polling/SyncDevToArticles.php +++ b/app-modules/integration-devto/src/Polling/SyncDevToArticles.php @@ -17,8 +17,8 @@ use Illuminate\Console\Command; use Illuminate\Support\Facades\Log; -#[Description('Sync articles from DevTo organization and track as interactions')] -#[Signature('devto:sync-articles')] +#[Description(description: 'Sync articles from DevTo organization and track as interactions')] +#[Signature(signature: 'devto:sync-articles')] class SyncDevToArticles extends Command { public function __construct( diff --git a/app-modules/integration-discord/database/factories/.gitkeep b/app-modules/integration-discord/database/factories/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/integration-discord/database/migrations/.gitkeep b/app-modules/integration-discord/database/migrations/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/integration-discord/src/ETL/Console/BackfillVoiceLogsCommand.php b/app-modules/integration-discord/src/ETL/Console/BackfillVoiceLogsCommand.php index 17e817320..26986dacc 100644 --- a/app-modules/integration-discord/src/ETL/Console/BackfillVoiceLogsCommand.php +++ b/app-modules/integration-discord/src/ETL/Console/BackfillVoiceLogsCommand.php @@ -26,8 +26,8 @@ use function Laravel\Prompts\task; use function Laravel\Prompts\warning; -#[Description('Backfill voice logs by paginating a Discord channel where a bot logs voice join/left events')] -#[Signature('discord:backfill-voice +#[Description(description: 'Backfill voice logs by paginating a Discord channel where a bot logs voice join/left events')] +#[Signature(signature: 'discord:backfill-voice {channel_id : Discord channel ID where the bot posts voice join/left logs} {--since= : Start date (Y-m-d). Defaults to 2026-03-01} {--until= : End date (Y-m-d). Defaults to now} diff --git a/app-modules/integration-discord/src/ETL/Console/ImportDiscordMessagesCommand.php b/app-modules/integration-discord/src/ETL/Console/ImportDiscordMessagesCommand.php index ac8f4a456..f289935ce 100644 --- a/app-modules/integration-discord/src/ETL/Console/ImportDiscordMessagesCommand.php +++ b/app-modules/integration-discord/src/ETL/Console/ImportDiscordMessagesCommand.php @@ -31,8 +31,8 @@ use function Laravel\Prompts\info; use function Laravel\Prompts\table; -#[Description('Importa mensagens Discord de um dump completo (messages, reactions, voice, moderation)')] -#[Signature('discord:import-messages +#[Description(description: 'Importa mensagens Discord de um dump completo (messages, reactions, voice, moderation)')] +#[Signature(signature: 'discord:import-messages {path : Caminho da pasta discord-dump} {--limit= : Para apos importar N mensagens (total)} {--channels= : Lista de nomes (ou substrings) de canais separados por virgula} diff --git a/app-modules/integration-discord/src/ETL/Console/ImportDiscordProfilesCommand.php b/app-modules/integration-discord/src/ETL/Console/ImportDiscordProfilesCommand.php index ea167606b..968ff572e 100644 --- a/app-modules/integration-discord/src/ETL/Console/ImportDiscordProfilesCommand.php +++ b/app-modules/integration-discord/src/ETL/Console/ImportDiscordProfilesCommand.php @@ -23,8 +23,8 @@ use function Laravel\Prompts\info; use function Laravel\Prompts\table; -#[Description('Importa perfis Discord de todos os chunks JSON para Users e ExternalIdentities')] -#[Signature('discord:import-profiles +#[Description(description: 'Importa perfis Discord de todos os chunks JSON para Users e ExternalIdentities')] +#[Signature(signature: 'discord:import-profiles {path : Caminho do diretorio com os chunks JSON} {--from=0 : Numero do chunk inicial (ex: 5 para comecar do chunk_5)}')] class ImportDiscordProfilesCommand extends Command diff --git a/app-modules/integration-discord/src/ETL/Console/MergeDuplicateDiscordProfilesCommand.php b/app-modules/integration-discord/src/ETL/Console/MergeDuplicateDiscordProfilesCommand.php index 3e65f4272..4f0a63c9c 100644 --- a/app-modules/integration-discord/src/ETL/Console/MergeDuplicateDiscordProfilesCommand.php +++ b/app-modules/integration-discord/src/ETL/Console/MergeDuplicateDiscordProfilesCommand.php @@ -22,8 +22,8 @@ use function Laravel\Prompts\table; use function Laravel\Prompts\warning; -#[Description('Reverte users duplicados criados pelo bug do discord:import-profiles (re-aponta FKs e identities, deleta dups)')] -#[Signature('discord:merge-duplicate-profiles +#[Description(description: 'Reverte users duplicados criados pelo bug do discord:import-profiles (re-aponta FKs e identities, deleta dups)')] +#[Signature(signature: 'discord:merge-duplicate-profiles {--tenant=he4rt : Slug do tenant alvo (ignorado se --pairs-file for usado)} {--from-date=2026-05-01 : Cutoff: users criados a partir desta data sao candidatos (ignorado se --pairs-file for usado)} {--pairs-file= : Caminho de JSONL pre-gerado por discord:export-merge-pairs (fonte de verdade)} diff --git a/app-modules/integration-discord/src/Sync/Console/PurgeUnusedInvitesCommand.php b/app-modules/integration-discord/src/Sync/Console/PurgeUnusedInvitesCommand.php index 88b25f93b..96f845e00 100644 --- a/app-modules/integration-discord/src/Sync/Console/PurgeUnusedInvitesCommand.php +++ b/app-modules/integration-discord/src/Sync/Console/PurgeUnusedInvitesCommand.php @@ -14,8 +14,8 @@ use Saloon\Exceptions\Request\FatalRequestException; use Saloon\Exceptions\Request\RequestException; -#[Description('Purge unused infinite Discord guild invites (max_age=0, uses=0)')] -#[Signature('discord:purge-invites {guild_id?} {--dry-run : List invites without deleting} {--include-expiring : Also purge unused invites that have an expiration time}')] +#[Description(description: 'Purge unused infinite Discord guild invites (max_age=0, uses=0)')] +#[Signature(signature: 'discord:purge-invites {guild_id?} {--dry-run : List invites without deleting} {--include-expiring : Also purge unused invites that have an expiration time}')] final class PurgeUnusedInvitesCommand extends Command { /** diff --git a/app-modules/integration-discord/src/Sync/Console/SyncDiscordGuildCommand.php b/app-modules/integration-discord/src/Sync/Console/SyncDiscordGuildCommand.php index 7eb045647..d85bb3c67 100644 --- a/app-modules/integration-discord/src/Sync/Console/SyncDiscordGuildCommand.php +++ b/app-modules/integration-discord/src/Sync/Console/SyncDiscordGuildCommand.php @@ -9,8 +9,8 @@ use Illuminate\Console\Attributes\Signature; use Illuminate\Console\Command; -#[Description('Sync Discord guild data (channels, roles, members) from the Discord API')] -#[Signature('discord:sync {guild_id?} {--fresh : Truncate guild data before re-importing}')] +#[Description(description: 'Sync Discord guild data (channels, roles, members) from the Discord API')] +#[Signature(signature: 'discord:sync {guild_id?} {--fresh : Truncate guild data before re-importing}')] final class SyncDiscordGuildCommand extends Command { public function handle(SyncDiscordGuildAction $action): int diff --git a/app-modules/integration-github/database/factories/.gitkeep b/app-modules/integration-github/database/factories/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/integration-github/database/migrations/.gitkeep b/app-modules/integration-github/database/migrations/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/integration-github/src/Backfill/Jobs/BackfillGithubRepository.php b/app-modules/integration-github/src/Backfill/Jobs/BackfillGithubRepository.php index 66c471fb3..0a0b96d22 100644 --- a/app-modules/integration-github/src/Backfill/Jobs/BackfillGithubRepository.php +++ b/app-modules/integration-github/src/Backfill/Jobs/BackfillGithubRepository.php @@ -32,8 +32,8 @@ * backoff até o limite de exceções; o resto é encerrado em failed(). */ #[Backoff([10, 30, 60])] -#[MaxExceptions(3)] -#[Timeout(600)] +#[MaxExceptions(maxExceptions: 3)] +#[Timeout(timeout: 600)] final class BackfillGithubRepository implements ShouldBeUniqueUntilProcessing, ShouldQueue { use Dispatchable; diff --git a/app-modules/integration-github/src/Console/BackfillGithubCommand.php b/app-modules/integration-github/src/Console/BackfillGithubCommand.php index 3c952dba6..c6af69539 100644 --- a/app-modules/integration-github/src/Console/BackfillGithubCommand.php +++ b/app-modules/integration-github/src/Console/BackfillGithubCommand.php @@ -25,8 +25,8 @@ use function Laravel\Prompts\table; use function Laravel\Prompts\warning; -#[Description('Faz backfill do histórico de contribuições dos repositórios da allowlist')] -#[Signature('github:backfill +#[Description(description: 'Faz backfill do histórico de contribuições dos repositórios da allowlist')] +#[Signature(signature: 'github:backfill {repo? : owner/repo específico. Default: todos os repositórios habilitados} {--full : Ignora o last_backfilled_at e varre o histórico inteiro}')] final class BackfillGithubCommand extends Command diff --git a/app-modules/integration-github/tests/Feature/.gitkeep b/app-modules/integration-github/tests/Feature/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/integration-twitch/database/migrations/.gitkeep b/app-modules/integration-twitch/database/migrations/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/integration-twitch/src/Console/LinkTwitchChannelCommand.php b/app-modules/integration-twitch/src/Console/LinkTwitchChannelCommand.php index be2890328..8698f5967 100644 --- a/app-modules/integration-twitch/src/Console/LinkTwitchChannelCommand.php +++ b/app-modules/integration-twitch/src/Console/LinkTwitchChannelCommand.php @@ -15,8 +15,8 @@ use Illuminate\Console\Attributes\Signature; use Illuminate\Console\Command; -#[Description('Link a Twitch channel to a tenant via ExternalIdentity')] -#[Signature('twitch:link-channel {login : Twitch channel login name} {--tenant= : Tenant slug or ID}')] +#[Description(description: 'Link a Twitch channel to a tenant via ExternalIdentity')] +#[Signature(signature: 'twitch:link-channel {login : Twitch channel login name} {--tenant= : Tenant slug or ID}')] final class LinkTwitchChannelCommand extends Command { public function handle(TwitchHelixConnector $helix): int diff --git a/app-modules/integration-twitch/src/Console/SubscribeTwitchEventsCommand.php b/app-modules/integration-twitch/src/Console/SubscribeTwitchEventsCommand.php index dda5b04a5..ead14a612 100644 --- a/app-modules/integration-twitch/src/Console/SubscribeTwitchEventsCommand.php +++ b/app-modules/integration-twitch/src/Console/SubscribeTwitchEventsCommand.php @@ -14,8 +14,8 @@ use Illuminate\Console\Command; use Saloon\Exceptions\Request\RequestException; -#[Description('Manage Twitch EventSub webhook subscriptions for a broadcaster')] -#[Signature('twitch:subscribe +#[Description(description: 'Manage Twitch EventSub webhook subscriptions for a broadcaster')] +#[Signature(signature: 'twitch:subscribe {broadcaster_user_id : The Twitch broadcaster user ID} {--type= : Subscribe to a specific event type} {--all : Subscribe to all available event types} diff --git a/app-modules/integration-whatsapp/src/Models/WhatsAppEventLog.php b/app-modules/integration-whatsapp/src/Models/WhatsAppEventLog.php index c4cbb60a9..e9f8047b5 100644 --- a/app-modules/integration-whatsapp/src/Models/WhatsAppEventLog.php +++ b/app-modules/integration-whatsapp/src/Models/WhatsAppEventLog.php @@ -23,7 +23,7 @@ * @property CarbonInterface|null $updated_at */ #[Table(name: 'whatsapp_event_logs')] -#[UseFactory(WhatsAppEventLogFactory::class)] +#[UseFactory(factoryClass: WhatsAppEventLogFactory::class)] final class WhatsAppEventLog extends Model { /** @use HasFactory */ diff --git a/app-modules/moderation/src/Appeals/ModerationAppeal.php b/app-modules/moderation/src/Appeals/ModerationAppeal.php index d929f4c40..229906a8b 100644 --- a/app-modules/moderation/src/Appeals/ModerationAppeal.php +++ b/app-modules/moderation/src/Appeals/ModerationAppeal.php @@ -31,8 +31,8 @@ * @property string|null $tenant_id * @property CarbonInterface $created_at */ -#[Table('moderation_appeals', timestamps: false)] -#[UseFactory(ModerationAppealFactory::class)] +#[Table(name: 'moderation_appeals', timestamps: false)] +#[UseFactory(factoryClass: ModerationAppealFactory::class)] final class ModerationAppeal extends Model { /** @use HasFactory */ diff --git a/app-modules/moderation/src/Audit/ModerationAuditLog.php b/app-modules/moderation/src/Audit/ModerationAuditLog.php index 6d5e93d3f..17e76e99e 100644 --- a/app-modules/moderation/src/Audit/ModerationAuditLog.php +++ b/app-modules/moderation/src/Audit/ModerationAuditLog.php @@ -19,7 +19,7 @@ * @property string|null $tenant_id * @property CarbonInterface $created_at */ -#[Table('moderation_audit_log', timestamps: false)] +#[Table(name: 'moderation_audit_log', timestamps: false)] final class ModerationAuditLog extends Model { /** @return array */ diff --git a/app-modules/moderation/src/Cases/Models/ModerationCase.php b/app-modules/moderation/src/Cases/Models/ModerationCase.php index 5df71db77..f2ab6c864 100644 --- a/app-modules/moderation/src/Cases/Models/ModerationCase.php +++ b/app-modules/moderation/src/Cases/Models/ModerationCase.php @@ -45,8 +45,8 @@ * @property CarbonInterface $created_at * @property CarbonInterface $updated_at */ -#[Table('moderation_cases')] -#[UseFactory(ModerationCaseFactory::class)] +#[Table(name: 'moderation_cases')] +#[UseFactory(factoryClass: ModerationCaseFactory::class)] final class ModerationCase extends Model { /** @use HasFactory */ diff --git a/app-modules/moderation/src/Cases/Models/ModerationReport.php b/app-modules/moderation/src/Cases/Models/ModerationReport.php index bfa88e5c3..9748bdb92 100644 --- a/app-modules/moderation/src/Cases/Models/ModerationReport.php +++ b/app-modules/moderation/src/Cases/Models/ModerationReport.php @@ -25,8 +25,8 @@ * @property Platform $platform * @property CarbonInterface $created_at */ -#[Table('moderation_reports', timestamps: false)] -#[UseFactory(ModerationReportFactory::class)] +#[Table(name: 'moderation_reports', timestamps: false)] +#[UseFactory(factoryClass: ModerationReportFactory::class)] final class ModerationReport extends Model { /** @use HasFactory */ diff --git a/app-modules/moderation/src/Classification/Jobs/ClassifyAndRoute.php b/app-modules/moderation/src/Classification/Jobs/ClassifyAndRoute.php index 24679a630..8a9199111 100644 --- a/app-modules/moderation/src/Classification/Jobs/ClassifyAndRoute.php +++ b/app-modules/moderation/src/Classification/Jobs/ClassifyAndRoute.php @@ -31,7 +31,7 @@ * created by rules (classifier_version='rules'), auto-execution IS allowed here. */ #[Backoff([5, 15, 30])] -#[Tries(3)] +#[Tries(tries: 3)] final class ClassifyAndRoute implements ShouldQueue { use InteractsWithQueue; diff --git a/app-modules/moderation/src/Classification/Jobs/ScreenContent.php b/app-modules/moderation/src/Classification/Jobs/ScreenContent.php index 5a60392d6..b825980d5 100644 --- a/app-modules/moderation/src/Classification/Jobs/ScreenContent.php +++ b/app-modules/moderation/src/Classification/Jobs/ScreenContent.php @@ -38,7 +38,7 @@ * CaseReadyForEnforcement is never emitted — AI-only results always go to human review. */ #[Backoff([5, 15, 30])] -#[Tries(3)] +#[Tries(tries: 3)] final class ScreenContent implements ShouldQueue { use InteractsWithQueue; diff --git a/app-modules/moderation/src/Enforcement/ModerationAction.php b/app-modules/moderation/src/Enforcement/ModerationAction.php index d9a64cd06..7ba8baba9 100644 --- a/app-modules/moderation/src/Enforcement/ModerationAction.php +++ b/app-modules/moderation/src/Enforcement/ModerationAction.php @@ -33,8 +33,8 @@ * @property string|null $tenant_id * @property CarbonInterface $created_at */ -#[Table('moderation_actions', timestamps: false)] -#[UseFactory(ModerationActionFactory::class)] +#[Table(name: 'moderation_actions', timestamps: false)] +#[UseFactory(factoryClass: ModerationActionFactory::class)] final class ModerationAction extends Model { /** @use HasFactory */ diff --git a/app-modules/moderation/src/Rules/ModerationRule.php b/app-modules/moderation/src/Rules/ModerationRule.php index 4c559142f..e6d3f116e 100644 --- a/app-modules/moderation/src/Rules/ModerationRule.php +++ b/app-modules/moderation/src/Rules/ModerationRule.php @@ -29,7 +29,7 @@ * @property CarbonInterface $created_at * @property CarbonInterface $updated_at */ -#[Table('moderation_rules')] +#[Table(name: 'moderation_rules')] final class ModerationRule extends Model { use HasUuids; diff --git a/app-modules/moderation/tests/Feature/.gitkeep b/app-modules/moderation/tests/Feature/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/moderation/tests/Unit/.gitkeep b/app-modules/moderation/tests/Unit/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/onboarding/composer.json b/app-modules/onboarding/composer.json index dc3cc0266..ba42e74de 100644 --- a/app-modules/onboarding/composer.json +++ b/app-modules/onboarding/composer.json @@ -20,7 +20,7 @@ "extra": { "laravel": { "providers": [ - "He4rt\\Onboarding\\Providers\\OnboardingServiceProvider" + "He4rt\\Onboarding\\OnboardingServiceProvider" ] } } diff --git a/app-modules/onboarding/src/Providers/OnboardingServiceProvider.php b/app-modules/onboarding/src/OnboardingServiceProvider.php similarity index 84% rename from app-modules/onboarding/src/Providers/OnboardingServiceProvider.php rename to app-modules/onboarding/src/OnboardingServiceProvider.php index 1558f42d5..9cb2d8e26 100644 --- a/app-modules/onboarding/src/Providers/OnboardingServiceProvider.php +++ b/app-modules/onboarding/src/OnboardingServiceProvider.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace He4rt\Onboarding\Providers; +namespace He4rt\Onboarding; use Illuminate\Support\ServiceProvider; diff --git a/app-modules/panel-admin/resources/views/.gitkeep b/app-modules/panel-admin/resources/views/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/panel-admin/tests/Feature/.gitkeep b/app-modules/panel-admin/tests/Feature/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-modules/panel-app/src/Livewire/Timeline/Feed.php b/app-modules/panel-app/src/Livewire/Timeline/Feed.php index e4f13c0b7..cd64d8a36 100644 --- a/app-modules/panel-app/src/Livewire/Timeline/Feed.php +++ b/app-modules/panel-app/src/Livewire/Timeline/Feed.php @@ -18,9 +18,9 @@ final class Feed extends Component #[Locked] public string $tenantId; - #[On('timeline.post-created')] - #[On('timeline.reply-created')] - #[On('timeline.reply-deleted')] + #[On(event: 'timeline.post-created')] + #[On(event: 'timeline.reply-created')] + #[On(event: 'timeline.reply-deleted')] public function refresh(): void {} public function render(): View diff --git a/app-modules/panel-app/src/Livewire/Timeline/PostShow.php b/app-modules/panel-app/src/Livewire/Timeline/PostShow.php index 1157445b2..bd1abfa33 100644 --- a/app-modules/panel-app/src/Livewire/Timeline/PostShow.php +++ b/app-modules/panel-app/src/Livewire/Timeline/PostShow.php @@ -21,7 +21,7 @@ final class PostShow extends Component public bool $showReplies = true; - #[On('timeline.post-updated')] + #[On(event: 'timeline.post-updated')] public function refresh(): void {} public function togglePin(#[CurrentUser] ?User $user): void diff --git a/app-modules/panel-app/src/Livewire/Timeline/ThreadReplies.php b/app-modules/panel-app/src/Livewire/Timeline/ThreadReplies.php index e5ad05983..353c8719e 100644 --- a/app-modules/panel-app/src/Livewire/Timeline/ThreadReplies.php +++ b/app-modules/panel-app/src/Livewire/Timeline/ThreadReplies.php @@ -21,8 +21,8 @@ final class ThreadReplies extends Component #[Locked] public string $timelineId; - #[On('timeline.reply-created')] - #[On('timeline.reply-deleted')] + #[On(event: 'timeline.reply-created')] + #[On(event: 'timeline.reply-deleted')] public function refresh(): void {} public function deleteReply(string $replyId, #[CurrentUser] ?User $user): void diff --git a/app-modules/panel-app/src/Pages/ProfilePage.php b/app-modules/panel-app/src/Pages/ProfilePage.php index dca53bcbb..d007d5310 100644 --- a/app-modules/panel-app/src/Pages/ProfilePage.php +++ b/app-modules/panel-app/src/Pages/ProfilePage.php @@ -54,11 +54,11 @@ class ProfilePage extends Page public ?array $data = []; /** @var TemporaryUploadedFile|null */ - #[Validate('nullable|image|mimes:jpg,jpeg,png,webp|max:2048')] + #[Validate(rule: 'nullable|image|mimes:jpg,jpeg,png,webp|max:2048')] public $avatarUpload; /** @var TemporaryUploadedFile|null */ - #[Validate('nullable|image|mimes:jpg,jpeg,png,webp|max:4096')] + #[Validate(rule: 'nullable|image|mimes:jpg,jpeg,png,webp|max:4096')] public $coverUpload; protected static string|null|BackedEnum $navigationIcon = 'heroicon-o-user-circle'; diff --git a/app-modules/portal/src/Livewire/CommunityRetrospectivePage.php b/app-modules/portal/src/Livewire/CommunityRetrospectivePage.php index 63824d6d5..770b5e59e 100644 --- a/app-modules/portal/src/Livewire/CommunityRetrospectivePage.php +++ b/app-modules/portal/src/Livewire/CommunityRetrospectivePage.php @@ -17,8 +17,8 @@ use Livewire\Attributes\Url; use Livewire\Component; -#[Layout('portal::components.layouts.deck')] -#[Title('Quem fez a He4rt bater')] +#[Layout(name: 'portal::components.layouts.deck')] +#[Title(content: 'Quem fez a He4rt bater')] final class CommunityRetrospectivePage extends Component { public string $tenantId; diff --git a/app-modules/portal/src/Livewire/Homepage.php b/app-modules/portal/src/Livewire/Homepage.php index fbd79fa31..d1de23f08 100644 --- a/app-modules/portal/src/Livewire/Homepage.php +++ b/app-modules/portal/src/Livewire/Homepage.php @@ -9,8 +9,8 @@ use Livewire\Attributes\Title; use Livewire\Component; -#[Layout('portal::components.layouts.app')] -#[Title('Home')] +#[Layout(name: 'portal::components.layouts.app')] +#[Title(content: 'Home')] final class Homepage extends Component { public function render(): View diff --git a/app-modules/portal/src/Livewire/SocialLinksPage.php b/app-modules/portal/src/Livewire/SocialLinksPage.php index 6885e9656..ce3f1064c 100644 --- a/app-modules/portal/src/Livewire/SocialLinksPage.php +++ b/app-modules/portal/src/Livewire/SocialLinksPage.php @@ -10,8 +10,8 @@ use Livewire\Attributes\Title; use Livewire\Component; -#[Layout('portal::components.layouts.app')] -#[Title('Nossas redes')] +#[Layout(name: 'portal::components.layouts.app')] +#[Title(content: 'Nossas redes')] final class SocialLinksPage extends Component { /** diff --git a/app-modules/portal/src/Retrospective/CommunityRetrospective.php b/app-modules/portal/src/Retrospective/CommunityRetrospective.php index 60da2533a..af26f16c9 100644 --- a/app-modules/portal/src/Retrospective/CommunityRetrospective.php +++ b/app-modules/portal/src/Retrospective/CommunityRetrospective.php @@ -211,7 +211,7 @@ private function filteredOutByOutcome(GithubContribution $contribution): bool return match ($this->filters->outcome) { 'merged' => !$merged, 'open' => $state !== 'open', - 'closed' => !($state === 'closed' && !$merged), + 'closed' => $state !== 'closed' || $merged, }; } diff --git a/app-modules/portal/tests/Feature/CommunityRetrospectiveTest.php b/app-modules/portal/tests/Feature/CommunityRetrospectiveTest.php index 2c44b529a..3e536350d 100644 --- a/app-modules/portal/tests/Feature/CommunityRetrospectiveTest.php +++ b/app-modules/portal/tests/Feature/CommunityRetrospectiveTest.php @@ -219,6 +219,28 @@ function contribution(Tenant $tenant, array $attributes): GithubContribution ->and($data['people'][0]['prs'])->toBe(1); }); +it('keeps only truly-closed PRs under outcome=closed: !(A ∧ ¬B) ≡ ¬A ∨ B', function (string $state, bool $merged, bool $shouldKeep): void { + contribution($this->tenant, [ + 'actor_login' => 'a', + 'type' => ContributionType::Pr, + 'external_ref' => 'pr:1', + 'occurred_at' => '2026-06-02', + 'metadata' => ['state' => $state, 'merged' => $merged], + ]); + + $filters = RetrospectiveFilters::make($this->since, $this->until, outcome: 'closed'); + $data = ($this->build)($filters); + + // meta.prs counts PRs surviving reject(filteredOutByOutcome). + expect($data['meta']['prs'])->toBe($shouldKeep ? 1 : 0); +})->with([ + // state, merged, keep? + 'closed + unmerged → kept (the only true "closed")' => ['closed', false, true], + 'closed + merged → dropped (it is a merge, not a pure close)' => ['closed', true, false], + 'open + unmerged → dropped (state !== closed)' => ['open', false, false], + 'open + merged → dropped (state !== closed)' => ['open', true, false], +]); + it('ordena o ranking por linhas quando sort=lines', function (): void { contribution($this->tenant, ['actor_login' => 'poucas', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false, 'additions' => 10, 'deletions' => 0]]); contribution($this->tenant, ['actor_login' => 'muitas', 'type' => ContributionType::Pr, 'external_ref' => 'pr:2', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false, 'additions' => 900, 'deletions' => 50]]); diff --git a/app-modules/profile/src/Models/Profile.php b/app-modules/profile/src/Models/Profile.php index 2f2f3c247..433fc64e5 100644 --- a/app-modules/profile/src/Models/Profile.php +++ b/app-modules/profile/src/Models/Profile.php @@ -43,7 +43,7 @@ * @property CarbonInterface|null $created_at * @property CarbonInterface|null $updated_at */ -#[UseFactory(ProfileFactory::class)] +#[UseFactory(factoryClass: ProfileFactory::class)] #[Table(name: 'user_profiles')] final class Profile extends Model { diff --git a/app-modules/profile/src/Models/WorkExperience.php b/app-modules/profile/src/Models/WorkExperience.php index a6db349e8..a1e41b722 100644 --- a/app-modules/profile/src/Models/WorkExperience.php +++ b/app-modules/profile/src/Models/WorkExperience.php @@ -26,7 +26,7 @@ * @property CarbonInterface|null $updated_at * @property-read Profile $profile */ -#[UseFactory(WorkExperienceFactory::class)] +#[UseFactory(factoryClass: WorkExperienceFactory::class)] #[Table(name: 'work_experiences')] final class WorkExperience extends Model { diff --git a/app-modules/squads/composer.json b/app-modules/squads/composer.json index c7b79a4c9..784beeb38 100644 --- a/app-modules/squads/composer.json +++ b/app-modules/squads/composer.json @@ -20,7 +20,7 @@ "extra": { "laravel": { "providers": [ - "He4rt\\Squads\\Providers\\SquadsServiceProvider" + "He4rt\\Squads\\SquadsServiceProvider" ] } } diff --git a/app-modules/squads/src/Providers/SquadsServiceProvider.php b/app-modules/squads/src/SquadsServiceProvider.php similarity index 85% rename from app-modules/squads/src/Providers/SquadsServiceProvider.php rename to app-modules/squads/src/SquadsServiceProvider.php index c9437e8e2..35c7e62f6 100644 --- a/app-modules/squads/src/Providers/SquadsServiceProvider.php +++ b/app-modules/squads/src/SquadsServiceProvider.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace He4rt\Squads\Providers; +namespace He4rt\Squads; use Illuminate\Support\ServiceProvider; diff --git a/app/Console/Commands/AnalyzeDiscordProfiles.php b/app/Console/Commands/AnalyzeDiscordProfiles.php index a8c4a885a..56288fa92 100644 --- a/app/Console/Commands/AnalyzeDiscordProfiles.php +++ b/app/Console/Commands/AnalyzeDiscordProfiles.php @@ -15,8 +15,8 @@ use function Laravel\Prompts\table; use function Laravel\Prompts\warning; -#[Description('Analyze scraped Discord profiles and count connected social accounts')] -#[Signature('discord:analyze-profiles')] +#[Description(description: 'Analyze scraped Discord profiles and count connected social accounts')] +#[Signature(signature: 'discord:analyze-profiles')] class AnalyzeDiscordProfiles extends Command { public function handle(): void diff --git a/app/Console/Commands/CommunityReport.php b/app/Console/Commands/CommunityReport.php index b71e5b72e..164a2bc8d 100644 --- a/app/Console/Commands/CommunityReport.php +++ b/app/Console/Commands/CommunityReport.php @@ -21,8 +21,8 @@ use function Laravel\Prompts\table; use function Laravel\Prompts\warning; -#[Description('Generate a comprehensive community analytics report')] -#[Signature('discord:community-report')] +#[Description(description: 'Generate a comprehensive community analytics report')] +#[Signature(signature: 'discord:community-report')] class CommunityReport extends Command { /** @var array */ diff --git a/app/Console/Commands/FetchDiscordMembers.php b/app/Console/Commands/FetchDiscordMembers.php index ce765efcd..81aab108d 100644 --- a/app/Console/Commands/FetchDiscordMembers.php +++ b/app/Console/Commands/FetchDiscordMembers.php @@ -11,8 +11,8 @@ use Illuminate\Support\Facades\Storage; use Illuminate\Support\Sleep; -#[Description('Fetch all guild members from Discord API and save to JSON')] -#[Signature('discord:fetch-members {--limit=0 : Max members to fetch (0 = all)}')] +#[Description(description: 'Fetch all guild members from Discord API and save to JSON')] +#[Signature(signature: 'discord:fetch-members {--limit=0 : Max members to fetch (0 = all)}')] class FetchDiscordMembers extends Command { public function handle(): void diff --git a/app/Console/Commands/FetchDiscordProfile.php b/app/Console/Commands/FetchDiscordProfile.php index 5c28f73a1..6d7be0475 100644 --- a/app/Console/Commands/FetchDiscordProfile.php +++ b/app/Console/Commands/FetchDiscordProfile.php @@ -9,8 +9,8 @@ use Illuminate\Console\Command; use Illuminate\Support\Facades\Http; -#[Description('Fetch a Discord user profile including connected accounts using a user token')] -#[Signature('discord:fetch-profile +#[Description(description: 'Fetch a Discord user profile including connected accounts using a user token')] +#[Signature(signature: 'discord:fetch-profile {user_id : Discord user ID to fetch} {--token= : Discord user token (or set DISCORD_USER_TOKEN in .env)}')] class FetchDiscordProfile extends Command diff --git a/app/Console/Commands/FetchDiscordProfiles.php b/app/Console/Commands/FetchDiscordProfiles.php index 3a64c4276..5fce87e00 100644 --- a/app/Console/Commands/FetchDiscordProfiles.php +++ b/app/Console/Commands/FetchDiscordProfiles.php @@ -20,8 +20,8 @@ use function Laravel\Prompts\task; use function Laravel\Prompts\warning; -#[Description('Fetch full Discord profiles for all members, tracking progress across runs')] -#[Signature('discord:fetch-profiles +#[Description(description: 'Fetch full Discord profiles for all members, tracking progress across runs')] +#[Signature(signature: 'discord:fetch-profiles {--token= : Discord user token (or set DISCORD_USER_TOKEN in .env)} {--members-file=discord/members.json : Path to members JSON} {--limit=0 : Max profiles to fetch this run (0 = all remaining)} diff --git a/app/Console/Commands/FixPostSwitchTimestampsCommand.php b/app/Console/Commands/FixPostSwitchTimestampsCommand.php index e130e9155..8d54f5258 100644 --- a/app/Console/Commands/FixPostSwitchTimestampsCommand.php +++ b/app/Console/Commands/FixPostSwitchTimestampsCommand.php @@ -16,8 +16,8 @@ use function Laravel\Prompts\task; use function Laravel\Prompts\warning; -#[Description('Fix post-switch timestamp data after ALTER migrations (Option D Step 2)')] -#[Signature('maintenance:fix-post-switch-timestamps +#[Description(description: 'Fix post-switch timestamp data after ALTER migrations (Option D Step 2)')] +#[Signature(signature: 'maintenance:fix-post-switch-timestamps {--dry-run : Show what would be done without altering data} {--module= : Process only a specific module} {--table= : Process only a specific table}')] diff --git a/app/Console/Commands/GenerateDiscordTenant.php b/app/Console/Commands/GenerateDiscordTenant.php index a671680bc..3e1e821a0 100644 --- a/app/Console/Commands/GenerateDiscordTenant.php +++ b/app/Console/Commands/GenerateDiscordTenant.php @@ -13,8 +13,8 @@ use Illuminate\Console\Attributes\Signature; use Illuminate\Console\Command; -#[Description('Command description')] -#[Signature('misc:generate-discord-tenant {guildId}')] +#[Description(description: 'Command description')] +#[Signature(signature: 'misc:generate-discord-tenant {guildId}')] class GenerateDiscordTenant extends Command { /** diff --git a/app/Console/Commands/ImportDiscordMembers.php b/app/Console/Commands/ImportDiscordMembers.php index 374acbbbb..171eeb614 100644 --- a/app/Console/Commands/ImportDiscordMembers.php +++ b/app/Console/Commands/ImportDiscordMembers.php @@ -14,8 +14,8 @@ use Illuminate\Contracts\Database\Query\Builder; use Illuminate\Support\Facades\Storage; -#[Description('Import Discord members and GitHub connections from JSON files into the database')] -#[Signature('discord:import-members +#[Description(description: 'Import Discord members and GitHub connections from JSON files into the database')] +#[Signature(signature: 'discord:import-members {--members-file=discord/members.json : Path to members JSON (relative to storage/app/private)} {--github-file=discord/github_connections.json : Path to GitHub connections JSON} {--dry-run : Show what would be imported without writing} diff --git a/app/Support/PestShardPlugin.php b/app/Support/PestShardPlugin.php new file mode 100644 index 000000000..6992dc70d --- /dev/null +++ b/app/Support/PestShardPlugin.php @@ -0,0 +1,558 @@ +\tests\...` (lowercase + * `tests`), so they match nothing, get filtered OUT of every shard, and run in + * NO shard — 87/945 tests were silently skipped in sharded CI while it stayed + * green. This plugin generalizes that one regex to `([^:]+)` so every test + * class is discovered regardless of namespace. + * + * This class is a non-official plugin, so Pest's Loader sorts it BEFORE the + * official `Pest\Plugins\Shard`; it consumes `--shard` first (via popArgument), + * leaving the built-in one a no-op. Everything else mirrors the upstream Shard + * plugin verbatim so `--update-shards` / time-balancing keep working. + * + * Remove once Pest fixes the upstream regex. + * + * @see https://mozex.dev/blog/2-fixing-pest-sharding-for-modular-laravel-applications + * @see https://github.com/pestphp/pest/issues/1445 + * @see https://github.com/pestphp/pest/issues/1711 + * @see https://github.com/pestphp/pest/issues/1688 + */ +final class PestShardPlugin implements AddsOutput, HandlesArguments, Terminable +{ + use HandleArguments; + + private const string SHARD_OPTION = 'shard'; + + /** + * The shard index and total number of shards. + * + * @var array{ + * index: int, + * total: int, + * testsRan: int, + * testsCount: int + * }|null + */ + private static ?array $shard = null; + + /** + * Whether to update the shards.json file. + */ + private static bool $updateShards = false; + + /** + * Whether time-balanced sharding was used. + */ + private static bool $timeBalanced = false; + + /** + * Whether the shards.json file is outdated. + */ + private static bool $shardsOutdated = false; + + /** + * Whether the test suite passed. + */ + private static bool $passed = false; + + /** + * Collected timings from workers or subscribers. + * + * @var array|null + */ + private static ?array $collectedTimings = null; + + /** + * The canonical list of test classes from --list-tests. + * + * @var list|null + */ + private static ?array $knownTests = null; + + /** + * Creates a new Plugin instance. + */ + public function __construct( + private readonly OutputInterface $output, + ) {} + + /** + * Returns the shard information. + * + * @return array{index: int, total: int} + */ + public static function getShard(InputInterface $input): array + { + if ($input->hasParameterOption('--'.self::SHARD_OPTION)) { + $shard = $input->getParameterOption('--'.self::SHARD_OPTION); + } else { + $shard = null; + } + + if (!is_string($shard) || !preg_match('/^\d+\/\d+$/', $shard)) { + throw new InvalidOption('The [--shard] option must be in the format "index/total".'); + } + + [$index, $total] = explode('/', $shard); + + if (!is_numeric($index) || !is_numeric($total)) { + throw new InvalidOption('The [--shard] option must be in the format "index/total".'); + } + + if ($index <= 0 || $total <= 0 || $index > $total) { + throw new InvalidOption('The [--shard] option index must be a non-negative integer less than the total number of shards.'); + } + + $index = (int) $index; + $total = (int) $total; + + return [ + 'index' => $index, + 'total' => $total, + ]; + } + + /** + * {@inheritDoc} + */ + public function handleArguments(array $arguments): array + { + if ($this->hasArgument('--update-shards', $arguments)) { + return $this->handleUpdateShards($arguments); + } + + if (Parallel::isWorker() && Parallel::getGlobal('UPDATE_SHARDS') === true) { + self::$updateShards = true; + + Event\Facade::instance()->registerSubscriber(new EnsureShardTimingStarted); + Event\Facade::instance()->registerSubscriber(new EnsureShardTimingFinished); + + return $arguments; + } + + if (!$this->hasArgument('--shard', $arguments)) { + return $arguments; + } + + // @phpstan-ignore-next-line + $input = new ArgvInput($arguments); + + ['index' => $index, 'total' => $total] = self::getShard($input); + + $arguments = $this->popArgument("--shard=$index/$total", $this->popArgument('--shard', $this->popArgument( + "$index/$total", + $arguments, + ))); + + /** @phpstan-ignore-next-line */ + $tests = $this->allTests($arguments); + + $timings = $this->loadShardsFile(); + if ($timings !== null) { + $knownTests = array_values(array_filter($tests, fn (string $test): bool => isset($timings[$test]))); + $newTests = array_values(array_diff($tests, $knownTests)); + + $partitions = $this->partitionByTime($knownTests, $timings, $total); + + foreach ($newTests as $i => $test) { + $partitions[$i % $total][] = $test; + } + + $testsToRun = $partitions[$index - 1] ?? []; + self::$timeBalanced = true; + self::$shardsOutdated = $newTests !== []; + } else { + $testsToRun = (array_chunk($tests, max(1, (int) ceil(count($tests) / $total))))[$index - 1] ?? []; + } + + self::$shard = [ + 'index' => $index, + 'total' => $total, + 'testsRan' => count($testsToRun), + 'testsCount' => count($tests), + ]; + + if ($testsToRun === []) { + return $arguments; + } + + return [...$arguments, '--filter', $this->buildFilterArgument($testsToRun)]; + } + + /** + * Adds output after the Test Suite execution. + */ + public function addOutput(int $exitCode): int + { + self::$passed = $exitCode === 0; + + if (self::$updateShards && self::$passed && !Parallel::isWorker()) { + self::$collectedTimings = $this->collectTimings(); + + $count = self::$knownTests !== null + ? count(array_intersect_key(self::$collectedTimings, array_flip(self::$knownTests))) + : count(self::$collectedTimings); + + $this->output->writeln(sprintf( + ' Shards: shards.json updated with timings for %d test class%s.', + $count, + $count === 1 ? '' : 'es', + )); + } + + if (self::$shard === null) { + return $exitCode; + } + + [ + 'index' => $index, + 'total' => $total, + 'testsRan' => $testsRan, + 'testsCount' => $testsCount, + ] = self::$shard; + + $this->output->writeln(sprintf( + ' Shard: %d of %d — %d file%s ran, out of %d%s.', + $index, + $total, + $testsRan, + $testsRan === 1 ? '' : 's', + $testsCount, + self::$timeBalanced ? ' (time-balanced)' : '', + )); + + if (self::$shardsOutdated) { + $this->output->writeln(' WARN The [tests/.pest/shards.json] file is out of date. Run [--update-shards] to update it.'); + } + + return $exitCode; + } + + /** + * Terminates the plugin. + */ + public function terminate(): void + { + if (!self::$updateShards) { + return; + } + + if (Parallel::isWorker()) { + $this->writeWorkerTimings(); + + return; + } + + if (!self::$passed) { + return; + } + + $timings = self::$collectedTimings ?? $this->collectTimings(); + + if ($timings === []) { + return; + } + + $this->writeTimings($timings); + } + + /** + * Handles the --update-shards argument. + * + * @param array $arguments + * @return array + */ + private function handleUpdateShards(array $arguments): array + { + if ($this->hasArgument('--shard', $arguments)) { + throw new InvalidOption('The [--update-shards] option cannot be combined with [--shard].'); + } + + $arguments = $this->popArgument('--update-shards', $arguments); + + self::$updateShards = true; + + /** @phpstan-ignore-next-line */ + self::$knownTests = $this->allTests($arguments); + + if ($this->hasArgument('--parallel', $arguments) || $this->hasArgument('-p', $arguments)) { + Parallel::setGlobal('UPDATE_SHARDS', true); + Parallel::setGlobal('SHARD_RUN_ID', uniqid('pest-shard-', true)); + } else { + Event\Facade::instance()->registerSubscriber(new EnsureShardTimingStarted); + Event\Facade::instance()->registerSubscriber(new EnsureShardTimingFinished); + } + + return $arguments; + } + + /** + * Returns all tests that the test suite would run. + * + * @param list $arguments + * @return list + */ + private function allTests(array $arguments): array + { + $output = (new Process([ + 'php', + ...$this->removeParallelArguments($arguments), + '--list-tests', + ]))->setTimeout(120)->mustRun()->getOutput(); + + // Upstream hard-codes `Tests\\` here, which excludes modular tests + // namespaced `Appmodules\\tests\...`. Match ANY class instead. + preg_match_all('/ - (?:P\\\\)?([^:]+)::/', $output, $matches); + + return array_values(array_unique($matches[1])); + } + + /** + * @param array $arguments + * @return array + */ + private function removeParallelArguments(array $arguments): array + { + return array_filter($arguments, fn (string $argument): bool => !in_array($argument, ['--parallel', '-p'], strict: true)); + } + + /** + * Builds the filter argument for the given tests to run. + */ + private function buildFilterArgument(mixed $testsToRun): string + { + return addslashes(implode('|', $testsToRun)); + } + + /** + * Collects timings from subscribers or worker temp files. + * + * @return array + */ + private function collectTimings(): array + { + $runId = Parallel::getGlobal('SHARD_RUN_ID'); + + if (is_string($runId)) { + return $this->readWorkerTimings($runId); + } + + return EnsureShardTimingsAreCollected::timings(); + } + + /** + * Writes the current worker's timing data to a temp file. + */ + private function writeWorkerTimings(): void + { + $timings = EnsureShardTimingsAreCollected::timings(); + + if ($timings === []) { + return; + } + + $runId = Parallel::getGlobal('SHARD_RUN_ID'); + + if (!is_string($runId)) { + return; + } + + $path = sys_get_temp_dir().DIRECTORY_SEPARATOR.'__pest_sharding_'.$runId.'-'.getmypid().'.json'; + + file_put_contents($path, json_encode($timings, JSON_THROW_ON_ERROR)); + } + + /** + * Reads and merges timing data from all worker temp files. + * + * @return array + */ + private function readWorkerTimings(string $runId): array + { + $pattern = sys_get_temp_dir().DIRECTORY_SEPARATOR.'__pest_sharding_'.$runId.'-*.json'; + $files = glob($pattern); + + if ($files === false || $files === []) { + return []; + } + + $merged = []; + + foreach ($files as $file) { + $contents = file_get_contents($file); + + if ($contents === false) { + continue; + } + + $timings = json_decode($contents, true); + + if (is_array($timings)) { + $merged = array_merge($merged, $timings); + } + + unlink($file); + } + + return $merged; + } + + /** + * Returns the path to shards.json. + */ + private function shardsPath(): string + { + $testSuite = TestSuite::getInstance(); + + return implode(DIRECTORY_SEPARATOR, [$testSuite->rootPath, $testSuite->testPath, '.pest', 'shards.json']); + } + + /** + * Loads the timings from shards.json. + * + * @return array|null + */ + private function loadShardsFile(): ?array + { + $path = $this->shardsPath(); + + if (!file_exists($path)) { + return null; + } + + $contents = file_get_contents($path); + + if ($contents === false) { + throw new InvalidOption('The [tests/.pest/shards.json] file could not be read. Delete it or run [--update-shards] to regenerate.'); + } + + $data = json_decode($contents, true); + + if (!is_array($data) || !isset($data['timings']) || !is_array($data['timings'])) { + throw new InvalidOption('The [tests/.pest/shards.json] file is corrupted. Delete it or run [--update-shards] to regenerate.'); + } + + return $data['timings']; + } + + /** + * Partitions tests across shards using the LPT (Longest Processing Time) algorithm. + * + * @param list $tests + * @param array $timings + * @return list> + */ + private function partitionByTime(array $tests, array $timings, int $total): array + { + $knownTimings = array_filter( + array_map(fn (string $test): ?float => $timings[$test] ?? null, $tests), + fn (?float $t): bool => $t !== null, + ); + + $median = $knownTimings !== [] ? $this->median(array_values($knownTimings)) : 1.0; + + $testsWithTimings = array_map( + fn (string $test): array => ['test' => $test, 'time' => $timings[$test] ?? $median], + $tests, + ); + + usort($testsWithTimings, fn (array $a, array $b): int => $b['time'] <=> $a['time']); + + /** @var list> */ + $bins = array_fill(0, $total, []); + /** @var non-empty-list */ + $binTimes = array_fill(0, $total, 0.0); + + foreach ($testsWithTimings as $item) { + $minIndex = array_search(min($binTimes), $binTimes, strict: true); + assert(is_int($minIndex)); + + $bins[$minIndex][] = $item['test']; + $binTimes[$minIndex] += $item['time']; + } + + return $bins; + } + + /** + * Calculates the median of an array of floats. + * + * @param list $values + */ + private function median(array $values): float + { + sort($values); + + $count = count($values); + $middle = (int) floor($count / 2); + + if ($count % 2 === 0) { + return ($values[$middle - 1] + $values[$middle]) / 2; + } + + return $values[$middle]; + } + + /** + * Writes the timings to shards.json. + * + * @param array $timings + */ + private function writeTimings(array $timings): void + { + $path = $this->shardsPath(); + + $directory = dirname($path); + if (!is_dir($directory)) { + mkdir($directory, 0755, true); + } + + if (self::$knownTests !== null) { + $knownSet = array_flip(self::$knownTests); + $timings = array_intersect_key($timings, $knownSet); + } + + ksort($timings); + + $canonical = self::$knownTests ?? array_keys($timings); + sort($canonical); + + file_put_contents($path, json_encode([ + 'timings' => $timings, + 'checksum' => md5(implode("\n", $canonical)), + 'updated_at' => date('c'), + ], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)."\n"); + } +} diff --git a/composer.json b/composer.json index da144666b..da84afb2e 100644 --- a/composer.json +++ b/composer.json @@ -10,35 +10,35 @@ "require": { "php": "^8.4", "calebporzio/sushi": "^2.5.4", - "dedoc/scramble": "^0.13.30", - "filament/filament": "^5.6.7", - "filament/spatie-laravel-media-library-plugin": "^5.6.7", - "guzzlehttp/guzzle": "^7.13.1", - "he4rt/activity": ">=1", - "he4rt/bot-discord": ">=1.0", - "he4rt/community": ">=1", - "he4rt/docs": ">=1", - "he4rt/economy": ">=1", - "he4rt/events": ">=1", - "he4rt/gamification": ">=1", - "he4rt/he4rt-core": ">=1", - "he4rt/identity": ">=1", - "he4rt/integration-devto": ">=1", - "he4rt/integration-discord": ">=1", - "he4rt/integration-github": ">=1", - "he4rt/integration-twitch": ">=1", - "he4rt/integration-whatsapp": ">=1", - "he4rt/moderation": "^1.0", - "he4rt/onboarding": ">=1", - "he4rt/panel-admin": ">=1", - "he4rt/panel-app": ">=1", - "he4rt/portal": ">=1", - "he4rt/profile": ">=1", - "he4rt/squads": ">=1", + "dedoc/scramble": "^0.13.32", + "filament/filament": "^5.6.8", + "filament/spatie-laravel-media-library-plugin": "^5.6.8", + "guzzlehttp/guzzle": "^7.14.0", + "he4rt/activity": "^1.0.0", + "he4rt/bot-discord": "^1.0.0", + "he4rt/community": "^1.0.0", + "he4rt/docs": "^1.0.0", + "he4rt/economy": "^1.0.0", + "he4rt/events": "^1.0.0", + "he4rt/gamification": "^1.0.0", + "he4rt/he4rt-core": "^1.0.0", + "he4rt/identity": "^1.0.0", + "he4rt/integration-devto": "^1.0.0", + "he4rt/integration-discord": "^1.0.0", + "he4rt/integration-github": "^1.0.0", + "he4rt/integration-twitch": "^1.0.0", + "he4rt/integration-whatsapp": "^1.0.0", + "he4rt/moderation": "^1.0.0", + "he4rt/onboarding": "^1.0.0", + "he4rt/panel-admin": "^1.0.0", + "he4rt/panel-app": "^1.0.0", + "he4rt/portal": "^1.0.0", + "he4rt/profile": "^1.0.0", + "he4rt/squads": "^1.0.0", "internachi/modular": "^3.0.2", "laracord/framework": "dev-next#e7b64d6", - "laravel/framework": "^13.17.0", - "laravel/nightwatch": "^1.28.3", + "laravel/framework": "^13.19.0", + "laravel/nightwatch": "^1.28.4", "laravel/sanctum": "^4.3.2", "laravel/telescope": "^5.20.0", "laravel/tinker": "^3.0.2", @@ -58,22 +58,22 @@ "require-dev": { "driftingly/rector-laravel": "^2.5.0", "fakerphp/faker": "^1.24.1", - "fruitcake/laravel-debugbar": "^4.3.0", + "fruitcake/laravel-debugbar": "^4.4.0", "larastan/larastan": "^3.10.0", - "laravel/boost": "^2.4.10", + "laravel/boost": "^2.4.12", "laravel/pail": "^1.2.7", "laravel/pao": "^1.1.2", "laravel/pint": "^1.29.3", "mockery/mockery": "^1.6.12", - "mrpunyapal/rector-pest": "^0.2.15", + "mrpunyapal/rector-pest": "^0.2.17", "nunomaduro/collision": "^8.9.4", - "pestphp/pest": "^4.7.4", + "pestphp/pest": "^4.7.5", "pestphp/pest-plugin-drift": "^4.1.0", "pestphp/pest-plugin-faker": "^4.0.0", "pestphp/pest-plugin-laravel": "^4.1.0", "pestphp/pest-plugin-livewire": "^4.1.0", "phpstan/extension-installer": "^1.4.3", - "rector/rector": "^2.5.2" + "rector/rector": "^2.5.5" }, "autoload": { "psr-4": { @@ -93,16 +93,25 @@ "scripts": { "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", - "@php artisan package:discover --ansi" + "@php artisan package:discover --ansi", + "@php artisan filament:upgrade", + "@php artisan modules:sync --no-phpunit --ansi" ], "post-update-cmd": [ "@php artisan vendor:publish --tag=laravel-assets --ansi --force" ], + "pre-package-uninstall": [ + "Illuminate\\Foundation\\ComposerScripts::prePackageUninstall" + ], "post-root-package-install": [ - "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" + "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"", + "@php -r \"file_exists('.env.testing') || copy('.env.testing.example', '.env.testing');\"" ], - "post-create-project-cmd": [ + "key:generate": [ "@php artisan key:generate --ansi", + "@php artisan key:generate --ansi --env=testing" + ], + "post-create-project-cmd": [ "@php -r \"file_exists('database/database.sqlite') || touch('database/database.sqlite');\"", "@php artisan migrate --graceful --ansi" ], @@ -110,8 +119,8 @@ "composer install", "npm install", "composer run-script post-root-package-install", + "composer run-script key:generate", "composer run-script post-create-project-cmd", - "@php artisan key:generate --ansi", "@php artisan storage:link --ansi" ], "bot": "@php artisan bot:boot", @@ -144,6 +153,11 @@ "barryvdh/laravel-debugbar", "laravel/telescope" ] + }, + "pest": { + "plugins": [ + "App\\Support\\PestShardPlugin" + ] } }, "config": { diff --git a/composer.lock b/composer.lock index 0d5ccabcf..ca03703ca 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,73 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d99073592af48a849b8d049d16bddaee", + "content-hash": "a814ca5741d771d93852c30419c321fd", "packages": [ + { + "name": "anourvalar/eloquent-serialize", + "version": "1.3.10", + "source": { + "type": "git", + "url": "https://github.com/AnourValar/eloquent-serialize.git", + "reference": "2be26f176b764a2d6f20118bfa4b125f71fa88f8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/2be26f176b764a2d6f20118bfa4b125f71fa88f8", + "reference": "2be26f176b764a2d6f20118bfa4b125f71fa88f8", + "shasum": "" + }, + "require": { + "laravel/framework": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", + "php": "^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.26", + "laravel/legacy-factories": "^1.1", + "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^9.5|^10.5|^11.0", + "squizlabs/php_codesniffer": "^3.7" + }, + "type": "library", + "extra": { + "laravel": { + "aliases": { + "EloquentSerialize": "AnourValar\\EloquentSerialize\\Facades\\EloquentSerializeFacade" + } + } + }, + "autoload": { + "psr-4": { + "AnourValar\\EloquentSerialize\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Laravel Query Builder (Eloquent) serialization", + "homepage": "https://github.com/AnourValar/eloquent-serialize", + "keywords": [ + "anourvalar", + "builder", + "copy", + "eloquent", + "job", + "laravel", + "query", + "querybuilder", + "queue", + "serializable", + "serialization", + "serialize" + ], + "support": { + "issues": "https://github.com/AnourValar/eloquent-serialize/issues", + "source": "https://github.com/AnourValar/eloquent-serialize/tree/1.3.10" + }, + "time": "2026-06-20T14:30:25+00:00" + }, { "name": "blade-ui-kit/blade-heroicons", "version": "2.7.0", @@ -77,16 +142,16 @@ }, { "name": "blade-ui-kit/blade-icons", - "version": "1.10.0", + "version": "1.10.1", "source": { "type": "git", "url": "https://github.com/driesvints/blade-icons.git", - "reference": "74189a80bbaa4966aebaee54fec3a3c2ef0a5f3a" + "reference": "6e072d021ea6249986c330b93293c33d0c4f0e34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/driesvints/blade-icons/zipball/74189a80bbaa4966aebaee54fec3a3c2ef0a5f3a", - "reference": "74189a80bbaa4966aebaee54fec3a3c2ef0a5f3a", + "url": "https://api.github.com/repos/driesvints/blade-icons/zipball/6e072d021ea6249986c330b93293c33d0c4f0e34", + "reference": "6e072d021ea6249986c330b93293c33d0c4f0e34", "shasum": "" }, "require": { @@ -154,7 +219,7 @@ "type": "paypal" } ], - "time": "2026-04-23T19:03:45+00:00" + "time": "2026-06-30T09:44:12+00:00" }, { "name": "brick/math", @@ -643,16 +708,16 @@ }, { "name": "composer/composer", - "version": "2.10.1", + "version": "2.10.2", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "4120703b9bda8795075047b40361d7ec4d2abe49" + "reference": "8d4439f572a97670a9edc039eb3b093cc976b4bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/4120703b9bda8795075047b40361d7ec4d2abe49", - "reference": "4120703b9bda8795075047b40361d7ec4d2abe49", + "url": "https://api.github.com/repos/composer/composer/zipball/8d4439f572a97670a9edc039eb3b093cc976b4bc", + "reference": "8d4439f572a97670a9edc039eb3b093cc976b4bc", "shasum": "" }, "require": { @@ -740,7 +805,7 @@ "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", "security": "https://github.com/composer/composer/security/policy", - "source": "https://github.com/composer/composer/tree/2.10.1" + "source": "https://github.com/composer/composer/tree/2.10.2" }, "funding": [ { @@ -752,20 +817,20 @@ "type": "github" } ], - "time": "2026-06-04T08:25:59+00:00" + "time": "2026-07-01T09:24:45+00:00" }, { "name": "composer/metadata-minifier", - "version": "1.0.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/composer/metadata-minifier.git", - "reference": "c549d23829536f0d0e984aaabbf02af91f443207" + "reference": "8e86142e3ade750b837d55e55f0cdc786d8da006" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/metadata-minifier/zipball/c549d23829536f0d0e984aaabbf02af91f443207", - "reference": "c549d23829536f0d0e984aaabbf02af91f443207", + "url": "https://api.github.com/repos/composer/metadata-minifier/zipball/8e86142e3ade750b837d55e55f0cdc786d8da006", + "reference": "8e86142e3ade750b837d55e55f0cdc786d8da006", "shasum": "" }, "require": { @@ -773,8 +838,8 @@ }, "require-dev": { "composer/composer": "^2", - "phpstan/phpstan": "^0.12.55", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpstan/phpstan": "^1", + "symfony/phpunit-bridge": "^4.2 || ^5 || ^6 || ^7" }, "type": "library", "extra": { @@ -805,7 +870,7 @@ ], "support": { "issues": "https://github.com/composer/metadata-minifier/issues", - "source": "https://github.com/composer/metadata-minifier/tree/1.0.0" + "source": "https://github.com/composer/metadata-minifier/tree/1.0.1" }, "funding": [ { @@ -815,13 +880,9 @@ { "url": "https://github.com/composer", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2021-04-07T13:37:33+00:00" + "time": "2026-06-30T11:34:59+00:00" }, { "name": "composer/pcre", @@ -1225,16 +1286,16 @@ }, { "name": "dedoc/scramble", - "version": "v0.13.30", + "version": "v0.13.32", "source": { "type": "git", "url": "https://github.com/dedoc/scramble.git", - "reference": "e727d2ac2a7561528f90296226788727937f9a28" + "reference": "546a727720d4c38f2248e7c63b43178fbea7a96e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dedoc/scramble/zipball/e727d2ac2a7561528f90296226788727937f9a28", - "reference": "e727d2ac2a7561528f90296226788727937f9a28", + "url": "https://api.github.com/repos/dedoc/scramble/zipball/546a727720d4c38f2248e7c63b43178fbea7a96e", + "reference": "546a727720d4c38f2248e7c63b43178fbea7a96e", "shasum": "" }, "require": { @@ -1294,7 +1355,7 @@ ], "support": { "issues": "https://github.com/dedoc/scramble/issues", - "source": "https://github.com/dedoc/scramble/tree/v0.13.30" + "source": "https://github.com/dedoc/scramble/tree/v0.13.32" }, "funding": [ { @@ -1302,7 +1363,7 @@ "type": "github" } ], - "time": "2026-06-26T16:57:26+00:00" + "time": "2026-07-09T09:04:02+00:00" }, { "name": "dflydev/dot-access-data", @@ -2006,19 +2067,20 @@ }, { "name": "filament/actions", - "version": "v5.6.7", + "version": "v5.6.8", "source": { "type": "git", "url": "https://github.com/filamentphp/actions.git", - "reference": "4697f9e6dab1f023b2ea21b0e449c3fd204fb3d9" + "reference": "1c479a47ee1612f7c05a7921b2491230aeed392c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/actions/zipball/4697f9e6dab1f023b2ea21b0e449c3fd204fb3d9", - "reference": "4697f9e6dab1f023b2ea21b0e449c3fd204fb3d9", + "url": "https://api.github.com/repos/filamentphp/actions/zipball/1c479a47ee1612f7c05a7921b2491230aeed392c", + "reference": "1c479a47ee1612f7c05a7921b2491230aeed392c", "shasum": "" }, "require": { + "anourvalar/eloquent-serialize": "^1.3.6", "filament/forms": "self.version", "filament/infolists": "self.version", "filament/notifications": "self.version", @@ -2050,20 +2112,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-06-08T09:27:06+00:00" + "time": "2026-07-02T08:19:13+00:00" }, { "name": "filament/filament", - "version": "v5.6.7", + "version": "v5.6.8", "source": { "type": "git", "url": "https://github.com/filamentphp/panels.git", - "reference": "2b6bfa9888e0bcba8c2a7dfbdfe913cab72cfe6a" + "reference": "c54ec7692245787057c24f82d92d9fee7bc24941" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/panels/zipball/2b6bfa9888e0bcba8c2a7dfbdfe913cab72cfe6a", - "reference": "2b6bfa9888e0bcba8c2a7dfbdfe913cab72cfe6a", + "url": "https://api.github.com/repos/filamentphp/panels/zipball/c54ec7692245787057c24f82d92d9fee7bc24941", + "reference": "c54ec7692245787057c24f82d92d9fee7bc24941", "shasum": "" }, "require": { @@ -2107,20 +2169,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-06-08T09:24:15+00:00" + "time": "2026-07-02T08:17:14+00:00" }, { "name": "filament/forms", - "version": "v5.6.7", + "version": "v5.6.8", "source": { "type": "git", "url": "https://github.com/filamentphp/forms.git", - "reference": "f7b5e8701982408f84e1b12fcca75eadad47905b" + "reference": "7e6e4e52a63f4fc11edb253201bdd8cbc7d956eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/forms/zipball/f7b5e8701982408f84e1b12fcca75eadad47905b", - "reference": "f7b5e8701982408f84e1b12fcca75eadad47905b", + "url": "https://api.github.com/repos/filamentphp/forms/zipball/7e6e4e52a63f4fc11edb253201bdd8cbc7d956eb", + "reference": "7e6e4e52a63f4fc11edb253201bdd8cbc7d956eb", "shasum": "" }, "require": { @@ -2157,20 +2219,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-06-08T09:27:44+00:00" + "time": "2026-07-02T08:16:27+00:00" }, { "name": "filament/infolists", - "version": "v5.6.7", + "version": "v5.6.8", "source": { "type": "git", "url": "https://github.com/filamentphp/infolists.git", - "reference": "0b87686a37160bf7f8bccae1eedc733bbf928dc9" + "reference": "01152bfc7d5d2b65a83eb1045a8f3625d4eaeae7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/infolists/zipball/0b87686a37160bf7f8bccae1eedc733bbf928dc9", - "reference": "0b87686a37160bf7f8bccae1eedc733bbf928dc9", + "url": "https://api.github.com/repos/filamentphp/infolists/zipball/01152bfc7d5d2b65a83eb1045a8f3625d4eaeae7", + "reference": "01152bfc7d5d2b65a83eb1045a8f3625d4eaeae7", "shasum": "" }, "require": { @@ -2202,20 +2264,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-06-08T09:28:23+00:00" + "time": "2026-07-02T08:19:40+00:00" }, { "name": "filament/notifications", - "version": "v5.6.7", + "version": "v5.6.8", "source": { "type": "git", "url": "https://github.com/filamentphp/notifications.git", - "reference": "28ce63bf4e378a4e38efac7b1f0519a5fed4b352" + "reference": "a2b4564d9c7fcb5b8e904da40b4f6c2782934071" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/notifications/zipball/28ce63bf4e378a4e38efac7b1f0519a5fed4b352", - "reference": "28ce63bf4e378a4e38efac7b1f0519a5fed4b352", + "url": "https://api.github.com/repos/filamentphp/notifications/zipball/a2b4564d9c7fcb5b8e904da40b4f6c2782934071", + "reference": "a2b4564d9c7fcb5b8e904da40b4f6c2782934071", "shasum": "" }, "require": { @@ -2249,20 +2311,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-06-08T09:27:42+00:00" + "time": "2026-07-02T08:08:59+00:00" }, { "name": "filament/query-builder", - "version": "v5.6.7", + "version": "v5.6.8", "source": { "type": "git", "url": "https://github.com/filamentphp/query-builder.git", - "reference": "fb4b6cdebe6ab2c233cc78d3688a64f022263c56" + "reference": "401d0d61f5ead5d440f184857e1921675138fd5a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/query-builder/zipball/fb4b6cdebe6ab2c233cc78d3688a64f022263c56", - "reference": "fb4b6cdebe6ab2c233cc78d3688a64f022263c56", + "url": "https://api.github.com/repos/filamentphp/query-builder/zipball/401d0d61f5ead5d440f184857e1921675138fd5a", + "reference": "401d0d61f5ead5d440f184857e1921675138fd5a", "shasum": "" }, "require": { @@ -2295,20 +2357,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-05-27T16:17:11+00:00" + "time": "2026-07-02T08:20:10+00:00" }, { "name": "filament/schemas", - "version": "v5.6.7", + "version": "v5.6.8", "source": { "type": "git", "url": "https://github.com/filamentphp/schemas.git", - "reference": "c3ecdfe73a215927caaf7b28bc5ae2b3891e805b" + "reference": "036549f1b6cbf3d908e1b9fa42f5e221d1db3240" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/schemas/zipball/c3ecdfe73a215927caaf7b28bc5ae2b3891e805b", - "reference": "c3ecdfe73a215927caaf7b28bc5ae2b3891e805b", + "url": "https://api.github.com/repos/filamentphp/schemas/zipball/036549f1b6cbf3d908e1b9fa42f5e221d1db3240", + "reference": "036549f1b6cbf3d908e1b9fa42f5e221d1db3240", "shasum": "" }, "require": { @@ -2340,11 +2402,11 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-06-08T09:28:03+00:00" + "time": "2026-07-02T08:20:18+00:00" }, { "name": "filament/spatie-laravel-media-library-plugin", - "version": "v5.6.7", + "version": "v5.6.8", "source": { "type": "git", "url": "https://github.com/filamentphp/spatie-laravel-media-library-plugin.git", @@ -2381,16 +2443,16 @@ }, { "name": "filament/support", - "version": "v5.6.7", + "version": "v5.6.8", "source": { "type": "git", "url": "https://github.com/filamentphp/support.git", - "reference": "caa2bf186de5b32a789d3c7167bc63db153386a1" + "reference": "024caa553010c2617bb90114eb0e78883e33138b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/support/zipball/caa2bf186de5b32a789d3c7167bc63db153386a1", - "reference": "caa2bf186de5b32a789d3c7167bc63db153386a1", + "url": "https://api.github.com/repos/filamentphp/support/zipball/024caa553010c2617bb90114eb0e78883e33138b", + "reference": "024caa553010c2617bb90114eb0e78883e33138b", "shasum": "" }, "require": { @@ -2435,20 +2497,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-06-08T09:28:36+00:00" + "time": "2026-07-02T08:20:15+00:00" }, { "name": "filament/tables", - "version": "v5.6.7", + "version": "v5.6.8", "source": { "type": "git", "url": "https://github.com/filamentphp/tables.git", - "reference": "bb98022d73347eeb090976ae0730147289135ffb" + "reference": "bfe49781b2879e0c1acdfd4065d1c8499ee7ba1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/tables/zipball/bb98022d73347eeb090976ae0730147289135ffb", - "reference": "bb98022d73347eeb090976ae0730147289135ffb", + "url": "https://api.github.com/repos/filamentphp/tables/zipball/bfe49781b2879e0c1acdfd4065d1c8499ee7ba1a", + "reference": "bfe49781b2879e0c1acdfd4065d1c8499ee7ba1a", "shasum": "" }, "require": { @@ -2481,20 +2543,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-06-08T09:28:26+00:00" + "time": "2026-07-02T08:20:10+00:00" }, { "name": "filament/widgets", - "version": "v5.6.7", + "version": "v5.6.8", "source": { "type": "git", "url": "https://github.com/filamentphp/widgets.git", - "reference": "8c6411e0331aab124ffdf6c49d1161b1ecfbc9bc" + "reference": "329c92e8560536fd6dd738b45eaf6ba063cd53ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/widgets/zipball/8c6411e0331aab124ffdf6c49d1161b1ecfbc9bc", - "reference": "8c6411e0331aab124ffdf6c49d1161b1ecfbc9bc", + "url": "https://api.github.com/repos/filamentphp/widgets/zipball/329c92e8560536fd6dd738b45eaf6ba063cd53ea", + "reference": "329c92e8560536fd6dd738b45eaf6ba063cd53ea", "shasum": "" }, "require": { @@ -2525,7 +2587,7 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-06-08T09:28:17+00:00" + "time": "2026-07-02T08:19:55+00:00" }, { "name": "fruitcake/php-cors", @@ -2662,22 +2724,22 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.13.1", + "version": "7.14.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "55901a76dfd2006a0cc012b9e3c5b487f796478d" + "reference": "aef242412e13128b5049864867bb49fc37dd39de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/55901a76dfd2006a0cc012b9e3c5b487f796478d", - "reference": "55901a76dfd2006a0cc012b9e3c5b487f796478d", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/aef242412e13128b5049864867bb49fc37dd39de", + "reference": "aef242412e13128b5049864867bb49fc37dd39de", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^2.5", - "guzzlehttp/psr7": "^2.12.3", + "guzzlehttp/promises": "^2.5.1", + "guzzlehttp/psr7": "^2.12.4", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.5 || ^3.0", @@ -2689,7 +2751,7 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", - "guzzle/client-integration-tests": "3.0.2", + "guzzle/client-integration-tests": "3.0.3", "guzzlehttp/test-server": "^0.6", "php-http/message-factory": "^1.1", "phpunit/phpunit": "^8.5.52 || ^9.6.34", @@ -2770,7 +2832,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.13.1" + "source": "https://github.com/guzzle/guzzle/tree/7.14.0" }, "funding": [ { @@ -2786,20 +2848,20 @@ "type": "tidelift" } ], - "time": "2026-06-29T20:14:18+00:00" + "time": "2026-07-08T22:54:09+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.5.0", + "version": "2.5.1", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "4360e982f87f5f258bf872d094647791db2f4c8e" + "reference": "9ad1e4fc607446a055b95870c7f668e93b5cff29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/4360e982f87f5f258bf872d094647791db2f4c8e", - "reference": "4360e982f87f5f258bf872d094647791db2f4c8e", + "url": "https://api.github.com/repos/guzzle/promises/zipball/9ad1e4fc607446a055b95870c7f668e93b5cff29", + "reference": "9ad1e4fc607446a055b95870c7f668e93b5cff29", "shasum": "" }, "require": { @@ -2854,7 +2916,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.5.0" + "source": "https://github.com/guzzle/promises/tree/2.5.1" }, "funding": [ { @@ -2870,20 +2932,20 @@ "type": "tidelift" } ], - "time": "2026-06-02T12:23:43+00:00" + "time": "2026-07-08T15:48:39+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.12.3", + "version": "2.12.4", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "7ec62dc3f44aa218487dbed81a9bf9bc647be55d" + "reference": "51e27f9e2b332ab3e72f4520d5ff4f3c68c3577c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/7ec62dc3f44aa218487dbed81a9bf9bc647be55d", - "reference": "7ec62dc3f44aa218487dbed81a9bf9bc647be55d", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/51e27f9e2b332ab3e72f4520d5ff4f3c68c3577c", + "reference": "51e27f9e2b332ab3e72f4520d5ff4f3c68c3577c", "shasum": "" }, "require": { @@ -2973,7 +3035,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.12.3" + "source": "https://github.com/guzzle/psr7/tree/2.12.4" }, "funding": [ { @@ -2989,20 +3051,20 @@ "type": "tidelift" } ], - "time": "2026-06-23T15:21:08+00:00" + "time": "2026-07-08T15:56:20+00:00" }, { "name": "guzzlehttp/uri-template", - "version": "v1.0.8", + "version": "v1.0.9", "source": { "type": "git", "url": "https://github.com/guzzle/uri-template.git", - "reference": "9c19128923b05a5d7355e5d2318d7808b7e33bbd" + "reference": "d7580af6d3f8384325d9cd3e99b21c3ed1848176" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/uri-template/zipball/9c19128923b05a5d7355e5d2318d7808b7e33bbd", - "reference": "9c19128923b05a5d7355e5d2318d7808b7e33bbd", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/d7580af6d3f8384325d9cd3e99b21c3ed1848176", + "reference": "d7580af6d3f8384325d9cd3e99b21c3ed1848176", "shasum": "" }, "require": { @@ -3059,7 +3121,7 @@ ], "support": { "issues": "https://github.com/guzzle/uri-template/issues", - "source": "https://github.com/guzzle/uri-template/tree/v1.0.8" + "source": "https://github.com/guzzle/uri-template/tree/v1.0.9" }, "funding": [ { @@ -3075,7 +3137,7 @@ "type": "tidelift" } ], - "time": "2026-06-23T13:02:23+00:00" + "time": "2026-07-08T16:19:22+00:00" }, { "name": "he4rt/activity", @@ -3613,13 +3675,13 @@ "dist": { "type": "path", "url": "app-modules/onboarding", - "reference": "3a220d43dbb84baa4f55ad195653e0cf99c92c84" + "reference": "323beee88a6e398ee6655e9b2051ad55525c9920" }, "type": "library", "extra": { "laravel": { "providers": [ - "He4rt\\Onboarding\\Providers\\OnboardingServiceProvider" + "He4rt\\Onboarding\\OnboardingServiceProvider" ] } }, @@ -3799,13 +3861,13 @@ "dist": { "type": "path", "url": "app-modules/squads", - "reference": "6d710964545ed1c8635e42b11780e181211075e7" + "reference": "9f403fc7ce21863d32cead1e6e8718adea29bdf8" }, "type": "library", "extra": { "laravel": { "providers": [ - "He4rt\\Squads\\Providers\\SquadsServiceProvider" + "He4rt\\Squads\\SquadsServiceProvider" ] } }, @@ -4240,16 +4302,16 @@ }, { "name": "laravel/framework", - "version": "v13.17.0", + "version": "v13.19.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "0802b7a81f3252d78200b8037ac183a686a529f0" + "reference": "514502b38e11bd676ecf83b271c9452cc7500f16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/0802b7a81f3252d78200b8037ac183a686a529f0", - "reference": "0802b7a81f3252d78200b8037ac183a686a529f0", + "url": "https://api.github.com/repos/laravel/framework/zipball/514502b38e11bd676ecf83b271c9452cc7500f16", + "reference": "514502b38e11bd676ecf83b271c9452cc7500f16", "shasum": "" }, "require": { @@ -4460,20 +4522,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-06-23T19:42:45+00:00" + "time": "2026-07-07T14:13:33+00:00" }, { "name": "laravel/nightwatch", - "version": "v1.28.3", + "version": "v1.28.4", "source": { "type": "git", "url": "https://github.com/laravel/nightwatch.git", - "reference": "375f05b589e53d90560dd4aaac9f53d26d1d0433" + "reference": "c38c1a3eb7dfbaf27023dbf011bf1078fdf28bdb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/nightwatch/zipball/375f05b589e53d90560dd4aaac9f53d26d1d0433", - "reference": "375f05b589e53d90560dd4aaac9f53d26d1d0433", + "url": "https://api.github.com/repos/laravel/nightwatch/zipball/c38c1a3eb7dfbaf27023dbf011bf1078fdf28bdb", + "reference": "c38c1a3eb7dfbaf27023dbf011bf1078fdf28bdb", "shasum": "" }, "require": { @@ -4554,7 +4616,7 @@ "issues": "https://github.com/laravel/nightwatch/issues", "source": "https://github.com/laravel/nightwatch" }, - "time": "2026-06-24T05:04:12+00:00" + "time": "2026-06-30T06:54:16+00:00" }, { "name": "laravel/prompts", @@ -5215,16 +5277,16 @@ }, { "name": "league/flysystem", - "version": "3.35.1", + "version": "3.35.2", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "f23af6c5aafd958a7593029a271d77baf5ed793c" + "reference": "b277b5dc3d56650b68904117124e79c851e12376" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/f23af6c5aafd958a7593029a271d77baf5ed793c", - "reference": "f23af6c5aafd958a7593029a271d77baf5ed793c", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/b277b5dc3d56650b68904117124e79c851e12376", + "reference": "b277b5dc3d56650b68904117124e79c851e12376", "shasum": "" }, "require": { @@ -5292,9 +5354,9 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.35.1" + "source": "https://github.com/thephpleague/flysystem/tree/3.35.2" }, - "time": "2026-06-25T06:52:23+00:00" + "time": "2026-07-06T14:42:07+00:00" }, { "name": "league/flysystem-local", @@ -6668,20 +6730,19 @@ }, { "name": "nikic/php-parser", - "version": "v5.7.0", + "version": "v5.8.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" + "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", - "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/044a6a392ff8ad0d61f14370a5fbbd0a0107152f", + "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f", "shasum": "" }, "require": { - "ext-ctype": "*", "ext-json": "*", "ext-tokenizer": "*", "php": ">=7.4" @@ -6720,9 +6781,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.8.0" }, - "time": "2025-12-06T11:56:16+00:00" + "time": "2026-07-04T14:30:18+00:00" }, { "name": "nunomaduro/termwind", @@ -7344,16 +7405,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "2.3.2", + "version": "2.3.3", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a" + "reference": "fb19eedd2bb67ff8cf7a5502ad329e701d6398a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/a004701b11273a26cd7955a61d67a7f1e525a45a", - "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fb19eedd2bb67ff8cf7a5502ad329e701d6398a3", + "reference": "fb19eedd2bb67ff8cf7a5502ad329e701d6398a3", "shasum": "" }, "require": { @@ -7385,9 +7446,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.2" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.3" }, - "time": "2026-01-25T14:56:51+00:00" + "time": "2026-07-08T07:01:06+00:00" }, { "name": "pragmarx/google2fa", @@ -13606,16 +13667,16 @@ }, { "name": "team-reflex/discord-php", - "version": "v10.50.0", + "version": "v10.51.0", "source": { "type": "git", "url": "https://github.com/discord-php/DiscordPHP.git", - "reference": "11fa8eddc78cde79b7f9eb185a02c91683178942" + "reference": "02f7c48e5e1af09564f77b70efed429acc52d96f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/discord-php/DiscordPHP/zipball/11fa8eddc78cde79b7f9eb185a02c91683178942", - "reference": "11fa8eddc78cde79b7f9eb185a02c91683178942", + "url": "https://api.github.com/repos/discord-php/DiscordPHP/zipball/02f7c48e5e1af09564f77b70efed429acc52d96f", + "reference": "02f7c48e5e1af09564f77b70efed429acc52d96f", "shasum": "" }, "require": { @@ -13687,7 +13748,7 @@ "chat": "https://discord.gg/dphp", "docs": "https://discord-php.github.io/DiscordPHP/", "issues": "https://github.com/discord-php/DiscordPHP/issues", - "source": "https://github.com/discord-php/DiscordPHP/tree/v10.50.0", + "source": "https://github.com/discord-php/DiscordPHP/tree/v10.51.0", "wiki": "https://github.com/discord-php/DiscordPHP/wiki" }, "funding": [ @@ -13708,7 +13769,7 @@ "type": "patreon" } ], - "time": "2026-06-26T17:59:46+00:00" + "time": "2026-07-01T05:08:27+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -13884,16 +13945,16 @@ }, { "name": "vlucas/phpdotenv", - "version": "v5.6.3", + "version": "v5.6.4", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "955e7815d677a3eaa7075231212f2110983adecc" + "reference": "416df702837983f8d5ff48c9c3fee4f5f57b980b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/955e7815d677a3eaa7075231212f2110983adecc", - "reference": "955e7815d677a3eaa7075231212f2110983adecc", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/416df702837983f8d5ff48c9c3fee4f5f57b980b", + "reference": "416df702837983f8d5ff48c9c3fee4f5f57b980b", "shasum": "" }, "require": { @@ -13952,7 +14013,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.3" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.4" }, "funding": [ { @@ -13964,7 +14025,7 @@ "type": "tidelift" } ], - "time": "2025-12-27T19:49:13+00:00" + "time": "2026-07-06T19:11:50+00:00" }, { "name": "voku/portable-ascii", @@ -14416,16 +14477,16 @@ }, { "name": "fruitcake/laravel-debugbar", - "version": "v4.3.0", + "version": "v4.4.0", "source": { "type": "git", "url": "https://github.com/fruitcake/laravel-debugbar.git", - "reference": "3d76ea8d78b82225b92789de65fc630c1cd8e80c" + "reference": "80ef956bda9e1a5824037d6f2cd06e73092e5634" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fruitcake/laravel-debugbar/zipball/3d76ea8d78b82225b92789de65fc630c1cd8e80c", - "reference": "3d76ea8d78b82225b92789de65fc630c1cd8e80c", + "url": "https://api.github.com/repos/fruitcake/laravel-debugbar/zipball/80ef956bda9e1a5824037d6f2cd06e73092e5634", + "reference": "80ef956bda9e1a5824037d6f2cd06e73092e5634", "shasum": "" }, "require": { @@ -14433,7 +14494,7 @@ "illuminate/session": "^11|^12|^13.0", "illuminate/support": "^11|^12|^13.0", "php": "^8.2", - "php-debugbar/php-debugbar": "^3.7.2", + "php-debugbar/php-debugbar": "^3.8.0", "php-debugbar/symfony-bridge": "^1.1" }, "replace": { @@ -14441,6 +14502,7 @@ }, "require-dev": { "larastan/larastan": "^3", + "laravel/ai": "^0.8", "laravel/octane": "^2", "laravel/pennant": "^1", "laravel/pint": "^1", @@ -14502,7 +14564,7 @@ ], "support": { "issues": "https://github.com/fruitcake/laravel-debugbar/issues", - "source": "https://github.com/fruitcake/laravel-debugbar/tree/v4.3.0" + "source": "https://github.com/fruitcake/laravel-debugbar/tree/v4.4.0" }, "funding": [ { @@ -14514,7 +14576,7 @@ "type": "github" } ], - "time": "2026-06-04T07:54:01+00:00" + "time": "2026-07-04T08:30:57+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -14822,16 +14884,16 @@ }, { "name": "laravel/boost", - "version": "v2.4.10", + "version": "v2.4.12", "source": { "type": "git", "url": "https://github.com/laravel/boost.git", - "reference": "080189f51c8d27c0792a03483a70adc7770f6eeb" + "reference": "d43bdf901fee8d216145cb062c9847c892844908" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/boost/zipball/080189f51c8d27c0792a03483a70adc7770f6eeb", - "reference": "080189f51c8d27c0792a03483a70adc7770f6eeb", + "url": "https://api.github.com/repos/laravel/boost/zipball/d43bdf901fee8d216145cb062c9847c892844908", + "reference": "d43bdf901fee8d216145cb062c9847c892844908", "shasum": "" }, "require": { @@ -14884,7 +14946,7 @@ "issues": "https://github.com/laravel/boost/issues", "source": "https://github.com/laravel/boost" }, - "time": "2026-06-09T10:21:08+00:00" + "time": "2026-07-08T09:53:34+00:00" }, { "name": "laravel/mcp", @@ -15339,16 +15401,16 @@ }, { "name": "mrpunyapal/rector-pest", - "version": "0.2.15", + "version": "0.2.17", "source": { "type": "git", "url": "https://github.com/MrPunyapal/rector-pest.git", - "reference": "624dba596ad1605e34a2ec7ac5eb5fffce960596" + "reference": "967b5fe54c524f24a616e6e65327cb4f30bf9486" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/MrPunyapal/rector-pest/zipball/624dba596ad1605e34a2ec7ac5eb5fffce960596", - "reference": "624dba596ad1605e34a2ec7ac5eb5fffce960596", + "url": "https://api.github.com/repos/MrPunyapal/rector-pest/zipball/967b5fe54c524f24a616e6e65327cb4f30bf9486", + "reference": "967b5fe54c524f24a616e6e65327cb4f30bf9486", "shasum": "" }, "require": { @@ -15395,7 +15457,7 @@ ], "support": { "issues": "https://github.com/MrPunyapal/rector-pest/issues", - "source": "https://github.com/MrPunyapal/rector-pest/tree/0.2.15" + "source": "https://github.com/MrPunyapal/rector-pest/tree/0.2.17" }, "funding": [ { @@ -15403,7 +15465,7 @@ "type": "github" } ], - "time": "2026-05-15T18:51:02+00:00" + "time": "2026-07-03T10:14:25+00:00" }, { "name": "nunomaduro/collision", @@ -15503,16 +15565,16 @@ }, { "name": "pestphp/pest", - "version": "v4.7.4", + "version": "v4.7.5", "source": { "type": "git", "url": "https://github.com/pestphp/pest.git", - "reference": "ee2e97e932d158faceeaa63a4dc17324b15152cb" + "reference": "5dc49a71d63602a9b98fed0f2017c4679ef9f8e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest/zipball/ee2e97e932d158faceeaa63a4dc17324b15152cb", - "reference": "ee2e97e932d158faceeaa63a4dc17324b15152cb", + "url": "https://api.github.com/repos/pestphp/pest/zipball/5dc49a71d63602a9b98fed0f2017c4679ef9f8e0", + "reference": "5dc49a71d63602a9b98fed0f2017c4679ef9f8e0", "shasum": "" }, "require": { @@ -15535,11 +15597,11 @@ "webmozart/assert": "<1.11.0" }, "require-dev": { - "mrpunyapal/peststan": "^0.2.10", + "mrpunyapal/peststan": "^0.2.11", "pestphp/pest-dev-tools": "^4.1.0", "pestphp/pest-plugin-browser": "^4.3.1", "pestphp/pest-plugin-type-coverage": "^4.0.4", - "psy/psysh": "^0.12.23" + "psy/psysh": "^0.12.24" }, "bin": [ "bin/pest" @@ -15606,7 +15668,7 @@ ], "support": { "issues": "https://github.com/pestphp/pest/issues", - "source": "https://github.com/pestphp/pest/tree/v4.7.4" + "source": "https://github.com/pestphp/pest/tree/v4.7.5" }, "funding": [ { @@ -15618,7 +15680,7 @@ "type": "github" } ], - "time": "2026-06-25T19:09:05+00:00" + "time": "2026-07-06T17:06:29+00:00" }, { "name": "pestphp/pest-plugin", @@ -16286,16 +16348,16 @@ }, { "name": "php-debugbar/php-debugbar", - "version": "v3.7.6", + "version": "v3.8.0", "source": { "type": "git", "url": "https://github.com/php-debugbar/php-debugbar.git", - "reference": "1690ee1728827f9deb4b60457fa387cf44672c56" + "reference": "18ced90d4b882ed449b2278fea8692f8f7d1c13c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/1690ee1728827f9deb4b60457fa387cf44672c56", - "reference": "1690ee1728827f9deb4b60457fa387cf44672c56", + "url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/18ced90d4b882ed449b2278fea8692f8f7d1c13c", + "reference": "18ced90d4b882ed449b2278fea8692f8f7d1c13c", "shasum": "" }, "require": { @@ -16337,7 +16399,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.8-dev" } }, "autoload": { @@ -16372,7 +16434,7 @@ ], "support": { "issues": "https://github.com/php-debugbar/php-debugbar/issues", - "source": "https://github.com/php-debugbar/php-debugbar/tree/v3.7.6" + "source": "https://github.com/php-debugbar/php-debugbar/tree/v3.8.0" }, "funding": [ { @@ -16384,7 +16446,7 @@ "type": "github" } ], - "time": "2026-04-30T07:31:44+00:00" + "time": "2026-07-02T12:38:20+00:00" }, { "name": "php-debugbar/symfony-bridge", @@ -16678,11 +16740,11 @@ }, { "name": "phpstan/phpstan", - "version": "2.2.2", + "version": "2.2.5", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e5cc34d491a90e79c216d824f60fe21fd4d93bd6", - "reference": "e5cc34d491a90e79c216d824f60fe21fd4d93bd6", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/909c1e5fef7989ac0d0c1c5c42e32a5c4f6198a0", + "reference": "909c1e5fef7989ac0d0c1c5c42e32a5c4f6198a0", "shasum": "" }, "require": { @@ -16738,7 +16800,7 @@ "type": "github" } ], - "time": "2026-06-05T09:00:01+00:00" + "time": "2026-07-05T06:31:06+00:00" }, { "name": "phpunit/php-code-coverage", @@ -17177,16 +17239,16 @@ }, { "name": "rector/rector", - "version": "2.5.2", + "version": "2.5.5", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "49ff6339174bdbdf50b0b35ecbcff14a05ac9e24" + "reference": "9718a72e7f1aacacbdcb6eeed07a47147bce802e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/49ff6339174bdbdf50b0b35ecbcff14a05ac9e24", - "reference": "49ff6339174bdbdf50b0b35ecbcff14a05ac9e24", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/9718a72e7f1aacacbdcb6eeed07a47147bce802e", + "reference": "9718a72e7f1aacacbdcb6eeed07a47147bce802e", "shasum": "" }, "require": { @@ -17225,7 +17287,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/2.5.2" + "source": "https://github.com/rectorphp/rector/tree/2.5.5" }, "funding": [ { @@ -17233,7 +17295,7 @@ "type": "github" } ], - "time": "2026-06-22T11:39:33+00:00" + "time": "2026-07-09T09:48:44+00:00" }, { "name": "sebastian/cli-parser", diff --git a/config/app-modules.php b/config/app-modules.php index 159bd93c6..1420eb140 100644 --- a/config/app-modules.php +++ b/config/app-modules.php @@ -85,7 +85,7 @@ 'composer.json' => base_path('stubs/app-modules/composer-stub.json'), 'phpstan.neon' => base_path('stubs/app-modules/phpstan.neon'), 'phpstan.ignore.neon' => base_path('stubs/app-modules/phpstan.ignore.neon'), - 'src/Providers/StubClassNamePrefixServiceProvider.php' => base_path('stubs/app-modules/ServiceProvider.php'), + 'src/StubClassNamePrefixServiceProvider.php' => base_path('stubs/app-modules/ServiceProvider.php'), 'tests/Unit/.gitkeep' => base_path('stubs/app-modules/.gitkeep'), 'tests/Feature/.gitkeep' => base_path('stubs/app-modules/.gitkeep'), 'database/factories/.gitkeep' => base_path('stubs/app-modules/.gitkeep'), diff --git a/database/factories/.gitkeep b/database/factories/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/agents/domain.md b/docs/agents/domain.md deleted file mode 100644 index 206319759..000000000 --- a/docs/agents/domain.md +++ /dev/null @@ -1,43 +0,0 @@ -# Domain Docs - -How the engineering skills should consume this repo's domain documentation when exploring the codebase. - -## Before exploring, read these - -- **`CONTEXT-MAP.md`** at the repo root — it points at one `CONTEXT.md` per module. Read each one relevant to the topic. -- **`docs/adr/`** — read ADRs that touch the area you're about to work in. Also check `app-modules//docs/adr/` for module-scoped decisions. - -If any of these files don't exist, **proceed silently**. Don't flag their absence; don't suggest creating them upfront. The producer skill (`/grill-with-docs`) creates them lazily when terms or decisions actually get resolved. - -## File structure - -This is a multi-context repo (modular monorepo via `internachi/modular`): - -``` -/ -├── CONTEXT-MAP.md <- system-wide context map -├── docs/adr/ <- system-wide decisions -└── app-modules/ - ├── moderation/ - │ ├── CONTEXT.md - │ └── docs/adr/ <- module-specific decisions - ├── bot-discord/ - │ ├── CONTEXT.md - │ └── docs/adr/ - ├── identity/ - │ ├── CONTEXT.md - │ └── docs/adr/ - └── ... -``` - -## Use the glossary's vocabulary - -When your output names a domain concept (in an issue title, a refactor proposal, a hypothesis, a test name), use the term as defined in `CONTEXT.md`. Don't drift to synonyms the glossary explicitly avoids. - -If the concept you need isn't in the glossary yet, that's a signal — either you're inventing language the project doesn't use (reconsider) or there's a real gap (note it for `/grill-with-docs`). - -## Flag ADR conflicts - -If your output contradicts an existing ADR, surface it explicitly rather than silently overriding: - -> _Contradicts ADR-0007 — but worth reopening because..._ diff --git a/docs/agents/issue-tracker.md b/docs/agents/issue-tracker.md deleted file mode 100644 index e8569160e..000000000 --- a/docs/agents/issue-tracker.md +++ /dev/null @@ -1,22 +0,0 @@ -# Issue tracker: GitHub - -Issues and PRDs for this repo live as GitHub issues on `he4rt/he4rt-bot-api`. Use the `gh` CLI for all operations. - -## Conventions - -- **Create an issue**: `gh issue create --title "..." --body "..."`. Use a heredoc for multi-line bodies. -- **Read an issue**: `gh issue view --comments`, filtering comments by `jq` and also fetching labels. -- **List issues**: `gh issue list --state open --json number,title,body,labels,comments --jq '[.[] | {number, title, body, labels: [.labels[].name], comments: [.comments[].body]}]'` with appropriate `--label` and `--state` filters. -- **Comment on an issue**: `gh issue comment --body "..."` -- **Apply / remove labels**: `gh issue edit --add-label "..."` / `--remove-label "..."` -- **Close**: `gh issue close --comment "..."` - -Infer the repo from `git remote -v` — `gh` does this automatically when run inside a clone. - -## When a skill says "publish to the issue tracker" - -Create a GitHub issue. - -## When a skill says "fetch the relevant ticket" - -Run `gh issue view --comments`. diff --git a/docs/agents/triage-labels.md b/docs/agents/triage-labels.md deleted file mode 100644 index a1c862949..000000000 --- a/docs/agents/triage-labels.md +++ /dev/null @@ -1,15 +0,0 @@ -# Triage Labels - -The skills speak in terms of five canonical triage roles. This file maps those roles to the actual label strings used in this repo's issue tracker. - -| Label in skills | Label in our tracker | Meaning | -| ----------------- | -------------------- | ---------------------------------------- | -| `needs-triage` | `needs-triage` | Maintainer needs to evaluate this issue | -| `needs-info` | `needs-info` | Waiting on reporter for more information | -| `ready-for-agent` | `ready-for-agent` | Fully specified, ready for an AFK agent | -| `ready-for-human` | `ready-for-human` | Requires human implementation | -| `wontfix` | `wontfix` | Will not be actioned | - -When a skill mentions a role (e.g. "apply the AFK-ready triage label"), use the corresponding label string from this table. - -Edit the right-hand column to match whatever vocabulary you actually use. diff --git a/package-lock.json b/package-lock.json index b0efcf12b..72e833fba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,8 +9,8 @@ "version": "3.0.0", "license": "MIT", "devDependencies": { - "@emnapi/core": "1.11.1", - "@emnapi/runtime": "1.11.1", + "@emnapi/core": "1.11.2", + "@emnapi/runtime": "1.11.2", "@tailwindcss/typography": "0.5.20", "@tailwindcss/vite": "4.3.2", "concurrently": "10.0.3", @@ -18,19 +18,19 @@ "laravel-vite-plugin": "3.1.0", "lint-staged": "17.0.8", "npm-check-updates": "22.2.9", - "prettier": "3.9.3", + "prettier": "3.9.4", "tailwindcss": "4.3.2", "tw-animate-css": "1.4.0", - "vite": "8.1.0" + "vite": "8.1.4" }, "engines": { "node": "^24" } }, "node_modules/@emnapi/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", - "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.2.tgz", + "integrity": "sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA==", "dev": true, "license": "MIT", "peer": true, @@ -40,9 +40,9 @@ } }, "node_modules/@emnapi/runtime": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", - "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.2.tgz", + "integrity": "sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==", "dev": true, "license": "MIT", "peer": true, @@ -130,9 +130,9 @@ } }, "node_modules/@oxc-project/types": { - "version": "0.137.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.137.0.tgz", - "integrity": "sha512-WT+Gb24i8hmvo85AIv2oEYouEXkRlKAlT9WaCa3TfLgNCN+GhrJOGZuIlMouAh38Qe4QOx26eUOVsq70qXrywA==", + "version": "0.139.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", + "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", "dev": true, "license": "MIT", "funding": { @@ -140,9 +140,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.3.tgz", - "integrity": "sha512-DT6Z3PhvioeHMvxo+xHc3KtqggrI7CCTXCmC2h/5zUlp5jVitv7XEy+9q5/7v8IolhlioawpMo8Kg0EEBy7J0g==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", + "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", "cpu": [ "arm64" ], @@ -157,9 +157,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.3.tgz", - "integrity": "sha512-0NwgwsjM7LrsuVnXMK3koTpagBNOhloc/BNjKqZjv4V5zI5r13qx69uVhRx+o5Z0yy4Hzq+lpy7TAgUG/ocvrw==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", + "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", "cpu": [ "arm64" ], @@ -174,9 +174,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.3.tgz", - "integrity": "sha512-YtiBp4disu6V560loT6PjMdiRaWmVvDNrUunAalbiFx2ggeJwxdAsgZMcoGP17uyAsTwAj5V1niksxlHnVQ1Sw==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", + "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", "cpu": [ "x64" ], @@ -191,9 +191,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.3.tgz", - "integrity": "sha512-yD3EkEdXk2LypPxnf/kSZHirarsI8gcPzc62SukhR9VJTyvV+F9Q/GxWNuCojc7sXyuVC4DxRGhdDK4X8VSsbw==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", + "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", "cpu": [ "x64" ], @@ -208,9 +208,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.3.tgz", - "integrity": "sha512-c+8vieQbsD7HNAHKIA34w0GJ9FedFFuJGD+7E6vz7Q3uqAIugL5p45fhlsj4UaAsHpcmlqugBWMhA0/j7o0sIg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", + "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", "cpu": [ "arm" ], @@ -225,9 +225,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.3.tgz", - "integrity": "sha512-50jD0uUwLvur7Zz9LHz17kaAdTPjn5wN93hEgjvmYFRZwiR7ZJYovTd5ipyWJDAnXKvZ+wgc+/Ika6dwSF5OcA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", + "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", "cpu": [ "arm64" ], @@ -242,9 +242,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.3.tgz", - "integrity": "sha512-BO9+oPL8K9poZJBfYPsXNtYjPE5uM3qeehT3aFcW4LITOl+iSqhp0abzjR2nWBUNjIZeKXjAEWBZ64WjNoHd6w==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", + "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", "cpu": [ "arm64" ], @@ -259,9 +259,9 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.3.tgz", - "integrity": "sha512-f3VpLB1vQ0Eo6ecr/6cekLnvYMFF4YBFoVGkfkvPLq1bAkbAwHYQPZKoAmG6OJyTcxxoC+AvezGx/S1obNC0Mw==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", + "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", "cpu": [ "ppc64" ], @@ -276,9 +276,9 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.3.tgz", - "integrity": "sha512-AmurZ26Pqx/RI9N1gzEOCklkKXl927yjfXWUUS0O7Puh8ARM/Ob8qfrD3qnWksScdw6cSrW5PSHE9DyLu7+PtA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", + "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", "cpu": [ "s390x" ], @@ -293,9 +293,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.3.tgz", - "integrity": "sha512-JJpqs8bRGITDOdbkNKnlojzBabbOHrqjSvDr0IVsZObE1lBcPjxItUEY9eWIDbxaJ3cGrXPWGfGkIxFijg/URg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", + "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", "cpu": [ "x64" ], @@ -310,9 +310,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.3.tgz", - "integrity": "sha512-rSJcdjPxzA/by/6/rYs+v+bXU7UjvnbUWz8MJb6kh6+knqB1dCrtHg0uu7C/4haqJvqdkYHQ5IGn+tCH9GLW/g==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", + "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", "cpu": [ "x64" ], @@ -327,9 +327,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.3.tgz", - "integrity": "sha512-hQ3/PYkDJICgevvyNcVrihVeqq7k1Pp3VZ9lY+dauAYUJKO+auqApvANhvR1An9BhmqYKvW2Mu1F9u4DXSMLxQ==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", + "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", "cpu": [ "arm64" ], @@ -344,9 +344,9 @@ } }, "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.3.tgz", - "integrity": "sha512-Elcv/BtML9lXrV6JuKITc/grN2kYV9gjsQpW8Jfw4ioK0TOkjBjye0nnyqQNy9STNaI20lXNaQBRrD5gSgR0Yg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", + "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", "cpu": [ "wasm32" ], @@ -362,10 +362,33 @@ "node": "^20.19.0 || >=22.12.0" } }, + "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@emnapi/core": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", + "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", + "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.3.tgz", - "integrity": "sha512-2DrEfhluH9yhiaFApmsjsjwrSYbNcY1oFTzYSP1a535jDbV98zCFanA/96TBUd0iDFcxGmw9QRExwGCXz3U+/g==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", + "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", "cpu": [ "arm64" ], @@ -380,9 +403,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.3.tgz", - "integrity": "sha512-OL4OMk7UPXOeVGGd3qo5zJyPIljf4AFgk5QAkPPS+OoLuOOozhuaQGC18MxVTnw/06q93gShAJzlwnSCY9YtqA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", + "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", "cpu": [ "x64" ], @@ -1526,9 +1549,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", "dev": true, "license": "MIT", "engines": { @@ -1582,9 +1605,9 @@ } }, "node_modules/prettier": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.3.tgz", - "integrity": "sha512-HWmu+K+zvHNpaMfSnYeqdqrDbR16cuIXaPx8WoHaviQkDJh1/0BNtOZmHVQI5jc3wXv0H1yXc9wjvFdXh+n3hQ==", + "version": "3.9.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.4.tgz", + "integrity": "sha512-yWG/o/4oJfo036EKAfK6ACAoDOfHeRHx4tuxkfBZiauURiaSmYwlpOr5LQqKtIkRD2z1PLteme2WoxEnj4tHTg==", "dev": true, "license": "MIT", "bin": { @@ -1622,13 +1645,13 @@ "license": "MIT" }, "node_modules/rolldown": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.3.tgz", - "integrity": "sha512-1F1eEtUBtFvcGm1HQ9TiUIUHPQG7mSAODrhIzjxoUEFuo8OcbrGLiVLkevNgj84TE4lnHvnumwFjhJO5Eu135g==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", + "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.137.0", + "@oxc-project/types": "=0.139.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -1638,21 +1661,21 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.1.3", - "@rolldown/binding-darwin-arm64": "1.1.3", - "@rolldown/binding-darwin-x64": "1.1.3", - "@rolldown/binding-freebsd-x64": "1.1.3", - "@rolldown/binding-linux-arm-gnueabihf": "1.1.3", - "@rolldown/binding-linux-arm64-gnu": "1.1.3", - "@rolldown/binding-linux-arm64-musl": "1.1.3", - "@rolldown/binding-linux-ppc64-gnu": "1.1.3", - "@rolldown/binding-linux-s390x-gnu": "1.1.3", - "@rolldown/binding-linux-x64-gnu": "1.1.3", - "@rolldown/binding-linux-x64-musl": "1.1.3", - "@rolldown/binding-openharmony-arm64": "1.1.3", - "@rolldown/binding-wasm32-wasi": "1.1.3", - "@rolldown/binding-win32-arm64-msvc": "1.1.3", - "@rolldown/binding-win32-x64-msvc": "1.1.3" + "@rolldown/binding-android-arm64": "1.1.5", + "@rolldown/binding-darwin-arm64": "1.1.5", + "@rolldown/binding-darwin-x64": "1.1.5", + "@rolldown/binding-freebsd-x64": "1.1.5", + "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", + "@rolldown/binding-linux-arm64-gnu": "1.1.5", + "@rolldown/binding-linux-arm64-musl": "1.1.5", + "@rolldown/binding-linux-ppc64-gnu": "1.1.5", + "@rolldown/binding-linux-s390x-gnu": "1.1.5", + "@rolldown/binding-linux-x64-gnu": "1.1.5", + "@rolldown/binding-linux-x64-musl": "1.1.5", + "@rolldown/binding-openharmony-arm64": "1.1.5", + "@rolldown/binding-wasm32-wasi": "1.1.5", + "@rolldown/binding-win32-arm64-msvc": "1.1.5", + "@rolldown/binding-win32-x64-msvc": "1.1.5" } }, "node_modules/rxjs": { @@ -1729,9 +1752,9 @@ } }, "node_modules/string-width": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.1.tgz", - "integrity": "sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.2.tgz", + "integrity": "sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==", "dev": true, "license": "MIT", "dependencies": { @@ -1858,17 +1881,17 @@ "license": "MIT" }, "node_modules/vite": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.0.tgz", - "integrity": "sha512-BuJcQK/56NQTWDGn4ABea3q4SSBdNPWwNZKTkkUpcMPnLoquSYH8llRtSUIgoL1KSCpHt5eghLShn50mH36y7Q==", + "version": "8.1.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.4.tgz", + "integrity": "sha512-bTT9PsdWO+MQMNG9ZXIP/qM9wGh37DFxTV/sPq9cFpHr3w4jkgef032PkAL9jAqhk3Nz8NQw3O8n6/xFkqO4QQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "lightningcss": "^1.32.0", - "picomatch": "^4.0.4", - "postcss": "^8.5.15", - "rolldown": "~1.1.2", + "picomatch": "^4.0.5", + "postcss": "^8.5.16", + "rolldown": "~1.1.4", "tinyglobby": "^0.2.17" }, "bin": { diff --git a/package.json b/package.json index 443a26ee4..4b678305b 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,8 @@ "outdated": "npm-check-updates" }, "devDependencies": { - "@emnapi/core": "1.11.1", - "@emnapi/runtime": "1.11.1", + "@emnapi/core": "1.11.2", + "@emnapi/runtime": "1.11.2", "@tailwindcss/typography": "0.5.20", "@tailwindcss/vite": "4.3.2", "concurrently": "10.0.3", @@ -25,10 +25,10 @@ "laravel-vite-plugin": "3.1.0", "lint-staged": "17.0.8", "npm-check-updates": "22.2.9", - "prettier": "3.9.3", + "prettier": "3.9.4", "tailwindcss": "4.3.2", "tw-animate-css": "1.4.0", - "vite": "8.1.0" + "vite": "8.1.4" }, "lint-staged": { "*.{js,ts,json,yml,md,css}": [ diff --git a/phpstan.neon b/phpstan.neon index ac57cebb1..6f76e4c21 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -6,6 +6,10 @@ parameters: level: 7 checkImplicitMixed: true - paths: - app/ + + # Verbatim copy of Pest's internal Shard plugin (only the discovery regex is + # patched). Treated as third-party code — kept re-syncable with upstream. + excludePaths: + - app/Support/PestShardPlugin.php diff --git a/phpunit.xml b/phpunit.xml index 74f048c08..c6b90c572 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -21,7 +21,6 @@ - diff --git a/rector.php b/rector.php index dd7180d32..e95c5f606 100644 --- a/rector.php +++ b/rector.php @@ -3,10 +3,8 @@ declare(strict_types=1); use Rector\Caching\ValueObject\Storage\FileCacheStorage; -use Rector\CodingStyle\Rector\Closure\StaticClosureRector; use Rector\CodingStyle\Rector\PostInc\PostIncDecToPreIncDecRector; use Rector\Config\RectorConfig; -use Rector\Php70\Rector\StaticCall\StaticCallOnNonStaticToInstanceCallRector; use Rector\Php83\Rector\ClassMethod\AddOverrideAttributeToOverriddenMethodsRector; use Rector\TypeDeclaration\Rector\ArrowFunction\AddArrowFunctionReturnTypeRector; use RectorLaravel\Rector\Class_\AddHasFactoryToModelsRector; @@ -78,8 +76,10 @@ AddHasFactoryToModelsRector::class, AddOverrideAttributeToOverriddenMethodsRector::class, PostIncDecToPreIncDecRector::class, - StaticCallOnNonStaticToInstanceCallRector::class, __DIR__.'/bootstrap/cache', + // Verbatim copy of Pest's internal Shard plugin (only the discovery + // regex is patched) — keep it re-syncable with upstream. + __DIR__.'/app/Support/PestShardPlugin.php', ]) ->withCache(cacheDirectory: __DIR__.'/.rector.result.cache', cacheClass: FileCacheStorage::class) ->withImportNames(removeUnusedImports: true) @@ -111,7 +111,6 @@ ReplaceFakerInstanceWithHelperRector::class, ConfigToTypedConfigMethodCallRector::class, EnsureTypeChecksFirstRector::class, - StaticClosureRector::class, ...$laravel13Attributes, ]) ->withSets([ diff --git a/stubs/app-modules/.gitkeep b/stubs/app-modules/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/stubs/app-modules/ServiceProvider.php b/stubs/app-modules/ServiceProvider.php index 616bcb0d7..94c269a96 100644 --- a/stubs/app-modules/ServiceProvider.php +++ b/stubs/app-modules/ServiceProvider.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace StubModuleNamespace\StubClassNamePrefix\Providers; +namespace StubModuleNamespace\StubClassNamePrefix; use Illuminate\Support\ServiceProvider; diff --git a/stubs/app-modules/composer-stub.json b/stubs/app-modules/composer-stub.json index ae03850e1..fa7c1b45a 100644 --- a/stubs/app-modules/composer-stub.json +++ b/stubs/app-modules/composer-stub.json @@ -19,7 +19,7 @@ "minimum-stability": "stable", "extra": { "laravel": { - "providers": ["StubModuleNamespace\\StubClassNamePrefix\\Providers\\StubClassNamePrefixServiceProvider"] + "providers": ["StubModuleNamespace\\StubClassNamePrefix\\StubClassNamePrefixServiceProvider"] } } } diff --git a/tests/.pest/shards.json b/tests/.pest/shards.json new file mode 100644 index 000000000..86a9b9b78 --- /dev/null +++ b/tests/.pest/shards.json @@ -0,0 +1,140 @@ +{ + "timings": { + "Appmodules\\activity\\tests\\Unit\\Actions\\NewMessageTest": 2.095, + "Appmodules\\activity\\tests\\Unit\\Actions\\NewVoiceMessageTest": 0.8115, + "Appmodules\\activity\\tests\\Unit\\Actions\\RecordVoicePresenceTest": 1.1597, + "Appmodules\\activity\\tests\\Unit\\Queries\\GetCurrentVoiceChannelTest": 1.1538, + "Appmodules\\activity\\tests\\Unit\\Timeline\\CreatePostTest": 0.5821, + "Appmodules\\activity\\tests\\Unit\\Timeline\\CreateReplyTest": 0.5406, + "Appmodules\\activity\\tests\\Unit\\Timeline\\DeleteReplyTest": 0.5695, + "Appmodules\\activity\\tests\\Unit\\Timeline\\PublishModerationEntryTest": 0.7663, + "Appmodules\\activity\\tests\\Unit\\Timeline\\TimelineFeedQueryTest": 0.8555, + "Appmodules\\activity\\tests\\Unit\\Timeline\\TimelineModelTest": 0.4472, + "Appmodules\\activity\\tests\\Unit\\Timeline\\TogglePinPostTest": 0.6389, + "Appmodules\\activity\\tests\\Unit\\Tracking\\ApproveInteractionTest": 0.1645, + "Appmodules\\activity\\tests\\Unit\\Tracking\\CalculateRewardTest": 0.5703, + "Appmodules\\activity\\tests\\Unit\\Tracking\\ClassifyActivityTest": 0.1508, + "Appmodules\\activity\\tests\\Unit\\Tracking\\RejectInteractionTest": 0.1945, + "Appmodules\\activity\\tests\\Unit\\Tracking\\TrackActivityTest": 0.4563, + "Appmodules\\botdiscord\\tests\\Feature\\Actions\\VoiceChannel\\HandleStateChannelActionTest": 0.2335, + "Appmodules\\botdiscord\\tests\\Feature\\Events\\RawGatewayEventTest": 0.2337, + "Appmodules\\botdiscord\\tests\\Feature\\Listeners\\AutoExecuteActionTest": 0.5523, + "Appmodules\\botdiscord\\tests\\Feature\\Listeners\\NotifyModerationChannelTest": 0.5776, + "Appmodules\\botdiscord\\tests\\Feature\\Moderation\\DiscordModerationAdapterTest": 5.7378, + "Appmodules\\botdiscord\\tests\\Feature\\SlashCommands\\EditProfileCommandTest": 0.5881, + "Appmodules\\botdiscord\\tests\\Feature\\SlashCommands\\IntroductionCommandTest": 0.3027, + "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceChannel\\JoiningChannelActionTest": 0.0536, + "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceChannel\\LeftChannelActionTest": 0.1009, + "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceTransitionResolverTest": 0.301, + "Appmodules\\botdiscord\\tests\\Unit\\Moderation\\ModerationEmbedBuilderTest": 0.6902, + "Appmodules\\botdiscord\\tests\\Unit\\SlashCommands\\EditProfileModalValidationTest": 0.4961, + "Appmodules\\docs\\tests\\Feature\\Discovery\\CacheDocsCommandTest": 1.8584, + "Appmodules\\docs\\tests\\Feature\\Discovery\\DocsRoutingTest": 0.9489, + "Appmodules\\docs\\tests\\Unit\\Discovery\\BuildTreeTest": 0.4992, + "Appmodules\\docs\\tests\\Unit\\Discovery\\DiscoveryIntegrationTest": 0.2006, + "Appmodules\\docs\\tests\\Unit\\Discovery\\DocumentTierTest": 0.4947, + "Appmodules\\docs\\tests\\Unit\\Discovery\\FoundationsTest": 0.9454, + "Appmodules\\docs\\tests\\Unit\\Discovery\\ParsingTest": 0.3025, + "Appmodules\\docs\\tests\\Unit\\Discovery\\StrategiesTest": 0.4243, + "Appmodules\\economy\\tests\\Feature\\EconomyFlowTest": 0.3033, + "Appmodules\\economy\\tests\\Unit\\CreditTest": 0.1546, + "Appmodules\\economy\\tests\\Unit\\DebitTest": 0.3025, + "Appmodules\\economy\\tests\\Unit\\TransferTest": 0.4794, + "Appmodules\\gamification\\tests\\Unit\\Character\\GenerateTextExperienceTest": 0.704, + "Appmodules\\gamification\\tests\\Unit\\Character\\LevelCalculationTest": 2.0406, + "Appmodules\\gamification\\tests\\Unit\\Character\\VoiceExperienceTest": 0.7491, + "Appmodules\\identity\\tests\\Feature\\Auth\\DetectMergeConflictTest": 0.98, + "Appmodules\\identity\\tests\\Feature\\Auth\\EnrichUserOnFirstLoginTest": 0.5563, + "Appmodules\\identity\\tests\\Feature\\Auth\\FindOrCreateUserByProviderTest": 1.5236, + "Appmodules\\identity\\tests\\Feature\\Auth\\HandleOAuthCallbackActionTest": 0.3237, + "Appmodules\\identity\\tests\\Feature\\Auth\\MergeAccountsActionTest": 1.773, + "Appmodules\\identity\\tests\\Unit\\ExternalIdentity\\FindExternalIdentityTest": 0.8692, + "Appmodules\\integrationdevto\\tests\\Feature\\DevToOAuthTest": 0.1746, + "Appmodules\\integrationdevto\\tests\\Feature\\SyncDevToArticlesTest": 0.404, + "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\ImportDiscordMessageTest": 6.8537, + "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\ImportDiscordProfileTest": 2.2039, + "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\MergeDuplicateDiscordProfilesTest": 2.92, + "Appmodules\\integrationdiscord\\tests\\Feature\\Models\\DiscordEventLogTest": 0.1222, + "Appmodules\\integrationdiscord\\tests\\Feature\\OAuth\\DiscordOAuthClientTest": 0.177, + "Appmodules\\integrationdiscord\\tests\\Unit\\DiscordMessageAdapterTest": 2.2978, + "Appmodules\\integrationdiscord\\tests\\Unit\\Sync\\PurgeUnusedInvitesActionTest": 11.8086, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\DiscordConnectorTest": 0.1482, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\DiscordRoleResolverTest": 0.2467, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateBanTest": 0.1543, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateDmChannelTest": 0.1472, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateMessageTest": 0.1466, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\DeleteInviteTest": 0.1051, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\DeleteMessageTest": 0.0979, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ExchangeCodeForTokenTest": 0.1463, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\GetCurrentUserTest": 0.1469, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\GetMemberTest": 0.1053, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ListGuildInvitesTest": 0.0985, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ModifyMemberTest": 0.1462, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\RemoveMemberTest": 0.0975, + "Appmodules\\integrationgithub\\tests\\Feature\\BackfillGithubCommandTest": 0.549, + "Appmodules\\integrationgithub\\tests\\Feature\\BackfillGithubRepositoryJobTest": 0.2128, + "Appmodules\\integrationgithub\\tests\\Feature\\BackfillRepositoryTest": 1.8143, + "Appmodules\\integrationgithub\\tests\\Feature\\GitHubOAuthClientTest": 0.2886, + "Appmodules\\integrationgithub\\tests\\Feature\\GithubContributionTest": 0.4922, + "Appmodules\\integrationgithub\\tests\\Feature\\GithubRepositoryTest": 0.6587, + "Appmodules\\integrationgithub\\tests\\Feature\\GithubWebhookTest": 1.3299, + "Appmodules\\integrationtwitch\\tests\\Feature\\LinkTwitchChannelCommandTest": 0.413, + "Appmodules\\integrationtwitch\\tests\\Feature\\SubscribeTwitchEventsCommandTest": 0.5222, + "Appmodules\\integrationtwitch\\tests\\Feature\\TwitchWebhookTest": 0.9796, + "Appmodules\\integrationwhatsapp\\tests\\Feature\\Ingest\\StoreWhatsAppEventActionTest": 0.4336, + "Appmodules\\integrationwhatsapp\\tests\\Feature\\Ingest\\WebhookIngestTest": 0.6951, + "Appmodules\\moderation\\tests\\Feature\\AppealWorkflowTest": 1.077, + "Appmodules\\moderation\\tests\\Feature\\Appeals\\FileAppealTest": 1.3777, + "Appmodules\\moderation\\tests\\Feature\\Appeals\\ReviewAppealTest": 1.2935, + "Appmodules\\moderation\\tests\\Feature\\Audit\\AuditLogTest": 0.8392, + "Appmodules\\moderation\\tests\\Feature\\CaseWorkflowTest": 0.5974, + "Appmodules\\moderation\\tests\\Feature\\Cases\\SubmitReportTest": 1.5618, + "Appmodules\\moderation\\tests\\Feature\\Classification\\RouteDecisionTest": 3.968, + "Appmodules\\moderation\\tests\\Feature\\Classification\\RuleBasedClassifierTest": 0.7962, + "Appmodules\\moderation\\tests\\Feature\\Enforcement\\ExecuteActionTest": 1.2011, + "Appmodules\\moderation\\tests\\Feature\\ModelRelationshipTest": 1.8584, + "Appmodules\\moderation\\tests\\Feature\\PipelineTest": 1.0644, + "Appmodules\\moderation\\tests\\Feature\\Pipeline\\ClassifyAndRouteTest": 0.4463, + "Appmodules\\moderation\\tests\\Feature\\Pipeline\\ScreenContentTest": 0.3201, + "Appmodules\\moderation\\tests\\Feature\\Pipeline\\SubmitForModerationTest": 0.3239, + "Appmodules\\moderation\\tests\\Feature\\Platform\\WebAdapterTest": 2.0921, + "Appmodules\\moderation\\tests\\Unit\\ClassifierTest": 0.4152, + "Appmodules\\moderation\\tests\\Unit\\DTOTest": 0.3993, + "Appmodules\\moderation\\tests\\Unit\\EnumTest": 0.3526, + "Appmodules\\moderation\\tests\\Unit\\ModerationRuleMatchTest": 0.2867, + "Appmodules\\moderation\\tests\\Unit\\PenaltyAdvisorTest": 2.1791, + "Appmodules\\moderation\\tests\\Unit\\PlatformRegistryTest": 0.2098, + "Appmodules\\moderation\\tests\\Unit\\RouteCaseActionTest": 0.8256, + "Appmodules\\paneladmin\\tests\\Feature\\AdminPanelAccessTest": 0.5649, + "Appmodules\\paneladmin\\tests\\Feature\\ApplyTenantScopesTest": 0.266, + "Appmodules\\paneladmin\\tests\\Feature\\Github\\GithubRepositoryResourceTest": 1.301, + "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\PeriodStatsTest": 0.2831, + "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\AppealQueueTest": 3.4181, + "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\ModerationDashboardTest": 2.8877, + "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\ModerationQueueTest": 2.5896, + "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\TestRuleActionTest": 1.1423, + "Appmodules\\panelapp\\tests\\Feature\\ProfilePageTest": 6.1316, + "Appmodules\\panelapp\\tests\\Feature\\Timeline\\ThreadPageTest": 1.6969, + "Appmodules\\portal\\tests\\Feature\\CommunityRetrospectivePageTest": 1.3169, + "Appmodules\\portal\\tests\\Feature\\CommunityRetrospectiveTest": 1.5669, + "Appmodules\\portal\\tests\\Feature\\HomepageTest": 0.2566, + "Appmodules\\portal\\tests\\Feature\\RetrospectiveFiltersTest": 0.122, + "Appmodules\\portal\\tests\\Feature\\SocialLinksPageTest": 0.636, + "Appmodules\\profile\\tests\\Feature\\ProfileCreationTest": 0.6384, + "Appmodules\\profile\\tests\\Feature\\ProfilePreferencesTest": 0.4501, + "Appmodules\\profile\\tests\\Feature\\ProfileWorkExperiencesTest": 0.3042, + "Appmodules\\profile\\tests\\Feature\\SyncProfileSkillsTest": 1.2219, + "Appmodules\\profile\\tests\\Feature\\ToggleAvailabilityTest": 0.7305, + "Appmodules\\profile\\tests\\Feature\\UpsertProfileTest": 1.8365, + "Appmodules\\profile\\tests\\Feature\\WorkExperienceFactoryTest": 5.2888, + "Appmodules\\profile\\tests\\Unit\\ProfileEnumTest": 0.258, + "Appmodules\\profile\\tests\\Unit\\ProfileSocialLinksTest": 0.0502, + "Appmodules\\profile\\tests\\Unit\\SkillEnumTest": 0.1017, + "Appmodules\\profile\\tests\\Unit\\WorkExperienceTest": 0.1599, + "Appmodules\\profile\\tests\\Unit\\WorkPreferencesTest": 0.3199, + "Tests\\Feature\\AddressTest": 0.5364, + "Tests\\Feature\\Geo\\GeoLocationTest": 0.4048 + }, + "checksum": "aea25aa9b8c207999f85b63b1b884917", + "updated_at": "2026-07-08T13:57:20+00:00" +} diff --git a/tests/Feature/.gitkeep b/tests/Feature/.gitkeep deleted file mode 100644 index e69de29bb..000000000 From edbf93dd3b1f9bbc74f954664dd236daecf2a1fa Mon Sep 17 00:00:00 2001 From: Gabriel Vieira <48625433+gvieira18@users.noreply.github.com> Date: Thu, 9 Jul 2026 13:53:46 -0300 Subject: [PATCH 05/46] chore: restaura stubs/app-modules/.gitkeep (#405) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Arquivo-fonte referenciado por config/app-modules.php para os placeholders .gitkeep que o internachi/modular copia para cada novo módulo (tests e database). O #402 removeu o arquivo, o que quebrava o comando make:module ao tentar copiar um stub inexistente. --- stubs/app-modules/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 stubs/app-modules/.gitkeep diff --git a/stubs/app-modules/.gitkeep b/stubs/app-modules/.gitkeep new file mode 100644 index 000000000..e69de29bb From c64864efc3a643b5237e3debc1afb11b49615a11 Mon Sep 17 00:00:00 2001 From: kaster <85951158+DiogoKaster@users.noreply.github.com> Date: Thu, 9 Jul 2026 15:42:32 -0300 Subject: [PATCH 06/46] docs: heart introduction (#406) Escrito pelo 7k galera --- .../portal/src/Livewire/SocialLinksPage.php | 38 +++++++++++--- config/he4rt.php | 14 +++++ docs/introduction/como-participar.md | 52 ++++++++----------- docs/introduction/iniciativas.md | 45 ++++++++++++++++ docs/introduction/marcos-e-conquistas.md | 52 ------------------- docs/introduction/nossos-valores.md | 37 +++++-------- docs/introduction/o-que-e-a-he4rt.md | 23 ++++++-- docs/introduction/reunioes-semanais.md | 45 ---------------- 8 files changed, 141 insertions(+), 165 deletions(-) create mode 100644 docs/introduction/iniciativas.md delete mode 100644 docs/introduction/marcos-e-conquistas.md delete mode 100644 docs/introduction/reunioes-semanais.md diff --git a/app-modules/portal/src/Livewire/SocialLinksPage.php b/app-modules/portal/src/Livewire/SocialLinksPage.php index ce3f1064c..c4d4af69a 100644 --- a/app-modules/portal/src/Livewire/SocialLinksPage.php +++ b/app-modules/portal/src/Livewire/SocialLinksPage.php @@ -6,6 +6,7 @@ use He4rt\Portal\DTOs\SocialLink; use Illuminate\Contracts\View\View; +use InvalidArgumentException; use Livewire\Attributes\Layout; use Livewire\Attributes\Title; use Livewire\Component; @@ -19,14 +20,23 @@ final class SocialLinksPage extends Component */ public static function links(): array { - return [ - new SocialLink('Discord', 'https://discord.gg/invite/he4rt', 'fab-discord', '#5865F2'), - new SocialLink('X (Twitter)', 'https://x.com/He4rtDevs', 'fab-x-twitter', '#0F172A', '#FFFFFF'), - new SocialLink('LinkedIn', 'https://www.linkedin.com/company/he4rt/', 'fab-linkedin', '#0A66C2'), - new SocialLink('WhatsApp', 'https://chat.whatsapp.com/EBKjYxIodpe1x5LLExbTzK', 'fab-whatsapp', '#25D366'), - new SocialLink('Instagram', 'https://www.instagram.com/heartdevs/', 'fab-instagram', '#E4405F'), - new SocialLink('GitHub', 'https://github.com/he4rt', 'fab-github', '#111827', '#FFFFFF'), - ]; + $links = []; + + foreach (config()->array('he4rt.social_media') as $link) { + if (!is_array($link)) { + continue; + } + + $links[] = new SocialLink( + label: self::field($link, 'label'), + url: self::field($link, 'url'), + icon: self::field($link, 'icon'), + accent: self::field($link, 'accent'), + accentDark: isset($link['accent_dark']) ? self::field($link, 'accent_dark') : null, + ); + } + + return $links; } public function render(): View @@ -35,4 +45,16 @@ public function render(): View 'links' => self::links(), ]); } + + /** + * @param array $link + */ + private static function field(array $link, string $key): string + { + $value = $link[$key] ?? null; + + throw_unless(is_string($value), InvalidArgumentException::class, sprintf("Configuração he4rt.social_media inválida: '%s' deve ser uma string.", $key)); + + return $value; + } } diff --git a/config/he4rt.php b/config/he4rt.php index 4e257db35..e196597c2 100644 --- a/config/he4rt.php +++ b/config/he4rt.php @@ -49,4 +49,18 @@ 'badges_count' => 0, ], ], + + /* + * Fonte única das redes sociais da He4rt. Alimenta a página /redes + * (He4rt\Portal\Livewire\SocialLinksPage) e qualquer outro lugar que + * precise dos links. `accent_dark` é opcional (cai no `accent` quando ausente). + */ + 'social_media' => [ + 'discord' => ['label' => 'Discord', 'url' => 'https://discord.gg/invite/he4rt', 'icon' => 'fab-discord', 'accent' => '#5865F2'], + 'twitter' => ['label' => 'X (Twitter)', 'url' => 'https://x.com/He4rtDevs', 'icon' => 'fab-x-twitter', 'accent' => '#0F172A', 'accent_dark' => '#FFFFFF'], + 'linkedin' => ['label' => 'LinkedIn', 'url' => 'https://www.linkedin.com/company/he4rt/', 'icon' => 'fab-linkedin', 'accent' => '#0A66C2'], + 'whatsapp' => ['label' => 'WhatsApp', 'url' => 'https://chat.whatsapp.com/EBKjYxIodpe1x5LLExbTzK', 'icon' => 'fab-whatsapp', 'accent' => '#25D366'], + 'instagram' => ['label' => 'Instagram', 'url' => 'https://www.instagram.com/heartdevs/', 'icon' => 'fab-instagram', 'accent' => '#E4405F'], + 'github' => ['label' => 'GitHub', 'url' => 'https://github.com/he4rt', 'icon' => 'fab-github', 'accent' => '#111827', 'accent_dark' => '#FFFFFF'], + ], ]; diff --git a/docs/introduction/como-participar.md b/docs/introduction/como-participar.md index 5ca7a27b4..577dfcb7a 100644 --- a/docs/introduction/como-participar.md +++ b/docs/introduction/como-participar.md @@ -4,49 +4,39 @@ title: Como participar order: 5 --- -> ⚠️ Rascunho — revisar com a comunidade (datas/números/fatos são placeholders). - # Como participar -Entrar para a He4rt Developers é simples e gratuito. Aqui vão os primeiros -passos para fazer parte da comunidade e começar a aprender e construir junto. +Existem diferentes formas de fazer parte da comunidade. Dá uma olhada: + +## Discord -## 1. Entre no Discord +Você pode entrar no nosso servidor [clicando aqui](https://discord.gg/invite/he4rt). Lá dentro é só seguir a orientação do bot, fazer sua apresentação e pronto, você já faz parte oficialmente da comunidade. Dá para participar das reuniões semanais, aulões, spaces e muito mais. -O Discord é o ponto de encontro da comunidade. É lá que acontecem as conversas -do dia a dia, os avisos e as reuniões. -[a confirmar: link oficial de convite do servidor no Discord.] +## WhatsApp -## 2. Se apresente +Temos um grupo no WhatsApp dedicado à conversa e ao networking, para quem gosta de bater papo e viver mais de perto o dia a dia da comunidade. É uma ótima oportunidade para estar mais próximo da gente. -Depois de entrar, passe pelo canal de boas-vindas -**[a confirmar: nome do canal]** e conte um pouco sobre você: o que faz, o que -está estudando e o que te trouxe até aqui. A comunidade adora conhecer gente -nova. +A gente publica as novidades por lá antes de qualquer outro lugar. Então, se quiser saber em primeira mão, [clique aqui](https://chat.whatsapp.com/EBKjYxIodpe1x5LLExbTzK). -## 3. Participe das reuniões semanais +## Projetos -Toda semana acontecem encontros abertos a todo mundo. É uma ótima forma de -conhecer pessoas e entrar no ritmo da comunidade. Veja os detalhes na página -[Reuniões semanais](reunioes-semanais). +Na aba de Iniciativas você viu que existem várias formas de contribuir, seja ensinando, desenvolvendo ou melhorando o que já existe. É um mundo de possibilidades esperando por você. -## 4. Contribua com os projetos +E não importa se você é de programação, design, negócios, produto, segurança, teste, liderança ou qualquer outra área. Sua contribuição é muito bem-vinda, com o conhecimento que você já tem. -A He4rt mantém projetos open source feitos pela comunidade. Você pode contribuir -com código, documentação, ideias ou ajudando outras pessoas. -[a confirmar: link para os repositórios / organização no GitHub.] +Para participar, é só chamar um administrador (com a tag He4rtless no Discord) ou um administrador do grupo do WhatsApp da comunidade. -## 5. Conecte sua conta na plataforma +## Parcerias, eventos ou oportunidades -A plataforma he4rtdevs.com tem perfis, gamificação e acompanhamento da sua -participação. Você pode entrar usando sua conta do Discord para começar a somar -pontos e desbloquear conquistas. +Se você quer trazer oportunidades para a comunidade ou propor uma parceria com a He4rt, fale direto com 7K ou danielhe4rt. -## Precisa de ajuda? +## Nossas redes -Se ficar com qualquer dúvida, pergunte nos canais da comunidade — sempre tem -alguém disposto a ajudar. -[a confirmar: canal de suporte / dúvidas.] +Fica por dentro de tudo e escolhe o canal que mais combina com você: -> Os links e nomes de canais acima são placeholders. Confirme cada um com a -> comunidade antes de publicar esta página. +- [Discord](https://discord.gg/invite/he4rt) +- [WhatsApp](https://chat.whatsapp.com/EBKjYxIodpe1x5LLExbTzK) +- [X (Twitter)](https://x.com/He4rtDevs) +- [LinkedIn](https://www.linkedin.com/company/he4rt/) +- [Instagram](https://www.instagram.com/heartdevs/) +- [GitHub](https://github.com/he4rt) diff --git a/docs/introduction/iniciativas.md b/docs/introduction/iniciativas.md new file mode 100644 index 000000000..62bdafd39 --- /dev/null +++ b/docs/introduction/iniciativas.md @@ -0,0 +1,45 @@ +--- +type: introduction +title: Iniciativas +order: 3 +--- + +# Iniciativas + +Temos várias iniciativas rodando ao longo do ano, e você pode acompanhar e participar de todas quando quiser. + +## Reunião Semanal + +É aqui que compartilhamos as novidades, os projetos, as atualizações e, o mais importante, as fofocas. Acontece toda segunda-feira, às 21h. Para participar, é só subir no palco com a gente e acompanhar. + +Não precisa ligar câmera nem microfone. Na verdade, você nem precisa falar nada, só ouvir e interagir pelo chat. + +Os avisos saem tanto no Discord quanto no nosso grupo do WhatsApp. + +## Aulões + +Aqui você aprende no 0800, com gente da área, sobre os mais diversos assuntos e com exemplos práticos. Os aulões são ministrados pelos próprios membros, que submetem seu conhecimento e conteúdo para os outros, numa data fixa, geralmente às quartas-feiras, mas pode variar. + +Não precisa ligar câmera nem microfone, só ouvir e interagir pelo chat. + +Submissões de conteúdo ou de interesse devem ser combinadas com a administração. + +## Spaces + +Enquanto os aulões trazem conteúdo mais técnico, os Spaces são conversas mais amplas, que nem sempre envolvem técnica. São mais sobre orientação, dicas de carreira e assuntos assim. Às vezes convidamos membros que se destacam em suas empresas para compartilhar um pouco da experiência deles, e também pessoas de fora com relevância no mercado. + +Não precisa ligar câmera nem microfone, só ouvir e interagir pelo chat. + +Submissões de conteúdo ou de interesse devem ser combinadas com a administração. + +## Squads + +Quer contribuir com a comunidade? Quer construir projetos ou desenvolver soluções e melhorias no que fazemos aqui? Então faça parte do He4rt Squad, times organizados que trabalham diretamente nos projetos da comunidade e são responsáveis por boa parte de tudo que acontece por aqui. + +Submissões de interesse devem ser combinadas com a administração. + +## Evangelistas + +Quer contribuir mas não sabe como, ou não tem domínio técnico? Então nos ajude engajando a comunidade. Seja alguém de linha de frente: vá a eventos, curta, comente, compartilhe nas redes sociais, participe das discussões sobre o futuro da comunidade e mostre a força da He4rt por aí. + +Não exige nenhuma habilidade ou conhecimento técnico, só a vontade genuína de ajudar. diff --git a/docs/introduction/marcos-e-conquistas.md b/docs/introduction/marcos-e-conquistas.md deleted file mode 100644 index ef8e4447b..000000000 --- a/docs/introduction/marcos-e-conquistas.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -type: introduction -title: Marcos e conquistas -order: 2 ---- - -> ⚠️ Rascunho — revisar com a comunidade (datas/números/fatos são placeholders). - -# Marcos e conquistas - -A trajetória da He4rt Developers é feita de muitas mãos. Esta página reúne os -momentos que marcaram a comunidade — desde os primeiros encontros até os -projetos que hoje conectam centenas de pessoas desenvolvedoras pelo Brasil. - -## Como tudo começou - -A He4rt nasceu da vontade de criar um espaço acolhedor onde quem está começando -e quem já tem experiência pudessem aprender em conjunto, sem barreiras. O que -começou como um grupo pequeno [a confirmar: ano de fundação] foi ganhando vida a -cada conversa, live e projeto compartilhado. - -## Linha do tempo - -> Os marcos abaixo são exemplos a serem validados com quem viveu cada um deles. - -- **[a confirmar: ano]** — Primeiros encontros e formação do núcleo da - comunidade. -- **[a confirmar: ano]** — Lançamento do servidor no Discord como ponto central - de convivência. -- **[a confirmar: ano]** — Início das reuniões semanais abertas a toda a - comunidade. -- **[a confirmar: ano]** — Primeiros projetos open source mantidos pela - comunidade. -- **[a confirmar: ano]** — Construção da plataforma he4rtdevs.com e do sistema de - gamificação. - -## Em números - -> Todos os números abaixo são placeholders e precisam ser confirmados com dados -> reais antes da publicação. - -- **[a confirmar]** pessoas na comunidade. -- **[a confirmar]** reuniões semanais realizadas. -- **[a confirmar]** projetos open source publicados. -- **[a confirmar]** contribuidores ativos na plataforma. - -## O que vem por aí - -Cada conquista aqui é coletiva. Se você participou de algum desses momentos — ou -acha que falta um marco importante nesta lista — traga isso para a comunidade. -Esta página é um documento vivo e queremos contá-la com a voz de quem construiu -a He4rt. diff --git a/docs/introduction/nossos-valores.md b/docs/introduction/nossos-valores.md index 0c938903d..6fb957222 100644 --- a/docs/introduction/nossos-valores.md +++ b/docs/introduction/nossos-valores.md @@ -4,41 +4,28 @@ title: Nossos valores order: 4 --- -> ⚠️ Rascunho — revisar com a comunidade (datas/números/fatos são placeholders). - # Nossos valores -Mais do que código, a He4rt Developers é feita de pessoas. Os valores abaixo são -uma proposta de como enxergamos a convivência na comunidade — e precisam ser -revisados e aprovados por quem faz a He4rt acontecer. +Temos princípios e valores invioláveis que nos guiam e que nos trouxeram até aqui. É nosso dever, como membros, moderadores, administradores e líderes desta comunidade, repassar esses valores a todos, para que a gente nunca esqueça de onde veio e do que tem orgulho de defender. -## Acolhimento +## Aprendizado -Queremos que todo mundo se sinta em casa, independentemente do nível de -experiência, da formação ou da trajetória. Pergunta nenhuma é boba, e ninguém -deveria ter medo de pedir ajuda. +O conhecimento é a nossa base. Não importa a área: educação, tecnologia, marketing, design, negócios, cybersecurity, produto ou qualquer outra. Somos eternos aprendizes. Amamos o conhecimento e valorizamos cada compartilhamento, cada aula, cada documento ou artefato que passa por aqui. Somos guiados por uma sede insaciável de conhecimento e por uma verdade que carregamos com a gente: -## Aprender ensinando +> O conhecimento transforma e muda vidas. -Acreditamos que a melhor forma de aprender é compartilhando. Quem ensina também -aprende, e quem pergunta ajuda os próximos que terão a mesma dúvida. +## Contribuição -## Construir em conjunto +Nossa filosofia é simples. Contribuição é o caminho mais rápido para que todos alcancem seus objetivos. Sozinho você pode ir longe, mas com ajuda, e ajudando, você vai muito mais longe. Esquece a ideia de que você está sozinho, lutando por conta própria. Aqui você luta ao lado de gente com o mesmo objetivo. Ninguém fica para trás. É nosso dever ajudar o próximo com conhecimento, orientação e oportunidades. -Os projetos da comunidade são feitos a muitas mãos. Valorizamos a colaboração -aberta, o open source e o crédito a quem contribui. +## Pertencimento -## Respeito e diversidade +Você faz parte de algo muito maior do que um canal no Discord, no WhatsApp, no GitHub ou nas redes sociais. Você faz parte de uma família. Por isso costumamos nos chamar de primos e primas, porque no fundo é isso que somos: pessoas que nunca se conheceram na vida, mas que em algum momento decidiram se ajudar, construir um futuro melhor e colocar nossa bandeira nos lugares mais altos que a gente consegue imaginar. Não importa onde você esteja ou como esteja sua vida hoje. Aqui tem espaço para você. Um refúgio que acolhe e mostra como evoluir. -A He4rt é um espaço para todas as pessoas. Não há lugar para preconceito, -assédio ou qualquer forma de discriminação. -[a confirmar: link para o Código de Conduta oficial da comunidade.] +## Respeito -## Transparência +A gente não liga para gênero, cor, orientação sexual ou como você se porta. Não liga para títulos ou rótulos. O que importa é você como humano: o quanto você pode ajudar e o quanto podemos retribuir. Aqui você encontra um espaço seguro, cujo único objetivo é construir e contribuir com o máximo de respeito pelo próximo. -Decisões importantes são discutidas abertamente com a comunidade. Esta própria -documentação é um exemplo: tudo aqui pode ser revisado e melhorado. +## Crescimento -> Estes valores são um rascunho inicial. A redação final deve sair de uma -> conversa com a comunidade — possivelmente referenciando um Código de Conduta -> formal [a confirmar]. +Tudo que fazemos é para a comunidade e pela comunidade. Nossas ações, projetos, eventos, reuniões, aulões, spaces, palestras e lives se afunilam num único objetivo: crescer. Queremos elevar nossa comunidade, trazer oportunidades, mostrar caminhos e espalhar nossa palavra pelo Brasil e pelo mundo, com aquela sede insaciável de sempre, para que todo mundo conheça a He4rt. diff --git a/docs/introduction/o-que-e-a-he4rt.md b/docs/introduction/o-que-e-a-he4rt.md index 656ac1598..cfae4a338 100644 --- a/docs/introduction/o-que-e-a-he4rt.md +++ b/docs/introduction/o-que-e-a-he4rt.md @@ -6,7 +6,22 @@ order: 1 # O que é a He4rt -A He4rt Developers é uma comunidade brasileira de pessoas desenvolvedoras que -se reúne para aprender, ensinar e construir projetos em conjunto. Este portal -documenta como a plataforma funciona, das decisões de arquitetura ao dia a dia -de cada módulo. +A He4rt nasceu em 2018, numa live do Daniel Reis. Ele decidiu reunir pessoas apaixonadas por programação para ensinar, construir e desenvolver projetos juntos. Aquele grupo de amigos virou, com o tempo, uma das maiores comunidades de tecnologia da América Latina. Hoje somos a maior comunidade de tecnologia open source do Brasil. + +Nosso objetivo é ser um hub de oportunidades. Conectar pessoas, ensinar, compartilhar e aprender. Somos apaixonados por tecnologia e por tudo que ela pode transformar. + +## Nossa linha do tempo + +**2018.** A He4rt nasce. É criado o servidor oficial da comunidade. + +**2019.** Lançamos o **4noob**, um repositório gratuito que ensinava tecnologia e programação do absoluto zero até o nível intermediário, antes mesmo da popularização da IA. Todo o conteúdo foi produzido pela própria comunidade e se tornou um dos maiores acervos gratuitos da época. Até hoje é nosso maior case de sucesso. + +**2020.** Organizamos o Microsoft 365 Bootcamp através dos canais da He4rt Developers, cuidando de toda a produção do evento. + +**2021.** Fizemos a maior live de tecnologia do ano: nossa primeira conferência, a **He4rt Conf 2021**, com mais de 42 mil espectadores únicos. + +**2022.** Nosso primeiro meetup presencial, em parceria com a 44SP, uma das maiores faculdades de tecnologia da América Latina, com apoio da Microsoft, Accusense, Código Falado e Breno Mazieiro. + +**2026.** Chegamos aos 25 mil membros no Discord. Entramos numa fase de crescimento acelerado com o desenvolvimento da nossa própria plataforma, a He4rt Hub. Também firmamos parceria com a 3Pontos para o LaravelDaySP, trazendo ao Brasil dois representantes do core team do Laravel, o maior framework PHP do mundo, com quase 77 mil espectadores únicos na Twitch. + +E isso é só o começo. diff --git a/docs/introduction/reunioes-semanais.md b/docs/introduction/reunioes-semanais.md deleted file mode 100644 index 628b972ae..000000000 --- a/docs/introduction/reunioes-semanais.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -type: introduction -title: Reuniões semanais -order: 3 ---- - -> ⚠️ Rascunho — revisar com a comunidade (datas/números/fatos são placeholders). - -# Reuniões semanais - -As reuniões semanais são um dos corações pulsantes da He4rt Developers. É o -momento em que a comunidade se encontra para conversar, compartilhar -aprendizados, mostrar projetos e simplesmente estar junto. - -## Quando acontecem - -As reuniões acontecem toda semana, **[a confirmar: dia da semana]** às -**[a confirmar: horário, fuso de Brasília]**. O encontro é aberto a qualquer -pessoa da comunidade — não importa se você é iniciante ou já trabalha na área há -anos. - -## Onde acontecem - -Os encontros são realizados no **[a confirmar: canal de voz do Discord / outra -plataforma]**. O link e os lembretes são divulgados nos canais da comunidade -antes de cada reunião. - -## Como costuma ser - -> O formato abaixo é uma descrição plausível a ser validada com quem organiza os -> encontros. - -- **Boas-vindas e novidades** — atualizações da comunidade e recados. -- **Tema da semana** — alguém apresenta um assunto, projeto ou aprendizado. -- **Conversa aberta** — espaço para dúvidas, trocas e papo livre. -- **Próximos passos** — combinados e ideias para a semana seguinte. - -## Como participar - -Não é preciso se inscrever nem preparar nada. Basta entrar no canal no horário -combinado, ligar (ou não) o microfone e participar no seu ritmo. Quem preferir -só ouvir também é muito bem-vindo. - -> Se você organiza ou participa das reuniões, ajude a confirmar dia, horário, -> plataforma e formato para que esta página reflita a realidade da comunidade. From 15ae4f4bd895491e38bc5dc81c442855bfa56380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Abdala=20Bohaczk?= <114778253+joaopabdala@users.noreply.github.com> Date: Thu, 9 Jul 2026 18:28:14 -0300 Subject: [PATCH 07/46] =?UTF-8?q?feat(panel-app):=20repeater=20de=20skills?= =?UTF-8?q?=20n=C3=A3o=20deve=20listar=20skills=20j=C3=A1=20selecionadas?= =?UTF-8?q?=20(#400)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #394 ## Summary No repeater de skills do perfil, uma skill já escolhida em outra linha continuava aparecendo no dropdown das demais linhas, podendo ser selecionada de novo. Agora ela é removida dos resultados da busca — cada skill só pode ser escolhida uma vez. ## What Changed - `Skill::search` ganhou o parâmetro `exclude`, que filtra os IDs direto na query (`whereNotIn`, antes do `limit`). - `ProfilePage::skillIdsInSiblingRows` coleta os IDs já selecionados nas outras linhas do repeater (via `$get`) e os passa ao `Skill::search` no `getSearchResultsUsing` do campo `skill_id`. ## Tests - Novo `SkillSearchTest` cobrindo o `exclude` do `Skill::search`. --------- Co-authored-by: Elves Santos <168841287+sirelves@users.noreply.github.com> Co-authored-by: Daniel Reis --- .../panel-app/src/Pages/ProfilePage.php | 30 ++++++++++++++++++- .../tests/Feature/ProfilePageTest.php | 29 ++++++++++++++++++ app-modules/profile/src/Models/Skill.php | 4 ++- .../profile/tests/Feature/SkillSearchTest.php | 24 +++++++++++++++ 4 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 app-modules/profile/tests/Feature/SkillSearchTest.php diff --git a/app-modules/panel-app/src/Pages/ProfilePage.php b/app-modules/panel-app/src/Pages/ProfilePage.php index d007d5310..7f63a656e 100644 --- a/app-modules/panel-app/src/Pages/ProfilePage.php +++ b/app-modules/panel-app/src/Pages/ProfilePage.php @@ -148,7 +148,10 @@ public function form(Schema $schema): Schema Select::make('skill_id') ->label(__('panel-app::profile.fields.skill')) ->searchable() - ->getSearchResultsUsing(fn (string $search): array => Skill::search($search)) + ->getSearchResultsUsing(fn (string $search, Select $component): array => Skill::search( + $search, + exclude: $this->skillIdsInSiblingRows($component), + )) ->getOptionLabelUsing(fn (?string $value): ?string => $value === null ? null : (Skill::labelsById()[$value] ?? null)) ->optionsLimit(50) ->distinct() @@ -588,6 +591,31 @@ private function skillsToRepeater(Profile $profile): array return $skills; } + /** + * Skill ids already chosen in the other rows of the skills repeater, so the + * search can omit them and each skill is only pickable once. + * + * @return list + */ + private function skillIdsInSiblingRows(Select $component): array + { + $repeater = $component->getParentRepeater(); + if ($repeater === null) { + return []; + } + + /** @var array> $rows */ + $rows = $repeater->getRawState(); + + return array_values( + collect($rows) + ->pluck('skill_id') + ->reject(fn (mixed $id): bool => blank($id) || $id === $component->getState()) + ->map(fn (mixed $id): string => (string) $id) + ->all() + ); + } + /** * @param array> $repeaterData * @return list diff --git a/app-modules/panel-app/tests/Feature/ProfilePageTest.php b/app-modules/panel-app/tests/Feature/ProfilePageTest.php index 60ff35996..2b5c52723 100644 --- a/app-modules/panel-app/tests/Feature/ProfilePageTest.php +++ b/app-modules/panel-app/tests/Feature/ProfilePageTest.php @@ -3,6 +3,7 @@ declare(strict_types=1); use Filament\Facades\Filament; +use Filament\Forms\Components\Select; use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\PanelApp\Pages\ProfilePage; @@ -137,6 +138,34 @@ ->and($pivot->years_experience)->toBe(5); }); +test('skills repeater hides skills already chosen in other rows', function (): void { + $php = Skill::query()->where('slug', 'php')->sole(); + + $component = livewire(ProfilePage::class) + ->fillForm([ + 'skills' => [ + ['skill_id' => $php->id, 'proficiency' => 'advanced', 'years_experience' => 5], + ['skill_id' => null, 'proficiency' => null, 'years_experience' => null], + ], + ]); + + $instance = $component->instance(); + [$firstRow, $secondRow] = array_keys($instance->data['skills']); + + $searchIn = static function (int|string $rowKey) use ($instance, $php): array { + /** @var Select $select */ + $select = $instance->form->getComponentByStatePath( + sprintf('data.skills.%s.skill_id', $rowKey), + withAbsoluteStatePath: true, + ); + + return array_keys($select->getSearchResults($php->slug)); + }; + + expect($searchIn($secondRow))->not->toContain($php->id) + ->and($searchIn($firstRow))->toContain($php->id); +}); + test('profile page saves availability toggle', function (): void { livewire(ProfilePage::class) ->fillForm([ diff --git a/app-modules/profile/src/Models/Skill.php b/app-modules/profile/src/Models/Skill.php index d8062a29b..8240ec831 100644 --- a/app-modules/profile/src/Models/Skill.php +++ b/app-modules/profile/src/Models/Skill.php @@ -41,9 +41,10 @@ final class Skill extends Model * Server-side search for the skill select. Returns "Category · Name" labels, * capped — only matches travel to the client, so the catalog can grow freely. * + * @param array $exclude skill ids to omit (e.g. already chosen in a repeater) * @return array */ - public static function search(string $search): array + public static function search(string $search, array $exclude = []): array { $results = []; @@ -54,6 +55,7 @@ static function (Builder $inner) use ($search): void { ->orWhere('slug', 'ilike', '%'.$search.'%'); }, )) + ->when($exclude !== [], static fn (Builder $query): Builder => $query->whereNotIn('id', $exclude)) ->orderBy('name') ->limit(50) ->get(['id', 'name', 'category']) diff --git a/app-modules/profile/tests/Feature/SkillSearchTest.php b/app-modules/profile/tests/Feature/SkillSearchTest.php new file mode 100644 index 000000000..b8f191cce --- /dev/null +++ b/app-modules/profile/tests/Feature/SkillSearchTest.php @@ -0,0 +1,24 @@ +create(['name' => 'Testlang Keep', 'slug' => 'testlang-keep']); + $other = Skill::factory()->create(['name' => 'Testlang Other', 'slug' => 'testlang-other']); + + $results = Skill::search('testlang'); + + expect($results)->toHaveKeys([$keep->id, $other->id]); +}); + +test('search omits ids passed in the exclude list', function (): void { + $keep = Skill::factory()->create(['name' => 'Testlang Keep', 'slug' => 'testlang-keep']); + $drop = Skill::factory()->create(['name' => 'Testlang Drop', 'slug' => 'testlang-drop']); + + $results = Skill::search('testlang', exclude: [$drop->id]); + + expect($results)->toHaveKey($keep->id) + ->and($results)->not->toHaveKey($drop->id); +}); From fb8912a5d6253a7bbdb7c1ae6b0a1af639d5aff4 Mon Sep 17 00:00:00 2001 From: Gabriel Vieira <48625433+gvieira18@users.noreply.github.com> Date: Thu, 9 Jul 2026 21:01:22 -0300 Subject: [PATCH 08/46] chore(bot-discord): link libdave for voice (#410) ## Summary - Add a `make libdave` target that symlinks the libdave (DAVE E2EE) install into the `.cache/libdave` probe path, so the Discord bot boots without the `failed to initialize voice class / LibDaveNotFoundException` error (DAVE is mandatory for voice since 2026-03-01). - Symlinking the probe path avoids relying on `DISCORDPHP_DAVE_LIBRARY`, which the Forge daemon (Supervisor ignores shell rc) and `config:cache` (skips `.env`) both defeat. - gitignore `/.cache` (machine-local, like `/vendor`). Deploy: run `make libdave` after `composer install` in the Forge deploy script. --- .gitignore | 1 + Makefile | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/.gitignore b/.gitignore index abdcf3a55..b6bbc22a8 100644 --- a/.gitignore +++ b/.gitignore @@ -30,6 +30,7 @@ /storage/debugbar /storage/pail /vendor +/.cache Homestead.json Homestead.yaml *.local diff --git a/Makefile b/Makefile index 32bb6529c..c97453650 100644 --- a/Makefile +++ b/Makefile @@ -95,6 +95,13 @@ import-db: ## Import a PostgreSQL dump file (usage: make import-db file=path/to/ bot: ## Run the Discord bot @php artisan bot:boot +# Fixes the boot error "failed to initialize voice class / +# LibDaveNotFoundException: libdave is required but could not be loaded" — since +# 2026-03-01 Discord mandates the DAVE E2EE protocol for voice. +.PHONY: libdave +libdave: ## Link libdave (DAVE E2EE) into the Discord bot voice probe path + @mkdir -p "$(CURDIR)/.cache" && ln -sfn "$${LIBDAVE_HOME:-$$HOME/.local/lib/libdave}" "$(CURDIR)/.cache/libdave" + .PHONY: truncate truncate: ## Truncate laravel.log file @truncate -s 0 storage/logs/laravel.log From 97ea3b84df9651cda06d4c712447f8357e5329de Mon Sep 17 00:00:00 2001 From: Thales Machado <102062680+thalesmengue@users.noreply.github.com> Date: Sun, 12 Jul 2026 14:59:36 -0300 Subject: [PATCH 09/46] feat: panel admin location dashboard (#411) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Decisões de arquitetura ### Renderer do mapa: `chartjs-chart-geo` (MIT), não Highcharts O mockup inicial usava Highcharts, mas ele exige **licença comercial paga** para uso não-pessoal. Trocamos pelo `chartjs-chart-geo` (MIT, grátis), que reusa o Chart.js que os dashboards já carregam. Resultado visual equivalente, sem custo de licença. ### Geometria: GeoJSON do IBGE versionado (não uma API em runtime) Fronteira de estado é **dado estático de referência** — como uma fonte ou um SVG. Por isso versionamos um arquivo (padrão que o módulo já usa em `resources/fonts/`) em vez de buscar de uma API a cada request (que adicionaria dependência de rede/CORS numa página core, sem ganho, já que a geometria não muda). Origem: **IBGE** (dado aberto, oficial), simplificado offline (topojson-simplify + arredondamento) de ~251 KB para ~83 KB, com as propriedades reescritas para `{ name, uf }`. Não usamos a malha da Highsoft/Highcharts (proprietária). Os anéis foram reorientados para **CW** para casar com a convenção esférica do d3-geo (senão o mapa preenche a tela inteira). ### Nomes e contagens: domínio, não o arquivo do mapa - **Nomes canônicos dos 27 estados** vêm de `GeoLocation` (World API) — a mesma fonte que o perfil usa —, cacheados via Redis (`Cache::remember`, 30 dias), padrão idêntico ao `App\Geo\Models\GeoCountry`. - **Contagens** vêm da tabela `addresses` (domínio identity). - A reconciliação entre o valor salvo em `addresses.state` e o mapa é feita por **nome normalizado, sem acento** (mesma normalização no PHP e no JS). Medimos: os nomes do World API batem 27/27 com os do GeoJSON. - O GeoJSON é usado **só para desenhar** — se apagado, só o mapa quebra; os números continuam corretos. ### Widgets nativos do Filament, não grid manual A divisão da tela usa a grade nativa de widgets do Filament (`getHeaderWidgetsColumns()` + `$columnSpan`), não um grid Tailwind na Blade. Motivo: as classes de grid custom dependiam de rebuild do CSS (davam purge e quebravam o layout); a grade do Filament emite CSS inline via custom properties, imune a isso. ### Retornos tipados com DTOs, não array shapes As queries retornam **value objects** (`readonly`) em vez de `array{...}`. Segue o guideline (`prefer DTOs/VOs over associative arrays`), dá autocomplete e mata a chave-string mágica. Os valores derivados (`webTrend()`, `discordTrend()`, `coverage()`) ficam **dentro** do `CommunityActivitySnapshot`, tirando lógica de apresentação do widget. (`BrazilStatesGeometry` segue retornando array — é o GeoJSON cru consumido pelo `@js`, onde array é o formato natural.) ### Definição das métricas - **Ativos na web**: `user_id` distintos com **post ou reply** em `activity_timeline` nos últimos 30 dias. - **Ativos no Discord**: `external_identity_id` distintos com mensagem em `messages` nos últimos 30 dias. - **vs período anterior**: rolling comparison — janela atual (últimos 30d) contra a janela imediatamente anterior (30–60d atrás), mesmo padrão do Discord Dashboard. - **Membros com localização** / **Estados alcançados**: derivados de `addresses`. ## Test plan - [ ] `php artisan test app-modules/panel-admin/tests` — verde (Pest) - [ ] Pint, Rector (dry) e PHPStan (level 7) sem erros - [ ] `/admin/{tenant}/location` renderiza: 4 stat cards, mapa por estado e top-5 - [ ] Mapa: hover mostra tooltip `Estado (UF)` + nº e %, siglas centralizadas, tooltip não corta nas bordas (mobile) - [ ] Layout responsivo: cards empilham no mobile, dividem 3/2 no desktop https://github.com/user-attachments/assets/cc3440c8-fff4-467d-945c-f5030cc389f1 --------- Co-authored-by: Daniel Reis --- app-modules/panel-admin/lang/en/location.php | 31 +++ .../panel-admin/lang/pt_BR/location.php | 31 +++ .../panel-admin/resources/geo/SOURCE.md | 16 ++ .../resources/geo/br-states.geojson | 32 ++++ .../marketing/location-dashboard.blade.php | 4 + .../marketing/widgets/location-map.blade.php | 181 ++++++++++++++++++ .../marketing/widgets/top-states.blade.php | 39 ++++ .../Data/CommunityActivitySnapshot.php | 49 +++++ .../Location/Data/MemberDistribution.php | 23 +++ .../Pages/Location/Data/StateShare.php | 17 ++ .../Pages/Location/LocationDashboard.php | 56 ++++++ .../Queries/CommunityActivityStats.php | 89 +++++++++ .../Pages/Location/Queries/MembersByState.php | 80 ++++++++ .../Support/BrazilStatesGeometry.php | 38 ++++ .../Marketing/Widgets/LocationMapWidget.php | 32 ++++ .../Marketing/Widgets/LocationStatsWidget.php | 53 +++++ .../src/Marketing/Widgets/TopStatesWidget.php | 31 +++ .../Marketing/CommunityActivityStatsTest.php | 64 +++++++ .../Marketing/LocationDashboardTest.php | 39 ++++ .../Feature/Marketing/MembersByStateTest.php | 60 ++++++ 20 files changed, 965 insertions(+) create mode 100644 app-modules/panel-admin/lang/en/location.php create mode 100644 app-modules/panel-admin/lang/pt_BR/location.php create mode 100644 app-modules/panel-admin/resources/geo/SOURCE.md create mode 100644 app-modules/panel-admin/resources/geo/br-states.geojson create mode 100644 app-modules/panel-admin/resources/views/marketing/location-dashboard.blade.php create mode 100644 app-modules/panel-admin/resources/views/marketing/widgets/location-map.blade.php create mode 100644 app-modules/panel-admin/resources/views/marketing/widgets/top-states.blade.php create mode 100644 app-modules/panel-admin/src/Marketing/Pages/Location/Data/CommunityActivitySnapshot.php create mode 100644 app-modules/panel-admin/src/Marketing/Pages/Location/Data/MemberDistribution.php create mode 100644 app-modules/panel-admin/src/Marketing/Pages/Location/Data/StateShare.php create mode 100644 app-modules/panel-admin/src/Marketing/Pages/Location/LocationDashboard.php create mode 100644 app-modules/panel-admin/src/Marketing/Pages/Location/Queries/CommunityActivityStats.php create mode 100644 app-modules/panel-admin/src/Marketing/Pages/Location/Queries/MembersByState.php create mode 100644 app-modules/panel-admin/src/Marketing/Support/BrazilStatesGeometry.php create mode 100644 app-modules/panel-admin/src/Marketing/Widgets/LocationMapWidget.php create mode 100644 app-modules/panel-admin/src/Marketing/Widgets/LocationStatsWidget.php create mode 100644 app-modules/panel-admin/src/Marketing/Widgets/TopStatesWidget.php create mode 100644 app-modules/panel-admin/tests/Feature/Marketing/CommunityActivityStatsTest.php create mode 100644 app-modules/panel-admin/tests/Feature/Marketing/LocationDashboardTest.php create mode 100644 app-modules/panel-admin/tests/Feature/Marketing/MembersByStateTest.php diff --git a/app-modules/panel-admin/lang/en/location.php b/app-modules/panel-admin/lang/en/location.php new file mode 100644 index 000000000..8f121ca58 --- /dev/null +++ b/app-modules/panel-admin/lang/en/location.php @@ -0,0 +1,31 @@ + [ + 'title' => 'Location', + ], + + 'stats' => [ + 'web_active' => 'Active on the web', + 'discord_active' => 'Active on Discord', + 'located' => 'Members with location', + 'coverage' => ':percent% of members', + 'states' => 'States reached', + 'states_hint' => 'Brazilian federative units', + 'vs_previous' => '% vs previous period', + ], + + 'map' => [ + 'heading' => 'Members by state', + 'hint' => 'Color proportional to the number of members', + ], + + 'top' => [ + 'heading' => 'Top 5 states', + 'hint' => 'Share of members with a registered location', + 'others' => ':count other states', + 'empty' => 'No location data yet.', + ], +]; diff --git a/app-modules/panel-admin/lang/pt_BR/location.php b/app-modules/panel-admin/lang/pt_BR/location.php new file mode 100644 index 000000000..c697d2df4 --- /dev/null +++ b/app-modules/panel-admin/lang/pt_BR/location.php @@ -0,0 +1,31 @@ + [ + 'title' => 'Localização', + ], + + 'stats' => [ + 'web_active' => 'Ativos na web', + 'discord_active' => 'Ativos no Discord', + 'located' => 'Membros com localização', + 'coverage' => ':percent% dos membros', + 'states' => 'Estados alcançados', + 'states_hint' => 'Unidades federativas do Brasil', + 'vs_previous' => '% vs período anterior', + ], + + 'map' => [ + 'heading' => 'Membros por estado', + 'hint' => 'Cor proporcional ao número de membros', + ], + + 'top' => [ + 'heading' => 'Top 5 estados', + 'hint' => 'Participação dos membros com localização cadastrada', + 'others' => 'Outros :count estados', + 'empty' => 'Ainda não há dados de localização.', + ], +]; diff --git a/app-modules/panel-admin/resources/geo/SOURCE.md b/app-modules/panel-admin/resources/geo/SOURCE.md new file mode 100644 index 000000000..f497b6e5a --- /dev/null +++ b/app-modules/panel-admin/resources/geo/SOURCE.md @@ -0,0 +1,16 @@ +# br-states.geojson + +Malha dos estados brasileiros (27 UFs) usada no choropleth do painel de localização +(`Marketing → Localização`). + +- **Fonte:** IBGE — malha territorial por UF, qualidade `intermediaria` + (`https://servicodados.ibge.gov.br/api/v3/malhas/paises/BR?intrarregiao=UF`). + Dado aberto / domínio público. +- **Processamento:** geometria simplificada (topojson-simplify, ~35% dos vértices) e + coordenadas arredondadas para 3 casas decimais para reduzir o payload; propriedades + reescritas de `codarea` (código IBGE) para `{ name, uf }`. +- **Uso:** apenas geometria de desenho. Os nomes canônicos dos estados e as contagens + vêm do domínio (`App\Geo\Support\GeoLocation` + tabela `addresses`), não deste arquivo. + +Não usamos a coleção de mapas da Highsoft/Highcharts (proprietária) — a geometria aqui é +de fonte livre para casar com o renderizador `chartjs-chart-geo` (MIT). diff --git a/app-modules/panel-admin/resources/geo/br-states.geojson b/app-modules/panel-admin/resources/geo/br-states.geojson new file mode 100644 index 000000000..dadddcdf6 --- /dev/null +++ b/app-modules/panel-admin/resources/geo/br-states.geojson @@ -0,0 +1,32 @@ +{ +"type": "FeatureCollection", +"features": [ +{"type":"Feature","properties":{"uf":"RO","name":"Rondônia"},"geometry":{"type":"Polygon","coordinates":[[[-60.709,-13.693],[-60.88,-13.617],[-60.919,-13.548],[-61.041,-13.508],[-61.248,-13.496],[-61.47,-13.555],[-61.586,-13.501],[-61.757,-13.541],[-61.869,-13.528],[-61.887,-13.441],[-62.116,-13.258],[-62.115,-13.164],[-62.215,-13.111],[-62.352,-13.143],[-62.443,-13.08],[-62.613,-13.041],[-62.661,-12.969],[-62.734,-13.022],[-62.892,-12.859],[-63.007,-12.84],[-63.095,-12.684],[-63.163,-12.635],[-63.242,-12.691],[-63.384,-12.653],[-63.437,-12.564],[-63.502,-12.567],[-63.621,-12.473],[-63.786,-12.428],[-63.873,-12.447],[-63.963,-12.53],[-64.057,-12.492],[-64.174,-12.501],[-64.234,-12.455],[-64.406,-12.447],[-64.499,-12.367],[-64.513,-12.223],[-64.552,-12.242],[-64.713,-12.174],[-64.698,-12.104],[-64.76,-12.102],[-64.84,-12.011],[-64.917,-12.028],[-65.029,-11.998],[-65.019,-11.892],[-65.071,-11.856],[-65.091,-11.708],[-65.205,-11.749],[-65.257,-11.696],[-65.218,-11.652],[-65.212,-11.53],[-65.305,-11.502],[-65.36,-11.258],[-65.351,-11.122],[-65.289,-11.094],[-65.251,-10.984],[-65.276,-10.871],[-65.362,-10.802],[-65.344,-10.7],[-65.405,-10.641],[-65.43,-10.481],[-65.392,-10.374],[-65.289,-10.22],[-65.329,-10.043],[-65.329,-9.921],[-65.287,-9.84],[-65.357,-9.72],[-65.443,-9.669],[-65.513,-9.793],[-65.624,-9.836],[-65.685,-9.749],[-65.871,-9.753],[-66.033,-9.789],[-66.152,-9.786],[-66.358,-9.864],[-66.627,-9.898],[-66.81,-9.818],[-66.775,-9.753],[-66.501,-9.634],[-66.392,-9.5],[-66.375,-9.426],[-66.26,-9.411],[-65.97,-9.413],[-65.825,-9.53],[-65.8,-9.585],[-65.73,-9.563],[-65.679,-9.451],[-65.588,-9.414],[-65.503,-9.47],[-65.432,-9.459],[-65.44,-9.312],[-65.377,-9.324],[-65.247,-9.258],[-65.212,-9.279],[-65.143,-9.447],[-65.053,-9.402],[-64.92,-9.22],[-64.94,-9.125],[-64.871,-9.012],[-64.808,-8.986],[-64.611,-9.016],[-64.323,-8.929],[-64.311,-8.996],[-64.142,-8.945],[-64.158,-8.843],[-64.125,-8.717],[-64.035,-8.694],[-63.986,-8.586],[-63.925,-8.575],[-63.973,-8.478],[-63.944,-8.331],[-63.871,-8.289],[-63.791,-8.333],[-63.723,-8.249],[-63.622,-8.03],[-63.621,-7.976],[-62.867,-7.976],[-62.692,-8.093],[-62.655,-8.229],[-62.585,-8.272],[-62.518,-8.385],[-62.465,-8.34],[-62.361,-8.398],[-62.336,-8.609],[-62.269,-8.576],[-62.184,-8.599],[-62.125,-8.802],[-62.031,-8.8],[-61.979,-8.873],[-61.86,-8.853],[-61.841,-8.739],[-61.775,-8.748],[-61.713,-8.688],[-61.626,-8.729],[-61.583,-8.799],[-61.469,-8.92],[-61.556,-9.092],[-61.525,-9.243],[-61.6,-9.256],[-61.628,-9.352],[-61.559,-9.385],[-61.582,-9.459],[-61.508,-9.54],[-61.477,-9.63],[-61.532,-9.712],[-61.508,-9.861],[-61.601,-10.15],[-61.577,-10.249],[-61.462,-10.42],[-61.499,-10.699],[-61.48,-10.788],[-61.525,-10.856],[-61.55,-10.986],[-61.001,-10.992],[-60.46,-10.99],[-60.392,-11.094],[-60.301,-11.057],[-60.191,-11.114],[-60.075,-11.105],[-59.995,-11.148],[-59.959,-11.295],[-59.917,-11.338],[-59.934,-11.424],[-60.115,-11.591],[-60.103,-11.819],[-60.066,-11.891],[-59.984,-11.915],[-59.962,-12.056],[-59.9,-12.117],[-59.887,-12.245],[-59.779,-12.341],[-59.844,-12.467],[-59.948,-12.599],[-60.029,-12.619],[-60.079,-12.881],[-60.117,-12.96],[-60.183,-12.968],[-60.284,-13.085],[-60.372,-13.319],[-60.388,-13.455],[-60.511,-13.504],[-60.686,-13.625],[-60.709,-13.693]]]}}, +{"type":"Feature","properties":{"uf":"AC","name":"Acre"},"geometry":{"type":"Polygon","coordinates":[[[-73.802,-7.112],[-72.585,-7.552],[-70.055,-7.845],[-68.647,-9.049],[-67.517,-9.561],[-67.325,-9.592],[-66.81,-9.818],[-66.627,-9.898],[-66.871,-10.081],[-67.01,-10.252],[-67.17,-10.338],[-67.316,-10.319],[-67.32,-10.382],[-67.424,-10.391],[-67.436,-10.448],[-67.605,-10.534],[-67.704,-10.7],[-67.828,-10.651],[-68.002,-10.648],[-68.105,-10.715],[-68.104,-10.773],[-68.279,-10.989],[-68.487,-11.051],[-68.543,-11.111],[-68.716,-11.146],[-68.811,-10.994],[-68.912,-11.022],[-68.966,-10.988],[-69.233,-10.94],[-69.423,-10.927],[-69.719,-10.975],[-69.812,-10.926],[-69.949,-10.925],[-70.202,-11.054],[-70.308,-11.071],[-70.421,-11.039],[-70.53,-10.935],[-70.621,-11],[-70.621,-9.832],[-70.527,-9.726],[-70.598,-9.606],[-70.495,-9.425],[-70.57,-9.432],[-70.79,-9.632],[-70.869,-9.665],[-70.998,-9.818],[-71.163,-9.875],[-71.211,-9.966],[-71.377,-10],[-72.18,-10],[-72.141,-9.877],[-72.153,-9.797],[-72.271,-9.745],[-72.247,-9.656],[-72.282,-9.55],[-72.366,-9.49],[-72.524,-9.489],[-72.72,-9.412],[-73.212,-9.412],[-73.022,-9.226],[-72.94,-9.069],[-72.995,-8.92],[-73.056,-8.907],[-73.142,-8.723],[-73.285,-8.666],[-73.344,-8.602],[-73.332,-8.475],[-73.537,-8.345],[-73.627,-8.021],[-73.746,-7.953],[-73.682,-7.79],[-73.822,-7.717],[-73.99,-7.536],[-73.919,-7.465],[-73.966,-7.352],[-73.876,-7.382],[-73.747,-7.344],[-73.699,-7.296],[-73.802,-7.112]]]}}, +{"type":"Feature","properties":{"uf":"AM","name":"Amazonas"},"geometry":{"type":"Polygon","coordinates":[[[-58.895,0.264],[-58.895,-0.011],[-58.864,-0.078],[-58.869,-0.347],[-58.725,-0.438],[-58.706,-0.68],[-58.434,-0.892],[-58.428,-1.025],[-58.317,-1.148],[-58.258,-1.131],[-58.163,-1.23],[-58.059,-1.106],[-57.969,-1.163],[-57.999,-1.331],[-57.96,-1.397],[-57.825,-1.438],[-57.718,-1.503],[-57.689,-1.587],[-57.544,-1.611],[-57.353,-1.737],[-57.202,-1.713],[-57.079,-1.803],[-57.028,-1.918],[-56.859,-2.016],[-56.748,-2.011],[-56.721,-2.059],[-56.761,-2.174],[-56.613,-2.21],[-56.527,-2.139],[-56.414,-2.176],[-56.317,-2.14],[-56.228,-2.056],[-56.099,-2.027],[-56.204,-2.183],[-56.389,-2.278],[-56.464,-2.432],[-56.402,-2.456],[-56.61,-2.896],[-57,-3.759],[-57.586,-5.001],[-58.034,-5.978],[-58.267,-6.476],[-58.427,-6.616],[-58.482,-6.781],[-58.435,-6.909],[-58.335,-6.986],[-58.181,-7.182],[-58.137,-7.356],[-58.213,-7.458],[-58.202,-7.621],[-58.3,-7.777],[-58.378,-7.827],[-58.375,-7.899],[-58.293,-8.071],[-58.355,-8.393],[-58.418,-8.489],[-58.389,-8.595],[-58.437,-8.703],[-58.328,-8.712],[-58.442,-8.799],[-58.963,-8.803],[-60.42,-8.797],[-61.583,-8.799],[-61.626,-8.729],[-61.713,-8.688],[-61.775,-8.748],[-61.841,-8.739],[-61.86,-8.853],[-61.979,-8.873],[-62.031,-8.8],[-62.125,-8.802],[-62.184,-8.599],[-62.269,-8.576],[-62.336,-8.609],[-62.361,-8.398],[-62.465,-8.34],[-62.518,-8.385],[-62.585,-8.272],[-62.655,-8.229],[-62.692,-8.093],[-62.867,-7.976],[-63.621,-7.976],[-63.622,-8.03],[-63.723,-8.249],[-63.791,-8.333],[-63.871,-8.289],[-63.944,-8.331],[-63.973,-8.478],[-63.925,-8.575],[-63.986,-8.586],[-64.035,-8.694],[-64.125,-8.717],[-64.158,-8.843],[-64.142,-8.945],[-64.311,-8.996],[-64.323,-8.929],[-64.611,-9.016],[-64.808,-8.986],[-64.871,-9.012],[-64.94,-9.125],[-64.92,-9.22],[-65.053,-9.402],[-65.143,-9.447],[-65.212,-9.279],[-65.247,-9.258],[-65.377,-9.324],[-65.44,-9.312],[-65.432,-9.459],[-65.503,-9.47],[-65.588,-9.414],[-65.679,-9.451],[-65.73,-9.563],[-65.8,-9.585],[-65.825,-9.53],[-65.97,-9.413],[-66.26,-9.411],[-66.375,-9.426],[-66.392,-9.5],[-66.501,-9.634],[-66.775,-9.753],[-66.81,-9.818],[-67.325,-9.592],[-67.517,-9.561],[-68.647,-9.049],[-70.055,-7.845],[-72.585,-7.552],[-73.802,-7.112],[-73.727,-7.022],[-73.755,-6.942],[-73.643,-6.762],[-73.516,-6.677],[-73.381,-6.635],[-73.354,-6.595],[-73.213,-6.578],[-73.138,-6.498],[-73.109,-6.41],[-73.165,-6.274],[-73.25,-6.145],[-73.237,-6.032],[-72.992,-5.704],[-72.957,-5.465],[-72.87,-5.299],[-72.888,-5.166],[-72.738,-5.06],[-72.607,-5.028],[-72.597,-4.983],[-72.401,-4.884],[-72.366,-4.803],[-72.22,-4.771],[-71.955,-4.61],[-71.907,-4.515],[-71.809,-4.492],[-71.617,-4.529],[-71.476,-4.433],[-71.277,-4.441],[-71.214,-4.378],[-70.946,-4.377],[-70.759,-4.159],[-70.616,-4.193],[-70.522,-4.137],[-70.293,-4.16],[-70.308,-4.247],[-70.258,-4.31],[-70.153,-4.331],[-70.156,-4.275],[-70.076,-4.32],[-69.973,-4.324],[-69.933,-4.219],[-69.534,-2.001],[-69.43,-1.387],[-69.4,-1.371],[-69.431,-1.242],[-69.398,-1.144],[-69.464,-0.967],[-69.623,-0.732],[-69.574,-0.65],[-69.611,-0.513],[-69.718,-0.455],[-69.845,-0.346],[-69.923,-0.331],[-70.057,-0.187],[-70.042,-0.124],[-70.046,0.562],[-69.908,0.585],[-69.804,0.572],[-69.687,0.663],[-69.633,0.635],[-69.481,0.735],[-69.35,0.614],[-69.272,0.602],[-69.184,0.654],[-69.116,0.644],[-69.188,0.747],[-69.136,0.87],[-69.198,0.998],[-69.322,1.088],[-69.415,1.043],[-69.44,1.075],[-69.705,1.08],[-69.703,1.118],[-69.847,1.078],[-69.846,1.708],[-69.644,1.73],[-69.534,1.777],[-69.391,1.73],[-68.157,1.732],[-68.267,1.827],[-68.243,1.927],[-68.141,1.985],[-68.087,1.901],[-67.941,1.831],[-67.779,2.031],[-67.62,2.024],[-67.522,2.17],[-67.389,2.244],[-67.343,2.206],[-67.337,2.098],[-67.278,1.876],[-67.157,1.849],[-67.097,1.733],[-67.072,1.443],[-67.088,1.167],[-66.857,1.23],[-66.318,0.755],[-66.213,0.781],[-66.151,0.745],[-66.07,0.805],[-65.971,0.806],[-65.937,0.882],[-65.739,1],[-65.586,1.009],[-65.508,0.916],[-65.504,0.852],[-65.591,0.722],[-65.564,0.676],[-65.453,0.685],[-65.397,0.75],[-65.398,0.821],[-65.329,0.932],[-65.165,0.951],[-65.151,1.117],[-65.103,1.157],[-65.022,1.115],[-64.961,1.19],[-64.794,1.269],[-64.722,1.239],[-64.702,1.291],[-64.591,1.337],[-64.531,1.435],[-64.397,1.527],[-64.351,1.518],[-64.4,1.395],[-64.343,1.384],[-64.302,1.468],[-64.112,1.589],[-64.065,1.676],[-64.062,1.931],[-63.975,1.991],[-63.83,1.968],[-63.562,2.132],[-63.398,2.147],[-63.372,2.212],[-63.276,2.154],[-63.146,2.173],[-63.12,2.097],[-63.024,2.015],[-62.839,2.016],[-62.703,1.934],[-62.729,1.7],[-62.805,1.591],[-62.64,1.438],[-62.521,1.084],[-62.472,1.086],[-62.443,0.959],[-62.485,0.876],[-62.463,0.777],[-62.538,0.675],[-62.519,0.444],[-62.446,0.379],[-62.453,0.207],[-62.409,0.075],[-62.326,-0.003],[-62.32,-0.096],[-62.242,-0.17],[-62.253,-0.27],[-62.189,-0.322],[-62.28,-0.451],[-62.312,-0.576],[-62.287,-0.632],[-62.375,-0.708],[-62.487,-0.681],[-62.501,-0.781],[-62.376,-0.836],[-62.259,-0.976],[-62.172,-1.006],[-62.1,-1.097],[-62.017,-1.142],[-61.897,-1.395],[-61.798,-1.381],[-61.605,-1.448],[-61.475,-1.579],[-61.548,-1.429],[-61.619,-1.395],[-61.582,-1.353],[-61.627,-1.294],[-61.543,-1.062],[-61.581,-0.978],[-61.536,-0.754],[-61.458,-0.655],[-61.234,-0.562],[-61.223,-0.5],[-61.079,-0.506],[-61.057,-0.544],[-60.934,-0.548],[-60.928,-0.605],[-60.815,-0.69],[-60.762,-0.849],[-60.663,-0.881],[-60.536,-0.869],[-60.498,-0.781],[-60.347,-0.74],[-60.305,-0.666],[-60.4,-0.517],[-60.346,-0.438],[-60.305,-0.26],[-60.204,-0.03],[-60.14,0.027],[-60.134,0.104],[-60.059,0.163],[-60.038,0.264],[-58.895,0.264]]]}}, +{"type":"Feature","properties":{"uf":"RR","name":"Roraima"},"geometry":{"type":"Polygon","coordinates":[[[-63.372,2.212],[-63.372,2.426],[-63.52,2.422],[-63.604,2.457],[-63.75,2.442],[-63.834,2.492],[-63.934,2.457],[-64.048,2.518],[-63.986,2.649],[-64.015,2.812],[-64.07,2.918],[-64.214,3.091],[-64.115,3.335],[-64.184,3.489],[-64.196,3.579],[-64.289,3.7],[-64.479,3.783],[-64.58,3.928],[-64.674,4.005],[-64.732,4.12],[-64.811,4.175],[-64.78,4.287],[-64.685,4.239],[-64.624,4.135],[-64.561,4.102],[-64.432,4.135],[-64.172,4.129],[-64.109,4.085],[-64.036,3.934],[-63.969,3.879],[-63.85,3.95],[-63.7,3.944],[-63.661,4.01],[-63.581,3.886],[-63.511,3.847],[-63.412,3.912],[-63.393,3.98],[-63.205,3.949],[-63.234,3.882],[-63.204,3.812],[-63.123,3.805],[-63.073,3.686],[-62.952,3.612],[-62.838,3.736],[-62.749,3.673],[-62.731,3.71],[-62.787,3.929],[-62.736,4.04],[-62.533,4.047],[-62.542,4.109],[-62.438,4.183],[-62.148,4.079],[-61.993,4.175],[-61.819,4.168],[-61.75,4.255],[-61.562,4.251],[-61.508,4.322],[-61.521,4.384],[-61.448,4.439],[-61.352,4.419],[-61.267,4.538],[-61.126,4.506],[-60.998,4.516],[-60.934,4.585],[-60.948,4.656],[-60.721,4.777],[-60.584,4.956],[-60.645,5.059],[-60.697,5.229],[-60.546,5.194],[-60.328,5.206],[-60.212,5.272],[-60.133,5.225],[-60.096,5.141],[-59.972,5.075],[-60.036,4.791],[-60.026,4.706],[-60.123,4.605],[-60.161,4.518],[-59.972,4.509],[-59.736,4.424],[-59.676,4.347],[-59.732,4.287],[-59.731,4.181],[-59.623,4.129],[-59.654,4.069],[-59.516,3.946],[-59.565,3.916],[-59.596,3.796],[-59.665,3.782],[-59.668,3.704],[-59.873,3.564],[-59.805,3.51],[-59.841,3.425],[-59.806,3.354],[-59.912,3.196],[-59.908,3.113],[-59.956,3.081],[-59.984,2.929],[-59.988,2.68],[-59.898,2.482],[-59.899,2.363],[-59.74,2.293],[-59.726,2.02],[-59.746,1.852],[-59.658,1.823],[-59.69,1.756],[-59.534,1.716],[-59.373,1.506],[-59.34,1.518],[-59.253,1.388],[-59.049,1.323],[-58.918,1.317],[-58.895,1.228],[-58.895,0.264],[-60.038,0.264],[-60.059,0.163],[-60.134,0.104],[-60.14,0.027],[-60.204,-0.03],[-60.305,-0.26],[-60.346,-0.438],[-60.4,-0.517],[-60.305,-0.666],[-60.347,-0.74],[-60.498,-0.781],[-60.536,-0.869],[-60.663,-0.881],[-60.762,-0.849],[-60.815,-0.69],[-60.928,-0.605],[-60.934,-0.548],[-61.057,-0.544],[-61.079,-0.506],[-61.223,-0.5],[-61.234,-0.562],[-61.458,-0.655],[-61.536,-0.754],[-61.581,-0.978],[-61.543,-1.062],[-61.627,-1.294],[-61.582,-1.353],[-61.619,-1.395],[-61.548,-1.429],[-61.475,-1.579],[-61.605,-1.448],[-61.798,-1.381],[-61.897,-1.395],[-62.017,-1.142],[-62.1,-1.097],[-62.172,-1.006],[-62.259,-0.976],[-62.376,-0.836],[-62.501,-0.781],[-62.487,-0.681],[-62.375,-0.708],[-62.287,-0.632],[-62.312,-0.576],[-62.28,-0.451],[-62.189,-0.322],[-62.253,-0.27],[-62.242,-0.17],[-62.32,-0.096],[-62.326,-0.003],[-62.409,0.075],[-62.453,0.207],[-62.446,0.379],[-62.519,0.444],[-62.538,0.675],[-62.463,0.777],[-62.485,0.876],[-62.443,0.959],[-62.472,1.086],[-62.521,1.084],[-62.64,1.438],[-62.805,1.591],[-62.729,1.7],[-62.703,1.934],[-62.839,2.016],[-63.024,2.015],[-63.12,2.097],[-63.146,2.173],[-63.276,2.154],[-63.372,2.212]]]}}, +{"type":"Feature","properties":{"uf":"PA","name":"Pará"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-46.104,-1.202],[-46.162,-1.282],[-46.115,-1.352],[-46.176,-1.477],[-46.134,-1.582],[-46.155,-1.675],[-46.221,-1.731],[-46.295,-1.727],[-46.31,-1.806],[-46.211,-1.831],[-46.283,-2.154],[-46.433,-2.301],[-46.43,-2.537],[-46.507,-2.617],[-46.622,-2.645],[-46.67,-2.735],[-46.59,-2.846],[-46.673,-2.893],[-46.647,-2.97],[-46.689,-3.093],[-46.75,-3.124],[-46.815,-3.311],[-46.884,-3.337],[-46.956,-3.426],[-46.97,-3.512],[-47.038,-3.564],[-47.039,-3.673],[-47.085,-3.857],[-47.195,-3.986],[-47.319,-4.048],[-47.372,-4.245],[-47.442,-4.287],[-47.615,-4.56],[-47.68,-4.609],[-47.816,-4.615],[-48.755,-5.349],[-48.597,-5.422],[-48.393,-5.394],[-48.279,-5.54],[-48.138,-5.603],[-48.172,-5.709],[-48.276,-5.726],[-48.292,-5.837],[-48.233,-5.948],[-48.335,-6.004],[-48.288,-6.098],[-48.432,-6.177],[-48.383,-6.38],[-48.5,-6.351],[-48.607,-6.448],[-48.664,-6.568],[-48.652,-6.64],[-48.769,-6.731],[-49.019,-6.784],[-49.209,-6.925],[-49.185,-7.235],[-49.234,-7.329],[-49.378,-7.496],[-49.342,-7.656],[-49.161,-7.791],[-49.163,-7.921],[-49.221,-8.204],[-49.283,-8.38],[-49.349,-8.418],[-49.41,-8.58],[-49.592,-8.839],[-49.684,-8.856],[-49.843,-9.027],[-49.905,-9.17],[-50.038,-9.289],[-50.105,-9.475],[-50.09,-9.546],[-50.225,-9.841],[-51.304,-9.773],[-52.257,-9.708],[-54.613,-9.536],[-56.672,-9.367],[-56.754,-9.406],[-56.82,-9.246],[-56.995,-9.234],[-57.06,-9.182],[-57.039,-9.098],[-57.204,-8.921],[-57.289,-8.916],[-57.416,-8.859],[-57.417,-8.793],[-57.593,-8.756],[-57.633,-8.527],[-57.687,-8.407],[-57.642,-8.22],[-57.832,-7.961],[-57.835,-7.881],[-57.897,-7.678],[-58.061,-7.395],[-58.137,-7.356],[-58.181,-7.182],[-58.335,-6.986],[-58.435,-6.909],[-58.482,-6.781],[-58.427,-6.616],[-58.267,-6.476],[-58.034,-5.978],[-57.586,-5.001],[-57,-3.759],[-56.61,-2.896],[-56.402,-2.456],[-56.464,-2.432],[-56.389,-2.278],[-56.204,-2.183],[-56.099,-2.027],[-56.228,-2.056],[-56.317,-2.14],[-56.414,-2.176],[-56.527,-2.139],[-56.613,-2.21],[-56.761,-2.174],[-56.721,-2.059],[-56.748,-2.011],[-56.859,-2.016],[-57.028,-1.918],[-57.079,-1.803],[-57.202,-1.713],[-57.353,-1.737],[-57.544,-1.611],[-57.689,-1.587],[-57.718,-1.503],[-57.825,-1.438],[-57.96,-1.397],[-57.999,-1.331],[-57.969,-1.163],[-58.059,-1.106],[-58.163,-1.23],[-58.258,-1.131],[-58.317,-1.148],[-58.428,-1.025],[-58.434,-0.892],[-58.706,-0.68],[-58.725,-0.438],[-58.869,-0.347],[-58.864,-0.078],[-58.895,-0.011],[-58.895,0.264],[-58.895,1.228],[-58.821,1.171],[-58.716,1.241],[-58.71,1.29],[-58.496,1.268],[-58.472,1.374],[-58.505,1.465],[-58.386,1.47],[-58.332,1.591],[-58.233,1.548],[-58.161,1.56],[-58.129,1.499],[-58.006,1.517],[-57.981,1.659],[-57.927,1.645],[-57.792,1.727],[-57.65,1.682],[-57.534,1.708],[-57.451,1.806],[-57.433,1.906],[-57.346,1.98],[-57.253,1.949],[-57.087,2.027],[-57.001,1.907],[-56.92,1.93],[-56.801,1.874],[-56.621,1.946],[-56.58,1.906],[-56.437,1.952],[-56.335,1.937],[-56.241,1.88],[-56.153,1.891],[-55.999,1.831],[-55.904,1.888],[-55.935,1.997],[-55.902,2.029],[-56.043,2.228],[-56.132,2.264],[-56.09,2.372],[-56.051,2.335],[-55.99,2.417],[-55.978,2.527],[-55.935,2.534],[-55.747,2.411],[-55.5,2.443],[-55.385,2.419],[-55.32,2.516],[-55.235,2.504],[-55.123,2.568],[-55.103,2.526],[-54.954,2.584],[-54.872,2.434],[-54.796,2.318],[-54.763,2.202],[-54.806,2.139],[-54.804,2.026],[-54.745,1.776],[-54.602,1.785],[-54.496,1.747],[-54.352,1.754],[-54.201,1.646],[-54.144,1.641],[-54.069,1.501],[-53.896,1.455],[-53.888,1.408],[-53.538,1.341],[-53.525,1.212],[-53.426,1.226],[-53.402,1.154],[-53.459,1.134],[-53.411,0.929],[-53.19,0.768],[-53.106,0.68],[-53.147,0.6],[-53.175,0.382],[-53.094,0.259],[-53.094,0.195],[-52.983,0.033],[-52.933,-0.142],[-52.836,-0.186],[-52.684,-0.314],[-52.695,-0.496],[-52.64,-0.585],[-52.535,-0.574],[-52.497,-0.711],[-52.511,-0.857],[-52.412,-0.863],[-52.417,-1.026],[-52.333,-1.116],[-52.12,-1.146],[-52.07,-1.236],[-52.055,-1.177],[-51.778,-1.14],[-51.7,-1.063],[-51.683,-0.795],[-51.595,-0.65],[-51.458,-0.513],[-51.362,-0.368],[-51.348,-0.3],[-51.208,-0.117],[-51.069,-0.079],[-50.975,0.042],[-50.785,0.112],[-50.668,0.185],[-50.553,0.313],[-50.436,0.6],[-50.329,0.674],[-50.226,0.696],[-50.133,0.62],[-50.073,0.636],[-50.036,0.534],[-50.077,0.463],[-50.173,0.398],[-50.168,0.34],[-49.889,0.323],[-49.582,0.419],[-49.489,0.334],[-49.633,0.241],[-49.7,0.151],[-49.632,0.075],[-49.583,0.09],[-49.397,0.062],[-49.359,-0.026],[-49.432,-0.088],[-49.422,-0.168],[-49.196,-0.131],[-49.137,-0.168],[-49.017,-0.16],[-48.918,-0.23],[-48.81,-0.215],[-48.744,-0.25],[-48.429,-0.227],[-48.375,-0.303],[-48.441,-0.412],[-48.506,-0.81],[-48.475,-0.874],[-48.366,-0.919],[-48.268,-0.903],[-48.172,-0.816],[-48.051,-0.659],[-47.977,-0.686],[-47.909,-0.577],[-47.831,-0.61],[-47.704,-0.535],[-47.633,-0.602],[-47.631,-0.706],[-47.589,-0.576],[-47.531,-0.616],[-47.501,-0.709],[-47.474,-0.592],[-47.316,-0.592],[-47.171,-0.676],[-47.16,-0.762],[-47.121,-0.676],[-47.064,-0.795],[-46.975,-0.704],[-46.943,-0.859],[-46.836,-0.747],[-46.796,-0.87],[-46.665,-0.791],[-46.596,-0.842],[-46.636,-0.969],[-46.576,-0.981],[-46.496,-0.872],[-46.41,-0.888],[-46.48,-0.924],[-46.469,-1.025],[-46.288,-0.999],[-46.265,-0.913],[-46.201,-0.887],[-46.184,-1.053],[-46.095,-1.021],[-46.063,-1.106],[-46.104,-1.202]]],[[[-49.626,0.19],[-49.626,0.19],[-49.626,0.19],[-49.626,0.19]]],[[[-49.45,0.117],[-49.45,0.117],[-49.45,0.117],[-49.45,0.117]]],[[[-49.618,0.199],[-49.618,0.199],[-49.618,0.199],[-49.618,0.199]]],[[[-48.876,-0.182],[-48.876,-0.182],[-48.876,-0.182],[-48.876,-0.182]]],[[[-46.311,-1.006],[-46.311,-1.006],[-46.311,-1.006],[-46.311,-1.006]]]]}}, +{"type":"Feature","properties":{"uf":"AP","name":"Amapá"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-54.872,2.434],[-54.744,2.472],[-54.685,2.447],[-54.692,2.361],[-54.602,2.337],[-54.437,2.21],[-54.189,2.179],[-54.001,2.23],[-53.742,2.375],[-53.749,2.313],[-53.473,2.257],[-53.323,2.347],[-53.229,2.262],[-53.279,2.186],[-53.084,2.213],[-52.988,2.169],[-52.904,2.189],[-52.873,2.258],[-52.661,2.374],[-52.527,2.582],[-52.478,2.782],[-52.328,3.071],[-52.351,3.123],[-52.292,3.226],[-52.234,3.241],[-52.087,3.49],[-51.989,3.627],[-51.973,3.706],[-51.799,3.887],[-51.782,3.964],[-51.656,4.054],[-51.623,4.226],[-51.677,4.333],[-51.638,4.509],[-51.486,4.437],[-51.283,4.25],[-51.216,4.15],[-51.176,4.011],[-51.179,3.92],[-51.081,3.885],[-51.082,3.56],[-51.109,3.451],[-51.033,3.214],[-51.044,3.134],[-50.954,2.837],[-50.887,2.746],[-50.816,2.503],[-50.768,2.407],[-50.684,2.144],[-50.598,2.064],[-50.583,1.99],[-50.424,1.805],[-50.159,1.811],[-49.921,1.688],[-49.882,1.5],[-49.904,1.296],[-49.883,1.169],[-49.89,1.014],[-49.989,0.94],[-49.988,0.875],[-50.097,0.767],[-50.22,0.743],[-50.226,0.696],[-50.329,0.674],[-50.436,0.6],[-50.553,0.313],[-50.668,0.185],[-50.785,0.112],[-50.975,0.042],[-51.069,-0.079],[-51.208,-0.117],[-51.348,-0.3],[-51.362,-0.368],[-51.458,-0.513],[-51.595,-0.65],[-51.683,-0.795],[-51.7,-1.063],[-51.778,-1.14],[-52.055,-1.177],[-52.07,-1.236],[-52.12,-1.146],[-52.333,-1.116],[-52.417,-1.026],[-52.412,-0.863],[-52.511,-0.857],[-52.497,-0.711],[-52.535,-0.574],[-52.64,-0.585],[-52.695,-0.496],[-52.684,-0.314],[-52.836,-0.186],[-52.933,-0.142],[-52.983,0.033],[-53.094,0.195],[-53.094,0.259],[-53.175,0.382],[-53.147,0.6],[-53.106,0.68],[-53.19,0.768],[-53.411,0.929],[-53.459,1.134],[-53.402,1.154],[-53.426,1.226],[-53.525,1.212],[-53.538,1.341],[-53.888,1.408],[-53.896,1.455],[-54.069,1.501],[-54.144,1.641],[-54.201,1.646],[-54.352,1.754],[-54.496,1.747],[-54.602,1.785],[-54.745,1.776],[-54.804,2.026],[-54.806,2.139],[-54.763,2.202],[-54.796,2.318],[-54.872,2.434]]],[[[-50.509,2.185],[-50.423,2.119],[-50.508,2.1],[-50.509,2.185]]],[[[-50.45,2.109],[-50.405,2.111],[-50.317,1.948],[-50.367,1.89],[-50.455,1.889],[-50.521,2.005],[-50.504,2.094],[-50.45,2.109]]]]}}, +{"type":"Feature","properties":{"uf":"TO","name":"Tocantins"},"geometry":{"type":"Polygon","coordinates":[[[-48.755,-5.349],[-48.658,-5.308],[-48.606,-5.336],[-48.519,-5.192],[-48.364,-5.168],[-48.185,-5.257],[-48.069,-5.271],[-48.015,-5.238],[-47.886,-5.261],[-47.827,-5.387],[-47.744,-5.38],[-47.619,-5.46],[-47.56,-5.463],[-47.483,-5.565],[-47.493,-5.71],[-47.442,-5.831],[-47.448,-5.99],[-47.423,-6.16],[-47.379,-6.273],[-47.43,-6.423],[-47.416,-6.484],[-47.499,-6.671],[-47.529,-6.828],[-47.508,-6.907],[-47.547,-7.017],[-47.66,-7.151],[-47.745,-7.162],[-47.737,-7.217],[-47.651,-7.302],[-47.543,-7.265],[-47.478,-7.337],[-47.58,-7.419],[-47.358,-7.616],[-47.317,-7.704],[-47.181,-7.859],[-47.046,-8.053],[-46.963,-8.039],[-46.883,-7.964],[-46.605,-7.897],[-46.501,-7.973],[-46.466,-8.073],[-46.544,-8.317],[-46.633,-8.318],[-46.727,-8.383],[-46.777,-8.368],[-46.8,-8.454],[-46.902,-8.586],[-46.887,-8.686],[-46.926,-8.735],[-46.918,-8.857],[-46.993,-8.879],[-47.058,-9.053],[-46.94,-9.064],[-46.82,-9.212],[-46.819,-9.303],[-46.759,-9.381],[-46.666,-9.392],[-46.573,-9.478],[-46.539,-9.56],[-46.583,-9.586],[-46.644,-9.74],[-46.513,-9.797],[-46.473,-9.877],[-46.445,-10.077],[-46.325,-10.183],[-46.211,-10.17],[-46.163,-10.214],[-46.028,-10.177],[-46.012,-10.251],[-45.971,-10.359],[-45.911,-10.371],[-45.897,-10.264],[-45.744,-10.24],[-45.723,-10.155],[-45.699,-10.259],[-45.798,-10.323],[-45.82,-10.456],[-46.061,-10.6],[-46.128,-10.621],[-46.206,-10.798],[-46.26,-10.812],[-46.267,-10.935],[-46.342,-10.939],[-46.553,-11.265],[-46.576,-11.342],[-46.524,-11.464],[-46.439,-11.521],[-46.35,-11.506],[-46.209,-11.585],[-46.081,-11.624],[-46.155,-11.65],[-46.244,-11.605],[-46.341,-11.61],[-46.308,-11.687],[-46.374,-11.768],[-46.38,-11.867],[-46.248,-11.919],[-46.422,-12.029],[-46.371,-12.1],[-46.388,-12.249],[-46.37,-12.347],[-46.3,-12.364],[-46.266,-12.499],[-46.307,-12.637],[-46.268,-12.716],[-46.308,-12.942],[-46.113,-12.918],[-46.198,-12.957],[-46.371,-12.988],[-46.366,-12.863],[-46.418,-12.822],[-46.455,-12.971],[-46.751,-12.969],[-47.011,-13.141],[-47.225,-13.193],[-47.281,-13.265],[-47.38,-13.231],[-47.417,-13.271],[-47.565,-13.18],[-47.569,-13.117],[-47.646,-13.12],[-47.667,-13.208],[-47.624,-13.376],[-47.68,-13.468],[-47.798,-13.329],[-48.033,-13.274],[-48.156,-13.308],[-48.166,-13.189],[-48.235,-13.176],[-48.385,-13.264],[-48.462,-13.275],[-48.516,-13.139],[-48.554,-13.303],[-48.6,-13.288],[-48.576,-13.124],[-48.736,-12.921],[-48.87,-12.803],[-48.976,-12.957],[-49.118,-12.79],[-49.238,-12.884],[-49.355,-13.107],[-49.339,-13.253],[-49.368,-13.272],[-49.909,-12.975],[-50.286,-12.84],[-50.296,-12.711],[-50.193,-12.564],[-50.206,-12.445],[-50.305,-12.492],[-50.479,-12.713],[-50.511,-12.861],[-50.625,-12.8],[-50.623,-12.735],[-50.7,-12.595],[-50.624,-12.455],[-50.681,-12.217],[-50.682,-11.991],[-50.639,-11.885],[-50.686,-11.859],[-50.722,-11.74],[-50.664,-11.677],[-50.657,-11.593],[-50.739,-11.544],[-50.742,-11.46],[-50.671,-11.287],[-50.664,-11.152],[-50.609,-11.067],[-50.633,-10.932],[-50.571,-10.752],[-50.603,-10.66],[-50.483,-10.49],[-50.474,-10.405],[-50.418,-10.355],[-50.382,-10.212],[-50.398,-10.155],[-50.303,-10.035],[-50.225,-9.841],[-50.09,-9.546],[-50.105,-9.475],[-50.038,-9.289],[-49.905,-9.17],[-49.843,-9.027],[-49.684,-8.856],[-49.592,-8.839],[-49.41,-8.58],[-49.349,-8.418],[-49.283,-8.38],[-49.221,-8.204],[-49.163,-7.921],[-49.161,-7.791],[-49.342,-7.656],[-49.378,-7.496],[-49.234,-7.329],[-49.185,-7.235],[-49.209,-6.925],[-49.019,-6.784],[-48.769,-6.731],[-48.652,-6.64],[-48.664,-6.568],[-48.607,-6.448],[-48.5,-6.351],[-48.383,-6.38],[-48.432,-6.177],[-48.288,-6.098],[-48.335,-6.004],[-48.233,-5.948],[-48.292,-5.837],[-48.276,-5.726],[-48.172,-5.709],[-48.138,-5.603],[-48.279,-5.54],[-48.393,-5.394],[-48.597,-5.422],[-48.755,-5.349]]]}}, +{"type":"Feature","properties":{"uf":"MA","name":"Maranhão"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-48.755,-5.349],[-47.816,-4.615],[-47.68,-4.609],[-47.615,-4.56],[-47.442,-4.287],[-47.372,-4.245],[-47.319,-4.048],[-47.195,-3.986],[-47.085,-3.857],[-47.039,-3.673],[-47.038,-3.564],[-46.97,-3.512],[-46.956,-3.426],[-46.884,-3.337],[-46.815,-3.311],[-46.75,-3.124],[-46.689,-3.093],[-46.647,-2.97],[-46.673,-2.893],[-46.59,-2.846],[-46.67,-2.735],[-46.622,-2.645],[-46.507,-2.617],[-46.43,-2.537],[-46.433,-2.301],[-46.283,-2.154],[-46.211,-1.831],[-46.31,-1.806],[-46.295,-1.727],[-46.221,-1.731],[-46.155,-1.675],[-46.134,-1.582],[-46.176,-1.477],[-46.115,-1.352],[-46.162,-1.282],[-46.104,-1.202],[-45.976,-1.066],[-45.958,-1.195],[-45.871,-1.052],[-45.883,-1.149],[-45.847,-1.213],[-45.736,-1.207],[-45.69,-1.274],[-45.476,-1.325],[-45.489,-1.469],[-45.372,-1.397],[-45.338,-1.315],[-45.299,-1.433],[-45.343,-1.587],[-45.268,-1.599],[-45.196,-1.488],[-45.103,-1.473],[-44.974,-1.5],[-44.885,-1.419],[-44.83,-1.428],[-44.916,-1.547],[-44.854,-1.617],[-44.705,-1.554],[-44.636,-1.617],[-44.777,-1.68],[-44.7,-1.731],[-44.752,-1.789],[-44.647,-1.759],[-44.652,-1.715],[-44.513,-1.889],[-44.482,-1.988],[-44.566,-2.022],[-44.498,-2.049],[-44.589,-2.137],[-44.644,-2.296],[-44.53,-2.16],[-44.462,-2.146],[-44.398,-2.215],[-44.358,-2.337],[-44.388,-2.409],[-44.537,-2.545],[-44.627,-2.703],[-44.633,-2.846],[-44.68,-2.919],[-44.662,-3.013],[-44.548,-3.045],[-44.425,-2.944],[-44.41,-2.799],[-44.354,-2.603],[-44.378,-2.566],[-44.305,-2.487],[-44.095,-2.407],[-44.032,-2.406],[-44.034,-2.55],[-44.08,-2.564],[-44.138,-2.682],[-44.251,-2.732],[-44.257,-2.778],[-44.079,-2.744],[-43.931,-2.562],[-43.85,-2.51],[-43.838,-2.417],[-43.727,-2.386],[-43.72,-2.291],[-43.627,-2.251],[-43.645,-2.401],[-43.741,-2.435],[-43.748,-2.494],[-43.624,-2.51],[-43.537,-2.422],[-43.462,-2.486],[-43.483,-2.385],[-43.405,-2.335],[-43.237,-2.359],[-42.829,-2.543],[-42.696,-2.574],[-42.587,-2.669],[-42.365,-2.715],[-42.264,-2.758],[-42.255,-2.676],[-42.071,-2.687],[-42.043,-2.73],[-41.807,-2.73],[-41.826,-2.757],[-41.866,-2.87],[-41.797,-2.961],[-42.013,-3.248],[-42.124,-3.267],[-42.151,-3.387],[-42.302,-3.452],[-42.334,-3.434],[-42.47,-3.484],[-42.496,-3.446],[-42.563,-3.559],[-42.675,-3.673],[-42.684,-3.803],[-42.739,-3.927],[-42.845,-4.037],[-42.89,-4.155],[-42.986,-4.22],[-42.949,-4.385],[-42.897,-4.402],[-42.85,-4.498],[-42.953,-4.687],[-42.95,-4.769],[-42.897,-4.843],[-42.799,-5.19],[-42.825,-5.346],[-42.911,-5.396],[-43.033,-5.592],[-43.095,-5.615],[-43.049,-6.102],[-42.854,-6.25],[-42.829,-6.341],[-42.877,-6.417],[-42.887,-6.578],[-42.993,-6.749],[-43.148,-6.784],[-43.248,-6.768],[-43.455,-6.846],[-43.637,-6.72],[-43.791,-6.702],[-43.93,-6.771],[-43.957,-6.743],[-44.116,-6.806],[-44.313,-7.119],[-44.386,-7.121],[-44.565,-7.229],[-44.69,-7.396],[-44.817,-7.361],[-44.923,-7.467],[-45.05,-7.513],[-45.155,-7.513],[-45.215,-7.567],[-45.335,-7.578],[-45.456,-7.67],[-45.577,-8.03],[-45.584,-8.157],[-45.664,-8.25],[-45.739,-8.501],[-45.841,-8.716],[-45.96,-8.815],[-45.995,-8.927],[-45.936,-9.038],[-45.898,-9.185],[-45.908,-9.298],[-45.799,-9.417],[-45.842,-9.563],[-45.821,-9.773],[-45.864,-9.861],[-45.842,-9.939],[-45.878,-10.11],[-45.974,-10.248],[-46.012,-10.251],[-46.028,-10.177],[-46.163,-10.214],[-46.211,-10.17],[-46.325,-10.183],[-46.445,-10.077],[-46.473,-9.877],[-46.513,-9.797],[-46.644,-9.74],[-46.583,-9.586],[-46.539,-9.56],[-46.573,-9.478],[-46.666,-9.392],[-46.759,-9.381],[-46.819,-9.303],[-46.82,-9.212],[-46.94,-9.064],[-47.058,-9.053],[-46.993,-8.879],[-46.918,-8.857],[-46.926,-8.735],[-46.887,-8.686],[-46.902,-8.586],[-46.8,-8.454],[-46.777,-8.368],[-46.727,-8.383],[-46.633,-8.318],[-46.544,-8.317],[-46.466,-8.073],[-46.501,-7.973],[-46.605,-7.897],[-46.883,-7.964],[-46.963,-8.039],[-47.046,-8.053],[-47.181,-7.859],[-47.317,-7.704],[-47.358,-7.616],[-47.58,-7.419],[-47.478,-7.337],[-47.543,-7.265],[-47.651,-7.302],[-47.737,-7.217],[-47.745,-7.162],[-47.66,-7.151],[-47.547,-7.017],[-47.508,-6.907],[-47.529,-6.828],[-47.499,-6.671],[-47.416,-6.484],[-47.43,-6.423],[-47.379,-6.273],[-47.423,-6.16],[-47.448,-5.99],[-47.442,-5.831],[-47.493,-5.71],[-47.483,-5.565],[-47.56,-5.463],[-47.619,-5.46],[-47.744,-5.38],[-47.827,-5.387],[-47.886,-5.261],[-48.015,-5.238],[-48.069,-5.271],[-48.185,-5.257],[-48.364,-5.168],[-48.519,-5.192],[-48.606,-5.336],[-48.658,-5.308],[-48.755,-5.349]]],[[[-44.481,-2.727],[-44.479,-2.958],[-44.561,-3.022],[-44.631,-2.988],[-44.586,-2.815],[-44.481,-2.727]]],[[[-45.536,-1.228],[-45.536,-1.228],[-45.536,-1.228],[-45.536,-1.228]]],[[[-44.966,-1.271],[-44.867,-1.329],[-45.005,-1.401],[-45.029,-1.318],[-44.966,-1.271]]],[[[-44.752,-1.468],[-44.752,-1.468],[-44.752,-1.468],[-44.752,-1.468]]],[[[-45.691,-1.265],[-45.691,-1.265],[-45.691,-1.265],[-45.691,-1.265]]],[[[-43.542,-2.361],[-43.562,-2.424],[-43.613,-2.378],[-43.542,-2.361]]]]}}, +{"type":"Feature","properties":{"uf":"PI","name":"Piauí"},"geometry":{"type":"Polygon","coordinates":[[[-40.524,-7.318],[-40.548,-7.393],[-40.715,-7.481],[-40.622,-7.658],[-40.674,-7.762],[-40.555,-7.818],[-40.544,-7.962],[-40.604,-8.104],[-40.711,-8.225],[-40.784,-8.262],[-40.819,-8.361],[-40.978,-8.399],[-41.213,-8.644],[-41.358,-8.708],[-41.488,-8.844],[-41.546,-8.962],[-41.606,-8.957],[-41.731,-9.028],[-41.838,-9.242],[-41.922,-9.279],[-41.972,-9.249],[-42.316,-9.317],[-42.493,-9.495],[-42.59,-9.498],[-42.716,-9.554],[-42.77,-9.619],[-42.828,-9.56],[-42.944,-9.521],[-42.959,-9.428],[-43.122,-9.373],[-43.194,-9.421],[-43.285,-9.42],[-43.438,-9.266],[-43.579,-9.32],[-43.689,-9.42],[-43.782,-9.453],[-43.853,-9.562],[-43.785,-9.762],[-43.652,-9.844],[-43.709,-9.913],[-43.665,-9.991],[-43.699,-10.078],[-43.759,-10.075],[-43.837,-10.302],[-43.937,-10.436],[-44.028,-10.412],[-44.072,-10.58],[-44.139,-10.64],[-44.267,-10.623],[-44.344,-10.55],[-44.5,-10.65],[-44.578,-10.627],[-44.669,-10.687],[-44.667,-10.759],[-44.788,-10.808],[-44.808,-10.866],[-44.931,-10.929],[-45.082,-10.839],[-45.246,-10.822],[-45.358,-10.732],[-45.437,-10.616],[-45.447,-10.509],[-45.396,-10.445],[-45.43,-10.359],[-45.522,-10.277],[-45.603,-10.108],[-45.723,-10.155],[-45.744,-10.24],[-45.897,-10.264],[-45.911,-10.371],[-45.971,-10.359],[-46.012,-10.251],[-45.974,-10.248],[-45.878,-10.11],[-45.842,-9.939],[-45.864,-9.861],[-45.821,-9.773],[-45.842,-9.563],[-45.799,-9.417],[-45.908,-9.298],[-45.898,-9.185],[-45.936,-9.038],[-45.995,-8.927],[-45.96,-8.815],[-45.841,-8.716],[-45.739,-8.501],[-45.664,-8.25],[-45.584,-8.157],[-45.577,-8.03],[-45.456,-7.67],[-45.335,-7.578],[-45.215,-7.567],[-45.155,-7.513],[-45.05,-7.513],[-44.923,-7.467],[-44.817,-7.361],[-44.69,-7.396],[-44.565,-7.229],[-44.386,-7.121],[-44.313,-7.119],[-44.116,-6.806],[-43.957,-6.743],[-43.93,-6.771],[-43.791,-6.702],[-43.637,-6.72],[-43.455,-6.846],[-43.248,-6.768],[-43.148,-6.784],[-42.993,-6.749],[-42.887,-6.578],[-42.877,-6.417],[-42.829,-6.341],[-42.854,-6.25],[-43.049,-6.102],[-43.095,-5.615],[-43.033,-5.592],[-42.911,-5.396],[-42.825,-5.346],[-42.799,-5.19],[-42.897,-4.843],[-42.95,-4.769],[-42.953,-4.687],[-42.85,-4.498],[-42.897,-4.402],[-42.949,-4.385],[-42.986,-4.22],[-42.89,-4.155],[-42.845,-4.037],[-42.739,-3.927],[-42.684,-3.803],[-42.675,-3.673],[-42.563,-3.559],[-42.496,-3.446],[-42.47,-3.484],[-42.334,-3.434],[-42.302,-3.452],[-42.151,-3.387],[-42.124,-3.267],[-42.013,-3.248],[-41.797,-2.961],[-41.866,-2.87],[-41.826,-2.757],[-41.612,-2.896],[-41.323,-2.921],[-41.271,-2.971],[-41.256,-3.088],[-41.414,-3.35],[-41.324,-3.386],[-41.303,-3.492],[-41.367,-3.562],[-41.334,-3.684],[-41.239,-3.713],[-41.288,-3.822],[-41.22,-3.941],[-41.239,-4.017],[-41.113,-4.05],[-41.139,-4.121],[-41.098,-4.18],[-41.136,-4.233],[-41.149,-4.367],[-41.233,-4.61],[-41.181,-4.673],[-41.25,-4.757],[-41.213,-4.772],[-41.25,-4.87],[-41.082,-5.088],[-40.929,-5.172],[-40.911,-5.407],[-40.932,-5.549],[-40.902,-5.608],[-40.939,-5.673],[-40.874,-5.973],[-40.906,-6.046],[-40.858,-6.105],[-40.852,-6.224],[-40.787,-6.305],[-40.788,-6.524],[-40.71,-6.676],[-40.477,-6.733],[-40.432,-6.813],[-40.428,-7.034],[-40.49,-7.119],[-40.524,-7.318]]]}}, +{"type":"Feature","properties":{"uf":"CE","name":"Ceará"},"geometry":{"type":"Polygon","coordinates":[[[-41.323,-2.921],[-41.271,-2.887],[-41.102,-2.901],[-40.76,-2.849],[-40.59,-2.846],[-40.498,-2.784],[-40.455,-2.803],[-40.188,-2.812],[-39.966,-2.851],[-39.721,-2.997],[-39.62,-3.026],[-39.379,-3.183],[-39.257,-3.219],[-39.065,-3.407],[-38.974,-3.411],[-38.918,-3.494],[-38.807,-3.548],[-38.652,-3.682],[-38.463,-3.713],[-38.36,-3.885],[-38.273,-3.945],[-38.115,-4.149],[-37.907,-4.34],[-37.77,-4.401],[-37.732,-4.488],[-37.603,-4.617],[-37.495,-4.629],[-37.295,-4.73],[-37.253,-4.831],[-37.64,-4.926],[-37.677,-5.052],[-37.725,-5.071],[-37.788,-5.219],[-37.787,-5.297],[-37.847,-5.34],[-37.902,-5.501],[-37.99,-5.556],[-38.083,-5.672],[-38.047,-5.733],[-38.163,-5.939],[-38.306,-6.087],[-38.433,-6.078],[-38.582,-6.319],[-38.562,-6.356],[-38.538,-6.421],[-38.612,-6.513],[-38.672,-6.706],[-38.614,-6.782],[-38.675,-6.862],[-38.765,-6.911],[-38.765,-6.994],[-38.656,-7.092],[-38.644,-7.184],[-38.535,-7.29],[-38.653,-7.553],[-38.715,-7.622],[-38.94,-7.759],[-38.962,-7.844],[-39.088,-7.833],[-39.147,-7.718],[-39.253,-7.705],[-39.473,-7.573],[-39.461,-7.471],[-39.546,-7.484],[-39.572,-7.43],[-39.741,-7.327],[-39.858,-7.325],[-40.001,-7.374],[-40.128,-7.382],[-40.263,-7.301],[-40.361,-7.356],[-40.449,-7.361],[-40.524,-7.318],[-40.49,-7.119],[-40.428,-7.034],[-40.432,-6.813],[-40.477,-6.733],[-40.71,-6.676],[-40.788,-6.524],[-40.787,-6.305],[-40.852,-6.224],[-40.858,-6.105],[-40.906,-6.046],[-40.874,-5.973],[-40.939,-5.673],[-40.902,-5.608],[-40.932,-5.549],[-40.911,-5.407],[-40.929,-5.172],[-41.082,-5.088],[-41.25,-4.87],[-41.213,-4.772],[-41.25,-4.757],[-41.181,-4.673],[-41.233,-4.61],[-41.149,-4.367],[-41.136,-4.233],[-41.098,-4.18],[-41.139,-4.121],[-41.113,-4.05],[-41.239,-4.017],[-41.22,-3.941],[-41.288,-3.822],[-41.239,-3.713],[-41.334,-3.684],[-41.367,-3.562],[-41.303,-3.492],[-41.324,-3.386],[-41.414,-3.35],[-41.256,-3.088],[-41.271,-2.971],[-41.323,-2.921]]]}}, +{"type":"Feature","properties":{"uf":"RN","name":"Rio Grande do Norte"},"geometry":{"type":"Polygon","coordinates":[[[-34.968,-6.487],[-35.146,-6.553],[-35.224,-6.522],[-35.341,-6.539],[-35.408,-6.49],[-35.565,-6.492],[-35.664,-6.447],[-35.773,-6.483],[-36.005,-6.481],[-36.077,-6.406],[-36.226,-6.434],[-36.292,-6.396],[-36.295,-6.292],[-36.395,-6.294],[-36.433,-6.363],[-36.5,-6.358],[-36.526,-6.501],[-36.442,-6.565],[-36.438,-6.629],[-36.514,-6.594],[-36.559,-6.708],[-36.505,-6.754],[-36.604,-6.93],[-36.766,-6.936],[-36.73,-6.836],[-36.835,-6.731],[-36.959,-6.783],[-37.004,-6.71],[-37.193,-6.826],[-37.255,-6.811],[-37.314,-6.689],[-37.485,-6.71],[-37.465,-6.533],[-37.396,-6.51],[-37.363,-6.322],[-37.273,-6.28],[-37.157,-6.152],[-37.174,-6.048],[-37.256,-6.028],[-37.446,-6.112],[-37.459,-6.145],[-37.742,-6.189],[-37.859,-6.374],[-37.942,-6.424],[-38.145,-6.494],[-38.289,-6.506],[-38.402,-6.41],[-38.562,-6.356],[-38.582,-6.319],[-38.433,-6.078],[-38.306,-6.087],[-38.163,-5.939],[-38.047,-5.733],[-38.083,-5.672],[-37.99,-5.556],[-37.902,-5.501],[-37.847,-5.34],[-37.787,-5.297],[-37.788,-5.219],[-37.725,-5.071],[-37.677,-5.052],[-37.64,-4.926],[-37.253,-4.831],[-37.158,-4.945],[-37.037,-4.95],[-36.96,-4.919],[-36.878,-4.951],[-36.716,-5.081],[-36.542,-5.088],[-36.508,-5.062],[-36.16,-5.096],[-35.981,-5.042],[-35.791,-5.077],[-35.489,-5.157],[-35.371,-5.285],[-35.355,-5.355],[-35.261,-5.481],[-35.153,-5.947],[-35.096,-6.057],[-35.094,-6.183],[-35.036,-6.235],[-35.02,-6.366],[-34.968,-6.487]]]}}, +{"type":"Feature","properties":{"uf":"PB","name":"Paraíba"},"geometry":{"type":"Polygon","coordinates":[[[-34.834,-7.549],[-34.961,-7.539],[-34.985,-7.462],[-35.07,-7.399],[-35.249,-7.375],[-35.495,-7.484],[-35.527,-7.645],[-36.003,-7.813],[-36.217,-7.764],[-36.43,-7.827],[-36.48,-7.925],[-36.572,-7.904],[-36.612,-7.949],[-36.629,-8.111],[-36.687,-8.156],[-36.862,-8.222],[-36.991,-8.303],[-37.082,-8.262],[-37.16,-8.17],[-37.16,-7.997],[-37.34,-7.98],[-37.139,-7.745],[-37.198,-7.635],[-37.118,-7.534],[-36.985,-7.476],[-37.014,-7.404],[-37.168,-7.332],[-37.234,-7.274],[-37.328,-7.288],[-37.386,-7.357],[-37.496,-7.365],[-37.528,-7.465],[-37.656,-7.523],[-37.746,-7.609],[-37.857,-7.652],[-37.958,-7.766],[-38.04,-7.748],[-38.077,-7.831],[-38.164,-7.78],[-38.275,-7.834],[-38.327,-7.694],[-38.409,-7.73],[-38.594,-7.754],[-38.715,-7.622],[-38.653,-7.553],[-38.535,-7.29],[-38.644,-7.184],[-38.656,-7.092],[-38.765,-6.994],[-38.765,-6.911],[-38.675,-6.862],[-38.614,-6.782],[-38.672,-6.706],[-38.612,-6.513],[-38.538,-6.421],[-38.562,-6.356],[-38.402,-6.41],[-38.289,-6.506],[-38.145,-6.494],[-37.942,-6.424],[-37.859,-6.374],[-37.742,-6.189],[-37.459,-6.145],[-37.446,-6.112],[-37.256,-6.028],[-37.174,-6.048],[-37.157,-6.152],[-37.273,-6.28],[-37.363,-6.322],[-37.396,-6.51],[-37.465,-6.533],[-37.485,-6.71],[-37.314,-6.689],[-37.255,-6.811],[-37.193,-6.826],[-37.004,-6.71],[-36.959,-6.783],[-36.835,-6.731],[-36.73,-6.836],[-36.766,-6.936],[-36.604,-6.93],[-36.505,-6.754],[-36.559,-6.708],[-36.514,-6.594],[-36.438,-6.629],[-36.442,-6.565],[-36.526,-6.501],[-36.5,-6.358],[-36.433,-6.363],[-36.395,-6.294],[-36.295,-6.292],[-36.292,-6.396],[-36.226,-6.434],[-36.077,-6.406],[-36.005,-6.481],[-35.773,-6.483],[-35.664,-6.447],[-35.565,-6.492],[-35.408,-6.49],[-35.341,-6.539],[-35.224,-6.522],[-35.146,-6.553],[-34.968,-6.487],[-34.953,-6.673],[-34.869,-6.978],[-34.793,-7.155],[-34.794,-7.333],[-34.834,-7.549]]]}}, +{"type":"Feature","properties":{"uf":"PE","name":"Pernambuco"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-41.358,-8.708],[-41.213,-8.644],[-40.978,-8.399],[-40.819,-8.361],[-40.784,-8.262],[-40.711,-8.225],[-40.604,-8.104],[-40.544,-7.962],[-40.555,-7.818],[-40.674,-7.762],[-40.622,-7.658],[-40.715,-7.481],[-40.548,-7.393],[-40.524,-7.318],[-40.449,-7.361],[-40.361,-7.356],[-40.263,-7.301],[-40.128,-7.382],[-40.001,-7.374],[-39.858,-7.325],[-39.741,-7.327],[-39.572,-7.43],[-39.546,-7.484],[-39.461,-7.471],[-39.473,-7.573],[-39.253,-7.705],[-39.147,-7.718],[-39.088,-7.833],[-38.962,-7.844],[-38.94,-7.759],[-38.715,-7.622],[-38.594,-7.754],[-38.409,-7.73],[-38.327,-7.694],[-38.275,-7.834],[-38.164,-7.78],[-38.077,-7.831],[-38.04,-7.748],[-37.958,-7.766],[-37.857,-7.652],[-37.746,-7.609],[-37.656,-7.523],[-37.528,-7.465],[-37.496,-7.365],[-37.386,-7.357],[-37.328,-7.288],[-37.234,-7.274],[-37.168,-7.332],[-37.014,-7.404],[-36.985,-7.476],[-37.118,-7.534],[-37.198,-7.635],[-37.139,-7.745],[-37.34,-7.98],[-37.16,-7.997],[-37.16,-8.17],[-37.082,-8.262],[-36.991,-8.303],[-36.862,-8.222],[-36.687,-8.156],[-36.629,-8.111],[-36.612,-7.949],[-36.572,-7.904],[-36.48,-7.925],[-36.43,-7.827],[-36.217,-7.764],[-36.003,-7.813],[-35.527,-7.645],[-35.495,-7.484],[-35.249,-7.375],[-35.07,-7.399],[-34.985,-7.462],[-34.961,-7.539],[-34.834,-7.549],[-34.809,-7.63],[-34.845,-7.816],[-34.828,-7.959],[-34.909,-8.155],[-34.961,-8.396],[-35.088,-8.691],[-35.086,-8.747],[-35.153,-8.914],[-35.409,-8.838],[-35.54,-8.821],[-35.748,-8.917],[-35.795,-8.848],[-35.911,-8.861],[-36.128,-8.958],[-36.121,-9.028],[-36.267,-9.102],[-36.265,-9.166],[-36.356,-9.218],[-36.432,-9.212],[-36.625,-9.332],[-36.762,-9.271],[-36.914,-9.296],[-36.937,-9.377],[-37.003,-9.353],[-37.091,-9.246],[-37.229,-9.227],[-37.247,-9.179],[-37.416,-9.007],[-37.525,-8.963],[-37.658,-8.993],[-37.755,-8.846],[-37.826,-8.889],[-37.853,-9],[-37.979,-9.148],[-38.092,-9.173],[-38.238,-9.33],[-38.326,-9.081],[-38.323,-8.99],[-38.403,-9.037],[-38.503,-8.981],[-38.47,-8.866],[-38.57,-8.83],[-38.635,-8.987],[-38.706,-8.862],[-38.807,-8.788],[-38.952,-8.804],[-39.033,-8.736],[-39.234,-8.705],[-39.286,-8.564],[-39.38,-8.533],[-39.614,-8.657],[-39.689,-8.661],[-39.673,-8.785],[-39.893,-8.829],[-39.874,-8.937],[-39.955,-9.046],[-40.066,-9.063],[-40.13,-9.11],[-40.239,-9.054],[-40.273,-9.082],[-40.309,-9.275],[-40.356,-9.377],[-40.418,-9.352],[-40.623,-9.483],[-40.767,-9.445],[-40.67,-9.186],[-40.821,-9.08],[-40.851,-8.954],[-40.921,-8.835],[-41.021,-8.844],[-41.103,-8.78],[-41.131,-8.704],[-41.278,-8.735],[-41.358,-8.708]]],[[[-32.431,-3.845],[-32.431,-3.845],[-32.431,-3.845],[-32.431,-3.845]]]]}}, +{"type":"Feature","properties":{"uf":"AL","name":"Alagoas"},"geometry":{"type":"Polygon","coordinates":[[[-38.238,-9.33],[-38.092,-9.173],[-37.979,-9.148],[-37.853,-9],[-37.826,-8.889],[-37.755,-8.846],[-37.658,-8.993],[-37.525,-8.963],[-37.416,-9.007],[-37.247,-9.179],[-37.229,-9.227],[-37.091,-9.246],[-37.003,-9.353],[-36.937,-9.377],[-36.914,-9.296],[-36.762,-9.271],[-36.625,-9.332],[-36.432,-9.212],[-36.356,-9.218],[-36.265,-9.166],[-36.267,-9.102],[-36.121,-9.028],[-36.128,-8.958],[-35.911,-8.861],[-35.795,-8.848],[-35.748,-8.917],[-35.54,-8.821],[-35.409,-8.838],[-35.153,-8.914],[-35.295,-9.171],[-35.396,-9.301],[-35.472,-9.358],[-35.708,-9.665],[-35.814,-9.731],[-36.045,-10.074],[-36.26,-10.264],[-36.396,-10.497],[-36.463,-10.408],[-36.562,-10.416],[-36.572,-10.316],[-36.632,-10.252],[-36.72,-10.265],[-36.918,-10.125],[-36.962,-9.996],[-37.065,-9.981],[-37.162,-9.894],[-37.245,-9.892],[-37.347,-9.791],[-37.572,-9.739],[-37.71,-9.63],[-37.786,-9.639],[-37.894,-9.539],[-38.003,-9.515],[-38.078,-9.441],[-38.157,-9.44],[-38.238,-9.33]]]}}, +{"type":"Feature","properties":{"uf":"SE","name":"Sergipe"},"geometry":{"type":"Polygon","coordinates":[[[-38.003,-9.515],[-37.894,-9.539],[-37.786,-9.639],[-37.71,-9.63],[-37.572,-9.739],[-37.347,-9.791],[-37.245,-9.892],[-37.162,-9.894],[-37.065,-9.981],[-36.962,-9.996],[-36.918,-10.125],[-36.72,-10.265],[-36.632,-10.252],[-36.572,-10.316],[-36.562,-10.416],[-36.463,-10.408],[-36.396,-10.497],[-36.613,-10.588],[-36.784,-10.688],[-36.953,-10.851],[-37.26,-11.29],[-37.341,-11.442],[-37.52,-11.549],[-37.632,-11.518],[-37.682,-11.562],[-37.8,-11.521],[-37.87,-11.435],[-37.936,-11.422],[-37.994,-11.343],[-37.981,-11.199],[-38.047,-11.182],[-38.102,-11.017],[-38.169,-10.99],[-38.236,-10.882],[-38.205,-10.711],[-38.042,-10.701],[-37.972,-10.757],[-37.804,-10.651],[-37.839,-10.381],[-37.743,-10.338],[-37.747,-10.238],[-37.802,-10.113],[-37.783,-10.044],[-37.909,-9.94],[-38.003,-9.905],[-38.001,-9.816],[-38.061,-9.588],[-38.003,-9.515]]]}}, +{"type":"Feature","properties":{"uf":"BA","name":"Bahia"},"geometry":{"type":"Polygon","coordinates":[[[-41.358,-8.708],[-41.278,-8.735],[-41.131,-8.704],[-41.103,-8.78],[-41.021,-8.844],[-40.921,-8.835],[-40.851,-8.954],[-40.821,-9.08],[-40.67,-9.186],[-40.767,-9.445],[-40.623,-9.483],[-40.418,-9.352],[-40.356,-9.377],[-40.309,-9.275],[-40.273,-9.082],[-40.239,-9.054],[-40.13,-9.11],[-40.066,-9.063],[-39.955,-9.046],[-39.874,-8.937],[-39.893,-8.829],[-39.673,-8.785],[-39.689,-8.661],[-39.614,-8.657],[-39.38,-8.533],[-39.286,-8.564],[-39.234,-8.705],[-39.033,-8.736],[-38.952,-8.804],[-38.807,-8.788],[-38.706,-8.862],[-38.635,-8.987],[-38.57,-8.83],[-38.47,-8.866],[-38.503,-8.981],[-38.403,-9.037],[-38.323,-8.99],[-38.326,-9.081],[-38.238,-9.33],[-38.157,-9.44],[-38.078,-9.441],[-38.003,-9.515],[-38.061,-9.588],[-38.001,-9.816],[-38.003,-9.905],[-37.909,-9.94],[-37.783,-10.044],[-37.802,-10.113],[-37.747,-10.238],[-37.743,-10.338],[-37.839,-10.381],[-37.804,-10.651],[-37.972,-10.757],[-38.042,-10.701],[-38.205,-10.711],[-38.236,-10.882],[-38.169,-10.99],[-38.102,-11.017],[-38.047,-11.182],[-37.981,-11.199],[-37.994,-11.343],[-37.936,-11.422],[-37.87,-11.435],[-37.8,-11.521],[-37.682,-11.562],[-37.632,-11.518],[-37.52,-11.549],[-37.341,-11.442],[-37.513,-11.741],[-37.61,-11.956],[-37.77,-12.239],[-38.001,-12.578],[-38.244,-12.852],[-38.353,-12.957],[-38.469,-13.015],[-38.643,-13.015],[-38.762,-13.119],[-38.919,-13.214],[-38.967,-13.321],[-38.892,-13.461],[-38.933,-13.546],[-38.898,-13.666],[-38.968,-13.672],[-39,-13.776],[-38.929,-13.907],[-39.001,-14.346],[-39.062,-14.625],[-39.062,-14.747],[-39.024,-14.805],[-38.998,-14.987],[-38.991,-15.288],[-38.952,-15.469],[-38.935,-15.665],[-38.853,-15.849],[-39.011,-16.246],[-39.009,-16.346],[-39.062,-16.436],[-39.104,-16.698],[-39.14,-16.753],[-39.117,-16.892],[-39.212,-17.161],[-39.218,-17.335],[-39.184,-17.615],[-39.137,-17.685],[-39.268,-17.863],[-39.407,-17.922],[-39.491,-17.998],[-39.635,-18.232],[-39.668,-18.337],[-40.222,-17.98],[-40.263,-17.922],[-40.174,-17.852],[-40.224,-17.734],[-40.273,-17.727],[-40.344,-17.616],[-40.418,-17.599],[-40.519,-17.447],[-40.597,-17.421],[-40.595,-17.324],[-40.548,-17.284],[-40.579,-17.15],[-40.543,-16.983],[-40.48,-16.877],[-40.282,-16.901],[-40.251,-16.831],[-40.324,-16.801],[-40.275,-16.573],[-40.173,-16.577],[-40.11,-16.449],[-40.066,-16.457],[-39.99,-16.312],[-39.918,-16.284],[-39.857,-16.114],[-39.915,-16],[-40.004,-16.002],[-40.075,-15.92],[-40.16,-15.908],[-40.236,-15.803],[-40.425,-15.806],[-40.45,-15.762],[-40.561,-15.804],[-40.701,-15.667],[-40.817,-15.648],[-40.903,-15.692],[-40.963,-15.648],[-41.006,-15.714],[-41.142,-15.772],[-41.215,-15.737],[-41.33,-15.743],[-41.356,-15.5],[-41.802,-15.1],[-41.953,-15.176],[-42.096,-15.182],[-42.155,-15.098],[-42.266,-15.125],[-42.443,-15.061],[-42.586,-14.932],[-42.649,-14.93],[-42.795,-14.837],[-42.953,-14.708],[-43.175,-14.651],[-43.424,-14.72],[-43.531,-14.815],[-43.615,-14.76],[-43.847,-14.672],[-43.881,-14.562],[-43.783,-14.339],[-44.107,-14.259],[-44.341,-14.249],[-44.488,-14.329],[-44.566,-14.341],[-44.811,-14.503],[-44.869,-14.593],[-45.048,-14.69],[-45.096,-14.753],[-45.166,-14.735],[-45.49,-14.961],[-45.536,-14.938],[-45.74,-15.12],[-45.872,-15.159],[-45.961,-15.144],[-46.058,-15.263],[-46.116,-15.205],[-46.048,-15.164],[-45.975,-15.037],[-45.966,-14.966],[-46.039,-14.875],[-46.003,-14.796],[-45.981,-14.532],[-46.019,-14.472],[-45.907,-14.355],[-46.061,-14.195],[-46.187,-14.153],[-46.221,-14.107],[-46.22,-13.975],[-46.264,-13.947],[-46.232,-13.849],[-46.277,-13.791],[-46.223,-13.765],[-46.256,-13.684],[-46.163,-13.604],[-46.232,-13.583],[-46.232,-13.419],[-46.135,-13.375],[-46.068,-13.295],[-46.103,-13.257],[-46.292,-13.317],[-46.3,-13.128],[-46.275,-13.02],[-46.125,-12.96],[-46.113,-12.918],[-46.308,-12.942],[-46.268,-12.716],[-46.307,-12.637],[-46.266,-12.499],[-46.3,-12.364],[-46.37,-12.347],[-46.388,-12.249],[-46.371,-12.1],[-46.422,-12.029],[-46.248,-11.919],[-46.38,-11.867],[-46.374,-11.768],[-46.308,-11.687],[-46.341,-11.61],[-46.244,-11.605],[-46.155,-11.65],[-46.081,-11.624],[-46.209,-11.585],[-46.35,-11.506],[-46.439,-11.521],[-46.524,-11.464],[-46.576,-11.342],[-46.553,-11.265],[-46.342,-10.939],[-46.267,-10.935],[-46.26,-10.812],[-46.206,-10.798],[-46.128,-10.621],[-46.061,-10.6],[-45.82,-10.456],[-45.798,-10.323],[-45.699,-10.259],[-45.723,-10.155],[-45.603,-10.108],[-45.522,-10.277],[-45.43,-10.359],[-45.396,-10.445],[-45.447,-10.509],[-45.437,-10.616],[-45.358,-10.732],[-45.246,-10.822],[-45.082,-10.839],[-44.931,-10.929],[-44.808,-10.866],[-44.788,-10.808],[-44.667,-10.759],[-44.669,-10.687],[-44.578,-10.627],[-44.5,-10.65],[-44.344,-10.55],[-44.267,-10.623],[-44.139,-10.64],[-44.072,-10.58],[-44.028,-10.412],[-43.937,-10.436],[-43.837,-10.302],[-43.759,-10.075],[-43.699,-10.078],[-43.665,-9.991],[-43.709,-9.913],[-43.652,-9.844],[-43.785,-9.762],[-43.853,-9.562],[-43.782,-9.453],[-43.689,-9.42],[-43.579,-9.32],[-43.438,-9.266],[-43.285,-9.42],[-43.194,-9.421],[-43.122,-9.373],[-42.959,-9.428],[-42.944,-9.521],[-42.828,-9.56],[-42.77,-9.619],[-42.716,-9.554],[-42.59,-9.498],[-42.493,-9.495],[-42.316,-9.317],[-41.972,-9.249],[-41.922,-9.279],[-41.838,-9.242],[-41.731,-9.028],[-41.606,-8.957],[-41.546,-8.962],[-41.488,-8.844],[-41.358,-8.708]]]}}, +{"type":"Feature","properties":{"uf":"MG","name":"Minas Gerais"},"geometry":{"type":"Polygon","coordinates":[[[-50.935,-19.467],[-50.849,-19.498],[-50.875,-19.423],[-50.817,-19.289],[-50.674,-19.136],[-50.586,-19.139],[-50.495,-19.013],[-50.512,-18.952],[-50.37,-18.804],[-50.314,-18.701],[-50.164,-18.664],[-50.08,-18.672],[-50.029,-18.601],[-49.795,-18.644],[-49.5,-18.491],[-49.406,-18.645],[-49.293,-18.564],[-49.126,-18.384],[-49.079,-18.417],[-48.918,-18.306],[-48.832,-18.346],[-48.561,-18.324],[-48.469,-18.371],[-48.318,-18.367],[-48.272,-18.329],[-48.094,-18.431],[-48.047,-18.418],[-47.955,-18.5],[-47.83,-18.411],[-47.769,-18.418],[-47.61,-18.316],[-47.567,-18.211],[-47.43,-18.165],[-47.283,-18.041],[-47.357,-17.894],[-47.355,-17.815],[-47.265,-17.611],[-47.325,-17.524],[-47.467,-17.534],[-47.537,-17.457],[-47.511,-17.326],[-47.438,-17.318],[-47.348,-17.176],[-47.147,-17.032],[-47.129,-16.975],[-47.208,-16.875],[-47.252,-16.664],[-47.431,-16.549],[-47.459,-16.504],[-47.427,-16.399],[-47.322,-16.231],[-47.352,-16.134],[-47.308,-16.05],[-47.31,-16.036],[-47.226,-16.016],[-47.137,-15.927],[-47.107,-15.958],[-46.825,-15.886],[-46.813,-15.787],[-46.855,-15.618],[-46.946,-15.563],[-46.93,-15.443],[-46.836,-15.326],[-46.937,-15.205],[-46.888,-15.112],[-46.925,-15.057],[-46.857,-15.01],[-46.625,-15.089],[-46.503,-15.051],[-46.531,-15.005],[-46.522,-14.851],[-46.564,-14.783],[-46.475,-14.705],[-46.322,-14.815],[-46.319,-14.9],[-46.172,-14.947],[-46.088,-14.936],[-46.039,-14.875],[-45.966,-14.966],[-45.975,-15.037],[-46.048,-15.164],[-46.116,-15.205],[-46.058,-15.263],[-45.961,-15.144],[-45.872,-15.159],[-45.74,-15.12],[-45.536,-14.938],[-45.49,-14.961],[-45.166,-14.735],[-45.096,-14.753],[-45.048,-14.69],[-44.869,-14.593],[-44.811,-14.503],[-44.566,-14.341],[-44.488,-14.329],[-44.341,-14.249],[-44.107,-14.259],[-43.783,-14.339],[-43.881,-14.562],[-43.847,-14.672],[-43.615,-14.76],[-43.531,-14.815],[-43.424,-14.72],[-43.175,-14.651],[-42.953,-14.708],[-42.795,-14.837],[-42.649,-14.93],[-42.586,-14.932],[-42.443,-15.061],[-42.266,-15.125],[-42.155,-15.098],[-42.096,-15.182],[-41.953,-15.176],[-41.802,-15.1],[-41.356,-15.5],[-41.33,-15.743],[-41.215,-15.737],[-41.142,-15.772],[-41.006,-15.714],[-40.963,-15.648],[-40.903,-15.692],[-40.817,-15.648],[-40.701,-15.667],[-40.561,-15.804],[-40.45,-15.762],[-40.425,-15.806],[-40.236,-15.803],[-40.16,-15.908],[-40.075,-15.92],[-40.004,-16.002],[-39.915,-16],[-39.857,-16.114],[-39.918,-16.284],[-39.99,-16.312],[-40.066,-16.457],[-40.11,-16.449],[-40.173,-16.577],[-40.275,-16.573],[-40.324,-16.801],[-40.251,-16.831],[-40.282,-16.901],[-40.48,-16.877],[-40.543,-16.983],[-40.579,-17.15],[-40.548,-17.284],[-40.595,-17.324],[-40.597,-17.421],[-40.519,-17.447],[-40.418,-17.599],[-40.344,-17.616],[-40.273,-17.727],[-40.224,-17.734],[-40.174,-17.852],[-40.263,-17.922],[-40.222,-17.98],[-40.345,-17.924],[-40.463,-17.928],[-40.517,-17.894],[-40.704,-18.024],[-40.798,-17.957],[-40.902,-17.986],[-40.773,-18.108],[-40.771,-18.156],[-40.909,-18.115],[-41.052,-18.165],[-41.159,-18.308],[-41.144,-18.405],[-41.182,-18.44],[-41.023,-18.457],[-41.051,-18.634],[-40.941,-18.691],[-40.917,-18.815],[-41.11,-18.839],[-41.232,-18.797],[-41.243,-18.854],[-41.166,-18.858],[-41.032,-18.991],[-41.072,-19.026],[-40.964,-19.122],[-40.924,-19.302],[-40.945,-19.461],[-41.041,-19.516],[-41.037,-19.57],[-41.168,-19.672],[-41.187,-19.891],[-41.298,-19.938],[-41.382,-20.189],[-41.416,-20.207],[-41.757,-20.207],[-41.782,-20.294],[-41.859,-20.373],[-41.803,-20.422],[-41.813,-20.653],[-41.875,-20.766],[-41.928,-20.794],[-41.979,-20.935],[-42.138,-20.96],[-42.08,-21.03],[-42.208,-21.179],[-42.19,-21.25],[-42.292,-21.459],[-42.257,-21.482],[-42.365,-21.646],[-42.267,-21.714],[-42.378,-21.748],[-42.788,-21.93],[-42.881,-21.959],[-43.075,-22.093],[-43.142,-22.104],[-43.131,-22.029],[-43.347,-22.004],[-43.464,-22.073],[-43.566,-22.087],[-43.776,-22.066],[-43.977,-22.146],[-44.101,-22.174],[-44.26,-22.268],[-44.433,-22.251],[-44.544,-22.332],[-44.662,-22.38],[-44.73,-22.361],[-44.809,-22.406],[-44.966,-22.475],[-45.124,-22.497],[-45.269,-22.611],[-45.4,-22.654],[-45.48,-22.59],[-45.58,-22.653],[-45.576,-22.602],[-45.812,-22.699],[-45.712,-22.77],[-45.768,-22.836],[-45.909,-22.83],[-46.008,-22.889],[-46.139,-22.923],[-46.141,-22.868],[-46.376,-22.877],[-46.333,-22.766],[-46.453,-22.728],[-46.469,-22.673],[-46.393,-22.663],[-46.415,-22.558],[-46.542,-22.494],[-46.555,-22.447],[-46.666,-22.415],[-46.723,-22.307],[-46.672,-22.178],[-46.613,-22.15],[-46.685,-22.037],[-46.618,-21.995],[-46.691,-21.838],[-46.631,-21.769],[-46.614,-21.676],[-46.565,-21.679],[-46.512,-21.565],[-46.519,-21.449],[-46.616,-21.43],[-46.648,-21.38],[-46.765,-21.36],[-46.933,-21.425],[-47.013,-21.419],[-46.997,-21.357],[-47.118,-21.186],[-47.144,-20.982],[-47.24,-20.885],[-47.169,-20.703],[-47.097,-20.644],[-47.154,-20.52],[-47.291,-20.45],[-47.298,-20.348],[-47.231,-20.219],[-47.262,-20.16],[-47.44,-20.049],[-47.463,-19.966],[-47.584,-19.997],[-47.64,-20.047],[-47.713,-19.978],[-47.851,-19.99],[-47.899,-20.126],[-47.981,-20.036],[-48.02,-20.124],[-48.105,-20.146],[-48.228,-20.028],[-48.219,-20.128],[-48.406,-20.113],[-48.593,-20.136],[-48.647,-20.167],[-48.822,-20.161],[-48.887,-20.275],[-48.867,-20.399],[-48.963,-20.403],[-48.986,-20.171],[-49.066,-20.153],[-49.121,-20.27],[-49.225,-20.305],[-49.299,-20.167],[-49.297,-19.96],[-49.454,-19.978],[-49.514,-19.914],[-49.854,-19.946],[-50.044,-19.916],[-50.106,-19.874],[-50.337,-19.869],[-50.469,-19.78],[-50.578,-19.816],[-50.658,-19.907],[-50.784,-19.937],[-50.969,-20.036],[-51,-20.085],[-51.038,-19.692],[-50.988,-19.589],[-50.924,-19.581],[-50.935,-19.467]]]}}, +{"type":"Feature","properties":{"uf":"ES","name":"Espírito Santo"},"geometry":{"type":"Polygon","coordinates":[[[-41.875,-20.766],[-41.813,-20.653],[-41.803,-20.422],[-41.859,-20.373],[-41.782,-20.294],[-41.757,-20.207],[-41.416,-20.207],[-41.382,-20.189],[-41.298,-19.938],[-41.187,-19.891],[-41.168,-19.672],[-41.037,-19.57],[-41.041,-19.516],[-40.945,-19.461],[-40.924,-19.302],[-40.964,-19.122],[-41.072,-19.026],[-41.032,-18.991],[-41.166,-18.858],[-41.243,-18.854],[-41.232,-18.797],[-41.11,-18.839],[-40.917,-18.815],[-40.941,-18.691],[-41.051,-18.634],[-41.023,-18.457],[-41.182,-18.44],[-41.144,-18.405],[-41.159,-18.308],[-41.052,-18.165],[-40.909,-18.115],[-40.771,-18.156],[-40.773,-18.108],[-40.902,-17.986],[-40.798,-17.957],[-40.704,-18.024],[-40.517,-17.894],[-40.463,-17.928],[-40.345,-17.924],[-40.222,-17.98],[-39.668,-18.337],[-39.728,-18.518],[-39.746,-18.706],[-39.743,-18.936],[-39.689,-19.305],[-39.73,-19.468],[-39.811,-19.65],[-39.912,-19.687],[-40.055,-19.815],[-40.159,-20.036],[-40.198,-20.216],[-40.274,-20.32],[-40.431,-20.637],[-40.464,-20.624],[-40.583,-20.801],[-40.759,-20.866],[-40.858,-21.128],[-40.926,-21.19],[-40.961,-21.301],[-41.089,-21.22],[-41.19,-21.249],[-41.388,-21.199],[-41.435,-21.216],[-41.736,-21.103],[-41.71,-20.991],[-41.74,-20.817],[-41.875,-20.766]]]}}, +{"type":"Feature","properties":{"uf":"RJ","name":"Rio de Janeiro"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-44.724,-23.368],[-44.889,-23.227],[-44.824,-23.163],[-44.792,-22.982],[-44.555,-22.888],[-44.467,-22.885],[-44.268,-22.829],[-44.258,-22.767],[-44.174,-22.702],[-44.184,-22.637],[-44.382,-22.573],[-44.511,-22.64],[-44.646,-22.604],[-44.755,-22.415],[-44.809,-22.406],[-44.73,-22.361],[-44.662,-22.38],[-44.544,-22.332],[-44.433,-22.251],[-44.26,-22.268],[-44.101,-22.174],[-43.977,-22.146],[-43.776,-22.066],[-43.566,-22.087],[-43.464,-22.073],[-43.347,-22.004],[-43.131,-22.029],[-43.142,-22.104],[-43.075,-22.093],[-42.881,-21.959],[-42.788,-21.93],[-42.378,-21.748],[-42.267,-21.714],[-42.365,-21.646],[-42.257,-21.482],[-42.292,-21.459],[-42.19,-21.25],[-42.208,-21.179],[-42.08,-21.03],[-42.138,-20.96],[-41.979,-20.935],[-41.928,-20.794],[-41.875,-20.766],[-41.74,-20.817],[-41.71,-20.991],[-41.736,-21.103],[-41.435,-21.216],[-41.388,-21.199],[-41.19,-21.249],[-41.089,-21.22],[-40.961,-21.301],[-40.961,-21.36],[-41.073,-21.526],[-41.013,-21.623],[-41.025,-21.719],[-40.982,-21.911],[-41.004,-22.021],[-41.216,-22.137],[-41.451,-22.202],[-41.689,-22.3],[-41.773,-22.364],[-41.933,-22.537],[-41.997,-22.668],[-41.908,-22.778],[-42.02,-22.889],[-42.038,-22.967],[-42.281,-22.939],[-42.579,-22.933],[-43.014,-22.977],[-43.11,-22.954],[-43.134,-22.881],[-43.027,-22.743],[-43.081,-22.68],[-43.277,-22.78],[-43.15,-22.951],[-43.303,-23.016],[-43.42,-23.018],[-43.549,-23.061],[-43.796,-22.917],[-44.074,-22.952],[-44.113,-23.023],[-44.201,-23.038],[-44.303,-23.002],[-44.338,-22.923],[-44.44,-23.003],[-44.684,-23.072],[-44.695,-23.233],[-44.587,-23.232],[-44.527,-23.273],[-44.591,-23.362],[-44.639,-23.331],[-44.724,-23.368]]],[[[-44.35,-23.215],[-44.306,-23.121],[-44.216,-23.09],[-44.094,-23.175],[-44.35,-23.215]]],[[[-43.668,-23.053],[-43.954,-23.087],[-43.973,-23.045],[-43.668,-23.053]]],[[[-43.175,-22.801],[-43.175,-22.801],[-43.175,-22.801],[-43.175,-22.801]]]]}}, +{"type":"Feature","properties":{"uf":"SP","name":"São Paulo"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-51,-20.085],[-50.969,-20.036],[-50.784,-19.937],[-50.658,-19.907],[-50.578,-19.816],[-50.469,-19.78],[-50.337,-19.869],[-50.106,-19.874],[-50.044,-19.916],[-49.854,-19.946],[-49.514,-19.914],[-49.454,-19.978],[-49.297,-19.96],[-49.299,-20.167],[-49.225,-20.305],[-49.121,-20.27],[-49.066,-20.153],[-48.986,-20.171],[-48.963,-20.403],[-48.867,-20.399],[-48.887,-20.275],[-48.822,-20.161],[-48.647,-20.167],[-48.593,-20.136],[-48.406,-20.113],[-48.219,-20.128],[-48.228,-20.028],[-48.105,-20.146],[-48.02,-20.124],[-47.981,-20.036],[-47.899,-20.126],[-47.851,-19.99],[-47.713,-19.978],[-47.64,-20.047],[-47.584,-19.997],[-47.463,-19.966],[-47.44,-20.049],[-47.262,-20.16],[-47.231,-20.219],[-47.298,-20.348],[-47.291,-20.45],[-47.154,-20.52],[-47.097,-20.644],[-47.169,-20.703],[-47.24,-20.885],[-47.144,-20.982],[-47.118,-21.186],[-46.997,-21.357],[-47.013,-21.419],[-46.933,-21.425],[-46.765,-21.36],[-46.648,-21.38],[-46.616,-21.43],[-46.519,-21.449],[-46.512,-21.565],[-46.565,-21.679],[-46.614,-21.676],[-46.631,-21.769],[-46.691,-21.838],[-46.618,-21.995],[-46.685,-22.037],[-46.613,-22.15],[-46.672,-22.178],[-46.723,-22.307],[-46.666,-22.415],[-46.555,-22.447],[-46.542,-22.494],[-46.415,-22.558],[-46.393,-22.663],[-46.469,-22.673],[-46.453,-22.728],[-46.333,-22.766],[-46.376,-22.877],[-46.141,-22.868],[-46.139,-22.923],[-46.008,-22.889],[-45.909,-22.83],[-45.768,-22.836],[-45.712,-22.77],[-45.812,-22.699],[-45.576,-22.602],[-45.58,-22.653],[-45.48,-22.59],[-45.4,-22.654],[-45.269,-22.611],[-45.124,-22.497],[-44.966,-22.475],[-44.809,-22.406],[-44.755,-22.415],[-44.646,-22.604],[-44.511,-22.64],[-44.382,-22.573],[-44.184,-22.637],[-44.174,-22.702],[-44.258,-22.767],[-44.268,-22.829],[-44.467,-22.885],[-44.555,-22.888],[-44.792,-22.982],[-44.824,-23.163],[-44.889,-23.227],[-44.724,-23.368],[-44.84,-23.388],[-44.906,-23.334],[-45.054,-23.417],[-45.071,-23.497],[-45.174,-23.496],[-45.244,-23.594],[-45.311,-23.576],[-45.407,-23.624],[-45.427,-23.708],[-45.396,-23.808],[-45.502,-23.841],[-45.555,-23.795],[-45.842,-23.758],[-46.089,-23.822],[-46.198,-23.995],[-46.32,-24.024],[-46.355,-23.971],[-46.845,-24.218],[-46.994,-24.325],[-47.004,-24.409],[-47.245,-24.574],[-47.561,-24.758],[-47.731,-24.881],[-47.909,-25.053],[-47.924,-25.16],[-48.096,-25.309],[-48.023,-25.231],[-48.113,-25.251],[-48.182,-25.205],[-48.158,-25.15],[-48.24,-24.991],[-48.351,-25.036],[-48.412,-24.98],[-48.53,-25.101],[-48.598,-25.003],[-48.567,-24.972],[-48.556,-24.806],[-48.502,-24.746],[-48.617,-24.669],[-48.675,-24.702],[-48.84,-24.665],[-49.01,-24.654],[-49.208,-24.701],[-49.312,-24.663],[-49.316,-24.555],[-49.245,-24.465],[-49.201,-24.345],[-49.287,-24.303],[-49.351,-24.221],[-49.337,-24.138],[-49.409,-24.107],[-49.522,-23.917],[-49.587,-23.889],[-49.549,-23.704],[-49.621,-23.611],[-49.621,-23.493],[-49.582,-23.429],[-49.638,-23.349],[-49.627,-23.282],[-49.726,-23.109],[-49.912,-23.051],[-49.986,-22.897],[-50.133,-22.94],[-50.426,-22.944],[-50.682,-22.906],[-50.71,-22.953],[-50.793,-22.905],[-50.895,-22.794],[-51.004,-22.794],[-51.214,-22.724],[-51.265,-22.668],[-51.446,-22.653],[-51.56,-22.697],[-51.628,-22.658],[-51.718,-22.669],[-51.772,-22.614],[-51.856,-22.632],[-51.94,-22.567],[-52.109,-22.516],[-52.157,-22.645],[-52.223,-22.675],[-52.446,-22.608],[-52.499,-22.634],[-52.589,-22.566],[-52.697,-22.627],[-52.972,-22.57],[-53.105,-22.622],[-52.999,-22.493],[-52.855,-22.439],[-52.798,-22.378],[-52.488,-22.217],[-52.339,-22.048],[-52.319,-21.972],[-52.104,-21.746],[-52.049,-21.643],[-52.102,-21.57],[-52.057,-21.504],[-52,-21.517],[-51.929,-21.456],[-51.861,-21.337],[-51.865,-21.13],[-51.79,-21.102],[-51.714,-20.971],[-51.624,-20.944],[-51.635,-20.755],[-51.575,-20.623],[-51.5,-20.568],[-51.343,-20.356],[-51.161,-20.305],[-51.069,-20.25],[-51,-20.085]]],[[[-45.29,-23.869],[-45.238,-23.909],[-45.444,-23.934],[-45.46,-23.89],[-45.366,-23.809],[-45.34,-23.727],[-45.233,-23.785],[-45.29,-23.869]]]]}}, +{"type":"Feature","properties":{"uf":"PR","name":"Paraná"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.105,-22.622],[-52.972,-22.57],[-52.697,-22.627],[-52.589,-22.566],[-52.499,-22.634],[-52.446,-22.608],[-52.223,-22.675],[-52.157,-22.645],[-52.109,-22.516],[-51.94,-22.567],[-51.856,-22.632],[-51.772,-22.614],[-51.718,-22.669],[-51.628,-22.658],[-51.56,-22.697],[-51.446,-22.653],[-51.265,-22.668],[-51.214,-22.724],[-51.004,-22.794],[-50.895,-22.794],[-50.793,-22.905],[-50.71,-22.953],[-50.682,-22.906],[-50.426,-22.944],[-50.133,-22.94],[-49.986,-22.897],[-49.912,-23.051],[-49.726,-23.109],[-49.627,-23.282],[-49.638,-23.349],[-49.582,-23.429],[-49.621,-23.493],[-49.621,-23.611],[-49.549,-23.704],[-49.587,-23.889],[-49.522,-23.917],[-49.409,-24.107],[-49.337,-24.138],[-49.351,-24.221],[-49.287,-24.303],[-49.201,-24.345],[-49.245,-24.465],[-49.316,-24.555],[-49.312,-24.663],[-49.208,-24.701],[-49.01,-24.654],[-48.84,-24.665],[-48.675,-24.702],[-48.617,-24.669],[-48.502,-24.746],[-48.556,-24.806],[-48.567,-24.972],[-48.598,-25.003],[-48.53,-25.101],[-48.412,-24.98],[-48.351,-25.036],[-48.24,-24.991],[-48.158,-25.15],[-48.182,-25.205],[-48.113,-25.251],[-48.023,-25.231],[-48.096,-25.309],[-48.32,-25.587],[-48.404,-25.614],[-48.55,-25.852],[-48.595,-25.977],[-48.96,-25.981],[-49.167,-26.001],[-49.3,-26.111],[-49.603,-26.227],[-49.824,-26.094],[-49.869,-26.033],[-49.993,-26.011],[-50.19,-26.07],[-50.247,-26.03],[-50.332,-26.085],[-50.461,-26.026],[-50.628,-26.063],[-50.73,-26.203],[-50.9,-26.289],[-50.909,-26.249],[-51.077,-26.231],[-51.203,-26.298],[-51.293,-26.434],[-51.228,-26.555],[-51.239,-26.628],[-51.391,-26.663],[-51.411,-26.717],[-51.495,-26.587],[-51.658,-26.565],[-51.878,-26.598],[-52.009,-26.567],[-52.112,-26.475],[-52.23,-26.467],[-52.523,-26.4],[-52.596,-26.416],[-52.68,-26.353],[-52.993,-26.348],[-53.093,-26.392],[-53.304,-26.258],[-53.376,-26.242],[-53.496,-26.303],[-53.639,-26.251],[-53.741,-26.118],[-53.734,-26.043],[-53.842,-25.932],[-53.822,-25.799],[-53.878,-25.707],[-53.862,-25.659],[-53.961,-25.629],[-54.011,-25.566],[-54.12,-25.553],[-54.116,-25.498],[-54.203,-25.58],[-54.296,-25.558],[-54.425,-25.659],[-54.593,-25.592],[-54.619,-25.451],[-54.491,-25.278],[-54.425,-25.153],[-54.459,-25.102],[-54.39,-24.777],[-54.332,-24.694],[-54.326,-24.465],[-54.262,-24.375],[-54.346,-24.157],[-54.286,-24.068],[-54.102,-23.952],[-54.084,-23.805],[-53.987,-23.467],[-53.762,-23.359],[-53.637,-23.125],[-53.634,-23.003],[-53.547,-22.89],[-53.327,-22.765],[-53.185,-22.719],[-53.105,-22.622]]],[[[-53.654,-25.351],[-53.654,-25.351],[-53.654,-25.351],[-53.654,-25.351]]],[[[-53.378,-23.241],[-53.378,-23.241],[-53.378,-23.241],[-53.378,-23.241]]]]}}, +{"type":"Feature","properties":{"uf":"SC","name":"Santa Catarina"},"geometry":{"type":"Polygon","coordinates":[[[-53.639,-26.251],[-53.496,-26.303],[-53.376,-26.242],[-53.304,-26.258],[-53.093,-26.392],[-52.993,-26.348],[-52.68,-26.353],[-52.596,-26.416],[-52.523,-26.4],[-52.23,-26.467],[-52.112,-26.475],[-52.009,-26.567],[-51.878,-26.598],[-51.658,-26.565],[-51.495,-26.587],[-51.411,-26.717],[-51.391,-26.663],[-51.239,-26.628],[-51.228,-26.555],[-51.293,-26.434],[-51.203,-26.298],[-51.077,-26.231],[-50.909,-26.249],[-50.9,-26.289],[-50.73,-26.203],[-50.628,-26.063],[-50.461,-26.026],[-50.332,-26.085],[-50.247,-26.03],[-50.19,-26.07],[-49.993,-26.011],[-49.869,-26.033],[-49.824,-26.094],[-49.603,-26.227],[-49.3,-26.111],[-49.167,-26.001],[-48.96,-25.981],[-48.595,-25.977],[-48.598,-26.129],[-48.504,-26.237],[-48.651,-26.547],[-48.688,-26.671],[-48.62,-26.789],[-48.642,-26.913],[-48.571,-27.009],[-48.614,-27.1],[-48.553,-27.157],[-48.482,-27.153],[-48.603,-27.218],[-48.595,-27.316],[-48.54,-27.32],[-48.526,-27.408],[-48.417,-27.381],[-48.374,-27.472],[-48.507,-27.744],[-48.498,-27.795],[-48.596,-27.851],[-48.675,-28.256],[-48.765,-28.46],[-48.746,-28.505],[-48.828,-28.607],[-48.975,-28.671],[-49.188,-28.802],[-49.376,-28.956],[-49.516,-29.096],[-49.713,-29.326],[-49.857,-29.233],[-49.958,-29.199],[-50.145,-29.27],[-50.018,-29.163],[-49.958,-29.068],[-49.961,-28.772],[-49.757,-28.616],[-49.704,-28.63],[-49.748,-28.494],[-49.839,-28.496],[-49.971,-28.44],[-50.097,-28.484],[-50.242,-28.432],[-50.544,-28.427],[-50.749,-28.248],[-50.794,-28.139],[-50.859,-28.14],[-50.924,-27.972],[-51.001,-27.963],[-51.053,-27.869],[-51.135,-27.804],[-51.272,-27.752],[-51.315,-27.675],[-51.419,-27.655],[-51.483,-27.563],[-51.578,-27.577],[-51.633,-27.489],[-51.701,-27.48],[-51.837,-27.522],[-51.902,-27.491],[-51.983,-27.375],[-52.107,-27.343],[-52.126,-27.302],[-52.3,-27.319],[-52.48,-27.235],[-52.618,-27.266],[-52.851,-27.17],[-53,-27.207],[-53.018,-27.093],[-53.071,-27.157],[-53.322,-27.21],[-53.296,-27.132],[-53.381,-27.094],[-53.631,-27.213],[-53.686,-27.164],[-53.837,-27.168],[-53.799,-27.147],[-53.797,-27.039],[-53.672,-26.943],[-53.677,-26.844],[-53.74,-26.742],[-53.707,-26.395],[-53.639,-26.251]]]}}, +{"type":"Feature","properties":{"uf":"RS","name":"Rio Grande do Sul"},"geometry":{"type":"Polygon","coordinates":[[[-49.713,-29.326],[-49.934,-29.625],[-50.119,-29.976],[-50.306,-30.447],[-50.374,-30.563],[-50.767,-31.11],[-51.267,-31.579],[-51.502,-31.743],[-51.748,-31.87],[-51.921,-31.988],[-52.077,-32.143],[-52.005,-31.951],[-52.098,-31.836],[-52.008,-31.818],[-51.923,-31.863],[-51.811,-31.845],[-51.802,-31.788],[-51.659,-31.767],[-51.428,-31.492],[-51.361,-31.532],[-51.237,-31.457],[-51.157,-31.285],[-51.177,-31.08],[-51.104,-31.099],[-50.955,-31.003],[-50.968,-30.898],[-50.882,-30.892],[-50.754,-30.819],[-50.69,-30.707],[-50.679,-30.609],[-50.706,-30.348],[-50.574,-30.481],[-50.543,-30.252],[-50.659,-30.2],[-50.673,-30.297],[-50.782,-30.285],[-50.797,-30.338],[-50.915,-30.326],[-50.93,-30.436],[-51.047,-30.381],[-51.022,-30.284],[-51.128,-30.248],[-51.259,-30.123],[-51.234,-30.048],[-51.301,-30.054],[-51.328,-30.226],[-51.295,-30.303],[-51.178,-30.386],[-51.223,-30.42],[-51.319,-30.646],[-51.381,-30.643],[-51.404,-30.783],[-51.39,-30.88],[-51.498,-30.918],[-51.446,-31.089],[-51.602,-31.132],[-51.639,-31.271],[-51.919,-31.311],[-51.994,-31.414],[-52.031,-31.692],[-52.152,-31.699],[-52.226,-31.752],[-52.22,-31.873],[-52.139,-31.918],[-52.242,-31.992],[-52.113,-32.009],[-52.156,-32.096],[-52.099,-32.083],[-52.097,-32.162],[-52.234,-32.26],[-52.341,-32.425],[-52.423,-32.629],[-52.495,-32.867],[-52.624,-33.104],[-52.777,-33.283],[-53.156,-33.59],[-53.37,-33.744],[-53.523,-33.689],[-53.511,-33.544],[-53.466,-33.558],[-53.425,-33.438],[-53.469,-33.255],[-53.432,-33.162],[-53.337,-33.083],[-53.277,-33.109],[-53.174,-33.003],[-53.147,-32.819],[-53.002,-32.797],[-52.908,-32.888],[-52.832,-32.915],[-52.73,-32.847],[-52.621,-32.638],[-52.602,-32.461],[-52.688,-32.319],[-52.623,-32.146],[-52.732,-32.16],[-52.821,-32.334],[-52.724,-32.382],[-52.802,-32.447],[-52.983,-32.504],[-52.997,-32.591],[-53.084,-32.657],[-53.289,-32.621],[-53.437,-32.548],[-53.644,-32.385],[-53.643,-32.302],[-53.723,-32.174],[-53.748,-32.078],[-53.833,-32.055],[-53.963,-31.922],[-54.081,-31.93],[-54.455,-31.653],[-54.473,-31.57],[-54.587,-31.456],[-54.739,-31.426],[-54.836,-31.442],[-54.932,-31.385],[-55.002,-31.269],[-55.074,-31.332],[-55.247,-31.252],[-55.371,-31.023],[-55.437,-31.005],[-55.579,-30.84],[-55.642,-30.912],[-55.871,-31.072],[-56.005,-31.082],[-56.024,-30.786],[-56.15,-30.705],[-56.188,-30.605],[-56.386,-30.496],[-56.462,-30.384],[-56.491,-30.398],[-56.658,-30.201],[-56.696,-30.205],[-56.85,-30.089],[-57.078,-30.091],[-57.204,-30.285],[-57.311,-30.258],[-57.419,-30.303],[-57.568,-30.252],[-57.594,-30.179],[-57.465,-30.11],[-57.328,-29.972],[-57.33,-29.888],[-57.235,-29.781],[-57.132,-29.77],[-56.971,-29.643],[-56.902,-29.534],[-56.822,-29.49],[-56.759,-29.371],[-56.664,-29.295],[-56.589,-29.12],[-56.43,-29.079],[-56.379,-28.948],[-56.3,-28.896],[-56.3,-28.808],[-56.194,-28.775],[-56.002,-28.578],[-56.023,-28.523],[-55.884,-28.479],[-55.871,-28.357],[-55.757,-28.369],[-55.692,-28.416],[-55.669,-28.341],[-55.771,-28.241],[-55.564,-28.163],[-55.488,-28.076],[-55.375,-28.034],[-55.387,-27.986],[-55.278,-27.933],[-55.203,-27.858],[-55.025,-27.835],[-55.083,-27.797],[-54.949,-27.779],[-54.903,-27.636],[-54.785,-27.579],[-54.632,-27.546],[-54.573,-27.454],[-54.525,-27.506],[-54.399,-27.412],[-54.284,-27.448],[-54.193,-27.308],[-54.082,-27.299],[-53.947,-27.151],[-53.837,-27.168],[-53.686,-27.164],[-53.631,-27.213],[-53.381,-27.094],[-53.296,-27.132],[-53.322,-27.21],[-53.071,-27.157],[-53.018,-27.093],[-53,-27.207],[-52.851,-27.17],[-52.618,-27.266],[-52.48,-27.235],[-52.3,-27.319],[-52.126,-27.302],[-52.107,-27.343],[-51.983,-27.375],[-51.902,-27.491],[-51.837,-27.522],[-51.701,-27.48],[-51.633,-27.489],[-51.578,-27.577],[-51.483,-27.563],[-51.419,-27.655],[-51.315,-27.675],[-51.272,-27.752],[-51.135,-27.804],[-51.053,-27.869],[-51.001,-27.963],[-50.924,-27.972],[-50.859,-28.14],[-50.794,-28.139],[-50.749,-28.248],[-50.544,-28.427],[-50.242,-28.432],[-50.097,-28.484],[-49.971,-28.44],[-49.839,-28.496],[-49.748,-28.494],[-49.704,-28.63],[-49.757,-28.616],[-49.961,-28.772],[-49.958,-29.068],[-50.018,-29.163],[-50.145,-29.27],[-49.958,-29.199],[-49.857,-29.233],[-49.713,-29.326]]]}}, +{"type":"Feature","properties":{"uf":"MS","name":"Mato Grosso do Sul"},"geometry":{"type":"Polygon","coordinates":[[[-57.752,-17.564],[-57.712,-17.543],[-57.609,-17.797],[-57.485,-17.862],[-57.225,-17.783],[-57.101,-17.772],[-56.965,-17.622],[-56.973,-17.58],[-56.876,-17.533],[-56.758,-17.327],[-56.451,-17.326],[-56.336,-17.29],[-56.251,-17.219],[-56.044,-17.171],[-56.012,-17.237],[-55.761,-17.323],[-55.658,-17.339],[-55.515,-17.484],[-55.483,-17.479],[-55.137,-17.65],[-54.943,-17.609],[-54.861,-17.624],[-54.747,-17.52],[-54.57,-17.473],[-54.426,-17.537],[-54.388,-17.632],[-54.302,-17.662],[-54.192,-17.606],[-54.085,-17.619],[-54.058,-17.513],[-53.973,-17.472],[-53.82,-17.295],[-53.705,-17.228],[-53.68,-17.254],[-53.704,-17.661],[-53.856,-17.703],[-53.941,-17.84],[-53.952,-17.916],[-53.854,-17.926],[-53.774,-18.001],[-53.652,-17.976],[-53.468,-18.035],[-53.435,-17.985],[-53.292,-17.996],[-53.174,-18.042],[-53.072,-18.034],[-53.143,-18.084],[-53.1,-18.314],[-53.023,-18.349],[-52.965,-18.299],[-52.776,-18.329],[-52.798,-18.415],[-52.876,-18.431],[-52.962,-18.541],[-52.913,-18.642],[-52.748,-18.692],[-52.589,-18.687],[-52.531,-18.657],[-52.448,-18.692],[-52.305,-18.84],[-52.187,-18.846],[-52.079,-18.951],[-51.897,-18.994],[-51.66,-19.134],[-51.42,-19.166],[-51.092,-19.308],[-50.935,-19.467],[-50.924,-19.581],[-50.988,-19.589],[-51.038,-19.692],[-51,-20.085],[-51.069,-20.25],[-51.161,-20.305],[-51.343,-20.356],[-51.5,-20.568],[-51.575,-20.623],[-51.635,-20.755],[-51.624,-20.944],[-51.714,-20.971],[-51.79,-21.102],[-51.865,-21.13],[-51.861,-21.337],[-51.929,-21.456],[-52,-21.517],[-52.057,-21.504],[-52.102,-21.57],[-52.049,-21.643],[-52.104,-21.746],[-52.319,-21.972],[-52.339,-22.048],[-52.488,-22.217],[-52.798,-22.378],[-52.855,-22.439],[-52.999,-22.493],[-53.105,-22.622],[-53.185,-22.719],[-53.327,-22.765],[-53.547,-22.89],[-53.634,-23.003],[-53.637,-23.125],[-53.762,-23.359],[-53.987,-23.467],[-54.084,-23.805],[-54.102,-23.952],[-54.286,-24.068],[-54.44,-23.904],[-54.589,-23.839],[-54.684,-23.83],[-55.062,-23.993],[-55.107,-23.965],[-55.229,-24.014],[-55.318,-23.963],[-55.349,-23.994],[-55.446,-23.917],[-55.43,-23.79],[-55.475,-23.65],[-55.53,-23.628],[-55.56,-23.483],[-55.504,-23.378],[-55.556,-23.316],[-55.523,-23.198],[-55.596,-23.119],[-55.666,-22.852],[-55.62,-22.753],[-55.625,-22.628],[-55.724,-22.552],[-55.749,-22.383],[-55.804,-22.372],[-55.843,-22.287],[-56.009,-22.293],[-56.213,-22.276],[-56.317,-22.215],[-56.392,-22.08],[-56.519,-22.109],[-56.556,-22.195],[-56.652,-22.257],[-56.683,-22.221],[-56.844,-22.301],[-56.888,-22.245],[-56.997,-22.222],[-57.238,-22.251],[-57.389,-22.205],[-57.581,-22.175],[-57.613,-22.11],[-57.691,-22.088],[-57.748,-22.139],[-57.93,-22.12],[-57.992,-22.09],[-57.916,-21.876],[-57.96,-21.853],[-57.883,-21.689],[-57.962,-21.562],[-57.855,-21.317],[-57.92,-21.285],[-57.853,-21.227],[-57.866,-21.039],[-57.817,-20.981],[-57.929,-20.895],[-57.859,-20.825],[-57.959,-20.798],[-57.873,-20.751],[-57.914,-20.671],[-57.988,-20.687],[-58.013,-20.608],[-57.999,-20.456],[-58.073,-20.388],[-58.091,-20.285],[-58.166,-20.237],[-58.149,-20.152],[-57.963,-20.027],[-57.902,-20.042],[-57.859,-19.972],[-58.131,-19.759],[-57.783,-19.035],[-57.71,-19.035],[-57.72,-18.899],[-57.767,-18.899],[-57.558,-18.241],[-57.455,-18.233],[-57.574,-18.132],[-57.6,-18.043],[-57.721,-17.829],[-57.684,-17.809],[-57.783,-17.637],[-57.752,-17.564]]]}}, +{"type":"Feature","properties":{"uf":"MT","name":"Mato Grosso"},"geometry":{"type":"Polygon","coordinates":[[[-58.137,-7.356],[-58.061,-7.395],[-57.897,-7.678],[-57.835,-7.881],[-57.832,-7.961],[-57.642,-8.22],[-57.687,-8.407],[-57.633,-8.527],[-57.593,-8.756],[-57.417,-8.793],[-57.416,-8.859],[-57.289,-8.916],[-57.204,-8.921],[-57.039,-9.098],[-57.06,-9.182],[-56.995,-9.234],[-56.82,-9.246],[-56.754,-9.406],[-56.672,-9.367],[-54.613,-9.536],[-52.257,-9.708],[-51.304,-9.773],[-50.225,-9.841],[-50.303,-10.035],[-50.398,-10.155],[-50.382,-10.212],[-50.418,-10.355],[-50.474,-10.405],[-50.483,-10.49],[-50.603,-10.66],[-50.571,-10.752],[-50.633,-10.932],[-50.609,-11.067],[-50.664,-11.152],[-50.671,-11.287],[-50.742,-11.46],[-50.739,-11.544],[-50.657,-11.593],[-50.664,-11.677],[-50.722,-11.74],[-50.686,-11.859],[-50.639,-11.885],[-50.682,-11.991],[-50.681,-12.217],[-50.624,-12.455],[-50.7,-12.595],[-50.623,-12.735],[-50.625,-12.8],[-50.511,-12.861],[-50.524,-12.971],[-50.571,-13.034],[-50.585,-13.215],[-50.664,-13.435],[-50.759,-13.52],[-50.809,-13.697],[-50.874,-13.734],[-50.84,-13.924],[-50.866,-13.96],[-50.831,-14.083],[-50.899,-14.115],[-50.977,-14.293],[-50.998,-14.414],[-50.964,-14.528],[-51.09,-14.84],[-51.087,-14.921],[-51.276,-15.044],[-51.307,-14.981],[-51.339,-14.975],[-51.341,-14.98],[-51.353,-14.994],[-51.534,-15.065],[-51.647,-15.173],[-51.691,-15.325],[-51.699,-15.485],[-51.756,-15.557],[-51.768,-15.654],[-51.88,-15.824],[-51.948,-15.81],[-52.009,-15.886],[-52.254,-15.894],[-52.328,-16.07],[-52.549,-16.165],[-52.546,-16.26],[-52.659,-16.281],[-52.693,-16.366],[-52.606,-16.486],[-52.726,-16.614],[-52.832,-16.772],[-52.885,-16.777],[-52.972,-16.87],[-53.014,-16.864],[-53.064,-17.016],[-53.209,-17.316],[-53.248,-17.627],[-53.234,-17.713],[-53.16,-17.775],[-53.072,-18.034],[-53.174,-18.042],[-53.292,-17.996],[-53.435,-17.985],[-53.468,-18.035],[-53.652,-17.976],[-53.774,-18.001],[-53.854,-17.926],[-53.952,-17.916],[-53.941,-17.84],[-53.856,-17.703],[-53.704,-17.661],[-53.68,-17.254],[-53.705,-17.228],[-53.82,-17.295],[-53.973,-17.472],[-54.058,-17.513],[-54.085,-17.619],[-54.192,-17.606],[-54.302,-17.662],[-54.388,-17.632],[-54.426,-17.537],[-54.57,-17.473],[-54.747,-17.52],[-54.861,-17.624],[-54.943,-17.609],[-55.137,-17.65],[-55.483,-17.479],[-55.515,-17.484],[-55.658,-17.339],[-55.761,-17.323],[-56.012,-17.237],[-56.044,-17.171],[-56.251,-17.219],[-56.336,-17.29],[-56.451,-17.326],[-56.758,-17.327],[-56.876,-17.533],[-56.973,-17.58],[-56.965,-17.622],[-57.101,-17.772],[-57.225,-17.783],[-57.485,-17.862],[-57.609,-17.797],[-57.712,-17.543],[-57.752,-17.564],[-57.883,-17.449],[-57.996,-17.516],[-58.121,-17.448],[-58.153,-17.384],[-58.264,-17.345],[-58.399,-17.184],[-58.392,-17.04],[-58.477,-16.937],[-58.463,-16.653],[-58.344,-16.518],[-58.356,-16.426],[-58.307,-16.371],[-58.327,-16.27],[-58.389,-16.261],[-58.431,-16.323],[-59.469,-16.28],[-60.174,-16.267],[-60.239,-15.475],[-60.576,-15.097],[-60.245,-15.097],[-60.274,-14.621],[-60.323,-14.61],[-60.34,-14.51],[-60.406,-14.36],[-60.454,-14.314],[-60.481,-14.096],[-60.383,-13.993],[-60.451,-13.927],[-60.487,-13.819],[-60.623,-13.719],[-60.709,-13.693],[-60.686,-13.625],[-60.511,-13.504],[-60.388,-13.455],[-60.372,-13.319],[-60.284,-13.085],[-60.183,-12.968],[-60.117,-12.96],[-60.079,-12.881],[-60.029,-12.619],[-59.948,-12.599],[-59.844,-12.467],[-59.779,-12.341],[-59.887,-12.245],[-59.9,-12.117],[-59.962,-12.056],[-59.984,-11.915],[-60.066,-11.891],[-60.103,-11.819],[-60.115,-11.591],[-59.934,-11.424],[-59.917,-11.338],[-59.959,-11.295],[-59.995,-11.148],[-60.075,-11.105],[-60.191,-11.114],[-60.301,-11.057],[-60.392,-11.094],[-60.46,-10.99],[-61.001,-10.992],[-61.55,-10.986],[-61.525,-10.856],[-61.48,-10.788],[-61.499,-10.699],[-61.462,-10.42],[-61.577,-10.249],[-61.601,-10.15],[-61.508,-9.861],[-61.532,-9.712],[-61.477,-9.63],[-61.508,-9.54],[-61.582,-9.459],[-61.559,-9.385],[-61.628,-9.352],[-61.6,-9.256],[-61.525,-9.243],[-61.556,-9.092],[-61.469,-8.92],[-61.583,-8.799],[-60.42,-8.797],[-58.963,-8.803],[-58.442,-8.799],[-58.328,-8.712],[-58.437,-8.703],[-58.389,-8.595],[-58.418,-8.489],[-58.355,-8.393],[-58.293,-8.071],[-58.375,-7.899],[-58.378,-7.827],[-58.3,-7.777],[-58.202,-7.621],[-58.213,-7.458],[-58.137,-7.356]]]}}, +{"type":"Feature","properties":{"uf":"GO","name":"Goiás"},"geometry":{"type":"Polygon","coordinates":[[[-47.31,-16.036],[-47.37,-16.001],[-47.379,-15.887],[-47.315,-15.746],[-47.322,-15.598],[-47.418,-15.546],[-47.418,-15.502],[-48.2,-15.502],[-48.2,-15.623],[-48.241,-15.706],[-48.209,-15.75],[-48.282,-15.831],[-48.251,-15.956],[-48.278,-16.05],[-47.308,-16.05],[-47.352,-16.134],[-47.322,-16.231],[-47.427,-16.399],[-47.459,-16.504],[-47.431,-16.549],[-47.252,-16.664],[-47.208,-16.875],[-47.129,-16.975],[-47.147,-17.032],[-47.348,-17.176],[-47.438,-17.318],[-47.511,-17.326],[-47.537,-17.457],[-47.467,-17.534],[-47.325,-17.524],[-47.265,-17.611],[-47.355,-17.815],[-47.357,-17.894],[-47.283,-18.041],[-47.43,-18.165],[-47.567,-18.211],[-47.61,-18.316],[-47.769,-18.418],[-47.83,-18.411],[-47.955,-18.5],[-48.047,-18.418],[-48.094,-18.431],[-48.272,-18.329],[-48.318,-18.367],[-48.469,-18.371],[-48.561,-18.324],[-48.832,-18.346],[-48.918,-18.306],[-49.079,-18.417],[-49.126,-18.384],[-49.293,-18.564],[-49.406,-18.645],[-49.5,-18.491],[-49.795,-18.644],[-50.029,-18.601],[-50.08,-18.672],[-50.164,-18.664],[-50.314,-18.701],[-50.37,-18.804],[-50.512,-18.952],[-50.495,-19.013],[-50.586,-19.139],[-50.674,-19.136],[-50.817,-19.289],[-50.875,-19.423],[-50.849,-19.498],[-50.935,-19.467],[-51.092,-19.308],[-51.42,-19.166],[-51.66,-19.134],[-51.897,-18.994],[-52.079,-18.951],[-52.187,-18.846],[-52.305,-18.84],[-52.448,-18.692],[-52.531,-18.657],[-52.589,-18.687],[-52.748,-18.692],[-52.913,-18.642],[-52.962,-18.541],[-52.876,-18.431],[-52.798,-18.415],[-52.776,-18.329],[-52.965,-18.299],[-53.023,-18.349],[-53.1,-18.314],[-53.143,-18.084],[-53.072,-18.034],[-53.16,-17.775],[-53.234,-17.713],[-53.248,-17.627],[-53.209,-17.316],[-53.064,-17.016],[-53.014,-16.864],[-52.972,-16.87],[-52.885,-16.777],[-52.832,-16.772],[-52.726,-16.614],[-52.606,-16.486],[-52.693,-16.366],[-52.659,-16.281],[-52.546,-16.26],[-52.549,-16.165],[-52.328,-16.07],[-52.254,-15.894],[-52.009,-15.886],[-51.948,-15.81],[-51.88,-15.824],[-51.768,-15.654],[-51.756,-15.557],[-51.699,-15.485],[-51.691,-15.325],[-51.647,-15.173],[-51.534,-15.065],[-51.353,-14.994],[-51.341,-14.98],[-51.339,-14.975],[-51.307,-14.981],[-51.276,-15.044],[-51.087,-14.921],[-51.09,-14.84],[-50.964,-14.528],[-50.998,-14.414],[-50.977,-14.293],[-50.899,-14.115],[-50.831,-14.083],[-50.866,-13.96],[-50.84,-13.924],[-50.874,-13.734],[-50.809,-13.697],[-50.759,-13.52],[-50.664,-13.435],[-50.585,-13.215],[-50.571,-13.034],[-50.524,-12.971],[-50.511,-12.861],[-50.479,-12.713],[-50.305,-12.492],[-50.206,-12.445],[-50.193,-12.564],[-50.296,-12.711],[-50.286,-12.84],[-49.909,-12.975],[-49.368,-13.272],[-49.339,-13.253],[-49.355,-13.107],[-49.238,-12.884],[-49.118,-12.79],[-48.976,-12.957],[-48.87,-12.803],[-48.736,-12.921],[-48.576,-13.124],[-48.6,-13.288],[-48.554,-13.303],[-48.516,-13.139],[-48.462,-13.275],[-48.385,-13.264],[-48.235,-13.176],[-48.166,-13.189],[-48.156,-13.308],[-48.033,-13.274],[-47.798,-13.329],[-47.68,-13.468],[-47.624,-13.376],[-47.667,-13.208],[-47.646,-13.12],[-47.569,-13.117],[-47.565,-13.18],[-47.417,-13.271],[-47.38,-13.231],[-47.281,-13.265],[-47.225,-13.193],[-47.011,-13.141],[-46.751,-12.969],[-46.455,-12.971],[-46.418,-12.822],[-46.366,-12.863],[-46.371,-12.988],[-46.198,-12.957],[-46.113,-12.918],[-46.125,-12.96],[-46.275,-13.02],[-46.3,-13.128],[-46.292,-13.317],[-46.103,-13.257],[-46.068,-13.295],[-46.135,-13.375],[-46.232,-13.419],[-46.232,-13.583],[-46.163,-13.604],[-46.256,-13.684],[-46.223,-13.765],[-46.277,-13.791],[-46.232,-13.849],[-46.264,-13.947],[-46.22,-13.975],[-46.221,-14.107],[-46.187,-14.153],[-46.061,-14.195],[-45.907,-14.355],[-46.019,-14.472],[-45.981,-14.532],[-46.003,-14.796],[-46.039,-14.875],[-46.088,-14.936],[-46.172,-14.947],[-46.319,-14.9],[-46.322,-14.815],[-46.475,-14.705],[-46.564,-14.783],[-46.522,-14.851],[-46.531,-15.005],[-46.503,-15.051],[-46.625,-15.089],[-46.857,-15.01],[-46.925,-15.057],[-46.888,-15.112],[-46.937,-15.205],[-46.836,-15.326],[-46.93,-15.443],[-46.946,-15.563],[-46.855,-15.618],[-46.813,-15.787],[-46.825,-15.886],[-47.107,-15.958],[-47.137,-15.927],[-47.226,-16.016],[-47.31,-16.036]]]}}, +{"type":"Feature","properties":{"uf":"DF","name":"Distrito Federal"},"geometry":{"type":"Polygon","coordinates":[[[-47.308,-16.05],[-48.278,-16.05],[-48.251,-15.956],[-48.282,-15.831],[-48.209,-15.75],[-48.241,-15.706],[-48.2,-15.623],[-48.2,-15.502],[-47.418,-15.502],[-47.418,-15.546],[-47.322,-15.598],[-47.315,-15.746],[-47.379,-15.887],[-47.37,-16.001],[-47.31,-16.036],[-47.308,-16.05]]]}} +] +} diff --git a/app-modules/panel-admin/resources/views/marketing/location-dashboard.blade.php b/app-modules/panel-admin/resources/views/marketing/location-dashboard.blade.php new file mode 100644 index 000000000..cc5ad1748 --- /dev/null +++ b/app-modules/panel-admin/resources/views/marketing/location-dashboard.blade.php @@ -0,0 +1,4 @@ + + {{-- Content is composed of header widgets (stats, map, top states), + laid out by Filament's native widget grid — see LocationDashboard. --}} + diff --git a/app-modules/panel-admin/resources/views/marketing/widgets/location-map.blade.php b/app-modules/panel-admin/resources/views/marketing/widgets/location-map.blade.php new file mode 100644 index 000000000..fe7a00e09 --- /dev/null +++ b/app-modules/panel-admin/resources/views/marketing/widgets/location-map.blade.php @@ -0,0 +1,181 @@ +{{-- Chart.js + chartjs-chart-geo via CDN, fixados por SRI (integrity). + Ao bumpar a versão nas URLs, recalcule o hash, senão o script para de carregar: + curl -sSL | openssl dgst -sha384 -binary | openssl base64 -A --}} +@assets + + +@endassets + + + + {{ __('panel-admin::location.map.heading') }} + {{ __('panel-admin::location.map.hint') }} + + + +
+ +
+ + + + +
+
diff --git a/app-modules/panel-admin/resources/views/marketing/widgets/top-states.blade.php b/app-modules/panel-admin/resources/views/marketing/widgets/top-states.blade.php new file mode 100644 index 000000000..4d3caf26c --- /dev/null +++ b/app-modules/panel-admin/resources/views/marketing/widgets/top-states.blade.php @@ -0,0 +1,39 @@ + + + {{ __('panel-admin::location.top.heading') }} + {{ __('panel-admin::location.top.hint') }} + +
+ @forelse ($top as $index => $row) +
+ + {{ str_pad((string) ($index + 1), 2, '0', STR_PAD_LEFT) }} + +
+
+ {{ $row->name }} + {{ number_format($row->members) }} +
+
+
+
+
+ + {{ number_format($row->share, 1) }}% + +
+ @empty +

{{ __('panel-admin::location.top.empty') }}

+ @endforelse + + @if ($statesReached > count($top)) +
+ {{ __('panel-admin::location.top.others', ['count' => $statesReached - count($top)]) }} +
+ @endif +
+
+
diff --git a/app-modules/panel-admin/src/Marketing/Pages/Location/Data/CommunityActivitySnapshot.php b/app-modules/panel-admin/src/Marketing/Pages/Location/Data/CommunityActivitySnapshot.php new file mode 100644 index 000000000..7246179c0 --- /dev/null +++ b/app-modules/panel-admin/src/Marketing/Pages/Location/Data/CommunityActivitySnapshot.php @@ -0,0 +1,49 @@ +pctDiff($this->webActive, $this->webActivePrev); + } + + public function discordTrend(): float + { + return $this->pctDiff($this->discordActive, $this->discordActivePrev); + } + + public function coverage(): int + { + return $this->totalMembers > 0 + ? (int) round($this->locatedMembers / $this->totalMembers * 100) + : 0; + } + + private function pctDiff(int $current, int $previous): float + { + if ($previous === 0) { + return 0.0; + } + + return round((($current - $previous) / $previous) * 100, 1); + } +} diff --git a/app-modules/panel-admin/src/Marketing/Pages/Location/Data/MemberDistribution.php b/app-modules/panel-admin/src/Marketing/Pages/Location/Data/MemberDistribution.php new file mode 100644 index 000000000..1f247015c --- /dev/null +++ b/app-modules/panel-admin/src/Marketing/Pages/Location/Data/MemberDistribution.php @@ -0,0 +1,23 @@ + $byName members keyed by accent-insensitive state name (map join key) + * @param list $top the five states with the most members + */ + public function __construct( + public int $total, + public int $statesReached, + public int $statesTotal, + public array $byName, + public array $top, + ) {} +} diff --git a/app-modules/panel-admin/src/Marketing/Pages/Location/Data/StateShare.php b/app-modules/panel-admin/src/Marketing/Pages/Location/Data/StateShare.php new file mode 100644 index 000000000..c1575cbd3 --- /dev/null +++ b/app-modules/panel-admin/src/Marketing/Pages/Location/Data/StateShare.php @@ -0,0 +1,17 @@ + 1, 'lg' => 5]; + } + + /** + * @return array + */ + protected function getHeaderWidgets(): array + { + return [ + LocationStatsWidget::class, + LocationMapWidget::class, + TopStatesWidget::class, + ]; + } +} diff --git a/app-modules/panel-admin/src/Marketing/Pages/Location/Queries/CommunityActivityStats.php b/app-modules/panel-admin/src/Marketing/Pages/Location/Queries/CommunityActivityStats.php new file mode 100644 index 000000000..0d594d01f --- /dev/null +++ b/app-modules/panel-admin/src/Marketing/Pages/Location/Queries/CommunityActivityStats.php @@ -0,0 +1,89 @@ +windows(); + + $byState = new MembersByState()->get(); + + return new CommunityActivitySnapshot( + webActive: $this->distinctTimelineUsers($currentStart, $currentEnd), + webActivePrev: $this->distinctTimelineUsers($prevStart, $prevEnd), + discordActive: $this->distinctMessageIdentities($currentStart, $currentEnd), + discordActivePrev: $this->distinctMessageIdentities($prevStart, $prevEnd), + locatedMembers: $this->locatedMembers(), + totalMembers: $this->totalMembers(), + statesReached: $byState->statesReached, + statesTotal: $byState->statesTotal, + ); + }); + } + + /** + * @return array{0: CarbonInterface, 1: CarbonInterface, 2: CarbonInterface, 3: CarbonInterface} + */ + private function windows(): array + { + $now = Date::now(config('app.display_timezone')); + + return [ + $now->copy()->subDays($this->rangeDays)->utc(), + $now->copy()->utc(), + $now->copy()->subDays($this->rangeDays * 2)->utc(), + $now->copy()->subDays($this->rangeDays)->utc(), + ]; + } + + private function distinctTimelineUsers(CarbonInterface $start, CarbonInterface $end): int + { + return (int) DB::table('activity_timeline') + ->whereBetween('created_at', [$start, $end]) + ->distinct() + ->count('user_id'); + } + + private function distinctMessageIdentities(CarbonInterface $start, CarbonInterface $end): int + { + return (int) DB::table('messages') + ->whereNotNull('sent_at') + ->whereBetween('sent_at', [$start, $end]) + ->distinct() + ->count('external_identity_id'); + } + + private function locatedMembers(): int + { + return (int) DB::table('addresses') + ->where('addressable_type', 'user') + ->whereNotNull('state') + ->where('state', '!=', '') + ->distinct() + ->count('addressable_id'); + } + + private function totalMembers(): int + { + return (int) DB::table('users')->count(); + } +} diff --git a/app-modules/panel-admin/src/Marketing/Pages/Location/Queries/MembersByState.php b/app-modules/panel-admin/src/Marketing/Pages/Location/Queries/MembersByState.php new file mode 100644 index 000000000..d03cac641 --- /dev/null +++ b/app-modules/panel-admin/src/Marketing/Pages/Location/Queries/MembersByState.php @@ -0,0 +1,80 @@ +normalize($name)] = $name; + } + + /** @var Collection $rows */ + $rows = DB::table('addresses') + ->where('addressable_type', 'user') + ->whereNotNull('state') + ->where('state', '!=', '') + ->select('state', DB::raw('COUNT(*) AS members')) + ->groupBy('state') + ->get(); + + $counts = []; + foreach ($rows as $row) { + $key = $this->normalize((string) $row->state); + + if (!isset($canonical[$key])) { + continue; + } + + $counts[$key] = ($counts[$key] ?? 0) + (int) $row->members; + } + + arsort($counts); + + $total = array_sum($counts); + + $top = []; + foreach (array_slice($counts, 0, 5, preserve_keys: true) as $key => $members) { + $top[] = new StateShare( + name: $canonical[$key], + members: $members, + share: $total > 0 ? round($members / $total * 100, 1) : 0.0, + ); + } + + return new MemberDistribution( + total: $total, + statesReached: count($counts), + statesTotal: count($canonical), + byName: $counts, + top: $top, + ); + }); + } + + private function normalize(string $name): string + { + return Str::of($name)->ascii()->lower()->squish()->value(); + } +} diff --git a/app-modules/panel-admin/src/Marketing/Support/BrazilStatesGeometry.php b/app-modules/panel-admin/src/Marketing/Support/BrazilStatesGeometry.php new file mode 100644 index 000000000..b0c326330 --- /dev/null +++ b/app-modules/panel-admin/src/Marketing/Support/BrazilStatesGeometry.php @@ -0,0 +1,38 @@ + + */ + public static function get(): array + { + return Cache::remember('panel-admin.geo.br-states', now()->addDays(30), static function (): array { + $path = base_path('app-modules/panel-admin/resources/geo/br-states.geojson'); + + /** @var array $geojson */ + $geojson = json_decode(File::get($path), associative: true, flags: JSON_THROW_ON_ERROR); + + return $geojson; + }); + } +} diff --git a/app-modules/panel-admin/src/Marketing/Widgets/LocationMapWidget.php b/app-modules/panel-admin/src/Marketing/Widgets/LocationMapWidget.php new file mode 100644 index 000000000..dd0567539 --- /dev/null +++ b/app-modules/panel-admin/src/Marketing/Widgets/LocationMapWidget.php @@ -0,0 +1,32 @@ + + */ + protected function getViewData(): array + { + $members = new MembersByState()->get(); + + return [ + 'byName' => $members->byName, + 'total' => $members->total, + 'geometry' => BrazilStatesGeometry::get(), + ]; + } +} diff --git a/app-modules/panel-admin/src/Marketing/Widgets/LocationStatsWidget.php b/app-modules/panel-admin/src/Marketing/Widgets/LocationStatsWidget.php new file mode 100644 index 000000000..7cee09e11 --- /dev/null +++ b/app-modules/panel-admin/src/Marketing/Widgets/LocationStatsWidget.php @@ -0,0 +1,53 @@ +get(); + + $webTrend = $stats->webTrend(); + $discordTrend = $stats->discordTrend(); + + return [ + Stat::make(__('panel-admin::location.stats.web_active'), number_format($stats->webActive)) + ->description(abs($webTrend).__('panel-admin::location.stats.vs_previous')) + ->descriptionIcon($webTrend >= 0 ? Heroicon::ArrowTrendingUp : Heroicon::ArrowTrendingDown) + ->color($webTrend >= 0 ? Color::Purple : Color::Red), + + Stat::make(__('panel-admin::location.stats.discord_active'), number_format($stats->discordActive)) + ->description(abs($discordTrend).__('panel-admin::location.stats.vs_previous')) + ->descriptionIcon($discordTrend >= 0 ? Heroicon::ArrowTrendingUp : Heroicon::ArrowTrendingDown) + ->color($discordTrend >= 0 ? Color::Green : Color::Red), + + Stat::make(__('panel-admin::location.stats.located'), number_format($stats->locatedMembers)) + ->description(__('panel-admin::location.stats.coverage', ['percent' => $stats->coverage()])) + ->descriptionIcon(Heroicon::OutlinedMapPin) + ->color(Color::Amber), + + Stat::make(__('panel-admin::location.stats.states'), sprintf('%d/%d', $stats->statesReached, $stats->statesTotal)) + ->description(__('panel-admin::location.stats.states_hint')) + ->descriptionIcon(Heroicon::OutlinedGlobeAmericas) + ->color(Color::Blue), + ]; + } +} diff --git a/app-modules/panel-admin/src/Marketing/Widgets/TopStatesWidget.php b/app-modules/panel-admin/src/Marketing/Widgets/TopStatesWidget.php new file mode 100644 index 000000000..3be40a523 --- /dev/null +++ b/app-modules/panel-admin/src/Marketing/Widgets/TopStatesWidget.php @@ -0,0 +1,31 @@ + + */ + protected function getViewData(): array + { + $members = new MembersByState()->get(); + + return [ + 'top' => $members->top, + 'total' => $members->total, + 'statesReached' => $members->statesReached, + ]; + } +} diff --git a/app-modules/panel-admin/tests/Feature/Marketing/CommunityActivityStatsTest.php b/app-modules/panel-admin/tests/Feature/Marketing/CommunityActivityStatsTest.php new file mode 100644 index 000000000..29323598d --- /dev/null +++ b/app-modules/panel-admin/tests/Feature/Marketing/CommunityActivityStatsTest.php @@ -0,0 +1,64 @@ +tz = config('app.display_timezone'); + Date::setTestNow(Date::create(2_026, 6, 15, 12, 0, 0, $this->tz)); + + Http::fake([ + 'world.bmbc.cloud/api/countries*' => Http::response([ + 'data' => [['id' => 31, 'iso2' => 'BR', 'iso3' => 'BRA', 'name' => 'Brazil']], + ]), + 'world.bmbc.cloud/api/states*' => Http::response([ + 'data' => [['id' => 1, 'name' => 'São Paulo']], + ]), + ]); +}); + +afterEach(function (): void { + Date::setTestNow(); +}); + +test('it counts distinct web and discord actives within the current window', function (): void { + $tz = $this->tz; + $tenant = Tenant::factory()->create(); + + $userA = User::factory()->create(); + $userB = User::factory()->create(); + $userC = User::factory()->create(); + + // Web: userA (twice) and userB post inside the 30-day window; userC only outside. + Timeline::factory()->recycle($tenant)->create(['user_id' => $userA->id, 'created_at' => Date::create(2_026, 6, 10, 12, 0, 0, $tz)]); + Timeline::factory()->recycle($tenant)->create(['user_id' => $userA->id, 'created_at' => Date::create(2_026, 6, 12, 12, 0, 0, $tz)]); + Timeline::factory()->recycle($tenant)->create(['user_id' => $userB->id, 'created_at' => Date::create(2_026, 6, 1, 12, 0, 0, $tz)]); + Timeline::factory()->recycle($tenant)->create(['user_id' => $userC->id, 'created_at' => Date::create(2_026, 1, 1, 12, 0, 0, $tz)]); + + // Discord: one distinct identity with a message inside the window. + $identity = ExternalIdentity::factory()->recycle($tenant)->create(); + Message::factory()->recycle($tenant)->create(['external_identity_id' => $identity->id, 'sent_at' => Date::create(2_026, 6, 11, 12, 0, 0, $tz)]); + + // Location coverage: one located member. + Address::factory()->forUser($userA)->create(['state' => 'São Paulo']); + + $stats = new CommunityActivityStats(30)->get(); + + expect($stats->webActive)->toBe(2) + ->and($stats->discordActive)->toBe(1) + ->and($stats->locatedMembers)->toBe(1) + ->and($stats->statesReached)->toBe(1) + ->and($stats->statesTotal)->toBe(1); +}); diff --git a/app-modules/panel-admin/tests/Feature/Marketing/LocationDashboardTest.php b/app-modules/panel-admin/tests/Feature/Marketing/LocationDashboardTest.php new file mode 100644 index 000000000..f9c9906a0 --- /dev/null +++ b/app-modules/panel-admin/tests/Feature/Marketing/LocationDashboardTest.php @@ -0,0 +1,39 @@ + Http::response([ + 'data' => [['id' => 31, 'iso2' => 'BR', 'iso3' => 'BRA', 'name' => 'Brazil']], + ]), + 'world.bmbc.cloud/api/states*' => Http::response([ + 'data' => [['id' => 1, 'name' => 'São Paulo']], + ]), + ]); + + $admin = User::factory()->create(); + $tenant = Tenant::factory()->create(); + $tenant->members()->attach($admin); + + $this->actingAs($admin); + Filament::setCurrentPanel(Filament::getPanel('admin')); + Filament::setTenant($tenant); +}); + +test('the location dashboard renders for an admin', function (): void { + livewire(LocationDashboard::class) + ->assertSuccessful() + ->assertSee(__('panel-admin::location.map.heading')); +}); diff --git a/app-modules/panel-admin/tests/Feature/Marketing/MembersByStateTest.php b/app-modules/panel-admin/tests/Feature/Marketing/MembersByStateTest.php new file mode 100644 index 000000000..1b6960610 --- /dev/null +++ b/app-modules/panel-admin/tests/Feature/Marketing/MembersByStateTest.php @@ -0,0 +1,60 @@ + Http::response([ + 'data' => [ + ['id' => 31, 'iso2' => 'BR', 'iso3' => 'BRA', 'name' => 'Brazil'], + ], + ]), + 'world.bmbc.cloud/api/states*' => Http::response([ + 'data' => [ + ['id' => 1, 'name' => 'São Paulo'], + ['id' => 2, 'name' => 'Minas Gerais'], + ['id' => 3, 'name' => 'Bahia'], + ], + ]), + ]); +}); + +test('it aggregates members by state, normalizing accents and casing', function (): void { + $sp1 = User::factory()->create(); + $sp2 = User::factory()->create(); + $mg = User::factory()->create(); + + Address::factory()->forUser($sp1)->create(['state' => 'São Paulo']); + Address::factory()->forUser($sp2)->create(['state' => 'sao paulo']); // accent/case variation + Address::factory()->forUser($mg)->create(['state' => 'Minas Gerais']); + + $data = new MembersByState()->get(); + + expect($data->byName['sao paulo'])->toBe(2) + ->and($data->byName['minas gerais'])->toBe(1) + ->and($data->total)->toBe(3) + ->and($data->statesReached)->toBe(2) + ->and($data->statesTotal)->toBe(3) + ->and($data->top[0]->name)->toBe('São Paulo') + ->and($data->top[0]->members)->toBe(2) + ->and($data->top[0]->share)->toBe(66.7); +}); + +test('it ignores addresses whose state is not a recognized brazilian state', function (): void { + $user = User::factory()->create(); + + Address::factory()->forUser($user)->create(['state' => 'Nowhere']); + + $data = new MembersByState()->get(); + + expect($data->total)->toBe(0) + ->and($data->byName)->toBeEmpty(); +}); From 0e40e92eda1100835b0fe27ccc68555dcd6eb3df Mon Sep 17 00:00:00 2001 From: Daniel Reis Date: Sun, 12 Jul 2026 17:14:48 -0300 Subject: [PATCH 10/46] feat(tenancy)!: remove multi-tenancy (#413) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Contexto Esta PR **remove por completo o multi-tenancy** da plataforma. O modelo de tenants (guilds do Discord / orgs de evento) adicionava complexidade de escopo em praticamente todos os módulos sem entregar valor real para o produto atual, que opera como uma única comunidade. ## O que muda - **`feat(tenancy)!` — BREAKING**: dropa colunas `tenant_id`, colapsa índices únicos que dependiam do tenant e remove as tabelas de tenant. - Remove o model `Tenant` e limpa `tenant_id` dos domain models. - Tira a tenancy dos painéis Filament e as rotas de tenant. - Desacopla o fluxo de OAuth e o bot do Discord do tenant. - Passa a ler credenciais do bot/Twitch da **config** em vez do tenant. - Remove scaffolding morto (`GenerateDiscordTenant`, `GuestTenantIdentifier`, etc). - Ajusta suíte de testes: remove `TenantFactory`, bootstrap de tenant e `tenant_id` das factories. ## Migrations - `2026_07_07_000000_drop_multi_tenancy` — drop de colunas/índices/tabelas. - `2026_05_01_200459_delete_orphaned_tenant_records` e `2026_03_21_192332_deduplicate_external_identities` — limpeza de dados órfãos antes do drop. ## Impacto - **239 arquivos**, `+822 / -2808` (remoção líquida de ~2k linhas). - Suíte verde localmente (805/805) com a migration aplicada. ## ⚠️ Atenção para review / deploy - Migration **destrutiva e irreversível** — exige backup antes de rodar em produção. - Credenciais do bot/Twitch agora vêm de `config` (`config/services.php`, `config/he4rt.php`) — conferir env vars no ambiente antes do deploy. ## Checklist - [x] Testes passando localmente - [x] Migration aplicada local - [ ] Revisão da migration destrutiva - [ ] Backup de produção antes do merge/deploy --- .../domain/03-multi-tenancy.blade.php | 29 -- .../domain/04-model-phpdoc-sync.blade.php | 2 +- .../database/factories/InteractionFactory.php | 2 - .../database/factories/MessageFactory.php | 2 - .../database/factories/TimelineFactory.php | 2 - .../database/factories/VoiceFactory.php | 2 - .../src/Message/Actions/NewMessage.php | 2 - .../src/Message/Actions/PersistMessage.php | 1 - .../src/Message/DTOs/NewMessageDTO.php | 2 - .../src/Message/Models/MembershipEvent.php | 10 - .../activity/src/Message/Models/Message.php | 10 - .../src/Message/Models/MessageAttachment.php | 10 - .../src/Message/Models/MessageEmbed.php | 10 - .../src/Message/Models/MessageMention.php | 10 - .../src/Message/Models/MessageThread.php | 10 - .../src/Moderation/Models/ModerationEvent.php | 8 - .../activity/src/Reaction/Models/Reaction.php | 9 - .../src/Timeline/Actions/CreatePost.php | 1 - .../src/Timeline/Actions/CreateReply.php | 4 +- .../Actions/PublishModerationEntry.php | 1 - .../src/Timeline/Actions/TogglePinPost.php | 1 - .../src/Timeline/DTOs/CreatePostDTO.php | 1 - .../src/Timeline/DTOs/CreateReplyDTO.php | 1 - .../Listeners/PublishModerationToTimeline.php | 14 +- .../src/Timeline/Queries/TimelineFeed.php | 5 - .../activity/src/Timeline/Timeline.php | 9 - .../src/Tracking/Actions/TrackActivity.php | 1 - .../src/Tracking/DTOs/TrackActivityDTO.php | 1 - .../src/Tracking/Models/Interaction.php | 10 - .../src/Voice/Actions/NewVoiceMessage.php | 3 - .../src/Voice/Actions/RecordVoicePresence.php | 2 - .../src/Voice/DTOs/NewVoiceMessageDTO.php | 1 - .../src/Voice/DTOs/RecordVoicePresenceDTO.php | 5 +- .../activity/src/Voice/Models/Voice.php | 1 - .../Voice/Queries/GetCurrentVoiceChannel.php | 3 +- .../tests/Unit/Actions/NewMessageTest.php | 13 - .../Unit/Actions/NewVoiceMessageTest.php | 18 -- .../Unit/Actions/RecordVoicePresenceTest.php | 38 +-- .../Queries/GetCurrentVoiceChannelTest.php | 56 ++-- .../tests/Unit/Timeline/CreatePostTest.php | 7 - .../tests/Unit/Timeline/CreateReplyTest.php | 12 - .../tests/Unit/Timeline/DeleteReplyTest.php | 9 - .../Timeline/PublishModerationEntryTest.php | 15 - .../Unit/Timeline/TimelineFeedQueryTest.php | 45 +-- .../tests/Unit/Timeline/TimelineModelTest.php | 12 +- .../tests/Unit/Timeline/TogglePinPostTest.php | 10 - .../Unit/Tracking/ApproveInteractionTest.php | 5 +- .../tests/Unit/Tracking/TrackActivityTest.php | 13 +- .../bot-discord/config/bot-discord.php | 1 + .../src/Actions/ResolveDiscordTenant.php | 21 -- .../src/Events/MessageReceivedEvent.php | 5 - .../src/Events/VoicePresenceEvent.php | 5 - .../bot-discord/src/Events/WelcomeMember.php | 12 +- .../src/Listeners/AutoExecuteAction.php | 1 - .../Moderation/DiscordModerationAdapter.php | 1 - .../SlashCommands/AbstractSlashCommand.php | 11 +- .../src/SlashCommands/EditProfileCommand.php | 3 - .../src/SlashCommands/IntroductionCommand.php | 9 +- .../src/SlashCommands/ProfileCommand.php | 1 - .../src/Tasks/VoiceExperienceTask.php | 7 +- .../HandleStateChannelActionTest.php | 6 + .../DiscordModerationAdapterTest.php | 4 - .../SlashCommands/EditProfileCommandTest.php | 32 +- .../SlashCommands/IntroductionCommandTest.php | 61 +--- .../database/factories/FeedbackFactory.php | 2 - .../database/factories/MeetingFactory.php | 2 - .../database/factories/ReviewFactory.php | 2 - .../src/Feedback/Actions/CreateFeedback.php | 1 - .../src/Feedback/Actions/ReviewFeedback.php | 1 - .../src/Feedback/Models/Feedback.php | 10 - .../community/src/Feedback/Models/Review.php | 1 - .../src/Meeting/Actions/StartMeeting.php | 1 - .../community/src/Meeting/Models/Meeting.php | 10 - .../database/factories/EventAgendaFactory.php | 2 - .../database/factories/EventFactory.php | 2 - .../factories/EventSubmissionFactory.php | 2 - .../database/factories/SponsorFactory.php | 2 - .../database/factories/BadgeFactory.php | 2 - .../database/factories/CharacterFactory.php | 2 - .../database/factories/PastSeasonFactory.php | 2 - .../database/factories/SeasonFactory.php | 2 - .../src/Badge/DTOs/NewBadgeDTO.php | 3 - .../gamification/src/Badge/Models/Badge.php | 11 - .../Actions/CharacterInitializerAction.php | 3 +- .../Character/Actions/PersistClaimedBadge.php | 1 - .../src/Character/Models/Character.php | 10 - .../src/Character/Models/PastSeason.php | 10 - .../gamification/src/Season/Models/Season.php | 11 - .../partials/oauth-connect.blade.php | 3 +- .../factories/ExternalIdentityFactory.php | 2 - .../database/factories/TenantFactory.php | 60 ---- ...2025_11_02_172528_create_tenants_table.php | 4 + ...2025_11_02_172618_set_up_tenant_module.php | 15 + ...11_08_161609_create_tenant_users_table.php | 4 + ..._25_184549_add_domain_to_tenants_table.php | 4 + .../2026_07_07_000000_drop_multi_tenancy.php | 233 +++++++++++++++ .../identity/routes/authentication-routes.php | 5 +- .../src/Auth/Actions/AttachProviderToUser.php | 4 +- .../Actions/FindOrCreateUserByProvider.php | 15 +- .../Actions/HandleOAuthCallbackAction.php | 15 +- .../src/Auth/Actions/MergeAccountsAction.php | 4 - .../identity/src/Auth/DTOs/OAuthResultDTO.php | 2 - .../identity/src/Auth/DTOs/OAuthStateDTO.php | 3 - .../Auth/Http/Controllers/OAuthController.php | 4 +- .../Controllers/TenantLogoutController.php | 25 -- .../Http/Responses/TenantLogoutResponse.php | 26 -- .../CreateAccountByExternalIdentity.php | 7 +- .../Actions/FindExternalIdentity.php | 13 +- .../Actions/ResolveExternalIdentity.php | 1 - .../ExternalIdentity/DTOs/NewProviderDTO.php | 2 - .../DTOs/ResolveUserProviderDTO.php | 2 - .../Enums/IdentityProvider.php | 3 +- .../Models/ExternalIdentity.php | 10 - .../identity/src/IdentityServiceProvider.php | 2 - .../Tenant/Concerns/InteractsWithTenants.php | 45 --- .../identity/src/Tenant/Models/Tenant.php | 101 ------- .../identity/src/Tenant/Models/TenantUser.php | 18 -- .../Tenant/Observers/TenantUserObserver.php | 16 - .../src/User/Actions/ResolveUserContext.php | 3 +- app-modules/identity/src/User/Models/User.php | 5 +- .../src/User/Observers/UserObserver.php | 16 + .../Feature/Auth/DetectMergeConflictTest.php | 50 ---- .../Auth/FindOrCreateUserByProviderTest.php | 73 +---- .../Auth/HandleOAuthCallbackActionTest.php | 9 +- .../Feature/Auth/MergeAccountsActionTest.php | 25 -- .../FindExternalIdentityTest.php | 65 +---- .../src/Polling/SyncDevToArticles.php | 1 - .../tests/Feature/SyncDevToArticlesTest.php | 11 +- .../Actions/ImportDiscordMessageAction.php | 66 ++--- .../ImportDiscordModerationEventAction.php | 19 +- .../Actions/ImportDiscordProfileAction.php | 14 +- .../Actions/ImportDiscordReactionsAction.php | 3 +- .../Actions/ImportDiscordVoiceLogAction.php | 5 +- .../MergeDuplicateDiscordUserAction.php | 25 -- .../ETL/Console/BackfillVoiceLogsCommand.php | 19 +- .../Console/ImportDiscordMessagesCommand.php | 36 +-- .../Console/ImportDiscordProfilesCommand.php | 18 +- .../MergeDuplicateDiscordProfilesCommand.php | 12 +- .../src/Models/DiscordGuild.php | 12 - .../Feature/ETL/ImportDiscordMessageTest.php | 262 ++++++----------- .../Feature/ETL/ImportDiscordProfileTest.php | 56 +--- .../ETL/MergeDuplicateDiscordProfilesTest.php | 59 +--- .../factories/GithubContributionFactory.php | 2 - .../factories/GithubRepositoryFactory.php | 2 - ...00001_create_github_repositories_table.php | 6 +- ...0002_create_github_contributions_table.php | 10 +- .../src/Backfill/BackfillRepository.php | 43 ++- .../Contributions/DTOs/NewContributionDTO.php | 1 - .../src/Contributions/RecordContribution.php | 3 +- .../src/Models/GithubContribution.php | 11 - .../src/Models/GithubRepository.php | 11 - .../src/Webhook/ProjectGithubEvent.php | 53 ++-- .../tests/Feature/BackfillRepositoryTest.php | 3 +- .../tests/Feature/GithubContributionTest.php | 29 +- .../tests/Feature/GithubRepositoryTest.php | 17 +- .../tests/Feature/GithubWebhookTest.php | 18 +- .../routes/twitch-webhook-routes.php | 2 +- .../RegisterTwitchSubscriptionsAction.php | 35 ++- .../src/Console/LinkTwitchChannelCommand.php | 64 +--- .../Controllers/TwitchWebhookController.php | 4 +- .../src/Models/TwitchEventLog.php | 12 - .../src/Models/TwitchSubscription.php | 12 - .../Feature/LinkTwitchChannelCommandTest.php | 47 +-- .../tests/Feature/TwitchWebhookTest.php | 11 +- .../factories/ModerationCaseFactory.php | 2 - .../src/Appeals/ModerationAppeal.php | 8 - .../src/Audit/ModerationAuditLog.php | 1 - .../moderation/src/Audit/RecordAuditLog.php | 3 - .../src/Cases/Models/ModerationCase.php | 8 - .../Classifiers/RuleBasedClassifier.php | 4 - .../src/Classification/Jobs/IngestContent.php | 2 - .../src/Classification/Jobs/ScreenContent.php | 1 - .../src/DTOs/ModerationContentDTO.php | 4 - .../src/Enforcement/ModerationAction.php | 8 - .../src/Pipeline/SubmitForModeration.php | 1 - .../moderation/src/Rules/ModerationRule.php | 9 - .../tests/Feature/Audit/AuditLogTest.php | 12 - .../tests/Feature/CaseWorkflowTest.php | 2 - .../tests/Feature/Cases/SubmitReportTest.php | 1 - .../RuleBasedClassifierTest.php | 35 +-- .../tests/Feature/ModelRelationshipTest.php | 8 - .../Feature/Pipeline/ScreenContentTest.php | 3 - .../Pipeline/SubmitForModerationTest.php | 3 - .../moderation/tests/Feature/PipelineTest.php | 2 - .../tests/Feature/Platform/WebAdapterTest.php | 4 +- .../moderation/tests/Unit/ClassifierTest.php | 1 - app-modules/moderation/tests/Unit/DTOTest.php | 11 +- .../panel-admin/config/panel-admin.php | 14 - .../MessagesRelationManager.php | 7 - .../Schemas/ExternalIdentityForm.php | 4 - .../Schemas/ExternalIdentityInfolist.php | 3 - .../Tables/ExternalIdentitiesTable.php | 3 - .../Resources/GithubRepositoryResource.php | 6 +- .../src/Http/Middleware/ApplyTenantScopes.php | 39 --- .../Moderation/Livewire/ModerationQueue.php | 1 - .../Pages/ViewModerationCase.php | 1 - .../src/Tenant/EditTenantProfilePage.php | 48 --- .../Actions/RegisterSubscriptionsAction.php | 59 ++-- .../Pages/ListTwitchSubscriptions.php | 5 - .../Widgets/EventsByTypeChartWidget.php | 3 - .../Widgets/EventsPerDayChartWidget.php | 3 - .../src/Twitch/Widgets/TwitchStatsWidget.php | 24 +- .../tests/Feature/AdminPanelAccessTest.php | 10 +- .../tests/Feature/ApplyTenantScopesTest.php | 71 ----- .../Github/GithubRepositoryResourceTest.php | 25 +- .../Marketing/CommunityActivityStatsTest.php | 14 +- .../Marketing/LocationDashboardTest.php | 4 - .../Feature/Marketing/PeriodStatsTest.php | 17 +- .../Feature/Moderation/AppealQueueTest.php | 4 - .../Moderation/ModerationDashboardTest.php | 7 - .../Moderation/ModerationQueueTest.php | 23 +- .../Feature/Moderation/TestRuleActionTest.php | 4 - .../resources/views/auth/login.blade.php | 6 +- .../resources/views/dashboard.blade.php | 2 +- .../src/Livewire/Timeline/Composer.php | 5 - .../panel-app/src/Livewire/Timeline/Feed.php | 6 +- .../src/Livewire/Timeline/PostShow.php | 8 +- .../src/Livewire/Timeline/ReplyComposer.php | 4 - .../src/Livewire/Timeline/ThreadReplies.php | 8 +- .../panel-app/src/Pages/ProfilePage.php | 5 - .../panel-app/src/Pages/ThreadPage.php | 4 +- .../tests/Feature/ProfilePageTest.php | 5 - .../tests/Feature/Timeline/ThreadPageTest.php | 71 ----- .../Livewire/CommunityRetrospectivePage.php | 19 +- .../portal/src/PortalServiceProvider.php | 1 - .../Retrospective/CommunityRetrospective.php | 2 - .../CommunityRetrospectivePageTest.php | 30 +- .../Feature/CommunityRetrospectiveTest.php | 73 ++--- .../database/factories/ProfileFactory.php | 24 +- app-modules/profile/src/Models/Profile.php | 19 +- .../tests/Feature/ProfileCreationTest.php | 56 +--- .../Commands/GenerateDiscordTenant.php | 43 --- app/Console/Commands/ImportDiscordMembers.php | 29 +- app/Http/Middleware/GuestTenantIdentifier.php | 42 --- app/Livewire/ConnectionHub.php | 14 +- app/Providers/Filament/AdminPanelProvider.php | 8 - app/Providers/Filament/AppPanelProvider.php | 9 +- config/he4rt.php | 1 - config/services.php | 2 + ...192332_deduplicate_external_identities.php | 19 +- ..._200459_delete_orphaned_tenant_records.php | 11 +- database/seeders/BaseSeeder.php | 16 - .../seeders/PersonalDiscordServerSeeder.php | 61 ---- tests/.pest/shards.json | 275 +++++++++--------- tests/TestCase.php | 21 -- 245 files changed, 985 insertions(+), 3067 deletions(-) delete mode 100644 .ai/guidelines/domain/03-multi-tenancy.blade.php delete mode 100644 app-modules/bot-discord/src/Actions/ResolveDiscordTenant.php delete mode 100644 app-modules/identity/database/factories/TenantFactory.php create mode 100644 app-modules/identity/database/migrations/2026_07_07_000000_drop_multi_tenancy.php delete mode 100644 app-modules/identity/src/Auth/Http/Controllers/TenantLogoutController.php delete mode 100644 app-modules/identity/src/Auth/Http/Responses/TenantLogoutResponse.php delete mode 100644 app-modules/identity/src/Tenant/Concerns/InteractsWithTenants.php delete mode 100644 app-modules/identity/src/Tenant/Models/Tenant.php delete mode 100644 app-modules/identity/src/Tenant/Models/TenantUser.php delete mode 100644 app-modules/identity/src/Tenant/Observers/TenantUserObserver.php delete mode 100644 app-modules/panel-admin/src/Http/Middleware/ApplyTenantScopes.php delete mode 100644 app-modules/panel-admin/src/Tenant/EditTenantProfilePage.php delete mode 100644 app-modules/panel-admin/tests/Feature/ApplyTenantScopesTest.php delete mode 100644 app/Console/Commands/GenerateDiscordTenant.php delete mode 100644 app/Http/Middleware/GuestTenantIdentifier.php delete mode 100644 database/seeders/PersonalDiscordServerSeeder.php diff --git a/.ai/guidelines/domain/03-multi-tenancy.blade.php b/.ai/guidelines/domain/03-multi-tenancy.blade.php deleted file mode 100644 index 3855d1754..000000000 --- a/.ai/guidelines/domain/03-multi-tenancy.blade.php +++ /dev/null @@ -1,29 +0,0 @@ -@php -/** @var \Laravel\Boost\Install\GuidelineAssist $assist */ -@endphp - -# Multi-Tenancy - -Filament-native tenancy. Tenants are Discord guilds / organizations. - -## Resolution - -Filament resolves the tenant from the URL slug (`/{panel}/{tenant-slug}/…`). Both Admin and App panels configure `->tenant(Tenant::class, slugAttribute: 'slug')` in their panel providers. - -## Data isolation - -Models carry a `tenant_id` FK with a `tenant()` BelongsTo relationship — each model defines its own, there is no shared trait. - -The Admin panel registers `ApplyTenantScopes` tenant middleware that adds `whereBelongsTo($tenant)` global scopes to models listed in `config('panel-admin.tenant_scoped_models')`. Filament also auto-scopes any model that has a Resource registered in a tenant-enabled panel. - -## In tests - -@verbatim - -$tenant = Tenant::factory()->create(); -$user = User::factory()->create(); -$model = SomeModel::factory()->recycle($tenant)->recycle($user)->create(); - -@endverbatim - -Use `->recycle($tenant)` to propagate the tenant ID through factory chains. diff --git a/.ai/guidelines/domain/04-model-phpdoc-sync.blade.php b/.ai/guidelines/domain/04-model-phpdoc-sync.blade.php index b75a87810..a969842b1 100644 --- a/.ai/guidelines/domain/04-model-phpdoc-sync.blade.php +++ b/.ai/guidelines/domain/04-model-phpdoc-sync.blade.php @@ -26,7 +26,7 @@ /** * @property string $id - * @property int $tenant_id + * @property int $position * @property string $name * @property string|null $description * @property bool $active diff --git a/app-modules/activity/database/factories/InteractionFactory.php b/app-modules/activity/database/factories/InteractionFactory.php index b9f80b5e3..e31dd9b18 100644 --- a/app-modules/activity/database/factories/InteractionFactory.php +++ b/app-modules/activity/database/factories/InteractionFactory.php @@ -10,7 +10,6 @@ use He4rt\Activity\Tracking\Models\Interaction; use He4rt\Gamification\Character\Models\Character; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Factories\Factory; /** @@ -24,7 +23,6 @@ public function definition(): array { return [ 'character_id' => Character::factory(), - 'tenant_id' => Tenant::factory(), 'type' => ActivityType::Article, 'provider' => IdentityProvider::DevTo, 'value_tier' => ValueTier::High, diff --git a/app-modules/activity/database/factories/MessageFactory.php b/app-modules/activity/database/factories/MessageFactory.php index d8ea1e204..dd3a9f722 100644 --- a/app-modules/activity/database/factories/MessageFactory.php +++ b/app-modules/activity/database/factories/MessageFactory.php @@ -6,7 +6,6 @@ use He4rt\Activity\Message\Models\Message; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Factories\Factory; /** @@ -20,7 +19,6 @@ public function definition(): array { return [ 'id' => fake()->uuid(), - 'tenant_id' => Tenant::factory(), 'external_identity_id' => ExternalIdentity::factory(), 'provider_message_id' => fake()->randomNumber(4), 'channel_id' => fake()->randomNumber(4), diff --git a/app-modules/activity/database/factories/TimelineFactory.php b/app-modules/activity/database/factories/TimelineFactory.php index be23b698d..2a047b588 100644 --- a/app-modules/activity/database/factories/TimelineFactory.php +++ b/app-modules/activity/database/factories/TimelineFactory.php @@ -6,7 +6,6 @@ use He4rt\Activity\Timeline\Delegated\PostEntry; use He4rt\Activity\Timeline\Timeline; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; @@ -20,7 +19,6 @@ public function definition(): array { return [ 'user_id' => User::factory(), - 'tenant_id' => Tenant::factory(), 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => PostEntry::factory(), 'is_ignored' => false, diff --git a/app-modules/activity/database/factories/VoiceFactory.php b/app-modules/activity/database/factories/VoiceFactory.php index dcaa6af97..42de524cd 100644 --- a/app-modules/activity/database/factories/VoiceFactory.php +++ b/app-modules/activity/database/factories/VoiceFactory.php @@ -7,7 +7,6 @@ use He4rt\Activity\Voice\Enums\VoicePresenceEnum; use He4rt\Activity\Voice\Models\Voice; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Factories\Factory; /** @@ -20,7 +19,6 @@ final class VoiceFactory extends Factory public function definition(): array { return [ - 'tenant_id' => Tenant::factory(), 'external_identity_id' => ExternalIdentity::factory(), 'channel_name' => fake()->word(), 'channel_id' => (string) fake()->randomNumber(9), diff --git a/app-modules/activity/src/Message/Actions/NewMessage.php b/app-modules/activity/src/Message/Actions/NewMessage.php index 301b7bf99..9708e9d4b 100644 --- a/app-modules/activity/src/Message/Actions/NewMessage.php +++ b/app-modules/activity/src/Message/Actions/NewMessage.php @@ -23,7 +23,6 @@ public function persist(NewMessageDTO $messageDTO): void { try { $userDto = ResolveUserProviderDTO::make([ - 'tenant_id' => $messageDTO->tenantId, 'provider' => $messageDTO->provider, 'external_account_id' => $messageDTO->externalAccountId, 'model_type' => (new User)->getMorphClass(), @@ -47,7 +46,6 @@ public function persist(NewMessageDTO $messageDTO): void } catch (Throwable $throwable) { Log::channel('bot-discord')->error('NewMessage failed', [ 'external_account_id' => $messageDTO->externalAccountId, - 'tenant_id' => $messageDTO->tenantId, 'exception' => $throwable, ]); } diff --git a/app-modules/activity/src/Message/Actions/PersistMessage.php b/app-modules/activity/src/Message/Actions/PersistMessage.php index 0e1f1175f..7f31f00c8 100644 --- a/app-modules/activity/src/Message/Actions/PersistMessage.php +++ b/app-modules/activity/src/Message/Actions/PersistMessage.php @@ -15,7 +15,6 @@ public function handle( string $providerEntity ): Message { return Message::query()->create([ - 'tenant_id' => $messageDTO->tenantId, 'external_identity_id' => $providerEntity, 'provider_message_id' => $messageDTO->providerMessageId, 'channel_id' => $messageDTO->channelId, diff --git a/app-modules/activity/src/Message/DTOs/NewMessageDTO.php b/app-modules/activity/src/Message/DTOs/NewMessageDTO.php index 3fd773e40..11ce910dc 100644 --- a/app-modules/activity/src/Message/DTOs/NewMessageDTO.php +++ b/app-modules/activity/src/Message/DTOs/NewMessageDTO.php @@ -10,7 +10,6 @@ final class NewMessageDTO { public function __construct( - public string $tenantId, public IdentityProvider $provider, public string $providerUsername, public string $externalAccountId, @@ -26,7 +25,6 @@ public function __construct( public static function make(array $payload): self { return new self( - tenantId: $payload['tenant_id'], provider: IdentityProvider::from($payload['provider']), providerUsername: $payload['provider_username'], externalAccountId: $payload['external_account_id'], diff --git a/app-modules/activity/src/Message/Models/MembershipEvent.php b/app-modules/activity/src/Message/Models/MembershipEvent.php index 48b427bc7..1f14d8915 100644 --- a/app-modules/activity/src/Message/Models/MembershipEvent.php +++ b/app-modules/activity/src/Message/Models/MembershipEvent.php @@ -7,7 +7,6 @@ use Carbon\CarbonInterface; use He4rt\Activity\Message\Enums\MembershipEventKind; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Concerns\HasUuids; use Illuminate\Database\Eloquent\Model; @@ -15,7 +14,6 @@ /** * @property string $id - * @property string $tenant_id * @property string $external_identity_id * @property string $kind * @property CarbonInterface $occurred_at @@ -37,14 +35,6 @@ public function identity(): BelongsTo return $this->belongsTo(ExternalIdentity::class, 'external_identity_id'); } - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class, 'tenant_id'); - } - public function canonicalKind(): ?MembershipEventKind { return MembershipEventKind::tryFrom($this->kind); diff --git a/app-modules/activity/src/Message/Models/Message.php b/app-modules/activity/src/Message/Models/Message.php index b4a7e252c..487ca54b0 100644 --- a/app-modules/activity/src/Message/Models/Message.php +++ b/app-modules/activity/src/Message/Models/Message.php @@ -10,7 +10,6 @@ use He4rt\Activity\Message\Enums\MessageSourceKind; use He4rt\Activity\Reaction\Concerns\HasReactions; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Concerns\HasUuids; use Illuminate\Database\Eloquent\Factories\HasFactory; @@ -27,7 +26,6 @@ * @property string $content * @property int $obtained_experience * @property CarbonInterface|null $sent_at - * @property string $tenant_id * @property array|null $metadata * @property int $reactions_count * @property int $reactions_total @@ -59,14 +57,6 @@ public function provider(): BelongsTo return $this->belongsTo(ExternalIdentity::class, 'external_identity_id'); } - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class, 'tenant_id'); - } - /** * @return BelongsTo */ diff --git a/app-modules/activity/src/Message/Models/MessageAttachment.php b/app-modules/activity/src/Message/Models/MessageAttachment.php index de2279efe..16cb45bcf 100644 --- a/app-modules/activity/src/Message/Models/MessageAttachment.php +++ b/app-modules/activity/src/Message/Models/MessageAttachment.php @@ -5,7 +5,6 @@ namespace He4rt\Activity\Message\Models; use Carbon\CarbonInterface; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Concerns\HasUuids; use Illuminate\Database\Eloquent\Model; @@ -13,7 +12,6 @@ /** * @property string $id - * @property string $tenant_id * @property string $message_id * @property string|null $provider_attachment_id * @property string $url @@ -37,12 +35,4 @@ public function message(): BelongsTo { return $this->belongsTo(Message::class, 'message_id'); } - - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class, 'tenant_id'); - } } diff --git a/app-modules/activity/src/Message/Models/MessageEmbed.php b/app-modules/activity/src/Message/Models/MessageEmbed.php index 0c6e70df7..915bd0547 100644 --- a/app-modules/activity/src/Message/Models/MessageEmbed.php +++ b/app-modules/activity/src/Message/Models/MessageEmbed.php @@ -5,7 +5,6 @@ namespace He4rt\Activity\Message\Models; use Carbon\CarbonInterface; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Concerns\HasUuids; use Illuminate\Database\Eloquent\Model; @@ -13,7 +12,6 @@ /** * @property string $id - * @property string $tenant_id * @property string $message_id * @property string|null $url * @property string|null $title @@ -39,14 +37,6 @@ public function message(): BelongsTo return $this->belongsTo(Message::class, 'message_id'); } - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class, 'tenant_id'); - } - /** @return array */ protected function casts(): array { diff --git a/app-modules/activity/src/Message/Models/MessageMention.php b/app-modules/activity/src/Message/Models/MessageMention.php index 5e2910c27..d4723a001 100644 --- a/app-modules/activity/src/Message/Models/MessageMention.php +++ b/app-modules/activity/src/Message/Models/MessageMention.php @@ -6,7 +6,6 @@ use Carbon\CarbonInterface; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Concerns\HasUuids; use Illuminate\Database\Eloquent\Model; @@ -14,7 +13,6 @@ /** * @property string $id - * @property string $tenant_id * @property string $message_id * @property string|null $mentioned_identity_id * @property string $mentioned_provider_account_id @@ -43,12 +41,4 @@ public function mentionedIdentity(): BelongsTo { return $this->belongsTo(ExternalIdentity::class, 'mentioned_identity_id'); } - - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class, 'tenant_id'); - } } diff --git a/app-modules/activity/src/Message/Models/MessageThread.php b/app-modules/activity/src/Message/Models/MessageThread.php index ead322e40..82a7abd1b 100644 --- a/app-modules/activity/src/Message/Models/MessageThread.php +++ b/app-modules/activity/src/Message/Models/MessageThread.php @@ -5,7 +5,6 @@ namespace He4rt\Activity\Message\Models; use Carbon\CarbonInterface; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Concerns\HasUuids; use Illuminate\Database\Eloquent\Model; @@ -13,7 +12,6 @@ /** * @property string $id - * @property string $tenant_id * @property string $message_id * @property string $provider_thread_id * @property string|null $name @@ -35,14 +33,6 @@ public function message(): BelongsTo return $this->belongsTo(Message::class, 'message_id'); } - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class, 'tenant_id'); - } - /** @return array */ protected function casts(): array { diff --git a/app-modules/activity/src/Moderation/Models/ModerationEvent.php b/app-modules/activity/src/Moderation/Models/ModerationEvent.php index 950399fd4..8a58a10fb 100644 --- a/app-modules/activity/src/Moderation/Models/ModerationEvent.php +++ b/app-modules/activity/src/Moderation/Models/ModerationEvent.php @@ -9,7 +9,6 @@ use He4rt\Activity\Moderation\Enums\ModerationType; use He4rt\Activity\Timeline\Observers\ModerationEventObserver; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Attributes\ObservedBy; use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Concerns\HasUuids; @@ -18,7 +17,6 @@ /** * @property string $id - * @property string $tenant_id * @property string|null $external_identity_id * @property string|null $moderator_identity_id * @property ModerationType $type @@ -61,12 +59,6 @@ public function sourceMessage(): BelongsTo return $this->belongsTo(Message::class, 'source_message_id'); } - /** @return BelongsTo */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class); - } - /** @return array */ protected function casts(): array { diff --git a/app-modules/activity/src/Reaction/Models/Reaction.php b/app-modules/activity/src/Reaction/Models/Reaction.php index 9c9fd5675..7be5b6d21 100644 --- a/app-modules/activity/src/Reaction/Models/Reaction.php +++ b/app-modules/activity/src/Reaction/Models/Reaction.php @@ -4,16 +4,13 @@ namespace He4rt\Activity\Reaction\Models; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Concerns\HasUuids; use Illuminate\Database\Eloquent\Model; -use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\MorphTo; /** * @property string $id - * @property string $tenant_id * @property string $reactable_type * @property string $reactable_id * @property string $emoji_key @@ -34,12 +31,6 @@ public function reactable(): MorphTo return $this->morphTo(); } - /** @return BelongsTo */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class); - } - public function isCustomEmoji(): bool { return $this->emoji_id !== null; diff --git a/app-modules/activity/src/Timeline/Actions/CreatePost.php b/app-modules/activity/src/Timeline/Actions/CreatePost.php index 3ec0332a8..da219fcf4 100644 --- a/app-modules/activity/src/Timeline/Actions/CreatePost.php +++ b/app-modules/activity/src/Timeline/Actions/CreatePost.php @@ -29,7 +29,6 @@ public function handle(CreatePostDTO $dto): Timeline return Timeline::query()->create([ 'user_id' => $dto->userId, - 'tenant_id' => $dto->tenantId, 'postable_type' => $postEntry->getMorphClass(), 'postable_id' => $postEntry->id, ]); diff --git a/app-modules/activity/src/Timeline/Actions/CreateReply.php b/app-modules/activity/src/Timeline/Actions/CreateReply.php index da673c5d6..57f372d70 100644 --- a/app-modules/activity/src/Timeline/Actions/CreateReply.php +++ b/app-modules/activity/src/Timeline/Actions/CreateReply.php @@ -20,12 +20,11 @@ public function handle(CreateReplyDTO $dto): Timeline $parentTimeline = Timeline::query() ->where('id', $dto->parentTimelineId) - ->where('tenant_id', $dto->tenantId) ->firstOrFail(); $rootId = $parentTimeline->root_id ?? $parentTimeline->id; - return DB::transaction(static function () use ($dto, $content, $parentTimeline, $rootId): Timeline { + return DB::transaction(static function () use ($dto, $content, $rootId): Timeline { $postEntry = PostEntry::query()->create([ 'content' => $content, ]); @@ -36,7 +35,6 @@ public function handle(CreateReplyDTO $dto): Timeline return Timeline::query()->create([ 'user_id' => $dto->userId, - 'tenant_id' => $parentTimeline->tenant_id, 'postable_type' => $postEntry->getMorphClass(), 'postable_id' => $postEntry->id, 'root_id' => $rootId, diff --git a/app-modules/activity/src/Timeline/Actions/PublishModerationEntry.php b/app-modules/activity/src/Timeline/Actions/PublishModerationEntry.php index 78ce7f13b..74b63a1fd 100644 --- a/app-modules/activity/src/Timeline/Actions/PublishModerationEntry.php +++ b/app-modules/activity/src/Timeline/Actions/PublishModerationEntry.php @@ -29,7 +29,6 @@ public function handle(ModerationEvent $event): ?Timeline return Timeline::query()->create([ 'user_id' => $userId, - 'tenant_id' => $event->tenant_id, 'postable_type' => $event->getMorphClass(), 'postable_id' => $event->id, ]); diff --git a/app-modules/activity/src/Timeline/Actions/TogglePinPost.php b/app-modules/activity/src/Timeline/Actions/TogglePinPost.php index 61af6a6eb..d6b53beb6 100644 --- a/app-modules/activity/src/Timeline/Actions/TogglePinPost.php +++ b/app-modules/activity/src/Timeline/Actions/TogglePinPost.php @@ -25,7 +25,6 @@ public function handle(User $user, Timeline $timeline): void Timeline::withoutTimestamps(static function () use ($user, $timeline): void { Timeline::query() ->where('user_id', $user->id) - ->where('tenant_id', $timeline->tenant_id) ->where('pinned', operator: true) ->update(['pinned' => false]); diff --git a/app-modules/activity/src/Timeline/DTOs/CreatePostDTO.php b/app-modules/activity/src/Timeline/DTOs/CreatePostDTO.php index 2f385dca6..a1b53fe32 100644 --- a/app-modules/activity/src/Timeline/DTOs/CreatePostDTO.php +++ b/app-modules/activity/src/Timeline/DTOs/CreatePostDTO.php @@ -11,7 +11,6 @@ */ public function __construct( public string $userId, - public string $tenantId, public string $content, public array $images = [], ) {} diff --git a/app-modules/activity/src/Timeline/DTOs/CreateReplyDTO.php b/app-modules/activity/src/Timeline/DTOs/CreateReplyDTO.php index f585f5644..c82476033 100644 --- a/app-modules/activity/src/Timeline/DTOs/CreateReplyDTO.php +++ b/app-modules/activity/src/Timeline/DTOs/CreateReplyDTO.php @@ -11,7 +11,6 @@ */ public function __construct( public string $userId, - public string $tenantId, public string $parentTimelineId, public string $content, public array $images = [], diff --git a/app-modules/activity/src/Timeline/Listeners/PublishModerationToTimeline.php b/app-modules/activity/src/Timeline/Listeners/PublishModerationToTimeline.php index 8272786e7..f76418375 100644 --- a/app-modules/activity/src/Timeline/Listeners/PublishModerationToTimeline.php +++ b/app-modules/activity/src/Timeline/Listeners/PublishModerationToTimeline.php @@ -26,18 +26,11 @@ public function handle(ActionExecuted $event): void return; } - $tenantId = $action->tenant_id ?? $action->case?->tenant_id; - - if ($tenantId === null) { - return; - } - $case = $action->case; - $subjectIdentityId = $this->resolveIdentity($case?->author_id, $tenantId); - $moderatorIdentityId = $this->resolveIdentity($action->moderator_id, $tenantId); + $subjectIdentityId = $this->resolveIdentity($case?->author_id); + $moderatorIdentityId = $this->resolveIdentity($action->moderator_id); ModerationEvent::query()->create([ - 'tenant_id' => $tenantId, 'external_identity_id' => $subjectIdentityId, 'moderator_identity_id' => $moderatorIdentityId, 'type' => ModerationType::from($action->action_type->value), @@ -54,7 +47,7 @@ public function handle(ActionExecuted $event): void ]); } - private function resolveIdentity(?string $userId, string $tenantId): ?string + private function resolveIdentity(?string $userId): ?string { if ($userId === null) { return null; @@ -63,7 +56,6 @@ private function resolveIdentity(?string $userId, string $tenantId): ?string return ExternalIdentity::query() ->where('model_id', $userId) ->where('model_type', (new User)->getMorphClass()) - ->where('tenant_id', $tenantId) ->value('id'); } } diff --git a/app-modules/activity/src/Timeline/Queries/TimelineFeed.php b/app-modules/activity/src/Timeline/Queries/TimelineFeed.php index fdbd43483..cea5f3cf1 100644 --- a/app-modules/activity/src/Timeline/Queries/TimelineFeed.php +++ b/app-modules/activity/src/Timeline/Queries/TimelineFeed.php @@ -9,15 +9,10 @@ final readonly class TimelineFeed { - public function __construct( - private string $tenantId, - ) {} - /** @return Builder */ public function builder(): Builder { return Timeline::query() - ->where('tenant_id', $this->tenantId) ->where('is_ignored', operator: false) ->whereHas('user') ->whereNull('parent_id')->latest(); diff --git a/app-modules/activity/src/Timeline/Timeline.php b/app-modules/activity/src/Timeline/Timeline.php index 959ed2a2d..3340c17af 100644 --- a/app-modules/activity/src/Timeline/Timeline.php +++ b/app-modules/activity/src/Timeline/Timeline.php @@ -7,7 +7,6 @@ use Carbon\CarbonInterface; use He4rt\Activity\Database\Factories\TimelineFactory; use He4rt\Activity\Reaction\Concerns\HasReactions; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Concerns\HasUuids; @@ -20,7 +19,6 @@ /** * @property string $id * @property string $user_id - * @property string $tenant_id * @property string $postable_type * @property string $postable_id * @property string|null $root_id @@ -45,12 +43,6 @@ public function user(): BelongsTo return $this->belongsTo(User::class); } - /** @return BelongsTo */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class); - } - /** @return MorphTo */ public function postable(): MorphTo { @@ -85,7 +77,6 @@ protected function casts(): array { return [ 'user_id' => 'string', - 'tenant_id' => 'string', 'root_id' => 'string', 'parent_id' => 'string', 'is_ignored' => 'boolean', diff --git a/app-modules/activity/src/Tracking/Actions/TrackActivity.php b/app-modules/activity/src/Tracking/Actions/TrackActivity.php index 52b39dbe8..14c9bba22 100644 --- a/app-modules/activity/src/Tracking/Actions/TrackActivity.php +++ b/app-modules/activity/src/Tracking/Actions/TrackActivity.php @@ -35,7 +35,6 @@ public function handle(TrackActivityDTO $dto): ?Interaction $interaction = Interaction::query()->create([ 'character_id' => $dto->characterId, - 'tenant_id' => $dto->tenantId, 'type' => $dto->type, 'provider' => $dto->provider, 'value_tier' => $classification['tier'], diff --git a/app-modules/activity/src/Tracking/DTOs/TrackActivityDTO.php b/app-modules/activity/src/Tracking/DTOs/TrackActivityDTO.php index 05a5ec8db..0c73c77cd 100644 --- a/app-modules/activity/src/Tracking/DTOs/TrackActivityDTO.php +++ b/app-modules/activity/src/Tracking/DTOs/TrackActivityDTO.php @@ -12,7 +12,6 @@ { public function __construct( public string $characterId, - public string $tenantId, public ActivityType $type, public IdentityProvider $provider, public DateTimeImmutable $occurredAt, diff --git a/app-modules/activity/src/Tracking/Models/Interaction.php b/app-modules/activity/src/Tracking/Models/Interaction.php index 37c58c949..91ac563f9 100644 --- a/app-modules/activity/src/Tracking/Models/Interaction.php +++ b/app-modules/activity/src/Tracking/Models/Interaction.php @@ -11,7 +11,6 @@ use He4rt\Activity\Tracking\Enums\ValueTier; use He4rt\Gamification\Character\Models\Character; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Concerns\HasUuids; use Illuminate\Database\Eloquent\Factories\HasFactory; @@ -22,7 +21,6 @@ /** * @property string $id * @property string $character_id - * @property string $tenant_id * @property ActivityType $type * @property IdentityProvider $provider * @property ValueTier $value_tier @@ -53,14 +51,6 @@ public function character(): BelongsTo return $this->belongsTo(Character::class); } - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class); - } - /** * @return MorphTo */ diff --git a/app-modules/activity/src/Voice/Actions/NewVoiceMessage.php b/app-modules/activity/src/Voice/Actions/NewVoiceMessage.php index 88c7846cd..997e13963 100644 --- a/app-modules/activity/src/Voice/Actions/NewVoiceMessage.php +++ b/app-modules/activity/src/Voice/Actions/NewVoiceMessage.php @@ -25,7 +25,6 @@ public function persist(NewVoiceMessageDTO $voiceDTO): void try { DB::transaction(function () use ($voiceDTO): void { $userDto = ResolveUserProviderDTO::make([ - 'tenant_id' => $voiceDTO->tenantId, 'provider' => $voiceDTO->provider, 'external_account_id' => $voiceDTO->externalAccountId, 'model_type' => (new User)->getMorphClass(), @@ -40,7 +39,6 @@ public function persist(NewVoiceMessageDTO $voiceDTO): void ); Voice::query()->create([ - 'tenant_id' => $voiceDTO->tenantId, 'external_identity_id' => $userContext->provider->id, 'channel_name' => $voiceDTO->channelName, 'channel_id' => $voiceDTO->channelId, @@ -52,7 +50,6 @@ public function persist(NewVoiceMessageDTO $voiceDTO): void } catch (Throwable $throwable) { Log::channel('bot-discord')->error('NewVoiceMessage failed', [ 'external_account_id' => $voiceDTO->externalAccountId, - 'tenant_id' => $voiceDTO->tenantId, 'exception' => $throwable, ]); } diff --git a/app-modules/activity/src/Voice/Actions/RecordVoicePresence.php b/app-modules/activity/src/Voice/Actions/RecordVoicePresence.php index 2cd24c5a7..d98906c70 100644 --- a/app-modules/activity/src/Voice/Actions/RecordVoicePresence.php +++ b/app-modules/activity/src/Voice/Actions/RecordVoicePresence.php @@ -39,7 +39,6 @@ public function persistMany(array $dtos): void private function record(RecordVoicePresenceDTO $dto): void { $userDto = ResolveUserProviderDTO::make([ - 'tenant_id' => $dto->tenantId, 'provider' => $dto->provider, 'external_account_id' => $dto->externalAccountId, 'model_type' => (new User)->getMorphClass(), @@ -49,7 +48,6 @@ private function record(RecordVoicePresenceDTO $dto): void $userContext = resolve(ResolveUserContext::class)->handle($userDto); Voice::query()->create([ - 'tenant_id' => $dto->tenantId, 'external_identity_id' => $userContext->provider->id, 'channel_name' => $dto->channelName, 'channel_id' => $dto->channelId, diff --git a/app-modules/activity/src/Voice/DTOs/NewVoiceMessageDTO.php b/app-modules/activity/src/Voice/DTOs/NewVoiceMessageDTO.php index b78dd006d..fcbb9a46d 100644 --- a/app-modules/activity/src/Voice/DTOs/NewVoiceMessageDTO.php +++ b/app-modules/activity/src/Voice/DTOs/NewVoiceMessageDTO.php @@ -10,7 +10,6 @@ final readonly class NewVoiceMessageDTO { public function __construct( - public string $tenantId, public IdentityProvider $provider, public string $externalAccountId, public VoiceStatesEnum $voiceState, diff --git a/app-modules/activity/src/Voice/DTOs/RecordVoicePresenceDTO.php b/app-modules/activity/src/Voice/DTOs/RecordVoicePresenceDTO.php index 3a09cdefc..e474b95a5 100644 --- a/app-modules/activity/src/Voice/DTOs/RecordVoicePresenceDTO.php +++ b/app-modules/activity/src/Voice/DTOs/RecordVoicePresenceDTO.php @@ -11,7 +11,6 @@ final readonly class RecordVoicePresenceDTO { public function __construct( - public string $tenantId, public IdentityProvider $provider, public string $externalAccountId, public VoicePresenceEnum $presence, @@ -23,7 +22,7 @@ public function __construct( /** * Fan a single voice-state change out into one DTO per transition. * - * The identity (tenant, provider, account, username) is shared across every + * The identity (provider, account, username) is shared across every * transition of the change; the presence and channel come from each * already-resolved VoiceTransition — a move emits both a `left` and a * `joined`. @@ -32,14 +31,12 @@ public function __construct( * @return list */ public static function makeMany( - string $tenantId, IdentityProvider $provider, string $externalAccountId, array $transitions, ?string $username = null, ): array { return array_map(fn (VoiceTransition $transition): self => new self( - tenantId: $tenantId, provider: $provider, externalAccountId: $externalAccountId, presence: $transition->presence, diff --git a/app-modules/activity/src/Voice/Models/Voice.php b/app-modules/activity/src/Voice/Models/Voice.php index 1329435fd..bcfbf0b40 100644 --- a/app-modules/activity/src/Voice/Models/Voice.php +++ b/app-modules/activity/src/Voice/Models/Voice.php @@ -16,7 +16,6 @@ /** * @property int $id * @property string $external_identity_id - * @property string $tenant_id * @property string|null $provider_message_id * @property string $channel_name * @property string|null $channel_id diff --git a/app-modules/activity/src/Voice/Queries/GetCurrentVoiceChannel.php b/app-modules/activity/src/Voice/Queries/GetCurrentVoiceChannel.php index e8f447e48..2ccb4a667 100644 --- a/app-modules/activity/src/Voice/Queries/GetCurrentVoiceChannel.php +++ b/app-modules/activity/src/Voice/Queries/GetCurrentVoiceChannel.php @@ -20,13 +20,12 @@ */ final readonly class GetCurrentVoiceChannel { - public function handle(string $tenantId, IdentityProvider $provider, string $externalAccountId): ?CurrentVoiceChannel + public function handle(IdentityProvider $provider, string $externalAccountId): ?CurrentVoiceChannel { $latest = Voice::query() ->join('external_identities', 'external_identities.id', '=', 'voice_messages.external_identity_id') ->where('external_identities.external_account_id', $externalAccountId) ->where('external_identities.provider', $provider->value) - ->where('voice_messages.tenant_id', $tenantId) ->orderByDesc('voice_messages.id') ->first(['voice_messages.state', 'voice_messages.channel_id', 'voice_messages.channel_name']); diff --git a/app-modules/activity/tests/Unit/Actions/NewMessageTest.php b/app-modules/activity/tests/Unit/Actions/NewMessageTest.php index 890fd0f21..7b953c8a0 100644 --- a/app-modules/activity/tests/Unit/Actions/NewMessageTest.php +++ b/app-modules/activity/tests/Unit/Actions/NewMessageTest.php @@ -9,22 +9,18 @@ use He4rt\Gamification\Character\Models\Character; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; uses(RefreshDatabase::class); test('persist delegates to IncrementExperience and stores message', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(['is_donator' => false]); $character = Character::factory() ->recycle($user) - ->recycle($tenant) ->create(['experience' => 0]); $provider = ExternalIdentity::factory() - ->recycle($tenant) ->create([ 'model_type' => (new User)->getMorphClass(), 'model_id' => $user->id, @@ -34,7 +30,6 @@ $content = str_repeat('a', 200); $dto = new NewMessageDTO( - tenantId: $tenant->id, provider: IdentityProvider::Discord, providerUsername: 'testuser', externalAccountId: '123456', @@ -57,15 +52,12 @@ }); test('supporter gets double xp on message', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(['is_donator' => true]); $character = Character::factory() ->recycle($user) - ->recycle($tenant) ->create(['experience' => 0]); ExternalIdentity::factory() - ->recycle($tenant) ->create([ 'model_type' => (new User)->getMorphClass(), 'model_id' => $user->id, @@ -74,7 +66,6 @@ ]); $dto = new NewMessageDTO( - tenantId: $tenant->id, provider: IdentityProvider::Discord, providerUsername: 'supporter', externalAccountId: '789', @@ -91,15 +82,12 @@ }); test('short message gives minimum 1 xp at level 1', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(['is_donator' => false]); $character = Character::factory() ->recycle($user) - ->recycle($tenant) ->create(['experience' => 0]); ExternalIdentity::factory() - ->recycle($tenant) ->create([ 'model_type' => (new User)->getMorphClass(), 'model_id' => $user->id, @@ -108,7 +96,6 @@ ]); $dto = new NewMessageDTO( - tenantId: $tenant->id, provider: IdentityProvider::Discord, providerUsername: 'newbie', externalAccountId: '456', diff --git a/app-modules/activity/tests/Unit/Actions/NewVoiceMessageTest.php b/app-modules/activity/tests/Unit/Actions/NewVoiceMessageTest.php index ede8fef46..697250f1f 100644 --- a/app-modules/activity/tests/Unit/Actions/NewVoiceMessageTest.php +++ b/app-modules/activity/tests/Unit/Actions/NewVoiceMessageTest.php @@ -9,22 +9,18 @@ use He4rt\Gamification\Character\Models\Character; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; uses(RefreshDatabase::class); test('unmuted voice state awards multiplier times level', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); $character = Character::factory() ->recycle($user) - ->recycle($tenant) ->create(['experience' => 4_500]); // level 10 ExternalIdentity::factory() - ->recycle($tenant) ->create([ 'model_type' => (new User)->getMorphClass(), 'model_id' => $user->id, @@ -33,7 +29,6 @@ ]); $dto = new NewVoiceMessageDTO( - tenantId: $tenant->id, provider: IdentityProvider::Discord, externalAccountId: '123456', voiceState: VoiceStatesEnum::Unmuted, @@ -53,20 +48,16 @@ ->and($voice->state)->toBe('unmuted') ->and($voice->channel_name)->toBe('general-voice') ->and($voice->channel_id)->toBe('111222333') - ->and($voice->tenant_id)->toBe($tenant->id) ->and($voice->occurred_at)->not->toBeNull(); }); test('muted voice state awards reduced xp', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); $character = Character::factory() ->recycle($user) - ->recycle($tenant) ->create(['experience' => 4_500]); // level 10 ExternalIdentity::factory() - ->recycle($tenant) ->create([ 'model_type' => (new User)->getMorphClass(), 'model_id' => $user->id, @@ -75,7 +66,6 @@ ]); $dto = new NewVoiceMessageDTO( - tenantId: $tenant->id, provider: IdentityProvider::Discord, externalAccountId: '789', voiceState: VoiceStatesEnum::Muted, @@ -94,15 +84,12 @@ }); test('disabled voice state awards zero xp', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); $character = Character::factory() ->recycle($user) - ->recycle($tenant) ->create(['experience' => 4_500]); // level 10 ExternalIdentity::factory() - ->recycle($tenant) ->create([ 'model_type' => (new User)->getMorphClass(), 'model_id' => $user->id, @@ -111,7 +98,6 @@ ]); $dto = new NewVoiceMessageDTO( - tenantId: $tenant->id, provider: IdentityProvider::Discord, externalAccountId: '456', voiceState: VoiceStatesEnum::Disabled, @@ -129,15 +115,12 @@ }); test('records channel name, channel id and occurred_at', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); Character::factory() ->recycle($user) - ->recycle($tenant) ->create(['experience' => 0]); ExternalIdentity::factory() - ->recycle($tenant) ->create([ 'model_type' => (new User)->getMorphClass(), 'model_id' => $user->id, @@ -146,7 +129,6 @@ ]); $dto = new NewVoiceMessageDTO( - tenantId: $tenant->id, provider: IdentityProvider::Discord, externalAccountId: '321', voiceState: VoiceStatesEnum::Unmuted, diff --git a/app-modules/activity/tests/Unit/Actions/RecordVoicePresenceTest.php b/app-modules/activity/tests/Unit/Actions/RecordVoicePresenceTest.php index 3dbf66c78..9b4aae016 100644 --- a/app-modules/activity/tests/Unit/Actions/RecordVoicePresenceTest.php +++ b/app-modules/activity/tests/Unit/Actions/RecordVoicePresenceTest.php @@ -11,7 +11,6 @@ use He4rt\Identity\ExternalIdentity\DTOs\ResolveUserProviderDTO; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Actions\ResolveUserContext; use He4rt\Identity\User\Models\User; use He4rt\Identity\User\ValueObjects\UserContext; @@ -20,19 +19,16 @@ uses(RefreshDatabase::class); /** - * @return array{tenant: Tenant, character: Character, user: User, identity: ExternalIdentity} + * @return array{character: Character, user: User, identity: ExternalIdentity} */ function seedPresenceUser(string $externalAccountId): array { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); $character = Character::factory() ->recycle($user) - ->recycle($tenant) ->create(['experience' => 4_500]); // level 10 $identity = ExternalIdentity::factory() - ->recycle($tenant) ->create([ 'model_type' => (new User)->getMorphClass(), 'model_id' => $user->id, @@ -40,13 +36,12 @@ function seedPresenceUser(string $externalAccountId): array 'external_account_id' => $externalAccountId, ]); - return ['tenant' => $tenant, 'character' => $character, 'user' => $user, 'identity' => $identity]; + return ['character' => $character, 'user' => $user, 'identity' => $identity]; } -function presenceDto(Tenant $tenant, string $account, VoicePresenceEnum $presence, string $channelId): RecordVoicePresenceDTO +function presenceDto(string $account, VoicePresenceEnum $presence, string $channelId): RecordVoicePresenceDTO { return new RecordVoicePresenceDTO( - tenantId: $tenant->id, provider: IdentityProvider::Discord, externalAccountId: $account, presence: $presence, @@ -56,10 +51,9 @@ function presenceDto(Tenant $tenant, string $account, VoicePresenceEnum $presenc } test('joined presence is recorded with zero xp and leaves character xp untouched', function (): void { - ['tenant' => $tenant, 'character' => $character] = seedPresenceUser('123456'); + ['character' => $character] = seedPresenceUser('123456'); resolve(RecordVoicePresence::class)->persistMany([new RecordVoicePresenceDTO( - tenantId: $tenant->id, provider: IdentityProvider::Discord, externalAccountId: '123456', presence: VoicePresenceEnum::Joined, @@ -76,15 +70,13 @@ function presenceDto(Tenant $tenant, string $account, VoicePresenceEnum $presenc ->and($voice->obtained_experience)->toBe(0) ->and($voice->channel_name)->toBe('general-voice') ->and($voice->channel_id)->toBe('111222333') - ->and($voice->tenant_id)->toBe($tenant->id) ->and($voice->occurred_at)->not->toBeNull(); }); test('left presence is recorded with zero xp', function (): void { - ['tenant' => $tenant] = seedPresenceUser('789'); + seedPresenceUser('789'); resolve(RecordVoicePresence::class)->persistMany([new RecordVoicePresenceDTO( - tenantId: $tenant->id, provider: IdentityProvider::Discord, externalAccountId: '789', presence: VoicePresenceEnum::Left, @@ -100,10 +92,9 @@ function presenceDto(Tenant $tenant, string $account, VoicePresenceEnum $presenc test('presence is audio-agnostic: a record is written regardless of mute or deaf state', function (): void { // The DTO carries no audio state, so a deafened user joining is recorded // exactly like anyone else — proven by the row simply existing. - ['tenant' => $tenant] = seedPresenceUser('456'); + seedPresenceUser('456'); resolve(RecordVoicePresence::class)->persistMany([new RecordVoicePresenceDTO( - tenantId: $tenant->id, provider: IdentityProvider::Discord, externalAccountId: '456', presence: VoicePresenceEnum::Joined, @@ -116,7 +107,6 @@ function presenceDto(Tenant $tenant, string $account, VoicePresenceEnum $presenc test('makeMany fans the shared identity across every transition', function (): void { $dtos = RecordVoicePresenceDTO::makeMany( - tenantId: 'tenant-1', provider: IdentityProvider::Discord, externalAccountId: '777', transitions: [ @@ -135,15 +125,13 @@ function presenceDto(Tenant $tenant, string $account, VoicePresenceEnum $presenc ->and($dtos[1]->channelName)->toBe('B'); foreach ($dtos as $dto) { - expect($dto->tenantId)->toBe('tenant-1') - ->and($dto->externalAccountId)->toBe('777') + expect($dto->externalAccountId)->toBe('777') ->and($dto->username)->toBe('mover'); } }); test('makeMany returns an empty list for no transitions', function (): void { expect(RecordVoicePresenceDTO::makeMany( - tenantId: 'tenant-1', provider: IdentityProvider::Discord, externalAccountId: '777', transitions: [], @@ -157,11 +145,11 @@ function presenceDto(Tenant $tenant, string $account, VoicePresenceEnum $presenc }); test('persistMany records every transition of a move', function (): void { - ['tenant' => $tenant] = seedPresenceUser('777'); + seedPresenceUser('777'); resolve(RecordVoicePresence::class)->persistMany([ - presenceDto($tenant, '777', VoicePresenceEnum::Left, 'chA'), - presenceDto($tenant, '777', VoicePresenceEnum::Joined, 'chB'), + presenceDto('777', VoicePresenceEnum::Left, 'chA'), + presenceDto('777', VoicePresenceEnum::Joined, 'chB'), ]); expect(Voice::query()->count())->toBe(2) @@ -170,7 +158,7 @@ function presenceDto(Tenant $tenant, string $account, VoicePresenceEnum $presenc }); test('persistMany rolls back every row when one transition fails', function (): void { - ['tenant' => $tenant, 'character' => $character, 'user' => $user, 'identity' => $identity] = seedPresenceUser('555'); + ['character' => $character, 'user' => $user, 'identity' => $identity] = seedPresenceUser('555'); // First transition resolves fine (and inserts), the second blows up — the // whole move must roll back, leaving no half-written presence. ResolveUserContext @@ -196,8 +184,8 @@ public function handle(ResolveUserProviderDTO $dto): UserContext app()->instance(ResolveUserContext::class, $fake); expect(fn () => resolve(RecordVoicePresence::class)->persistMany([ - presenceDto($tenant, '555', VoicePresenceEnum::Left, 'chA'), - presenceDto($tenant, '555', VoicePresenceEnum::Joined, 'chB'), + presenceDto('555', VoicePresenceEnum::Left, 'chA'), + presenceDto('555', VoicePresenceEnum::Joined, 'chB'), ]))->toThrow(RuntimeException::class, 'boom'); expect(Voice::query()->count())->toBe(0); diff --git a/app-modules/activity/tests/Unit/Queries/GetCurrentVoiceChannelTest.php b/app-modules/activity/tests/Unit/Queries/GetCurrentVoiceChannelTest.php index efc2db9ba..3a60f4d09 100644 --- a/app-modules/activity/tests/Unit/Queries/GetCurrentVoiceChannelTest.php +++ b/app-modules/activity/tests/Unit/Queries/GetCurrentVoiceChannelTest.php @@ -7,33 +7,25 @@ use He4rt\Activity\Voice\ValueObjects\CurrentVoiceChannel; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; uses(RefreshDatabase::class); -/** - * @return array{tenant: Tenant, identity: ExternalIdentity} - */ -function seedVoiceIdentity(string $externalAccountId = '123456'): array +function seedVoiceIdentity(string $externalAccountId = '123456'): ExternalIdentity { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); - $identity = ExternalIdentity::factory() - ->recycle($tenant) + return ExternalIdentity::factory() ->create([ 'model_type' => (new User)->getMorphClass(), 'model_id' => $user->id, 'provider' => IdentityProvider::Discord, 'external_account_id' => $externalAccountId, ]); - - return ['tenant' => $tenant, 'identity' => $identity]; } -function recordVoice(Tenant $tenant, ExternalIdentity $identity, string $state, ?string $channelId, ?string $channelName = null): void +function recordVoice(ExternalIdentity $identity, string $state, ?string $channelId, ?string $channelName = null): void { $factory = match ($state) { 'joined' => Voice::factory()->joined(), @@ -42,7 +34,6 @@ function recordVoice(Tenant $tenant, ExternalIdentity $identity, string $state, }; $factory->create([ - 'tenant_id' => $tenant->id, 'external_identity_id' => $identity->id, 'channel_id' => $channelId, 'channel_name' => $channelName ?? 'channel', @@ -50,10 +41,9 @@ function recordVoice(Tenant $tenant, ExternalIdentity $identity, string $state, } test('returns null when the user has no voice rows', function (): void { - ['tenant' => $tenant] = seedVoiceIdentity(); + seedVoiceIdentity(); $current = resolve(GetCurrentVoiceChannel::class)->handle( - $tenant->id, IdentityProvider::Discord, '123456', ); @@ -62,10 +52,10 @@ function recordVoice(Tenant $tenant, ExternalIdentity $identity, string $state, }); test('returns the channel when the latest row is a join', function (): void { - ['tenant' => $tenant, 'identity' => $identity] = seedVoiceIdentity(); - recordVoice($tenant, $identity, 'joined', 'chA', 'General'); + $identity = seedVoiceIdentity(); + recordVoice($identity, 'joined', 'chA', 'General'); - $current = resolve(GetCurrentVoiceChannel::class)->handle($tenant->id, IdentityProvider::Discord, '123456'); + $current = resolve(GetCurrentVoiceChannel::class)->handle(IdentityProvider::Discord, '123456'); expect($current)->toBeInstanceOf(CurrentVoiceChannel::class) ->and($current->channelId)->toBe('chA') @@ -73,42 +63,42 @@ function recordVoice(Tenant $tenant, ExternalIdentity $identity, string $state, }); test('returns null when the latest row is a leave', function (): void { - ['tenant' => $tenant, 'identity' => $identity] = seedVoiceIdentity(); - recordVoice($tenant, $identity, 'joined', 'chA'); - recordVoice($tenant, $identity, 'left', 'chA'); + $identity = seedVoiceIdentity(); + recordVoice($identity, 'joined', 'chA'); + recordVoice($identity, 'left', 'chA'); - $current = resolve(GetCurrentVoiceChannel::class)->handle($tenant->id, IdentityProvider::Discord, '123456'); + $current = resolve(GetCurrentVoiceChannel::class)->handle(IdentityProvider::Discord, '123456'); expect($current)->toBeNull(); }); test('treats an xp ticker row (unmuted) as present in that channel', function (): void { - ['tenant' => $tenant, 'identity' => $identity] = seedVoiceIdentity(); - recordVoice($tenant, $identity, 'joined', 'chA'); - recordVoice($tenant, $identity, 'unmuted', 'chA', 'General'); + $identity = seedVoiceIdentity(); + recordVoice($identity, 'joined', 'chA'); + recordVoice($identity, 'unmuted', 'chA', 'General'); - $current = resolve(GetCurrentVoiceChannel::class)->handle($tenant->id, IdentityProvider::Discord, '123456'); + $current = resolve(GetCurrentVoiceChannel::class)->handle(IdentityProvider::Discord, '123456'); expect($current?->channelId)->toBe('chA'); }); test('follows a move to the most recent channel', function (): void { - ['tenant' => $tenant, 'identity' => $identity] = seedVoiceIdentity(); - recordVoice($tenant, $identity, 'joined', 'chA'); - recordVoice($tenant, $identity, 'left', 'chA'); - recordVoice($tenant, $identity, 'joined', 'chB', 'Dev'); + $identity = seedVoiceIdentity(); + recordVoice($identity, 'joined', 'chA'); + recordVoice($identity, 'left', 'chA'); + recordVoice($identity, 'joined', 'chB', 'Dev'); - $current = resolve(GetCurrentVoiceChannel::class)->handle($tenant->id, IdentityProvider::Discord, '123456'); + $current = resolve(GetCurrentVoiceChannel::class)->handle(IdentityProvider::Discord, '123456'); expect($current?->channelId)->toBe('chB') ->and($current?->channelName)->toBe('Dev'); }); test('is scoped to the requested user', function (): void { - ['tenant' => $tenant, 'identity' => $identity] = seedVoiceIdentity('aaa'); - recordVoice($tenant, $identity, 'joined', 'chA'); + $identity = seedVoiceIdentity('aaa'); + recordVoice($identity, 'joined', 'chA'); - $current = resolve(GetCurrentVoiceChannel::class)->handle($tenant->id, IdentityProvider::Discord, 'bbb'); + $current = resolve(GetCurrentVoiceChannel::class)->handle(IdentityProvider::Discord, 'bbb'); expect($current)->toBeNull(); }); diff --git a/app-modules/activity/tests/Unit/Timeline/CreatePostTest.php b/app-modules/activity/tests/Unit/Timeline/CreatePostTest.php index b063a7138..f3bc8f061 100644 --- a/app-modules/activity/tests/Unit/Timeline/CreatePostTest.php +++ b/app-modules/activity/tests/Unit/Timeline/CreatePostTest.php @@ -6,7 +6,6 @@ use He4rt\Activity\Timeline\Delegated\PostEntry; use He4rt\Activity\Timeline\DTOs\CreatePostDTO; use He4rt\Activity\Timeline\Timeline; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Database\QueryException; use Illuminate\Foundation\Testing\RefreshDatabase; @@ -14,20 +13,17 @@ uses(RefreshDatabase::class); beforeEach(function (): void { - $this->tenant = Tenant::factory()->create(); $this->user = User::factory()->create(); }); test('creates a post entry and timeline record', function (): void { $timeline = resolve(CreatePost::class)->handle(new CreatePostDTO( userId: $this->user->id, - tenantId: $this->tenant->id, content: 'Hello **He4rt** community!', )); expect($timeline)->toBeInstanceOf(Timeline::class) ->and($timeline->user_id)->toBe($this->user->id) - ->and($timeline->tenant_id)->toBe($this->tenant->id) ->and($timeline->postable_type)->toBe((new PostEntry)->getMorphClass()) ->and($timeline->postable)->toBeInstanceOf(PostEntry::class) ->and($timeline->postable->content)->toBe('Hello **He4rt** community!') @@ -43,7 +39,6 @@ $timeline = resolve(CreatePost::class)->handle(new CreatePostDTO( userId: $this->user->id, - tenantId: $this->tenant->id, content: $longContent, )); @@ -53,7 +48,6 @@ test('post creation is atomic — no orphaned PostEntry on Timeline failure', function (): void { expect(fn () => resolve(CreatePost::class)->handle(new CreatePostDTO( userId: 'not-a-valid-uuid', - tenantId: $this->tenant->id, content: 'This should fail', )))->toThrow(QueryException::class); @@ -63,7 +57,6 @@ test('creates a post with empty content is rejected', function (): void { resolve(CreatePost::class)->handle(new CreatePostDTO( userId: $this->user->id, - tenantId: $this->tenant->id, content: '', )); })->throws(InvalidArgumentException::class); diff --git a/app-modules/activity/tests/Unit/Timeline/CreateReplyTest.php b/app-modules/activity/tests/Unit/Timeline/CreateReplyTest.php index d0fadbf7a..c8f75abe2 100644 --- a/app-modules/activity/tests/Unit/Timeline/CreateReplyTest.php +++ b/app-modules/activity/tests/Unit/Timeline/CreateReplyTest.php @@ -6,7 +6,6 @@ use He4rt\Activity\Timeline\Delegated\PostEntry; use He4rt\Activity\Timeline\DTOs\CreateReplyDTO; use He4rt\Activity\Timeline\Timeline; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Database\QueryException; use Illuminate\Foundation\Testing\RefreshDatabase; @@ -14,14 +13,12 @@ uses(RefreshDatabase::class); test('creates a reply to a root post', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); $postEntry = PostEntry::factory()->create(); $rootPost = Timeline::factory() ->for($user) ->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $postEntry->id, ]); @@ -30,26 +27,22 @@ $reply = resolve(CreateReply::class)->handle(new CreateReplyDTO( userId: $replier->id, - tenantId: $tenant->id, parentTimelineId: $rootPost->id, content: 'Great post!', )); expect($reply->parent_id)->toBe($rootPost->id) ->and($reply->root_id)->toBe($rootPost->id) - ->and($reply->tenant_id)->toBe($tenant->id) ->and($reply->postable->content)->toBe('Great post!'); }); test('reply to a reply flattens to root level', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); $postEntry = PostEntry::factory()->create(); $rootPost = Timeline::factory() ->for($user) ->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $postEntry->id, ]); @@ -58,7 +51,6 @@ $reply = Timeline::factory() ->for($user) ->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $replyEntry->id, 'root_id' => $rootPost->id, @@ -69,7 +61,6 @@ $replyToReply = resolve(CreateReply::class)->handle(new CreateReplyDTO( userId: $secondReplier->id, - tenantId: $tenant->id, parentTimelineId: $reply->id, content: 'Replying to a reply', )); @@ -79,14 +70,12 @@ }); test('reply creation is atomic — no orphaned PostEntry on Timeline failure', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); $postEntry = PostEntry::factory()->create(); $rootPost = Timeline::factory() ->for($user) ->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $postEntry->id, ]); @@ -95,7 +84,6 @@ expect(fn () => resolve(CreateReply::class)->handle(new CreateReplyDTO( userId: 'non-existent-user-id', - tenantId: $tenant->id, parentTimelineId: $rootPost->id, content: 'This should fail', )))->toThrow(QueryException::class); diff --git a/app-modules/activity/tests/Unit/Timeline/DeleteReplyTest.php b/app-modules/activity/tests/Unit/Timeline/DeleteReplyTest.php index 587ca9285..f1c427468 100644 --- a/app-modules/activity/tests/Unit/Timeline/DeleteReplyTest.php +++ b/app-modules/activity/tests/Unit/Timeline/DeleteReplyTest.php @@ -5,7 +5,6 @@ use He4rt\Activity\Timeline\Actions\DeleteReply; use He4rt\Activity\Timeline\Delegated\PostEntry; use He4rt\Activity\Timeline\Timeline; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Auth\Access\AuthorizationException; use Illuminate\Foundation\Testing\RefreshDatabase; @@ -13,14 +12,12 @@ uses(RefreshDatabase::class); test('owner can delete their own reply', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); $rootEntry = PostEntry::factory()->create(); $rootPost = Timeline::factory() ->for($user) ->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $rootEntry->id, ]); @@ -30,7 +27,6 @@ $reply = Timeline::factory() ->for($replier) ->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $replyEntry->id, 'root_id' => $rootPost->id, @@ -44,14 +40,12 @@ }); test('cannot delete another users reply', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); $rootEntry = PostEntry::factory()->create(); $rootPost = Timeline::factory() ->for($user) ->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $rootEntry->id, ]); @@ -61,7 +55,6 @@ $reply = Timeline::factory() ->for($replier) ->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $replyEntry->id, 'root_id' => $rootPost->id, @@ -74,14 +67,12 @@ })->throws(AuthorizationException::class); test('cannot delete a root post via delete reply', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); $rootEntry = PostEntry::factory()->create(); $rootPost = Timeline::factory() ->for($user) ->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $rootEntry->id, ]); diff --git a/app-modules/activity/tests/Unit/Timeline/PublishModerationEntryTest.php b/app-modules/activity/tests/Unit/Timeline/PublishModerationEntryTest.php index 056195d5c..80541e5cf 100644 --- a/app-modules/activity/tests/Unit/Timeline/PublishModerationEntryTest.php +++ b/app-modules/activity/tests/Unit/Timeline/PublishModerationEntryTest.php @@ -6,23 +6,19 @@ use He4rt\Activity\Moderation\Models\ModerationEvent; use He4rt\Activity\Timeline\Timeline; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; uses(RefreshDatabase::class); test('publishes a timeline entry for a ban moderation event via observer', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); $moderatorIdentity = ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, 'model_id' => $user->id, 'model_type' => (new User)->getMorphClass(), ]); $event = ModerationEvent::query()->create([ - 'tenant_id' => $tenant->id, 'external_identity_id' => null, 'moderator_identity_id' => $moderatorIdentity->id, 'type' => ModerationType::Ban, @@ -36,29 +32,24 @@ expect($timeline)->not->toBeNull() ->and($timeline->user_id)->toBe($user->id) - ->and($timeline->tenant_id)->toBe($tenant->id) ->and($timeline->postable_type)->toBe((new ModerationEvent)->getMorphClass()) ->and($timeline->postable_id)->toBe($event->id); }); test('publishes a timeline entry for a kick moderation event via observer', function (): void { - $tenant = Tenant::factory()->create(); $moderator = User::factory()->create(); $moderatorIdentity = ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, 'model_id' => $moderator->id, 'model_type' => (new User)->getMorphClass(), ]); $subject = User::factory()->create(); $subjectIdentity = ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, 'model_id' => $subject->id, 'model_type' => (new User)->getMorphClass(), ]); $event = ModerationEvent::query()->create([ - 'tenant_id' => $tenant->id, 'external_identity_id' => $subjectIdentity->id, 'moderator_identity_id' => $moderatorIdentity->id, 'type' => ModerationType::Kick, @@ -76,16 +67,13 @@ }); test('does not publish a timeline entry when moderator identity is missing', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); $subjectIdentity = ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, 'model_id' => $user->id, 'model_type' => (new User)->getMorphClass(), ]); ModerationEvent::query()->create([ - 'tenant_id' => $tenant->id, 'external_identity_id' => $subjectIdentity->id, 'moderator_identity_id' => null, 'type' => ModerationType::Kick, @@ -97,10 +85,7 @@ }); test('does not publish a timeline entry for a warn moderation event', function (): void { - $tenant = Tenant::factory()->create(); - ModerationEvent::query()->create([ - 'tenant_id' => $tenant->id, 'external_identity_id' => null, 'moderator_identity_id' => null, 'type' => ModerationType::Warn, diff --git a/app-modules/activity/tests/Unit/Timeline/TimelineFeedQueryTest.php b/app-modules/activity/tests/Unit/Timeline/TimelineFeedQueryTest.php index 65f60a4a3..015afac24 100644 --- a/app-modules/activity/tests/Unit/Timeline/TimelineFeedQueryTest.php +++ b/app-modules/activity/tests/Unit/Timeline/TimelineFeedQueryTest.php @@ -5,128 +5,93 @@ use He4rt\Activity\Timeline\Delegated\PostEntry; use He4rt\Activity\Timeline\Queries\TimelineFeed; use He4rt\Activity\Timeline\Timeline; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; uses(RefreshDatabase::class); -test('returns only root posts for tenant ordered by newest first', function (): void { - $tenant = Tenant::factory()->create(); +test('returns only root posts ordered by newest first', function (): void { $user = User::factory()->create(); $older = Timeline::factory()->for($user)->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => PostEntry::factory()->create()->id, 'created_at' => now()->subHour(), ]); $newer = Timeline::factory()->for($user)->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => PostEntry::factory()->create()->id, 'created_at' => now(), ]); - $result = new TimelineFeed($tenant->id)->builder()->simplePaginate(15); + $result = (new TimelineFeed)->builder()->simplePaginate(15); expect($result)->toHaveCount(2) ->and($result->first()->id)->toBe($newer->id); }); test('excludes replies from feed', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); $postEntry = PostEntry::factory()->create(); $root = Timeline::factory()->for($user)->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $postEntry->id, ]); $replyEntry = PostEntry::factory()->create(); Timeline::factory()->for($user)->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $replyEntry->id, 'root_id' => $root->id, 'parent_id' => $root->id, ]); - $result = new TimelineFeed($tenant->id)->builder()->simplePaginate(15); + $result = (new TimelineFeed)->builder()->simplePaginate(15); expect($result)->toHaveCount(1) ->and($result->first()->id)->toBe($root->id); }); test('excludes ignored posts from feed', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); Timeline::factory()->for($user)->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => PostEntry::factory()->create()->id, 'is_ignored' => true, ]); $visible = Timeline::factory()->for($user)->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => PostEntry::factory()->create()->id, ]); - $result = new TimelineFeed($tenant->id)->builder()->simplePaginate(15); + $result = (new TimelineFeed)->builder()->simplePaginate(15); expect($result)->toHaveCount(1) ->and($result->first()->id)->toBe($visible->id); }); test('excludes posts whose author no longer exists', function (): void { - $tenant = Tenant::factory()->create(); $author = User::factory()->create(); $ghost = User::factory()->create(); $visible = Timeline::factory()->for($author)->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => PostEntry::factory()->create()->id, ]); Timeline::factory()->for($ghost)->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => PostEntry::factory()->create()->id, ]); $ghost->delete(); - $result = new TimelineFeed($tenant->id)->builder()->simplePaginate(15); + $result = (new TimelineFeed)->builder()->simplePaginate(15); expect($result)->toHaveCount(1) ->and($result->first()->id)->toBe($visible->id); }); - -test('does not show posts from other tenants', function (): void { - $tenantA = Tenant::factory()->create(); - $tenantB = Tenant::factory()->create(); - $user = User::factory()->create(); - - Timeline::factory()->for($user)->create([ - 'tenant_id' => $tenantA->id, - 'postable_type' => (new PostEntry)->getMorphClass(), - 'postable_id' => PostEntry::factory()->create()->id, - ]); - - Timeline::factory()->for($user)->create([ - 'tenant_id' => $tenantB->id, - 'postable_type' => (new PostEntry)->getMorphClass(), - 'postable_id' => PostEntry::factory()->create()->id, - ]); - - $result = new TimelineFeed($tenantA->id)->builder()->simplePaginate(15); - - expect($result)->toHaveCount(1); -}); diff --git a/app-modules/activity/tests/Unit/Timeline/TimelineModelTest.php b/app-modules/activity/tests/Unit/Timeline/TimelineModelTest.php index e438c1b9d..61941aa1e 100644 --- a/app-modules/activity/tests/Unit/Timeline/TimelineModelTest.php +++ b/app-modules/activity/tests/Unit/Timeline/TimelineModelTest.php @@ -4,32 +4,27 @@ use He4rt\Activity\Timeline\Delegated\PostEntry; use He4rt\Activity\Timeline\Timeline; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; uses(RefreshDatabase::class); -test('timeline belongs to user and tenant', function (): void { - $tenant = Tenant::factory()->create(); +test('timeline belongs to user', function (): void { $user = User::factory()->create(); $postEntry = PostEntry::factory()->create(); $timeline = Timeline::factory() ->for($user) ->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $postEntry->id, ]); expect($timeline->user->id)->toBe($user->id) - ->and($timeline->tenant->id)->toBe($tenant->id) ->and($timeline->postable)->toBeInstanceOf(PostEntry::class); }); test('timeline has children and parent for threading', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); $parentEntry = PostEntry::factory()->create(); $childEntry = PostEntry::factory()->create(); @@ -37,7 +32,6 @@ $parent = Timeline::factory() ->for($user) ->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $parentEntry->id, ]); @@ -45,7 +39,6 @@ $child = Timeline::factory() ->for($user) ->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $childEntry->id, 'root_id' => $parent->id, @@ -59,20 +52,17 @@ }); test('timeline has reactions via HasReactions trait', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); $postEntry = PostEntry::factory()->create(); $timeline = Timeline::factory() ->for($user) ->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $postEntry->id, ]); $timeline->reactions()->create([ - 'tenant_id' => $tenant->id, 'emoji_key' => '❤️', 'emoji_name' => 'heart', 'count' => 1, diff --git a/app-modules/activity/tests/Unit/Timeline/TogglePinPostTest.php b/app-modules/activity/tests/Unit/Timeline/TogglePinPostTest.php index 77b6351c5..52563842f 100644 --- a/app-modules/activity/tests/Unit/Timeline/TogglePinPostTest.php +++ b/app-modules/activity/tests/Unit/Timeline/TogglePinPostTest.php @@ -5,7 +5,6 @@ use He4rt\Activity\Timeline\Actions\TogglePinPost; use He4rt\Activity\Timeline\Delegated\PostEntry; use He4rt\Activity\Timeline\Timeline; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Auth\Access\AuthorizationException; use Illuminate\Foundation\Testing\RefreshDatabase; @@ -13,14 +12,12 @@ uses(RefreshDatabase::class); test('user can pin their own post', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); $postEntry = PostEntry::factory()->create(); $timeline = Timeline::factory() ->for($user) ->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $postEntry->id, ]); @@ -31,14 +28,12 @@ }); test('pinning a post unpins the previously pinned post', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); $firstEntry = PostEntry::factory()->create(); $firstPost = Timeline::factory() ->for($user) ->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $firstEntry->id, 'pinned' => true, @@ -48,7 +43,6 @@ $secondPost = Timeline::factory() ->for($user) ->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $secondEntry->id, ]); @@ -60,14 +54,12 @@ }); test('user can unpin their own post', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); $postEntry = PostEntry::factory()->create(); $timeline = Timeline::factory() ->for($user) ->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $postEntry->id, 'pinned' => true, @@ -79,7 +71,6 @@ }); test('user cannot pin another users post', function (): void { - $tenant = Tenant::factory()->create(); $owner = User::factory()->create(); $other = User::factory()->create(); $postEntry = PostEntry::factory()->create(); @@ -87,7 +78,6 @@ $timeline = Timeline::factory() ->for($owner) ->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $postEntry->id, ]); diff --git a/app-modules/activity/tests/Unit/Tracking/ApproveInteractionTest.php b/app-modules/activity/tests/Unit/Tracking/ApproveInteractionTest.php index e13de21fe..dad6d8ec4 100644 --- a/app-modules/activity/tests/Unit/Tracking/ApproveInteractionTest.php +++ b/app-modules/activity/tests/Unit/Tracking/ApproveInteractionTest.php @@ -7,7 +7,6 @@ use He4rt\Activity\Tracking\Events\InteractionApproved; use He4rt\Activity\Tracking\Models\Interaction; use He4rt\Gamification\Character\Models\Character; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Event; @@ -17,14 +16,12 @@ test('approves interaction and credits economy', function (): void { Event::fake([InteractionApproved::class]); - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); - $character = Character::factory()->recycle($user)->recycle($tenant)->create(['experience' => 500]); + $character = Character::factory()->recycle($user)->create(['experience' => 500]); $interaction = Interaction::factory() ->withEngagement(reactions: 42, comments: 12, bookmarks: 8) ->recycle($character) - ->recycle($tenant) ->create([ 'coins_min' => 100, 'coins_max' => 300, diff --git a/app-modules/activity/tests/Unit/Tracking/TrackActivityTest.php b/app-modules/activity/tests/Unit/Tracking/TrackActivityTest.php index 181f8f6bf..dec7d1e56 100644 --- a/app-modules/activity/tests/Unit/Tracking/TrackActivityTest.php +++ b/app-modules/activity/tests/Unit/Tracking/TrackActivityTest.php @@ -11,7 +11,6 @@ use He4rt\Activity\Tracking\Events\InteractionTracked; use He4rt\Gamification\Character\Models\Character; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Event; @@ -21,13 +20,11 @@ test('tracks high tier activity as pending without crediting economy', function (): void { Event::fake([InteractionTracked::class]); - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); - $character = Character::factory()->recycle($user)->recycle($tenant)->create(); + $character = Character::factory()->recycle($user)->create(); $dto = new TrackActivityDTO( characterId: $character->id, - tenantId: $tenant->id, type: ActivityType::Article, provider: IdentityProvider::DevTo, occurredAt: CarbonImmutable::now(), @@ -49,13 +46,11 @@ test('tracks low tier activity as auto approved and credits economy', function (): void { Event::fake([InteractionTracked::class]); - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); - $character = Character::factory()->recycle($user)->recycle($tenant)->create(); + $character = Character::factory()->recycle($user)->create(); $dto = new TrackActivityDTO( characterId: $character->id, - tenantId: $tenant->id, type: ActivityType::Engagement, provider: IdentityProvider::DevTo, occurredAt: CarbonImmutable::now(), @@ -76,13 +71,11 @@ }); test('deduplicates by external ref', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); - $character = Character::factory()->recycle($user)->recycle($tenant)->create(); + $character = Character::factory()->recycle($user)->create(); $dto = new TrackActivityDTO( characterId: $character->id, - tenantId: $tenant->id, type: ActivityType::Article, provider: IdentityProvider::DevTo, occurredAt: CarbonImmutable::now(), diff --git a/app-modules/bot-discord/config/bot-discord.php b/app-modules/bot-discord/config/bot-discord.php index 1bab22eb4..356734bae 100644 --- a/app-modules/bot-discord/config/bot-discord.php +++ b/app-modules/bot-discord/config/bot-discord.php @@ -3,6 +3,7 @@ declare(strict_types=1); return [ + 'guild_id' => env('HE4RT_DISCORD_GUILD_ID'), 'channels' => [ 'auto-report' => env('HE4RT_AUTO_REPORT_CHANNEL_ID', '1045804587195576451'), 'presentations' => env('HE4RT_PRESENTATIONS_CHANNEL_ID', '540993663468306433'), diff --git a/app-modules/bot-discord/src/Actions/ResolveDiscordTenant.php b/app-modules/bot-discord/src/Actions/ResolveDiscordTenant.php deleted file mode 100644 index 042ff56f5..000000000 --- a/app-modules/bot-discord/src/Actions/ResolveDiscordTenant.php +++ /dev/null @@ -1,21 +0,0 @@ -where('provider', IdentityProvider::Discord) - ->where('model_type', (new Tenant)->getMorphClass()) - ->where('external_account_id', $guildId) - ->firstOrFail(); - } -} diff --git a/app-modules/bot-discord/src/Events/MessageReceivedEvent.php b/app-modules/bot-discord/src/Events/MessageReceivedEvent.php index 211f12934..d244e4b62 100644 --- a/app-modules/bot-discord/src/Events/MessageReceivedEvent.php +++ b/app-modules/bot-discord/src/Events/MessageReceivedEvent.php @@ -8,7 +8,6 @@ use Discord\WebSockets\Event as Events; use He4rt\Activity\Message\Actions\NewMessage; use He4rt\Activity\Message\DTOs\NewMessageDTO; -use He4rt\BotDiscord\Actions\ResolveDiscordTenant; use He4rt\BotDiscord\Moderation\DiscordModerationAdapter; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Moderation\Enums\CaseSource; @@ -33,11 +32,8 @@ public function handle(Message $message): void } try { - $tenantProvider = resolve(ResolveDiscordTenant::class)->handle((string) $message->guild_id); - // Activity tracking — records message for XP/gamification regardless of moderation outcome. resolve(NewMessage::class)->persist(new NewMessageDTO( - tenantId: $tenantProvider->tenant_id, provider: IdentityProvider::Discord, providerUsername: $message->author->username.'#'.$message->author->discriminator, externalAccountId: $message->user_id, @@ -57,7 +53,6 @@ public function handle(Message $message): void 'guild_id' => (string) $message->guild_id, 'username' => $message->author->username, 'attachments' => [], - 'tenant_id' => (string) $tenantProvider->tenant_id, ]); resolve(SubmitForModeration::class)->execute($content, CaseSource::AutoDetect); diff --git a/app-modules/bot-discord/src/Events/VoicePresenceEvent.php b/app-modules/bot-discord/src/Events/VoicePresenceEvent.php index 36271c162..4c18c3057 100644 --- a/app-modules/bot-discord/src/Events/VoicePresenceEvent.php +++ b/app-modules/bot-discord/src/Events/VoicePresenceEvent.php @@ -10,7 +10,6 @@ use He4rt\Activity\Voice\Actions\RecordVoicePresence; use He4rt\Activity\Voice\DTOs\RecordVoicePresenceDTO; use He4rt\Activity\Voice\Queries\GetCurrentVoiceChannel; -use He4rt\BotDiscord\Actions\ResolveDiscordTenant; use He4rt\BotDiscord\Actions\VoiceTransitionResolver; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use Illuminate\Support\Facades\Log; @@ -41,10 +40,7 @@ public function handle(VoiceStateUpdate $state, Discord $discord, ?VoiceStateUpd } try { - $tenant = resolve(ResolveDiscordTenant::class)->handle((string) $state->guild_id); - $current = resolve(GetCurrentVoiceChannel::class)->handle( - $tenant->tenant_id, IdentityProvider::Discord, (string) $state->user_id, ); @@ -66,7 +62,6 @@ public function handle(VoiceStateUpdate $state, Discord $discord, ?VoiceStateUpd // A move emits left+joined; persist them together so the log stays paired. resolve(RecordVoicePresence::class)->persistMany( RecordVoicePresenceDTO::makeMany( - tenantId: $tenant->tenant_id, provider: IdentityProvider::Discord, externalAccountId: (string) $state->user_id, transitions: $transitions, diff --git a/app-modules/bot-discord/src/Events/WelcomeMember.php b/app-modules/bot-discord/src/Events/WelcomeMember.php index b39cff9f2..938622f17 100644 --- a/app-modules/bot-discord/src/Events/WelcomeMember.php +++ b/app-modules/bot-discord/src/Events/WelcomeMember.php @@ -7,8 +7,8 @@ use Discord\Discord; use Discord\Parts\User\Member; use Discord\WebSockets\Event as Events; -use He4rt\BotDiscord\Actions\ResolveDiscordTenant; use He4rt\Identity\ExternalIdentity\DTOs\ResolveUserProviderDTO; +use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\User\Actions\ResolveUserContext; use He4rt\Identity\User\Models\User; use Illuminate\Support\Facades\Log; @@ -27,14 +27,9 @@ public function handle(Member $member, Discord $discord): void { $channelId = config('bot-discord.channels.auto-report'); - $tenantProvider = null; - try { - $tenantProvider = resolve(ResolveDiscordTenant::class)->handle((string) $member->guild_id); - $userDto = ResolveUserProviderDTO::make([ - 'tenant_id' => $tenantProvider->tenant_id, - 'provider' => $tenantProvider->provider, + 'provider' => IdentityProvider::Discord, 'external_account_id' => $member->user->id, 'model_type' => (new User)->getMorphClass(), 'username' => $member->user->username, @@ -44,8 +39,7 @@ public function handle(Member $member, Discord $discord): void resolve(ResolveUserContext::class)->handle($userDto); } catch (Throwable $throwable) { Log::channel('bot-discord')->error('WelcomeMember: failed to resolve user', [ - 'tenant_id' => $tenantProvider?->tenant_id, - 'provider' => $tenantProvider?->provider, + 'provider' => IdentityProvider::Discord->value, 'external_account_id' => $member->user->id ?? null, 'exception' => $throwable, ]); diff --git a/app-modules/bot-discord/src/Listeners/AutoExecuteAction.php b/app-modules/bot-discord/src/Listeners/AutoExecuteAction.php index 15f649f65..462d5eecf 100644 --- a/app-modules/bot-discord/src/Listeners/AutoExecuteAction.php +++ b/app-modules/bot-discord/src/Listeners/AutoExecuteAction.php @@ -42,7 +42,6 @@ public function handle(CaseReadyForEnforcement $event): void 'duration' => $this->resolveDuration($case->suggested_action), 'reason' => 'Auto-moderation triggered by rule-based classification.', 'automated' => true, - 'tenant_id' => $case->tenant_id, ]); // Async: enforcement runs in the queue (API calls, DM, delete — may fail/retry). diff --git a/app-modules/bot-discord/src/Moderation/DiscordModerationAdapter.php b/app-modules/bot-discord/src/Moderation/DiscordModerationAdapter.php index 7c070aded..ed1694d17 100644 --- a/app-modules/bot-discord/src/Moderation/DiscordModerationAdapter.php +++ b/app-modules/bot-discord/src/Moderation/DiscordModerationAdapter.php @@ -60,7 +60,6 @@ public function ingest(array $rawPayload): ModerationContentDTO 'author_external_id' => $rawPayload['author_id'], 'text' => $rawPayload['content'], 'media_urls' => $rawPayload['attachments'] ?? [], - 'tenant_id' => $rawPayload['tenant_id'] ?? null, 'metadata' => [ 'channel_id' => $rawPayload['channel_id'], 'guild_id' => $rawPayload['guild_id'], diff --git a/app-modules/bot-discord/src/SlashCommands/AbstractSlashCommand.php b/app-modules/bot-discord/src/SlashCommands/AbstractSlashCommand.php index 944d941ae..b75ea26c8 100644 --- a/app-modules/bot-discord/src/SlashCommands/AbstractSlashCommand.php +++ b/app-modules/bot-discord/src/SlashCommands/AbstractSlashCommand.php @@ -5,7 +5,6 @@ namespace He4rt\BotDiscord\SlashCommands; use Discord\Parts\Interactions\Interaction; -use He4rt\BotDiscord\Actions\ResolveDiscordTenant; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; use He4rt\Identity\User\Models\User; @@ -22,8 +21,6 @@ abstract class AbstractSlashCommand extends SlashCommand { protected ?ExternalIdentity $memberProvider = null; - protected ?ExternalIdentity $tenantProvider = null; - public function maybeHandle(Interaction $interaction): void { if ($interaction->guild_id === null) { @@ -60,19 +57,13 @@ protected function processMiddleware(Interaction $interaction): mixed protected function getMemberProviderQuery(): Builder { return ExternalIdentity::query() - ->where('tenant_id', $this->tenantProvider->tenant_id) ->where('model_type', (new User)->getMorphClass()) ->where('provider', IdentityProvider::Discord); } private function beforePipeline(Interaction $interaction): void { - $this->tenantProvider = resolve(ResolveDiscordTenant::class)->handle((string) $interaction->guild_id); - - $this->memberProvider = ExternalIdentity::query() - ->where('tenant_id', $this->tenantProvider->tenant_id) - ->where('model_type', (new User)->getMorphClass()) - ->where('provider', IdentityProvider::Discord) + $this->memberProvider = $this->getMemberProviderQuery() ->where('external_account_id', $interaction->user->id) ->first(); } diff --git a/app-modules/bot-discord/src/SlashCommands/EditProfileCommand.php b/app-modules/bot-discord/src/SlashCommands/EditProfileCommand.php index 314b42c97..20d977916 100644 --- a/app-modules/bot-discord/src/SlashCommands/EditProfileCommand.php +++ b/app-modules/bot-discord/src/SlashCommands/EditProfileCommand.php @@ -65,7 +65,6 @@ public function handle(Interaction $interaction): void { $profile = Profile::query() ->where('user_id', $this->memberProvider?->user?->id) - ->where('tenant_id', $this->memberProvider?->tenant_id) ->first(); if (!$profile) { @@ -135,7 +134,6 @@ private function persistData( $profile = Profile::query() ->where('user_id', $this->memberProvider->user->id) - ->where('tenant_id', $this->memberProvider->tenant_id) ->firstOrFail(); $dto = UpsertProfileDTO::fromArray([ @@ -165,7 +163,6 @@ private function persistData( 'discord_user_id' => $interaction->user->id, 'guild_id' => $interaction->guild_id, 'user_id' => $this->memberProvider?->user?->id, - 'tenant_id' => $this->memberProvider?->tenant_id, 'fields' => ['name' => $name, 'nickname' => $nickname, 'about' => $about], 'exception' => $throwable, ]); diff --git a/app-modules/bot-discord/src/SlashCommands/IntroductionCommand.php b/app-modules/bot-discord/src/SlashCommands/IntroductionCommand.php index edc00c1a0..4f829231b 100644 --- a/app-modules/bot-discord/src/SlashCommands/IntroductionCommand.php +++ b/app-modules/bot-discord/src/SlashCommands/IntroductionCommand.php @@ -8,8 +8,8 @@ use Discord\Helpers\Collection; use Discord\Parts\Guild\Role; use Discord\Parts\Interactions\Interaction; -use He4rt\BotDiscord\Actions\ResolveDiscordTenant; use He4rt\Identity\ExternalIdentity\DTOs\ResolveUserProviderDTO; +use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\User\Actions\ResolveUserContext; use He4rt\Identity\User\Models\User; use He4rt\Profile\Actions\UpsertProfile; @@ -119,11 +119,8 @@ public function handle(Interaction $interaction): void */ private function persistData(Interaction $interaction, Collection $components): void { - $tenantProvider = resolve(ResolveDiscordTenant::class)->handle((string) $interaction->guild_id); - $userDto = ResolveUserProviderDTO::make([ - 'tenant_id' => $tenantProvider->tenant_id, - 'provider' => $tenantProvider->provider, + 'provider' => IdentityProvider::Discord, 'external_account_id' => $interaction->user->id, 'model_type' => (new User)->getMorphClass(), 'username' => $interaction->user->username, @@ -145,7 +142,7 @@ private function persistData(Interaction $interaction, Collection $components): $userContext->user->update(['name' => $name]); - $profile = Profile::ensureExists($userContext->user->id, $tenantProvider->tenant_id); + $profile = Profile::ensureExists($userContext->user->id); $dto = UpsertProfileDTO::fromArray([ 'nickname' => $nickname, diff --git a/app-modules/bot-discord/src/SlashCommands/ProfileCommand.php b/app-modules/bot-discord/src/SlashCommands/ProfileCommand.php index 38353067d..3ad47bd69 100644 --- a/app-modules/bot-discord/src/SlashCommands/ProfileCommand.php +++ b/app-modules/bot-discord/src/SlashCommands/ProfileCommand.php @@ -90,7 +90,6 @@ public function handle(Interaction $interaction): void $profile = Profile::query() ->where('user_id', $this->memberProvider->user->id) - ->where('tenant_id', $this->memberProvider->tenant_id) ->first(); if (!$profile) { diff --git a/app-modules/bot-discord/src/Tasks/VoiceExperienceTask.php b/app-modules/bot-discord/src/Tasks/VoiceExperienceTask.php index 50fbfcc63..9746c78b6 100644 --- a/app-modules/bot-discord/src/Tasks/VoiceExperienceTask.php +++ b/app-modules/bot-discord/src/Tasks/VoiceExperienceTask.php @@ -7,7 +7,6 @@ use Discord\Parts\WebSockets\VoiceStateUpdate; use He4rt\Activity\Voice\Actions\NewVoiceMessage; use He4rt\Activity\Voice\DTOs\NewVoiceMessageDTO; -use He4rt\BotDiscord\Actions\ResolveDiscordTenant; use He4rt\Gamification\Character\Enums\VoiceStatesEnum; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use Laracord\Tasks\Task; @@ -43,14 +42,12 @@ public function handle(): void return; } - $tenantId = resolve(ResolveDiscordTenant::class)->handle($guildId)->tenant_id; - $afkChannelId = $guild->afk_channel_id; foreach ($guild->voice_states as $voiceState) { /** @var VoiceStateUpdate $voiceState */ try { - $this->processVoiceState($voiceState, $tenantId, $afkChannelId); + $this->processVoiceState($voiceState, $afkChannelId); } catch (Throwable $e) { $this->logger()->error(sprintf( 'VoiceExperienceTask failed for user %s: %s | File: %s | Line: %s', @@ -65,7 +62,6 @@ public function handle(): void private function processVoiceState( VoiceStateUpdate $voiceState, - string $tenantId, ?string $afkChannelId, ): void { if ($voiceState->channel_id === null) { @@ -85,7 +81,6 @@ private function processVoiceState( $channelId = (string) $voiceState->channel_id; $dto = new NewVoiceMessageDTO( - tenantId: $tenantId, provider: IdentityProvider::Discord, externalAccountId: (string) $voiceState->user_id, voiceState: $state, diff --git a/app-modules/bot-discord/tests/Feature/Actions/VoiceChannel/HandleStateChannelActionTest.php b/app-modules/bot-discord/tests/Feature/Actions/VoiceChannel/HandleStateChannelActionTest.php index f5e0f37bc..fd79fab2d 100644 --- a/app-modules/bot-discord/tests/Feature/Actions/VoiceChannel/HandleStateChannelActionTest.php +++ b/app-modules/bot-discord/tests/Feature/Actions/VoiceChannel/HandleStateChannelActionTest.php @@ -83,6 +83,12 @@ $action->execute($this->userId, $this->secondChannelId); + // re-read the cache: moving persists new DTO instances, so the pre-move + // snapshots above no longer reflect the current state. + $cachedChannels = cache()->tags(['voice_channels'])->get('active_voice_channels_keys'); + $firstChannelFromCache = $cachedChannels[0]; + $secondChannelFromCache = $cachedChannels[1]; + expect($cachedChannels)->not->toBeEmpty() ->and($firstChannelFromCache)->toBeInstanceOf(VoiceChannelDTO::class) ->and($firstChannelFromCache->guildId)->toBe($this->firstChannel->guildId) diff --git a/app-modules/bot-discord/tests/Feature/Moderation/DiscordModerationAdapterTest.php b/app-modules/bot-discord/tests/Feature/Moderation/DiscordModerationAdapterTest.php index fe3126693..03ef19437 100644 --- a/app-modules/bot-discord/tests/Feature/Moderation/DiscordModerationAdapterTest.php +++ b/app-modules/bot-discord/tests/Feature/Moderation/DiscordModerationAdapterTest.php @@ -5,7 +5,6 @@ use He4rt\BotDiscord\Moderation\DiscordModerationAdapter; use He4rt\Identity\ExternalIdentity\Data\ClientAccessManager; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\IntegrationDiscord\Transport\DiscordConnector; use He4rt\IntegrationDiscord\Transport\Requests\Bans\CreateBan; @@ -26,12 +25,10 @@ function makeUserWithDiscord(string $discordId = '999'): User { $user = User::factory()->create(); - $tenant = Tenant::factory()->create(); $user->providers()->create([ 'provider' => IdentityProvider::Discord->value, 'external_account_id' => $discordId, - 'tenant_id' => $tenant->id, 'type' => 'external', 'credentials_type' => 'oauth2', 'credentials' => ClientAccessManager::make(), @@ -295,7 +292,6 @@ function mockConnector(array $responses = []): MockClient 'channel_id' => 'chan-789', 'guild_id' => 'guild-111', 'username' => 'badguy', - 'tenant_id' => null, ]; $dto = DiscordModerationAdapter::make()->ingest($payload); diff --git a/app-modules/bot-discord/tests/Feature/SlashCommands/EditProfileCommandTest.php b/app-modules/bot-discord/tests/Feature/SlashCommands/EditProfileCommandTest.php index 8014cdbb4..9fb0811f4 100644 --- a/app-modules/bot-discord/tests/Feature/SlashCommands/EditProfileCommandTest.php +++ b/app-modules/bot-discord/tests/Feature/SlashCommands/EditProfileCommandTest.php @@ -4,37 +4,38 @@ use He4rt\Identity\ExternalIdentity\Data\ClientAccessManager; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\Profile\Actions\UpsertProfile; use He4rt\Profile\DTOs\UpsertProfileDTO; use He4rt\Profile\Models\Profile; use Illuminate\Database\Eloquent\Collection; -use Illuminate\Database\Eloquent\ModelNotFoundException; /** - * @return array|Collection|Tenant|Collection|Profile> + * @return array|Collection|Profile> */ function createEditProfileScenario(array $profileOverrides = []): array { $user = User::factory()->create(['name' => 'OldName']); - $tenant = Tenant::factory()->create(); $user->providers()->create([ 'provider' => IdentityProvider::Discord->value, 'external_account_id' => '286313989237899276', - 'tenant_id' => $tenant->id, 'type' => 'external', 'credentials_type' => 'oauth2', 'credentials' => ClientAccessManager::make(), ]); - $profile = Profile::factory()->create(array_merge([ - 'user_id' => $user->id, - 'tenant_id' => $tenant->id, - ], $profileOverrides)); + // Creating a user now auto-provisions a single profile (UserObserver), + // so update that one instead of inserting a duplicate for the same user_id. + $profile = Profile::query() + ->where('user_id', $user->id) + ->firstOrFail(); - return ['user' => $user, 'tenant' => $tenant, 'profile' => $profile]; + if ($profileOverrides !== []) { + $profile->update($profileOverrides); + } + + return ['user' => $user, 'profile' => $profile]; } describe('persistence flow', static function (): void { @@ -48,7 +49,6 @@ function createEditProfileScenario(array $profileOverrides = []): array $profile = Profile::query() ->where('user_id', $data['user']->id) - ->where('tenant_id', $data['tenant']->id) ->firstOrFail(); $dto = UpsertProfileDTO::fromArray([ @@ -66,16 +66,6 @@ function createEditProfileScenario(array $profileOverrides = []): array ->and($profile->about)->toBe('New about text is here'); }); - test('throws when profile does not exist for user', function (): void { - $user = User::factory()->create(); - $tenant = Tenant::factory()->create(); - - Profile::query() - ->where('user_id', $user->id) - ->where('tenant_id', $tenant->id) - ->firstOrFail(); - })->throws(ModelNotFoundException::class); - test('handles partial update without overwriting existing fields', function (): void { $data = createEditProfileScenario([ 'nickname' => 'ExistingNick', diff --git a/app-modules/bot-discord/tests/Feature/SlashCommands/IntroductionCommandTest.php b/app-modules/bot-discord/tests/Feature/SlashCommands/IntroductionCommandTest.php index ade586960..0170150b4 100644 --- a/app-modules/bot-discord/tests/Feature/SlashCommands/IntroductionCommandTest.php +++ b/app-modules/bot-discord/tests/Feature/SlashCommands/IntroductionCommandTest.php @@ -2,50 +2,18 @@ declare(strict_types=1); -use He4rt\Identity\ExternalIdentity\Data\ClientAccessManager; use He4rt\Identity\ExternalIdentity\DTOs\ResolveUserProviderDTO; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; -use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Actions\ResolveUserContext; use He4rt\Identity\User\Models\User; use He4rt\Profile\Actions\UpsertProfile; use He4rt\Profile\DTOs\UpsertProfileDTO; use He4rt\Profile\Models\Profile; -use Illuminate\Database\Eloquent\Collection; -use Illuminate\Database\Eloquent\ModelNotFoundException; - -/** - * @return array|Tenant> - */ -function createIntroductionScenario(): array -{ - $tenant = Tenant::factory()->create(); - - $tenant->providers()->create([ - 'provider' => IdentityProvider::Discord->value, - 'external_account_id' => '540204204242206721', - 'tenant_id' => $tenant->id, - 'type' => 'external', - 'credentials_type' => 'oauth2', - 'credentials' => ClientAccessManager::make(), - ]); - - return ['tenant' => $tenant]; -} describe('persistence flow', static function (): void { test('resolves user context and upserts profile on introduction', function (): void { - $data = createIntroductionScenario(); - - $tenantProvider = ExternalIdentity::query() - ->where('model_type', (new Tenant)->getMorphClass()) - ->where('external_account_id', '540204204242206721') - ->firstOrFail(); - $userDto = ResolveUserProviderDTO::make([ - 'tenant_id' => $tenantProvider->tenant_id, - 'provider' => $tenantProvider->provider, + 'provider' => IdentityProvider::Discord, 'external_account_id' => '286313989237899276', 'model_type' => (new User)->getMorphClass(), 'username' => 'testuser', @@ -56,10 +24,7 @@ function createIntroductionScenario(): array $userContext->user->update(['name' => 'TestName']); - $profile = Profile::query() - ->where('user_id', $userContext->user->id) - ->where('tenant_id', $tenantProvider->tenant_id) - ->firstOrFail(); + $profile = Profile::ensureExists($userContext->user->id); $dto = UpsertProfileDTO::fromArray([ 'nickname' => 'testnick', @@ -76,24 +41,9 @@ function createIntroductionScenario(): array ->and($profile->about)->toBe('I joined He4rt because I love coding!'); }); - test('tenant provider lookup fails when guild is not registered', function (): void { - ExternalIdentity::query() - ->where('model_type', (new Tenant)->getMorphClass()) - ->where('external_account_id', '999999999999999999') - ->firstOrFail(); - })->throws(ModelNotFoundException::class); - - test('new user gets tenant pivot and profile via ResolveUserContext', function (): void { - $data = createIntroductionScenario(); - - $tenantProvider = ExternalIdentity::query() - ->where('model_type', (new Tenant)->getMorphClass()) - ->where('external_account_id', '540204204242206721') - ->firstOrFail(); - + test('new user gets a profile automatically via ResolveUserContext', function (): void { $userDto = ResolveUserProviderDTO::make([ - 'tenant_id' => $tenantProvider->tenant_id, - 'provider' => $tenantProvider->provider, + 'provider' => IdentityProvider::Discord, 'external_account_id' => '999999999999999999', 'model_type' => (new User)->getMorphClass(), 'username' => 'newuser', @@ -102,11 +52,8 @@ function createIntroductionScenario(): array $userContext = resolve(ResolveUserContext::class)->handle($userDto); - expect($userContext->user->tenants()->where('tenants.id', $data['tenant']->id)->exists())->toBeTrue(); - $profile = Profile::query() ->where('user_id', $userContext->user->id) - ->where('tenant_id', $tenantProvider->tenant_id) ->first(); expect($profile)->not->toBeNull(); diff --git a/app-modules/community/database/factories/FeedbackFactory.php b/app-modules/community/database/factories/FeedbackFactory.php index fddec57ec..dddf5e018 100644 --- a/app-modules/community/database/factories/FeedbackFactory.php +++ b/app-modules/community/database/factories/FeedbackFactory.php @@ -5,7 +5,6 @@ namespace He4rt\Community\Database\Factories; use He4rt\Community\Feedback\Models\Feedback; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; @@ -20,7 +19,6 @@ public function definition(): array { return [ 'id' => fake()->uuid(), - 'tenant_id' => Tenant::factory(), 'sender_id' => User::factory(), 'target_id' => User::factory(), 'type' => fake()->randomElement(['compliment', 'improvement']), diff --git a/app-modules/community/database/factories/MeetingFactory.php b/app-modules/community/database/factories/MeetingFactory.php index 950a73ecd..d31bbe78a 100644 --- a/app-modules/community/database/factories/MeetingFactory.php +++ b/app-modules/community/database/factories/MeetingFactory.php @@ -6,7 +6,6 @@ use He4rt\Community\Meeting\Models\Meeting; use He4rt\Community\Meeting\Models\MeetingType; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; @@ -21,7 +20,6 @@ public function definition(): array { return [ 'id' => fake()->uuid(), - 'tenant_id' => Tenant::factory(), 'meeting_type_id' => MeetingType::factory(), 'admin_id' => User::factory(), 'content' => 'Fake content', diff --git a/app-modules/community/database/factories/ReviewFactory.php b/app-modules/community/database/factories/ReviewFactory.php index f7c9611e6..8dd0c2546 100644 --- a/app-modules/community/database/factories/ReviewFactory.php +++ b/app-modules/community/database/factories/ReviewFactory.php @@ -7,7 +7,6 @@ use He4rt\Community\Feedback\Enums\ReviewTypeEnum; use He4rt\Community\Feedback\Models\Feedback; use He4rt\Community\Feedback\Models\Review; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; @@ -22,7 +21,6 @@ public function definition(): array { return [ 'id' => fake()->uuid(), - 'tenant_id' => Tenant::factory(), 'feedback_id' => Feedback::factory(), 'staff_id' => User::factory(), 'status' => fake()->randomElement(ReviewTypeEnum::cases()), diff --git a/app-modules/community/src/Feedback/Actions/CreateFeedback.php b/app-modules/community/src/Feedback/Actions/CreateFeedback.php index acbc57b0d..2232f02e4 100644 --- a/app-modules/community/src/Feedback/Actions/CreateFeedback.php +++ b/app-modules/community/src/Feedback/Actions/CreateFeedback.php @@ -25,7 +25,6 @@ public function handle(array $payload): Feedback return Feedback::query()->create([ ...$newFeedbackDTO->jsonSerialize(), - 'tenant_id' => request()->input('tenant_id'), ]); } diff --git a/app-modules/community/src/Feedback/Actions/ReviewFeedback.php b/app-modules/community/src/Feedback/Actions/ReviewFeedback.php index 88e2761b7..7265f8161 100644 --- a/app-modules/community/src/Feedback/Actions/ReviewFeedback.php +++ b/app-modules/community/src/Feedback/Actions/ReviewFeedback.php @@ -26,7 +26,6 @@ public function handle( Review::query()->create([ ...$reviewDTO->jsonSerialize(), - 'tenant_id' => request()->input('tenant_id'), ]); } } diff --git a/app-modules/community/src/Feedback/Models/Feedback.php b/app-modules/community/src/Feedback/Models/Feedback.php index 843d628ab..d6b8ce6dd 100644 --- a/app-modules/community/src/Feedback/Models/Feedback.php +++ b/app-modules/community/src/Feedback/Models/Feedback.php @@ -6,7 +6,6 @@ use Carbon\CarbonInterface; use He4rt\Community\Database\Factories\FeedbackFactory; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Concerns\HasUuids; @@ -17,7 +16,6 @@ /** * @property string $id - * @property string $tenant_id * @property string $sender_id * @property string $target_id * @property string $type @@ -56,14 +54,6 @@ public function target(): BelongsTo return $this->belongsTo(User::class, 'target_id'); } - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class, 'tenant_id'); - } - protected static function newFactory(): FeedbackFactory { return FeedbackFactory::new(); diff --git a/app-modules/community/src/Feedback/Models/Review.php b/app-modules/community/src/Feedback/Models/Review.php index 9994c117d..af9302973 100644 --- a/app-modules/community/src/Feedback/Models/Review.php +++ b/app-modules/community/src/Feedback/Models/Review.php @@ -16,7 +16,6 @@ /** * @property string $id - * @property string $tenant_id * @property string $feedback_id * @property string $staff_id * @property ReviewTypeEnum $status diff --git a/app-modules/community/src/Meeting/Actions/StartMeeting.php b/app-modules/community/src/Meeting/Actions/StartMeeting.php index 8664f7bad..1d72e9a88 100644 --- a/app-modules/community/src/Meeting/Actions/StartMeeting.php +++ b/app-modules/community/src/Meeting/Actions/StartMeeting.php @@ -24,7 +24,6 @@ public function handle(string $provider, string $providerId, int $meetingTypeId) $externalIdentity = $this->findExternalIdentity->handle($provider, $providerId); $currentMeeting = Meeting::query()->create([ - 'tenant_id' => request()->input('tenant_id'), 'meeting_type_id' => $meetingDTO->meetingTypeId, 'admin_id' => $externalIdentity->model_id, 'starts_at' => now(), diff --git a/app-modules/community/src/Meeting/Models/Meeting.php b/app-modules/community/src/Meeting/Models/Meeting.php index 657e6ac94..4e75ea8c5 100644 --- a/app-modules/community/src/Meeting/Models/Meeting.php +++ b/app-modules/community/src/Meeting/Models/Meeting.php @@ -6,7 +6,6 @@ use Carbon\CarbonInterface; use He4rt\Community\Database\Factories\MeetingFactory; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Concerns\HasUuids; @@ -18,7 +17,6 @@ /** * @property string $id - * @property string $tenant_id * @property string $admin_id * @property string|null $content * @property int $meeting_type_id @@ -60,14 +58,6 @@ public function members(): BelongsToMany )->withPivot(['attend_at']); } - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class); - } - /** * @return BelongsTo */ diff --git a/app-modules/events/database/factories/EventAgendaFactory.php b/app-modules/events/database/factories/EventAgendaFactory.php index 070249108..4e3adb709 100644 --- a/app-modules/events/database/factories/EventAgendaFactory.php +++ b/app-modules/events/database/factories/EventAgendaFactory.php @@ -8,7 +8,6 @@ use He4rt\Events\Models\EventModel; use He4rt\Events\Models\EventSegment; use He4rt\Events\Models\EventSubmission; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Support\Facades\Date; @@ -22,7 +21,6 @@ final class EventAgendaFactory extends Factory public function definition(): array { return [ - 'tenant_id' => Tenant::factory(), 'event_id' => EventModel::factory(), 'start_at' => Date::now(), 'end_at' => Date::now()->addHour(), diff --git a/app-modules/events/database/factories/EventFactory.php b/app-modules/events/database/factories/EventFactory.php index b532cf183..4ef1f23c1 100644 --- a/app-modules/events/database/factories/EventFactory.php +++ b/app-modules/events/database/factories/EventFactory.php @@ -8,7 +8,6 @@ use He4rt\Events\Enums\AttendingStatusEnum; use He4rt\Events\Enums\EventTypeEnum; use He4rt\Events\Models\EventModel; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Support\Facades\Date; @@ -23,7 +22,6 @@ final class EventFactory extends Factory public function definition(): array { return [ - 'tenant_id' => Tenant::factory(), 'event_type' => fake()->randomElement(EventTypeEnum::cases()), 'slug' => fake()->slug(), 'active' => true, diff --git a/app-modules/events/database/factories/EventSubmissionFactory.php b/app-modules/events/database/factories/EventSubmissionFactory.php index dbdc2e8e0..326d94386 100644 --- a/app-modules/events/database/factories/EventSubmissionFactory.php +++ b/app-modules/events/database/factories/EventSubmissionFactory.php @@ -7,7 +7,6 @@ use He4rt\Events\Enums\Talks\TalkStatusEnum; use He4rt\Events\Models\EventModel; use He4rt\Events\Models\EventSubmission; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Support\Facades\Date; @@ -22,7 +21,6 @@ final class EventSubmissionFactory extends Factory public function definition(): array { return [ - 'tenant_id' => Tenant::factory(), 'event_id' => EventModel::factory(), 'user_id' => User::factory(), 'status' => fake()->randomElement(TalkStatusEnum::cases()), diff --git a/app-modules/events/database/factories/SponsorFactory.php b/app-modules/events/database/factories/SponsorFactory.php index 4f360c65e..d2aed3bab 100644 --- a/app-modules/events/database/factories/SponsorFactory.php +++ b/app-modules/events/database/factories/SponsorFactory.php @@ -5,7 +5,6 @@ namespace He4rt\Events\Database\Factories; use He4rt\Events\Models\Sponsor; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Support\Facades\Date; @@ -19,7 +18,6 @@ final class SponsorFactory extends Factory public function definition(): array { return [ - 'tenant_id' => Tenant::factory(), 'name' => fake()->name(), 'homepage_url' => fake()->url(), 'created_at' => Date::now(), diff --git a/app-modules/gamification/database/factories/BadgeFactory.php b/app-modules/gamification/database/factories/BadgeFactory.php index 3002eefd5..a05b4aef9 100644 --- a/app-modules/gamification/database/factories/BadgeFactory.php +++ b/app-modules/gamification/database/factories/BadgeFactory.php @@ -6,7 +6,6 @@ use He4rt\Gamification\Badge\Models\Badge; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Factories\Factory; /** @@ -20,7 +19,6 @@ public function definition(): array { return [ 'provider' => fake()->randomElement(IdentityProvider::cases()), - 'tenant_id' => Tenant::factory(), 'name' => fake()->name(), 'description' => fake()->sentence(), 'redeem_code' => fake()->slug(2), diff --git a/app-modules/gamification/database/factories/CharacterFactory.php b/app-modules/gamification/database/factories/CharacterFactory.php index 9730bf8e1..a13307c21 100644 --- a/app-modules/gamification/database/factories/CharacterFactory.php +++ b/app-modules/gamification/database/factories/CharacterFactory.php @@ -5,7 +5,6 @@ namespace He4rt\Gamification\Database\Factories; use He4rt\Gamification\Character\Models\Character; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Database\Eloquent\Model; @@ -26,7 +25,6 @@ public function definition(): array { return [ 'id' => fake()->uuid(), - 'tenant_id' => Tenant::factory(), 'user_id' => User::factory(), 'reputation' => fake()->numberBetween(1, 10), 'experience' => fake()->numberBetween(1, 5_000), diff --git a/app-modules/gamification/database/factories/PastSeasonFactory.php b/app-modules/gamification/database/factories/PastSeasonFactory.php index cf2f9d0ad..257ef8951 100644 --- a/app-modules/gamification/database/factories/PastSeasonFactory.php +++ b/app-modules/gamification/database/factories/PastSeasonFactory.php @@ -7,7 +7,6 @@ use He4rt\Gamification\Character\Models\Character; use He4rt\Gamification\Character\Models\PastSeason; use He4rt\Gamification\Season\Models\Season; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Factories\Factory; /** @@ -21,7 +20,6 @@ public function definition(): array { return [ 'season_id' => Season::factory(), - 'tenant_id' => Tenant::factory(), 'character_id' => Character::factory(), 'ranking_position' => fake()->numberBetween(1, 1_000), 'experience' => fake()->numberBetween(1, 1_000), diff --git a/app-modules/gamification/database/factories/SeasonFactory.php b/app-modules/gamification/database/factories/SeasonFactory.php index 86d51a917..9722cdd58 100644 --- a/app-modules/gamification/database/factories/SeasonFactory.php +++ b/app-modules/gamification/database/factories/SeasonFactory.php @@ -5,7 +5,6 @@ namespace He4rt\Gamification\Database\Factories; use He4rt\Gamification\Season\Models\Season; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Factories\Factory; /** @@ -19,7 +18,6 @@ public function definition(): array { return [ 'id' => fake()->uuid(), - 'tenant_id' => Tenant::factory(), 'name' => fake()->name(), 'description' => fake()->text(), 'messages_count' => fake()->randomNumber(2), diff --git a/app-modules/gamification/src/Badge/DTOs/NewBadgeDTO.php b/app-modules/gamification/src/Badge/DTOs/NewBadgeDTO.php index e8bc8ae29..c6e69df2f 100644 --- a/app-modules/gamification/src/Badge/DTOs/NewBadgeDTO.php +++ b/app-modules/gamification/src/Badge/DTOs/NewBadgeDTO.php @@ -14,7 +14,6 @@ public function __construct( private string $description, private string $redeemCode, private bool $active, - private string $tenant_id ) {} /** @@ -28,7 +27,6 @@ public static function make(array $payload): self description: $payload['description'], redeemCode: $payload['redeem_code'], active: $payload['active'], - tenant_id: $payload['tenant_id'] ); } @@ -43,7 +41,6 @@ public function jsonSerialize(): array 'description' => $this->description, 'redeem_code' => $this->redeemCode, 'active' => $this->active, - 'tenant_id' => $this->tenant_id, ]; } } diff --git a/app-modules/gamification/src/Badge/Models/Badge.php b/app-modules/gamification/src/Badge/Models/Badge.php index da9efdb11..a693a8a9e 100644 --- a/app-modules/gamification/src/Badge/Models/Badge.php +++ b/app-modules/gamification/src/Badge/Models/Badge.php @@ -8,11 +8,9 @@ use He4rt\Gamification\Character\Models\Character; use He4rt\Gamification\Database\Factories\BadgeFactory; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; -use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\Relations\Pivot; use Spatie\MediaLibrary\HasMedia; @@ -20,7 +18,6 @@ /** * @property int $id - * @property string $tenant_id * @property IdentityProvider $provider * @property string $name * @property string $description @@ -36,14 +33,6 @@ final class Badge extends Model implements HasMedia use HasFactory; use InteractsWithMedia; - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class); - } - /** * @return BelongsToMany */ diff --git a/app-modules/gamification/src/Character/Actions/CharacterInitializerAction.php b/app-modules/gamification/src/Character/Actions/CharacterInitializerAction.php index 192d04832..7a42d255d 100644 --- a/app-modules/gamification/src/Character/Actions/CharacterInitializerAction.php +++ b/app-modules/gamification/src/Character/Actions/CharacterInitializerAction.php @@ -9,12 +9,11 @@ final class CharacterInitializerAction { - public function ensure(User $user, string $tenantId): Character + public function ensure(User $user): Character { return Character::query()->firstOrCreate( [ 'user_id' => $user->id, - 'tenant_id' => $tenantId, ] ); } diff --git a/app-modules/gamification/src/Character/Actions/PersistClaimedBadge.php b/app-modules/gamification/src/Character/Actions/PersistClaimedBadge.php index 318556540..88f7bf632 100644 --- a/app-modules/gamification/src/Character/Actions/PersistClaimedBadge.php +++ b/app-modules/gamification/src/Character/Actions/PersistClaimedBadge.php @@ -14,7 +14,6 @@ public function handle(string $characterId, int|string $badgeId): void $character->badges() ->attach($badgeId, [ 'claimed_at' => now(), - 'tenant_id' => $character->tenant_id, ]); } } diff --git a/app-modules/gamification/src/Character/Models/Character.php b/app-modules/gamification/src/Character/Models/Character.php index b314c4ec1..a6b6efe00 100644 --- a/app-modules/gamification/src/Character/Models/Character.php +++ b/app-modules/gamification/src/Character/Models/Character.php @@ -9,7 +9,6 @@ use He4rt\Economy\Concerns\HasWallet; use He4rt\Gamification\Badge\Models\Badge; use He4rt\Gamification\Database\Factories\CharacterFactory; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Database\Eloquent\Attributes\Appends; use Illuminate\Database\Eloquent\Attributes\Table; @@ -32,7 +31,6 @@ * @property int $level * @property float $percentage_experience * @property bool $can_claim_daily_bonus - * @property string|null $tenant_id */ #[Appends([ 'ranking', @@ -75,14 +73,6 @@ public function user(): BelongsTo return $this->belongsTo(User::class); } - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class); - } - /** * @return BelongsToMany */ diff --git a/app-modules/gamification/src/Character/Models/PastSeason.php b/app-modules/gamification/src/Character/Models/PastSeason.php index eec3d093c..7d5dab009 100644 --- a/app-modules/gamification/src/Character/Models/PastSeason.php +++ b/app-modules/gamification/src/Character/Models/PastSeason.php @@ -7,7 +7,6 @@ use Carbon\CarbonInterface; use He4rt\Gamification\Database\Factories\PastSeasonFactory; use He4rt\Gamification\Season\Models\Season; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Concerns\HasUuids; use Illuminate\Database\Eloquent\Factories\HasFactory; @@ -16,7 +15,6 @@ /** * @property string $id - * @property string $tenant_id * @property string $season_id * @property string $character_id * @property int $ranking_position @@ -35,14 +33,6 @@ final class PastSeason extends Model use HasFactory; use HasUuids; - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class); - } - /** * @return BelongsTo */ diff --git a/app-modules/gamification/src/Season/Models/Season.php b/app-modules/gamification/src/Season/Models/Season.php index 8bd979510..2798a0658 100644 --- a/app-modules/gamification/src/Season/Models/Season.php +++ b/app-modules/gamification/src/Season/Models/Season.php @@ -8,17 +8,14 @@ use He4rt\Gamification\Badge\Models\Badge; use He4rt\Gamification\Character\Models\PastSeason; use He4rt\Gamification\Database\Factories\SeasonFactory; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Concerns\HasUuids; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; -use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Support\Facades\Date; /** - * @property string $tenant_id * @property string $name * @property string $description * @property int $messages_count @@ -59,14 +56,6 @@ public function rankings(): HasMany return $this->hasMany(PastSeason::class, 'season_id'); } - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class); - } - protected static function newFactory(): SeasonFactory { return SeasonFactory::new(); diff --git a/app-modules/he4rt/resources/views/components/partials/oauth-connect.blade.php b/app-modules/he4rt/resources/views/components/partials/oauth-connect.blade.php index 74c66e369..9766ac239 100644 --- a/app-modules/he4rt/resources/views/components/partials/oauth-connect.blade.php +++ b/app-modules/he4rt/resources/views/components/partials/oauth-connect.blade.php @@ -5,7 +5,6 @@ @props([ 'providers', - 'tenant', ])
Sign in to your account to continue @@ -14,7 +13,7 @@ @foreach ($providers as $provider) @if ($provider->isEnabled()) diff --git a/app-modules/identity/database/factories/ExternalIdentityFactory.php b/app-modules/identity/database/factories/ExternalIdentityFactory.php index 39cf273e1..d23f0aeac 100644 --- a/app-modules/identity/database/factories/ExternalIdentityFactory.php +++ b/app-modules/identity/database/factories/ExternalIdentityFactory.php @@ -9,7 +9,6 @@ use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Enums\IdentityType; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Support\Facades\Crypt; @@ -25,7 +24,6 @@ public function definition(): array { return [ 'id' => fake()->uuid(), - 'tenant_id' => Tenant::factory(), 'model_type' => (new User)->getMorphClass(), 'model_id' => User::factory(), 'type' => IdentityType::External, diff --git a/app-modules/identity/database/factories/TenantFactory.php b/app-modules/identity/database/factories/TenantFactory.php deleted file mode 100644 index 7ac408790..000000000 --- a/app-modules/identity/database/factories/TenantFactory.php +++ /dev/null @@ -1,60 +0,0 @@ - */ -final class TenantFactory extends Factory -{ - protected $model = Tenant::class; - - public function definition(): array - { - return [ - 'name' => fake()->name(), - 'slug' => fake()->slug(), - 'active' => fake()->boolean(), - 'created_at' => Date::now(), - 'updated_at' => Date::now(), - - 'owner_id' => User::factory(), - ]; - } - - public function withOwnerAsMember(): self - { - return $this->afterCreating(fn (Tenant $tenant) => $tenant->members()->attach($tenant->owner_id)); - } - - public function withDiscordProvider(string $providerId = '123'): self - { - return $this->withProvider(IdentityProvider::Discord, $providerId); - } - - public function withTwitchProvider(string $providerId = '123'): self - { - return $this->withProvider(IdentityProvider::Twitch, '456'); - } - - public function withProvider(IdentityProvider $provider = IdentityProvider::Discord, string $providerId = '123'): self - { - return $this->afterCreating(static function (Tenant $tenant) use ($provider, $providerId): void { - ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->getKey(), - 'model_type' => (new Tenant)->getMorphClass(), - 'model_id' => $tenant->getKey(), - 'connected_by' => $tenant->owner_id, - 'provider' => $provider, - 'external_account_id' => $providerId, - ]); - }); - } -} diff --git a/app-modules/identity/database/migrations/2025_11_02_172528_create_tenants_table.php b/app-modules/identity/database/migrations/2025_11_02_172528_create_tenants_table.php index 51e70064b..5aa931c9f 100644 --- a/app-modules/identity/database/migrations/2025_11_02_172528_create_tenants_table.php +++ b/app-modules/identity/database/migrations/2025_11_02_172528_create_tenants_table.php @@ -10,6 +10,10 @@ { public function up(): void { + if (Schema::hasTable('tenants')) { + return; + } + Schema::create('tenants', static function (Blueprint $table): void { $table->uuid('id')->primary(); $table->string('name'); diff --git a/app-modules/identity/database/migrations/2025_11_02_172618_set_up_tenant_module.php b/app-modules/identity/database/migrations/2025_11_02_172618_set_up_tenant_module.php index bac6772f3..9c3be03ba 100644 --- a/app-modules/identity/database/migrations/2025_11_02_172618_set_up_tenant_module.php +++ b/app-modules/identity/database/migrations/2025_11_02_172618_set_up_tenant_module.php @@ -24,7 +24,22 @@ public function up(): void 'seasons' => [], ]; + // Guarded so `migrate:fresh` stays green after multi-tenancy removal: + // if the tenants table is gone, or a target table is missing / already + // carries the column, there is nothing to set up. + if (!Schema::hasTable('tenants')) { + return; + } + foreach ($tables as $table => $indexableColumns) { + if (!Schema::hasTable($table)) { + continue; + } + + if (Schema::hasColumn($table, 'tenant_id')) { + continue; + } + Schema::table($table, static function (Blueprint $table) use ($indexableColumns): void { $table->foreignUuid('tenant_id') ->after('id') diff --git a/app-modules/identity/database/migrations/2025_11_08_161609_create_tenant_users_table.php b/app-modules/identity/database/migrations/2025_11_08_161609_create_tenant_users_table.php index a674cd9e1..efc1b37a9 100644 --- a/app-modules/identity/database/migrations/2025_11_08_161609_create_tenant_users_table.php +++ b/app-modules/identity/database/migrations/2025_11_08_161609_create_tenant_users_table.php @@ -13,6 +13,10 @@ */ public function up(): void { + if (Schema::hasTable('tenant_users') || !Schema::hasTable('tenants')) { + return; + } + Schema::create('tenant_users', static function (Blueprint $table): void { $table->foreignUuid('tenant_id')->constrained('tenants')->cascadeOnDelete(); $table->foreignUuid('user_id')->constrained('users')->cascadeOnDelete(); diff --git a/app-modules/identity/database/migrations/2025_11_25_184549_add_domain_to_tenants_table.php b/app-modules/identity/database/migrations/2025_11_25_184549_add_domain_to_tenants_table.php index 52d7d1543..2c97ff414 100644 --- a/app-modules/identity/database/migrations/2025_11_25_184549_add_domain_to_tenants_table.php +++ b/app-modules/identity/database/migrations/2025_11_25_184549_add_domain_to_tenants_table.php @@ -13,6 +13,10 @@ */ public function up(): void { + if (!Schema::hasTable('tenants') || Schema::hasColumn('tenants', 'domain')) { + return; + } + Schema::table('tenants', static function (Blueprint $table): void { $table->string('domain') ->after('owner_id') diff --git a/app-modules/identity/database/migrations/2026_07_07_000000_drop_multi_tenancy.php b/app-modules/identity/database/migrations/2026_07_07_000000_drop_multi_tenancy.php new file mode 100644 index 000000000..93f853b64 --- /dev/null +++ b/app-modules/identity/database/migrations/2026_07_07_000000_drop_multi_tenancy.php @@ -0,0 +1,233 @@ + + */ + private array $tenantColumnTables = [ + 'external_identities', + 'messages', + 'voice_messages', + 'characters', + 'feedbacks', + 'feedback_reviews', + 'meetings', + 'badges', + 'characters_badges', + 'seasons_rankings', + 'seasons', + 'activity_reactions', + 'message_mentions', + 'message_threads', + 'message_attachments', + 'message_embeds', + 'membership_events', + 'interactions', + 'moderation_events', + 'moderation_cases', + 'moderation_rules', + 'moderation_audit_log', + 'moderation_actions', + 'moderation_appeals', + 'github_repositories', + 'github_contributions', + 'twitch_subscriptions', + 'twitch_event_logs', + 'discord_guilds', + 'user_profiles', + 'activity_timeline', + ]; + + public function up(): void + { + $this->collapseTenantScopedIndexes(); + $this->dropTenantColumns(); + $this->dropTenantTables(); + } + + /** + * Best-effort, NOT fully reversible. + * + * The tenant relationships, the pivot rows, and the original tenant-scoped + * unique constraints cannot be reconstructed because the source data is + * gone. This only recreates a nullable `tenant_id` column on each table so a + * rollback does not hard-fail; it does not restore any foreign keys, the + * collapsed indexes, or the `tenants`/`tenant_users` tables. + */ + public function down(): void + { + foreach ($this->tenantColumnTables as $table) { + if (!Schema::hasTable($table)) { + continue; + } + + if (Schema::hasColumn($table, 'tenant_id')) { + continue; + } + + Schema::table($table, static function (Blueprint $blueprint): void { + $blueprint->uuid('tenant_id')->nullable(); + }); + } + } + + /** + * 1. Drop tenant-scoped indexes and recreate the collapsed global + * equivalents. Raw SQL with IF EXISTS / IF NOT EXISTS keeps this + * idempotent regardless of how each index was originally created. + */ + private function collapseTenantScopedIndexes(): void + { + $statements = [ + // messages: unique[tenant_id, provider_message_id] -> unique(provider_message_id) + 'ALTER TABLE messages DROP CONSTRAINT IF EXISTS messages_tenant_provider_message_id_unique', + 'DROP INDEX IF EXISTS messages_tenant_provider_message_id_unique', + 'CREATE UNIQUE INDEX IF NOT EXISTS messages_provider_message_id_unique ON messages (provider_message_id)', + 'DROP INDEX IF EXISTS messages_tenant_sent_at_idx', + 'DROP INDEX IF EXISTS messages_tenant_channel_sent_at_idx', + 'DROP INDEX IF EXISTS messages_tenant_kind_idx', + + // voice_messages: partial unique (tenant_id, provider_message_id) -> (provider_message_id) + 'ALTER TABLE voice_messages DROP CONSTRAINT IF EXISTS voice_messages_tenant_provider_message_id_unique', + 'DROP INDEX IF EXISTS voice_messages_tenant_provider_message_id_unique', + 'CREATE UNIQUE INDEX IF NOT EXISTS voice_messages_provider_message_id_unique ON voice_messages (provider_message_id) WHERE provider_message_id IS NOT NULL', + + // moderation_events: partial unique -> (provider_message_id) + drop tenant secondary + 'ALTER TABLE moderation_events DROP CONSTRAINT IF EXISTS moderation_events_tenant_provider_message_id_unique', + 'DROP INDEX IF EXISTS moderation_events_tenant_provider_message_id_unique', + 'CREATE UNIQUE INDEX IF NOT EXISTS moderation_events_provider_message_id_unique ON moderation_events (provider_message_id) WHERE provider_message_id IS NOT NULL', + 'DROP INDEX IF EXISTS moderation_events_tenant_id_type_occurred_at_index', + + // membership_events: partial unique -> (provider_message_id) + drop tenant secondary + 'ALTER TABLE membership_events DROP CONSTRAINT IF EXISTS membership_events_tenant_provider_unique', + 'DROP INDEX IF EXISTS membership_events_tenant_provider_unique', + 'CREATE UNIQUE INDEX IF NOT EXISTS membership_events_provider_message_id_unique ON membership_events (provider_message_id) WHERE provider_message_id IS NOT NULL', + 'DROP INDEX IF EXISTS membership_events_tenant_kind_time_idx', + + // message_threads: unique[tenant_id, provider_thread_id] -> unique(provider_thread_id) + 'ALTER TABLE message_threads DROP CONSTRAINT IF EXISTS message_threads_tenant_provider_unique', + 'DROP INDEX IF EXISTS message_threads_tenant_provider_unique', + 'CREATE UNIQUE INDEX IF NOT EXISTS message_threads_provider_thread_id_unique ON message_threads (provider_thread_id)', + + // interactions: unique[tenant_id, provider, external_ref] -> unique(provider, external_ref) + drop [tenant_id, occurred_at] + 'ALTER TABLE interactions DROP CONSTRAINT IF EXISTS uniq_interactions_tenant_provider_ref', + 'DROP INDEX IF EXISTS uniq_interactions_tenant_provider_ref', + 'CREATE UNIQUE INDEX IF NOT EXISTS uniq_interactions_provider_ref ON interactions (provider, external_ref)', + 'DROP INDEX IF EXISTS idx_interactions_tenant', + + // github_repositories: unique[tenant_id, full_name] -> unique(full_name) + 'ALTER TABLE github_repositories DROP CONSTRAINT IF EXISTS uniq_github_repositories_tenant_repo', + 'DROP INDEX IF EXISTS uniq_github_repositories_tenant_repo', + 'CREATE UNIQUE INDEX IF NOT EXISTS uniq_github_repositories_full_name ON github_repositories (full_name)', + + // github_contributions: unique[tenant_id, repo, type, external_ref] -> unique(repo, type, external_ref) + drop tenant time/type indexes + 'ALTER TABLE github_contributions DROP CONSTRAINT IF EXISTS uniq_github_contributions_ref', + 'DROP INDEX IF EXISTS uniq_github_contributions_ref', + 'CREATE UNIQUE INDEX IF NOT EXISTS uniq_github_contributions_repo_type_ref ON github_contributions (repo, type, external_ref)', + 'DROP INDEX IF EXISTS idx_github_contributions_tenant_time', + 'DROP INDEX IF EXISTS idx_github_contributions_type_time', + + // user_profiles: unique[user_id, tenant_id] -> unique(user_id) + partial (tenant_id, user_id) -> (user_id) + 'ALTER TABLE user_profiles DROP CONSTRAINT IF EXISTS user_profiles_user_id_tenant_id_unique', + 'DROP INDEX IF EXISTS user_profiles_user_id_tenant_id_unique', + 'CREATE UNIQUE INDEX IF NOT EXISTS user_profiles_user_id_unique ON user_profiles (user_id)', + 'DROP INDEX IF EXISTS user_profiles_available_for_proposals_index', + 'CREATE INDEX IF NOT EXISTS user_profiles_available_for_proposals_index ON user_profiles (user_id) WHERE available_for_proposals = true', + + // Remaining tenant-scoped secondary indexes (no collapsed replacement needed). + 'DROP INDEX IF EXISTS providers_tenant_id_model_type_model_id_index', + 'DROP INDEX IF EXISTS activity_reactions_tenant_emoji_time_idx', + 'DROP INDEX IF EXISTS message_mentions_tenant_identity_idx', + 'DROP INDEX IF EXISTS message_mentions_tenant_provider_idx', + 'DROP INDEX IF EXISTS message_embeds_tenant_domain_idx', + 'DROP INDEX IF EXISTS message_embeds_tenant_kind_idx', + 'DROP INDEX IF EXISTS idx_cases_queue', + 'DROP INDEX IF EXISTS idx_rules_active', + 'DROP INDEX IF EXISTS idx_audit_tenant_date', + 'DROP INDEX IF EXISTS activity_timeline_tenant_feed_index', + 'DROP INDEX IF EXISTS activity_timeline_feed_composite_index', + 'DROP INDEX IF EXISTS twitch_subscriptions_tenant_id_index', + ]; + + foreach ($statements as $statement) { + DB::statement($statement); + } + } + + /** + * 2. Drop the tenant_id foreign key (if present) then the column itself. + */ + private function dropTenantColumns(): void + { + foreach ($this->tenantColumnTables as $table) { + if (!Schema::hasColumn($table, 'tenant_id')) { + continue; + } + + // Conventional FK name, plus the legacy `providers_*` name kept by + // external_identities. Both guarded so tables without an FK no-op. + DB::statement(sprintf('ALTER TABLE %s DROP CONSTRAINT IF EXISTS %s_tenant_id_foreign', $table, $table)); + DB::statement(sprintf('ALTER TABLE %s DROP CONSTRAINT IF EXISTS providers_tenant_id_foreign', $table)); + + Schema::table($table, static function (Blueprint $blueprint): void { + $blueprint->dropColumn('tenant_id'); + }); + } + } + + /** + * 3. Drop the tenant pivot and the tenants table. Any lingering foreign key + * still referencing `tenants` (e.g. from tables without an in-repo + * migration) is dropped first so the DROP TABLE cannot fail. + */ + private function dropTenantTables(): void + { + if (Schema::hasTable('tenants')) { + $referencingConstraints = DB::select(<<<'SQL' + SELECT tc.table_name, tc.constraint_name + FROM information_schema.table_constraints tc + JOIN information_schema.constraint_column_usage ccu + ON tc.constraint_name = ccu.constraint_name + AND tc.table_schema = ccu.table_schema + WHERE tc.constraint_type = 'FOREIGN KEY' + AND ccu.table_name = 'tenants' + SQL); + + foreach ($referencingConstraints as $constraint) { + DB::statement(sprintf( + 'ALTER TABLE %s DROP CONSTRAINT IF EXISTS %s', + $constraint->table_name, + $constraint->constraint_name, + )); + } + } + + Schema::dropIfExists('tenant_users'); + Schema::dropIfExists('tenants'); + } +}; diff --git a/app-modules/identity/routes/authentication-routes.php b/app-modules/identity/routes/authentication-routes.php index 9d3a005e4..6088a7407 100644 --- a/app-modules/identity/routes/authentication-routes.php +++ b/app-modules/identity/routes/authentication-routes.php @@ -3,19 +3,16 @@ declare(strict_types=1); use He4rt\Identity\Auth\Http\Controllers\OAuthController; -use He4rt\Identity\Auth\Http\Controllers\TenantLogoutController; use Illuminate\Support\Facades\Route; Route::prefix('auth') ->middleware('web') ->group(static function (): void { - Route::post('/{tenant}/logout', TenantLogoutController::class)->name('tenant.logout'); - Route::prefix('oauth')->group(static function (): void { Route::get('/{provider}', [OAuthController::class, 'getAuthenticate']) ->name('oauth.authenticate'); - Route::get('/{tenant}/{panel}/{provider}/redirect', [OAuthController::class, 'getRedirect']) + Route::get('/{panel}/{provider}/redirect', [OAuthController::class, 'getRedirect']) ->name('oauth.redirect'); }); }); diff --git a/app-modules/identity/src/Auth/Actions/AttachProviderToUser.php b/app-modules/identity/src/Auth/Actions/AttachProviderToUser.php index a7533acb9..84e17bc92 100644 --- a/app-modules/identity/src/Auth/Actions/AttachProviderToUser.php +++ b/app-modules/identity/src/Auth/Actions/AttachProviderToUser.php @@ -8,17 +8,15 @@ use He4rt\Identity\Auth\DTOs\OAuthUserDTO; use He4rt\Identity\ExternalIdentity\Enums\CredentialsType; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; final class AttachProviderToUser { - public function execute(User|Tenant $owner, Tenant $tenant, OAuthUserDTO $oauthUser, OAuthAccessDTO $access): ExternalIdentity + public function execute(User $owner, OAuthUserDTO $oauthUser, OAuthAccessDTO $access): ExternalIdentity { /** @var ExternalIdentity */ return $owner->providers()->updateOrCreate( [ - 'tenant_id' => $tenant->getKey(), 'provider' => $oauthUser->provider, 'external_account_id' => $oauthUser->providerId, ], diff --git a/app-modules/identity/src/Auth/Actions/FindOrCreateUserByProvider.php b/app-modules/identity/src/Auth/Actions/FindOrCreateUserByProvider.php index d8ba14ee3..e079359d0 100644 --- a/app-modules/identity/src/Auth/Actions/FindOrCreateUserByProvider.php +++ b/app-modules/identity/src/Auth/Actions/FindOrCreateUserByProvider.php @@ -6,7 +6,6 @@ use He4rt\Identity\Auth\DTOs\OAuthUserDTO; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Database\UniqueConstraintViolationException; use Illuminate\Support\Facades\DB; @@ -17,22 +16,16 @@ public function __construct( private EnrichUserOnFirstLogin $enrichUser, ) {} - public function execute(OAuthUserDTO $oauthUser, Tenant $tenant): User + public function execute(OAuthUserDTO $oauthUser): User { $existing = $this->findExistingUser($oauthUser); - $user = match ($existing instanceof User) { + // Profile bootstrapping now happens on User creation (UserObserver), + // no longer as a side-effect of tenant membership. + return match ($existing instanceof User) { true => $this->enrichUser->execute($existing, $oauthUser), false => $this->createUser($oauthUser), }; - - $alreadyBelongsToTenant = $user->tenants()->where('tenants.id', $tenant->getKey())->exists(); - - if (!$alreadyBelongsToTenant) { - $user->tenants()->attach($tenant); - } - - return $user; } private function findExistingUser(OAuthUserDTO $oauthUser): ?User diff --git a/app-modules/identity/src/Auth/Actions/HandleOAuthCallbackAction.php b/app-modules/identity/src/Auth/Actions/HandleOAuthCallbackAction.php index a76a19e76..a073d4994 100644 --- a/app-modules/identity/src/Auth/Actions/HandleOAuthCallbackAction.php +++ b/app-modules/identity/src/Auth/Actions/HandleOAuthCallbackAction.php @@ -11,7 +11,6 @@ use He4rt\Identity\Auth\Enums\OAuthIntent; use He4rt\Identity\Auth\Exceptions\OAuthFlowException; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Support\Facades\Auth; @@ -34,19 +33,14 @@ public function execute(OAuthStateDTO $state, IdentityProvider $provider, string $access = $client->auth($code); $oauthUser = $client->getAuthenticatedUser($access); - $tenant = Tenant::query() - ->where('domain', $state->tenant) - ->orWhere('slug', $state->tenant) - ->firstOrFail(); - $user = match ($state->intent) { - OAuthIntent::Login => $this->findOrCreateUser->execute($oauthUser, $tenant), + OAuthIntent::Login => $this->findOrCreateUser->execute($oauthUser), OAuthIntent::Link => $this->resolveAuthenticatedUser(), }; $redirectUrl = $state->returnUrl ?? filament() ->getPanel($state->panel) - ->getUrl($tenant); + ->getUrl(); if ($state->intent === OAuthIntent::Link) { $mergeConflict = $this->detectMergeConflict->execute($user, $oauthUser, $access); @@ -54,7 +48,6 @@ public function execute(OAuthStateDTO $state, IdentityProvider $provider, string if ($mergeConflict instanceof MergeConflictDTO) { return new OAuthResultDTO( user: $user, - tenant: $tenant, identity: null, intent: $state->intent, redirectUrl: $redirectUrl, @@ -63,12 +56,10 @@ public function execute(OAuthStateDTO $state, IdentityProvider $provider, string } } - $owner = $state->panel === 'admin' ? $tenant : $user; - $identity = $this->attachProvider->execute($owner, $tenant, $oauthUser, $access); + $identity = $this->attachProvider->execute($user, $oauthUser, $access); return new OAuthResultDTO( user: $user, - tenant: $tenant, identity: $identity, intent: $state->intent, redirectUrl: $redirectUrl, diff --git a/app-modules/identity/src/Auth/Actions/MergeAccountsAction.php b/app-modules/identity/src/Auth/Actions/MergeAccountsAction.php index c23d43e74..f270932e8 100644 --- a/app-modules/identity/src/Auth/Actions/MergeAccountsAction.php +++ b/app-modules/identity/src/Auth/Actions/MergeAccountsAction.php @@ -25,10 +25,6 @@ public function execute(User $currentUser, User $oldUser): void ->where('connected_by', $currentUser->id) ->update(['connected_by' => $oldUser->id]); - $oldUser->tenants()->syncWithoutDetaching( - $currentUser->tenants()->pluck('tenants.id') - ); - event(new AccountsMerged($oldUser->id, $currentUser->id)); $currentUser->delete(); diff --git a/app-modules/identity/src/Auth/DTOs/OAuthResultDTO.php b/app-modules/identity/src/Auth/DTOs/OAuthResultDTO.php index e1c10d217..b6ee80107 100644 --- a/app-modules/identity/src/Auth/DTOs/OAuthResultDTO.php +++ b/app-modules/identity/src/Auth/DTOs/OAuthResultDTO.php @@ -6,14 +6,12 @@ use He4rt\Identity\Auth\Enums\OAuthIntent; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; final readonly class OAuthResultDTO { public function __construct( public User $user, - public Tenant $tenant, public ?ExternalIdentity $identity, public OAuthIntent $intent, public string $redirectUrl, diff --git a/app-modules/identity/src/Auth/DTOs/OAuthStateDTO.php b/app-modules/identity/src/Auth/DTOs/OAuthStateDTO.php index 2c266eda2..8c0cee571 100644 --- a/app-modules/identity/src/Auth/DTOs/OAuthStateDTO.php +++ b/app-modules/identity/src/Auth/DTOs/OAuthStateDTO.php @@ -16,7 +16,6 @@ public function __construct( public OAuthIntent $intent, public IdentityProvider $provider, public string $panel, - public string $tenant, public ?string $returnUrl = null, ) {} @@ -33,7 +32,6 @@ public static function fromEncryptedString(string $state): self intent: OAuthIntent::from($data['intent']), provider: IdentityProvider::from($data['provider']), panel: $data['panel'], - tenant: $data['tenant'], returnUrl: $data['return_url'] ?? null, ); } @@ -47,7 +45,6 @@ public function jsonSerialize(): array 'intent' => $this->intent->value, 'provider' => $this->provider->value, 'panel' => $this->panel, - 'tenant' => $this->tenant, 'return_url' => $this->returnUrl, ]; } diff --git a/app-modules/identity/src/Auth/Http/Controllers/OAuthController.php b/app-modules/identity/src/Auth/Http/Controllers/OAuthController.php index a5381a94a..378e7065d 100644 --- a/app-modules/identity/src/Auth/Http/Controllers/OAuthController.php +++ b/app-modules/identity/src/Auth/Http/Controllers/OAuthController.php @@ -19,7 +19,7 @@ final class OAuthController extends Controller { - public function getRedirect(string $tenant, string $panel, string $provider): RedirectResponse + public function getRedirect(string $panel, string $provider): RedirectResponse { $identityProvider = IdentityProvider::tryFrom($provider); @@ -39,7 +39,6 @@ public function getRedirect(string $tenant, string $panel, string $provider): Re intent: Auth::check() ? OAuthIntent::Link : OAuthIntent::Login, provider: $identityProvider, panel: $panel, - tenant: $tenant, returnUrl: Auth::check() ? url()->previous() : null, ); @@ -80,7 +79,6 @@ public function getAuthenticate(string $provider, HandleOAuthCallbackAction $act if ($result->intent === OAuthIntent::Login) { Auth::login($result->user); filament()->setCurrentPanel(filament()->getPanel($state->panel)); - filament()->setTenant($result->tenant); } return redirect()->to($result->redirectUrl); diff --git a/app-modules/identity/src/Auth/Http/Controllers/TenantLogoutController.php b/app-modules/identity/src/Auth/Http/Controllers/TenantLogoutController.php deleted file mode 100644 index 676a01d21..000000000 --- a/app-modules/identity/src/Auth/Http/Controllers/TenantLogoutController.php +++ /dev/null @@ -1,25 +0,0 @@ -get('panel'); - Filament::auth()->logout(); - - session()->invalidate(); - session()->regenerateToken(); - session()->put('tenant', $tenantSlug); - session()->put('panel', $panel); - - return resolve(TenantLogoutResponse::class); - } -} diff --git a/app-modules/identity/src/Auth/Http/Responses/TenantLogoutResponse.php b/app-modules/identity/src/Auth/Http/Responses/TenantLogoutResponse.php deleted file mode 100644 index 0c7dabb66..000000000 --- a/app-modules/identity/src/Auth/Http/Responses/TenantLogoutResponse.php +++ /dev/null @@ -1,26 +0,0 @@ -get('tenant'); - $panel = session()->get('panel'); - $tenant = Tenant::query()->where('slug', $tenantSlug)->first(); - - Filament::setCurrentPanel($panel); - - return redirect()->to( - Filament::hasLogin() ? Filament::getLoginUrl(['tenant' => $tenantSlug]) : Filament::getUrl($tenant), - ); - } -} diff --git a/app-modules/identity/src/ExternalIdentity/Actions/CreateAccountByExternalIdentity.php b/app-modules/identity/src/ExternalIdentity/Actions/CreateAccountByExternalIdentity.php index 9e9dcb784..1418af0ec 100644 --- a/app-modules/identity/src/ExternalIdentity/Actions/CreateAccountByExternalIdentity.php +++ b/app-modules/identity/src/ExternalIdentity/Actions/CreateAccountByExternalIdentity.php @@ -13,7 +13,7 @@ class CreateAccountByExternalIdentity { - public function handle(string $tenantId, IdentityProvider $provider, string $providerId, string $username): ExternalIdentity + public function handle(IdentityProvider $provider, string $providerId, string $username): ExternalIdentity { $existing = ExternalIdentity::query() ->where('provider', $provider->value) @@ -31,12 +31,9 @@ public function handle(string $tenantId, IdentityProvider $provider, string $pro 'is_donator' => false, ]); - $user->character()->create([ - 'tenant_id' => $tenantId, - ]); + $user->character()->create(); return ExternalIdentity::query()->create([ - 'tenant_id' => $tenantId, 'model_type' => (new User)->getMorphClass(), 'model_id' => $user->id, 'type' => $provider->getType(), diff --git a/app-modules/identity/src/ExternalIdentity/Actions/FindExternalIdentity.php b/app-modules/identity/src/ExternalIdentity/Actions/FindExternalIdentity.php index 834a52a29..b396cb915 100644 --- a/app-modules/identity/src/ExternalIdentity/Actions/FindExternalIdentity.php +++ b/app-modules/identity/src/ExternalIdentity/Actions/FindExternalIdentity.php @@ -10,25 +10,20 @@ class FindExternalIdentity { - public function handle(string $provider, string $providerId, ?string $tenantId = null): ExternalIdentity + public function handle(string $provider, string $providerId): ExternalIdentity { - $cacheKey = $tenantId !== null - ? sprintf('provider-%s-%s-%s', $provider, $providerId, $tenantId) - : sprintf('provider-%s-%s', $provider, $providerId); + $cacheKey = sprintf('provider-%s-%s', $provider, $providerId); return Cache::remember( $cacheKey, 2 * 86_400, - fn () => $this->find($provider, $providerId, $tenantId) + fn () => $this->find($provider, $providerId) ); } - private function find(string $provider, string $providerId, ?string $tenantId = null): ExternalIdentity + private function find(string $provider, string $providerId): ExternalIdentity { - $resolvedTenantId = $tenantId ?? request()->input('tenant_id'); - $model = ExternalIdentity::query() - ->where('tenant_id', $resolvedTenantId) ->where('provider', $provider) ->where('external_account_id', $providerId) ->first(); diff --git a/app-modules/identity/src/ExternalIdentity/Actions/ResolveExternalIdentity.php b/app-modules/identity/src/ExternalIdentity/Actions/ResolveExternalIdentity.php index ba7ed3a5f..0809d19bc 100644 --- a/app-modules/identity/src/ExternalIdentity/Actions/ResolveExternalIdentity.php +++ b/app-modules/identity/src/ExternalIdentity/Actions/ResolveExternalIdentity.php @@ -16,7 +16,6 @@ public function handle(ResolveUserProviderDTO $dto): ExternalIdentity return ExternalIdentity::query()->firstOrCreate( [ 'provider' => $dto->provider, - 'tenant_id' => $dto->tenantId, 'external_account_id' => $dto->externalAccountId, 'model_type' => $dto->modelType, ], diff --git a/app-modules/identity/src/ExternalIdentity/DTOs/NewProviderDTO.php b/app-modules/identity/src/ExternalIdentity/DTOs/NewProviderDTO.php index 5f6bcffe1..c7922729e 100644 --- a/app-modules/identity/src/ExternalIdentity/DTOs/NewProviderDTO.php +++ b/app-modules/identity/src/ExternalIdentity/DTOs/NewProviderDTO.php @@ -10,7 +10,6 @@ final readonly class NewProviderDTO implements JsonSerializable { public function __construct( - private string $tenantId, private IdentityProvider $provider, private string $externalAccountId ) {} @@ -21,7 +20,6 @@ public function __construct( public function jsonSerialize(): array { return [ - 'tenant_id' => $this->tenantId, 'provider' => $this->provider->value, 'external_account_id' => $this->externalAccountId, ]; diff --git a/app-modules/identity/src/ExternalIdentity/DTOs/ResolveUserProviderDTO.php b/app-modules/identity/src/ExternalIdentity/DTOs/ResolveUserProviderDTO.php index 24718d22b..c8ced22bf 100644 --- a/app-modules/identity/src/ExternalIdentity/DTOs/ResolveUserProviderDTO.php +++ b/app-modules/identity/src/ExternalIdentity/DTOs/ResolveUserProviderDTO.php @@ -9,7 +9,6 @@ class ResolveUserProviderDTO { public function __construct( - public string $tenantId, public IdentityProvider $provider, public string $externalAccountId, public string $modelType, @@ -24,7 +23,6 @@ public function __construct( public static function make(array $data): self { return new self( - tenantId: $data['tenant_id'], provider: $data['provider'], externalAccountId: $data['external_account_id'], modelType: $data['model_type'], diff --git a/app-modules/identity/src/ExternalIdentity/Enums/IdentityProvider.php b/app-modules/identity/src/ExternalIdentity/Enums/IdentityProvider.php index 2a15f9867..c3c717e50 100644 --- a/app-modules/identity/src/ExternalIdentity/Enums/IdentityProvider.php +++ b/app-modules/identity/src/ExternalIdentity/Enums/IdentityProvider.php @@ -195,10 +195,9 @@ public function isEnabled(): bool return config(sprintf('services.%s.enabled', $this->value)); } - public function getRedirectUri(?string $tenant = null): string + public function getRedirectUri(): string { return route('oauth.redirect', [ - 'tenant' => $tenant ?? request()->getHost(), 'panel' => filament()->getCurrentPanel()->getId(), 'provider' => $this->value, ]); diff --git a/app-modules/identity/src/ExternalIdentity/Models/ExternalIdentity.php b/app-modules/identity/src/ExternalIdentity/Models/ExternalIdentity.php index 666cccd82..d53ead97b 100644 --- a/app-modules/identity/src/ExternalIdentity/Models/ExternalIdentity.php +++ b/app-modules/identity/src/ExternalIdentity/Models/ExternalIdentity.php @@ -12,7 +12,6 @@ use He4rt\Identity\ExternalIdentity\Enums\CredentialsType; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Enums\IdentityType; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Database\Eloquent\Attributes\Appends; use Illuminate\Database\Eloquent\Attributes\Table; @@ -26,7 +25,6 @@ /** * @property string $id - * @property string $tenant_id * @property string $model_type * @property string $model_id * @property IdentityType $type @@ -84,14 +82,6 @@ public function messages(): HasMany return $this->hasMany(Message::class, 'external_identity_id'); } - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class, 'tenant_id', 'id'); - } - public function isConnected(): bool { return $this->connected_at !== null && $this->disconnected_at === null; diff --git a/app-modules/identity/src/IdentityServiceProvider.php b/app-modules/identity/src/IdentityServiceProvider.php index 3fe60d0be..af40eb289 100644 --- a/app-modules/identity/src/IdentityServiceProvider.php +++ b/app-modules/identity/src/IdentityServiceProvider.php @@ -4,7 +4,6 @@ namespace He4rt\Identity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Database\Eloquent\Relations\Relation; use Illuminate\Support\ServiceProvider; @@ -17,7 +16,6 @@ public function boot(): void Relation::morphMap([ 'user' => User::class, - 'tenant' => Tenant::class, ]); } } diff --git a/app-modules/identity/src/Tenant/Concerns/InteractsWithTenants.php b/app-modules/identity/src/Tenant/Concerns/InteractsWithTenants.php deleted file mode 100644 index 798b3f9c2..000000000 --- a/app-modules/identity/src/Tenant/Concerns/InteractsWithTenants.php +++ /dev/null @@ -1,45 +0,0 @@ - - */ - public function tenants(): BelongsToMany - { - return $this->belongsToMany(Tenant::class, 'tenant_users')->using(TenantUser::class); - } - - public function canAccessTenant(Model $tenant): bool - { - return $this->tenants()->whereKey($tenant)->exists(); - } - - /** - * @return array|Collection - */ - public function getTenants(Panel $panel): array|Collection - { - return $this->tenants; - } - - /** - * @return HasMany - */ - public function ownedTenants(): HasMany - { - return $this->hasMany(Tenant::class, 'owner_id'); - } -} diff --git a/app-modules/identity/src/Tenant/Models/Tenant.php b/app-modules/identity/src/Tenant/Models/Tenant.php deleted file mode 100644 index d3390c47a..000000000 --- a/app-modules/identity/src/Tenant/Models/Tenant.php +++ /dev/null @@ -1,101 +0,0 @@ - */ - use HasFactory; - - use HasUuids; - use SoftDeletes; - - /** - * @return BelongsTo - */ - public function owner(): BelongsTo - { - return $this->belongsTo(User::class, 'owner_id'); - } - - /** - * @return HasMany - */ - public function messages(): HasMany - { - return $this->hasMany(Message::class); - } - - /** - * @return BelongsToMany - */ - public function members(): BelongsToMany - { - return $this->belongsToMany(User::class, 'tenant_users')->using(TenantUser::class); - } - - /** - * @return MorphMany - */ - public function providers(): MorphMany - { - return $this->morphMany(ExternalIdentity::class, 'model'); - } - - /** - * @return HasMany - */ - public function seasons(): HasMany - { - return $this->hasMany(Season::class); - } - - /** - * @return HasMany - */ - public function pastSeasons(): HasMany - { - return $this->hasMany(PastSeason::class); - } - - protected static function newFactory(): TenantFactory - { - return TenantFactory::new(); - } - - protected function casts(): array - { - return [ - 'active' => 'boolean', - ]; - } -} diff --git a/app-modules/identity/src/Tenant/Models/TenantUser.php b/app-modules/identity/src/Tenant/Models/TenantUser.php deleted file mode 100644 index 51d9e6b33..000000000 --- a/app-modules/identity/src/Tenant/Models/TenantUser.php +++ /dev/null @@ -1,18 +0,0 @@ -user_id, (string) $pivot->tenant_id); - } -} diff --git a/app-modules/identity/src/User/Actions/ResolveUserContext.php b/app-modules/identity/src/User/Actions/ResolveUserContext.php index 93b653f17..c10ca3027 100644 --- a/app-modules/identity/src/User/Actions/ResolveUserContext.php +++ b/app-modules/identity/src/User/Actions/ResolveUserContext.php @@ -22,8 +22,7 @@ public function handle(ResolveUserProviderDTO $dto): UserContext { $provider = $this->providerResolver->handle($dto); $user = $this->userResolver->handle($provider); - $user->tenants()->syncWithoutDetaching([$dto->tenantId]); - $character = $this->characterInitializer->ensure($user, $dto->tenantId); + $character = $this->characterInitializer->ensure($user); return UserContext::make(user: $user, character: $character, provider: $provider); } diff --git a/app-modules/identity/src/User/Models/User.php b/app-modules/identity/src/User/Models/User.php index 4bb7a97c8..e91b55c87 100644 --- a/app-modules/identity/src/User/Models/User.php +++ b/app-modules/identity/src/User/Models/User.php @@ -8,12 +8,10 @@ use Carbon\CarbonInterface; use Filament\Models\Contracts\FilamentUser; use Filament\Models\Contracts\HasName; -use Filament\Models\Contracts\HasTenants; use Filament\Panel; use He4rt\Gamification\Character\Models\Character; use He4rt\Identity\Database\Factories\UserFactory; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Concerns\InteractsWithTenants; use He4rt\Identity\User\Observers\UserObserver; use Illuminate\Database\Eloquent\Attributes\Hidden; use Illuminate\Database\Eloquent\Attributes\ObservedBy; @@ -44,14 +42,13 @@ #[ObservedBy(classes: UserObserver::class)] #[Table(name: 'users')] #[Hidden('password', 'remember_token', 'email_verified_at')] -final class User extends Authenticatable implements FilamentUser, HasMedia, HasName, HasTenants +final class User extends Authenticatable implements FilamentUser, HasMedia, HasName { use HasAddress; /** @use HasFactory */ use HasFactory; use HasUuids; use InteractsWithMedia; - use InteractsWithTenants; use Notifiable; public function isAdmin(): bool diff --git a/app-modules/identity/src/User/Observers/UserObserver.php b/app-modules/identity/src/User/Observers/UserObserver.php index 026acfc77..e6b6c2548 100644 --- a/app-modules/identity/src/User/Observers/UserObserver.php +++ b/app-modules/identity/src/User/Observers/UserObserver.php @@ -5,6 +5,7 @@ namespace He4rt\Identity\User\Observers; use He4rt\Identity\User\Models\User; +use He4rt\Profile\Models\Profile; class UserObserver { @@ -15,8 +16,23 @@ public function creating(User $user): void } } + public function created(User $user): void + { + $this->ensureProfileExists($user); + } + public function deleted(User $user): void { $user->address()->delete(); } + + /** + * Previously a profile was created as a side-effect of attaching a user to a + * tenant (TenantUserObserver). With tenancy removed, every newly created user + * gets a profile here instead. + */ + private function ensureProfileExists(User $user): void + { + Profile::ensureExists((string) $user->getKey()); + } } diff --git a/app-modules/identity/tests/Feature/Auth/DetectMergeConflictTest.php b/app-modules/identity/tests/Feature/Auth/DetectMergeConflictTest.php index 9507a972f..a50f4e9b8 100644 --- a/app-modules/identity/tests/Feature/Auth/DetectMergeConflictTest.php +++ b/app-modules/identity/tests/Feature/Auth/DetectMergeConflictTest.php @@ -7,7 +7,6 @@ use He4rt\Identity\Auth\DTOs\OAuthUserDTO; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; function makeMergeOAuthUser( @@ -54,11 +53,9 @@ public static function make(array $payload): self }); test('returns null when identity belongs to current user', function (): void { - $tenant = Tenant::factory()->create(); $currentUser = User::factory()->create(); ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, 'model_type' => (new User)->getMorphClass(), 'model_id' => $currentUser->id, 'provider' => IdentityProvider::Discord, @@ -75,12 +72,10 @@ public static function make(array $payload): self }); test('returns conflict when identity belongs to a different user', function (): void { - $tenant = Tenant::factory()->create(); $oldUser = User::factory()->create(); $currentUser = User::factory()->create(); ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, 'model_type' => (new User)->getMorphClass(), 'model_id' => $oldUser->id, 'provider' => IdentityProvider::Discord, @@ -97,48 +92,3 @@ public static function make(array $payload): self ->and($result->conflictingUserId)->toBe($oldUser->id) ->and($result->provider)->toBe(IdentityProvider::Discord); }); - -test('detects conflict cross-tenant', function (): void { - $tenantA = Tenant::factory()->create(); - $tenantB = Tenant::factory()->create(); - $oldUser = User::factory()->create(); - $currentUser = User::factory()->create(); - - ExternalIdentity::factory()->create([ - 'tenant_id' => $tenantA->id, - 'model_type' => (new User)->getMorphClass(), - 'model_id' => $oldUser->id, - 'provider' => IdentityProvider::Discord, - 'external_account_id' => '204122995579551744', - ]); - - $oauthUser = makeMergeOAuthUser(providerId: '204122995579551744'); - $credentials = makeMergeCredentials(); - - $action = new DetectMergeConflict(); - $result = $action->execute($currentUser, $oauthUser, $credentials); - - expect($result)->not->toBeNull() - ->and($result->conflictingUserId)->toBe($oldUser->id); -}); - -test('ignores tenant-owned identities', function (): void { - $tenant = Tenant::factory()->create(); - $currentUser = User::factory()->create(); - - ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, - 'model_type' => (new Tenant)->getMorphClass(), - 'model_id' => $tenant->id, - 'provider' => IdentityProvider::Discord, - 'external_account_id' => '204122995579551744', - ]); - - $oauthUser = makeMergeOAuthUser(providerId: '204122995579551744'); - $credentials = makeMergeCredentials(); - - $action = new DetectMergeConflict(); - $result = $action->execute($currentUser, $oauthUser, $credentials); - - expect($result)->toBeNull(); -}); diff --git a/app-modules/identity/tests/Feature/Auth/FindOrCreateUserByProviderTest.php b/app-modules/identity/tests/Feature/Auth/FindOrCreateUserByProviderTest.php index 2e5e7167d..8ad6db6c6 100644 --- a/app-modules/identity/tests/Feature/Auth/FindOrCreateUserByProviderTest.php +++ b/app-modules/identity/tests/Feature/Auth/FindOrCreateUserByProviderTest.php @@ -7,7 +7,6 @@ use He4rt\Identity\Auth\DTOs\OAuthUserDTO; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; function makeOAuthUser( @@ -34,13 +33,10 @@ public static function make(OAuthAccessDTO $credentials, array $payload): self }; } -test('finds existing user by external identity cross-tenant', function (): void { - $tenantA = Tenant::factory()->create(); - $tenantB = Tenant::factory()->create(); +test('finds existing user by external identity', function (): void { $user = User::factory()->create(); ExternalIdentity::factory()->create([ - 'tenant_id' => $tenantA->id, 'model_type' => (new User)->getMorphClass(), 'model_id' => $user->id, 'provider' => IdentityProvider::GitHub, @@ -50,27 +46,23 @@ public static function make(OAuthAccessDTO $credentials, array $payload): self $action = resolve(FindOrCreateUserByProvider::class); $result = $action->execute( makeOAuthUser(providerId: '12345', provider: IdentityProvider::GitHub), - $tenantB, ); expect($result->id)->toBe($user->id); }); test('finds existing user by email', function (): void { - $tenant = Tenant::factory()->create(); $user = User::factory()->create(['email' => 'daniel@example.com']); $action = resolve(FindOrCreateUserByProvider::class); $result = $action->execute( makeOAuthUser(providerId: 'new-id', email: 'daniel@example.com'), - $tenant, ); expect($result->id)->toBe($user->id); }); test('does not search by email when email is null', function (): void { - $tenant = Tenant::factory()->create(); User::factory()->create(['email' => null, 'username' => 'someone']); $userCountBefore = User::query()->count(); @@ -78,7 +70,6 @@ public static function make(OAuthAccessDTO $credentials, array $payload): self $action = resolve(FindOrCreateUserByProvider::class); $result = $action->execute( makeOAuthUser(providerId: 'new-id', username: 'newuser', email: null), - $tenant, ); expect($result->username)->toBe('newuser'); @@ -86,12 +77,9 @@ public static function make(OAuthAccessDTO $credentials, array $payload): self }); test('creates new user when no match found', function (): void { - $tenant = Tenant::factory()->create(); - $action = resolve(FindOrCreateUserByProvider::class); $result = $action->execute( makeOAuthUser(providerId: 'fresh-id', username: 'freshuser', name: 'Fresh User', email: 'fresh@example.com'), - $tenant, ); expect($result->username)->toBe('freshuser') @@ -100,13 +88,11 @@ public static function make(OAuthAccessDTO $credentials, array $payload): self }); test('creates user with sequential suffix when username collides', function (): void { - $tenant = Tenant::factory()->create(); User::factory()->create(['username' => 'danielhe4rt']); $action = resolve(FindOrCreateUserByProvider::class); $result = $action->execute( makeOAuthUser(providerId: 'new-id', username: 'danielhe4rt', email: 'new@example.com'), - $tenant, ); expect($result->username)->toBe('danielhe4rt-2') @@ -114,7 +100,6 @@ public static function make(OAuthAccessDTO $credentials, array $payload): self }); test('increments suffix when previous suffixed usernames exist', function (): void { - $tenant = Tenant::factory()->create(); User::factory()->create(['username' => 'danielhe4rt']); User::factory()->create(['username' => 'danielhe4rt-2']); User::factory()->create(['username' => 'danielhe4rt-3']); @@ -122,63 +107,7 @@ public static function make(OAuthAccessDTO $credentials, array $payload): self $action = resolve(FindOrCreateUserByProvider::class); $result = $action->execute( makeOAuthUser(providerId: 'new-id', username: 'danielhe4rt', email: 'new@example.com'), - $tenant, ); expect($result->username)->toBe('danielhe4rt-4'); }); - -test('attaches user to tenant when not already attached', function (): void { - $tenant = Tenant::factory()->create(); - - $action = resolve(FindOrCreateUserByProvider::class); - $result = $action->execute( - makeOAuthUser(providerId: 'new-id', username: 'newuser'), - $tenant, - ); - - expect($result->tenants()->where('tenants.id', $tenant->getKey())->exists())->toBeTrue(); -}); - -test('does not duplicate tenant attachment when already attached', function (): void { - $tenant = Tenant::factory()->create(); - $user = User::factory()->create(); - $user->tenants()->attach($tenant); - - ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, - 'model_type' => (new User)->getMorphClass(), - 'model_id' => $user->id, - 'provider' => IdentityProvider::GitHub, - 'external_account_id' => '12345', - ]); - - $action = resolve(FindOrCreateUserByProvider::class); - $action->execute( - makeOAuthUser(providerId: '12345', provider: IdentityProvider::GitHub), - $tenant, - ); - - expect($user->tenants()->count())->toBe(1); -}); - -test('ignores tenant-owned external identities during lookup', function (): void { - $tenant = Tenant::factory()->create(); - - ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, - 'model_type' => (new Tenant)->getMorphClass(), - 'model_id' => $tenant->id, - 'provider' => IdentityProvider::Discord, - 'external_account_id' => '204122995579551744', - ]); - - $action = resolve(FindOrCreateUserByProvider::class); - $result = $action->execute( - makeOAuthUser(providerId: '204122995579551744', provider: IdentityProvider::Discord, username: 'newuser'), - $tenant, - ); - - expect($result->username)->toBe('newuser'); - expect(User::query()->where('username', 'newuser')->exists())->toBeTrue(); -}); diff --git a/app-modules/identity/tests/Feature/Auth/HandleOAuthCallbackActionTest.php b/app-modules/identity/tests/Feature/Auth/HandleOAuthCallbackActionTest.php index cd8c6fd66..cd98cc5ec 100644 --- a/app-modules/identity/tests/Feature/Auth/HandleOAuthCallbackActionTest.php +++ b/app-modules/identity/tests/Feature/Auth/HandleOAuthCallbackActionTest.php @@ -10,7 +10,6 @@ use He4rt\Identity\Auth\Enums\OAuthIntent; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\IntegrationGithub\OAuth\GitHubOAuthClient; @@ -67,11 +66,9 @@ public function getAuthenticatedUser(OAuthAccessDTO $credentials): OAuthUserDTO test('links a second provider to the logged-in user even when the email differs', function (): void { // A user who originally signed up via Discord (discord@discord.com)... - $tenant = Tenant::factory()->create(); $discordUser = User::factory()->create(['email' => 'discord@discord.com']); ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, 'model_type' => (new User)->getMorphClass(), 'model_id' => $discordUser->id, 'connected_by' => $discordUser->id, @@ -88,7 +85,6 @@ public function getAuthenticatedUser(OAuthAccessDTO $credentials): OAuthUserDTO intent: OAuthIntent::Link, provider: IdentityProvider::GitHub, panel: 'app', - tenant: $tenant->slug, returnUrl: 'https://he4rt.test/app', ); @@ -121,11 +117,9 @@ public function getAuthenticatedUser(OAuthAccessDTO $credentials): OAuthUserDTO test('forks a separate account when a logged-out github login has a different email', function (): void { // Same starting point — a Discord user (discord@discord.com). - $tenant = Tenant::factory()->create(); $discordUser = User::factory()->create(['email' => 'discord@discord.com']); ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, 'model_type' => (new User)->getMorphClass(), 'model_id' => $discordUser->id, 'connected_by' => $discordUser->id, @@ -143,7 +137,6 @@ public function getAuthenticatedUser(OAuthAccessDTO $credentials): OAuthUserDTO intent: OAuthIntent::Login, provider: IdentityProvider::GitHub, panel: 'app', - tenant: $tenant->slug, returnUrl: 'https://he4rt.test/app', ); @@ -168,5 +161,5 @@ public function getAuthenticatedUser(OAuthAccessDTO $credentials): OAuthUserDTO ->and($githubIdentity->model_id)->toBe($result->user->id) ->and($githubIdentity->model_id)->not->toBe($discordUser->id); - assertDatabaseCount(User::class, 3); + assertDatabaseCount(User::class, 2); }); diff --git a/app-modules/identity/tests/Feature/Auth/MergeAccountsActionTest.php b/app-modules/identity/tests/Feature/Auth/MergeAccountsActionTest.php index d6fabb133..29d138baf 100644 --- a/app-modules/identity/tests/Feature/Auth/MergeAccountsActionTest.php +++ b/app-modules/identity/tests/Feature/Auth/MergeAccountsActionTest.php @@ -7,16 +7,13 @@ use He4rt\Identity\Auth\Actions\MergeAccountsAction; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; test('moves external identities from current to old user', function (): void { - $tenant = Tenant::factory()->create(); $oldUser = User::factory()->create(['first_login_at' => now()]); $currentUser = User::factory()->create(); $identity = ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, 'model_type' => (new User)->getMorphClass(), 'model_id' => $currentUser->id, 'provider' => IdentityProvider::GitHub, @@ -30,29 +27,11 @@ expect($identity->model_id)->toBe($oldUser->id); }); -test('syncs tenant memberships from current to old user', function (): void { - $tenantA = Tenant::factory()->create(); - $tenantB = Tenant::factory()->create(); - $oldUser = User::factory()->create(['first_login_at' => now()]); - $currentUser = User::factory()->create(); - - $oldUser->tenants()->attach($tenantA); - $currentUser->tenants()->attach([$tenantA->id, $tenantB->id]); - - $action = new MergeAccountsAction(); - $action->execute($currentUser, $oldUser); - - expect($oldUser->tenants()->pluck('tenants.id')->sort()->values()->toArray()) - ->toBe(collect([$tenantA->id, $tenantB->id])->sort()->values()->all()); -}); - test('reassigns timeline posts from current to old user so they are not orphaned', function (): void { - $tenant = Tenant::factory()->create(); $oldUser = User::factory()->create(['first_login_at' => now()]); $currentUser = User::factory()->create(); $post = Timeline::factory()->for($currentUser)->create([ - 'tenant_id' => $tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => PostEntry::factory()->create()->id, ]); @@ -75,12 +54,10 @@ }); test('reassigns connected_by from current to old user', function (): void { - $tenant = Tenant::factory()->create(); $oldUser = User::factory()->create(['first_login_at' => now()]); $currentUser = User::factory()->create(); $identity = ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, 'model_type' => (new User)->getMorphClass(), 'model_id' => $oldUser->id, 'provider' => IdentityProvider::GitHub, @@ -96,12 +73,10 @@ }); test('reassigns connected_by on soft-deleted identities', function (): void { - $tenant = Tenant::factory()->create(); $oldUser = User::factory()->create(['first_login_at' => now()]); $currentUser = User::factory()->create(); $identity = ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, 'model_type' => (new User)->getMorphClass(), 'model_id' => $oldUser->id, 'provider' => IdentityProvider::GitHub, diff --git a/app-modules/identity/tests/Unit/ExternalIdentity/FindExternalIdentityTest.php b/app-modules/identity/tests/Unit/ExternalIdentity/FindExternalIdentityTest.php index e2fe99af2..978b0296e 100644 --- a/app-modules/identity/tests/Unit/ExternalIdentity/FindExternalIdentityTest.php +++ b/app-modules/identity/tests/Unit/ExternalIdentity/FindExternalIdentityTest.php @@ -6,19 +6,16 @@ use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Exceptions\ExternalIdentityException; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Cache; uses(RefreshDatabase::class); -test('finds identity when tenantId is passed explicitly', function (): void { - $tenant = Tenant::factory()->create(); +test('finds identity by provider and providerId', function (): void { $user = User::factory()->create(); $identity = ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, 'model_type' => (new User)->getMorphClass(), 'model_id' => $user->id, 'provider' => IdentityProvider::Discord, @@ -29,19 +26,16 @@ $result = $action->handle( provider: IdentityProvider::Discord->value, providerId: 'discord-999', - tenantId: (string) $tenant->id, ); expect($result->id)->toBe($identity->id) ->and($result->model_id)->toBe($user->id); }); -test('cache key includes tenantId when provided', function (): void { - $tenant = Tenant::factory()->create(); +test('caches the lookup result', function (): void { $user = User::factory()->create(); ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, 'model_type' => (new User)->getMorphClass(), 'model_id' => $user->id, 'provider' => IdentityProvider::Discord, @@ -54,70 +48,17 @@ $action->handle( provider: IdentityProvider::Discord->value, providerId: 'discord-cache-test', - tenantId: (string) $tenant->id, ); - $expectedKey = sprintf('provider-%s-%s-%s', IdentityProvider::Discord->value, 'discord-cache-test', $tenant->id); + $expectedKey = sprintf('provider-%s-%s', IdentityProvider::Discord->value, 'discord-cache-test'); expect(Cache::has($expectedKey))->toBeTrue(); }); -test('cache key excludes tenantId when null', function (): void { - Cache::flush(); - - $tenant = Tenant::factory()->create(); - $user = User::factory()->create(); - - ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, - 'model_type' => (new User)->getMorphClass(), - 'model_id' => $user->id, - 'provider' => IdentityProvider::Discord, - 'external_account_id' => 'discord-no-tenant', - ]); - - // Simulate request with tenant_id - request()->merge(['tenant_id' => (string) $tenant->id]); - - $action = new FindExternalIdentity(); - $action->handle( - provider: IdentityProvider::Discord->value, - providerId: 'discord-no-tenant', - ); - - $expectedKey = sprintf('provider-%s-%s', IdentityProvider::Discord->value, 'discord-no-tenant'); - expect(Cache::has($expectedKey))->toBeTrue(); -}); - -test('null tenantId falls back to request input', function (): void { - $tenant = Tenant::factory()->create(); - $user = User::factory()->create(); - - ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, - 'model_type' => (new User)->getMorphClass(), - 'model_id' => $user->id, - 'provider' => IdentityProvider::Discord, - 'external_account_id' => 'discord-fallback', - ]); - - request()->merge(['tenant_id' => (string) $tenant->id]); - - $action = new FindExternalIdentity(); - $result = $action->handle( - provider: IdentityProvider::Discord->value, - providerId: 'discord-fallback', - ); - - expect($result->model_id)->toBe($user->id); -}); - test('throws exception when identity not found', function (): void { - $tenant = Tenant::factory()->create(); $action = new FindExternalIdentity(); $action->handle( provider: IdentityProvider::Discord->value, providerId: 'nonexistent-id', - tenantId: (string) $tenant->id, ); })->throws(ExternalIdentityException::class); diff --git a/app-modules/integration-devto/src/Polling/SyncDevToArticles.php b/app-modules/integration-devto/src/Polling/SyncDevToArticles.php index 05a0ea022..7ab07ca6e 100644 --- a/app-modules/integration-devto/src/Polling/SyncDevToArticles.php +++ b/app-modules/integration-devto/src/Polling/SyncDevToArticles.php @@ -121,7 +121,6 @@ private function processArticle(array $article): string $this->trackActivity->handle(new TrackActivityDTO( characterId: (string) $character->id, - tenantId: (string) $externalIdentity->tenant_id, type: ActivityType::Article, provider: IdentityProvider::DevTo, occurredAt: new DateTimeImmutable($article['published_at'] ?? $article['created_at']), diff --git a/app-modules/integration-devto/tests/Feature/SyncDevToArticlesTest.php b/app-modules/integration-devto/tests/Feature/SyncDevToArticlesTest.php index 841770c44..78a13d4ae 100644 --- a/app-modules/integration-devto/tests/Feature/SyncDevToArticlesTest.php +++ b/app-modules/integration-devto/tests/Feature/SyncDevToArticlesTest.php @@ -7,7 +7,6 @@ use He4rt\Gamification\Character\Models\Character; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Support\Facades\Http; @@ -46,12 +45,10 @@ ]), ]); - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); - $character = Character::factory()->recycle($user)->recycle($tenant)->create(); + $character = Character::factory()->recycle($user)->create(); ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, 'model_type' => User::class, 'model_id' => $user->id, 'provider' => IdentityProvider::DevTo, @@ -94,19 +91,17 @@ ]), ]); - $tenant = Tenant::factory()->create(); $user = User::factory()->create(); - $character = Character::factory()->recycle($user)->recycle($tenant)->create(); + $character = Character::factory()->recycle($user)->create(); ExternalIdentity::factory()->create([ - 'tenant_id' => $tenant->id, 'model_type' => User::class, 'model_id' => $user->id, 'provider' => IdentityProvider::DevTo, 'metadata' => ['email' => 'author@example.com', 'username' => 'author'], ]); - Interaction::factory()->recycle($character)->recycle($tenant)->create([ + Interaction::factory()->recycle($character)->create([ 'external_ref' => 'devto:article:201', 'metadata' => [ 'engagement_snapshot' => ['reactions' => 20, 'comments' => 5, 'bookmarks' => 1], diff --git a/app-modules/integration-discord/src/ETL/Actions/ImportDiscordMessageAction.php b/app-modules/integration-discord/src/ETL/Actions/ImportDiscordMessageAction.php index 62e1c8d10..7c4c95e9b 100644 --- a/app-modules/integration-discord/src/ETL/Actions/ImportDiscordMessageAction.php +++ b/app-modules/integration-discord/src/ETL/Actions/ImportDiscordMessageAction.php @@ -31,17 +31,16 @@ final class ImportDiscordMessageAction /** * @param array $replyCache provider_message_id => message uuid */ - public function handle(DiscordMessageDTO $dto, string $tenantId, ?string $cachedIdentityId = null, array $replyCache = []): Message + public function handle(DiscordMessageDTO $dto, ?string $cachedIdentityId = null, array $replyCache = []): Message { - $identityId = $cachedIdentityId ?? $this->resolveAuthorIdentity($dto, $tenantId)->id; + $identityId = $cachedIdentityId ?? $this->resolveAuthorIdentity($dto)->id; $adapter = IdentityProvider::Discord->getMessageAdapter(); $payload = $dto->toDatabase([ - 'tenant_id' => $tenantId, 'external_identity_id' => $identityId, 'obtained_experience' => 0, ...$this->extractProviderSignals($dto, $adapter), - 'reply_to_message_id' => $this->resolveReplyTargetId($dto, $adapter, $replyCache, $tenantId), + 'reply_to_message_id' => $this->resolveReplyTargetId($dto, $adapter, $replyCache, allowDbLookup: true), ]); $providerMessageId = $payload['provider_message_id'] ?? null; @@ -49,18 +48,17 @@ public function handle(DiscordMessageDTO $dto, string $tenantId, ?string $cached $message = Message::query()->updateOrCreate( [ - 'tenant_id' => $tenantId, 'provider_message_id' => $providerMessageId, ], $payload, ); if ($adapter instanceof MessageActivityAdapter) { - $this->syncMentions($message, $dto, $tenantId, $adapter); - $this->syncThread($message, $dto, $tenantId, $adapter); - $this->syncAttachments($message, $dto, $tenantId, $adapter); - $this->syncEmbeds($message, $dto, $tenantId, $adapter); - $this->syncMembershipEvent($message, $dto, $tenantId, $adapter); + $this->syncMentions($message, $dto, $adapter); + $this->syncThread($message, $dto, $adapter); + $this->syncAttachments($message, $dto, $adapter); + $this->syncEmbeds($message, $dto, $adapter); + $this->syncMembershipEvent($message, $dto, $adapter); } return $message; @@ -72,7 +70,7 @@ public function handle(DiscordMessageDTO $dto, string $tenantId, ?string $cached * @param array $replyCache * @return array discordMessageId => Message stub */ - public function handleBatch(array $dtos, string $tenantId, array $identityCache, array $replyCache): array + public function handleBatch(array $dtos, array $identityCache, array $replyCache): array { $adapter = IdentityProvider::Discord->getMessageAdapter(); $now = now(); @@ -82,11 +80,10 @@ public function handleBatch(array $dtos, string $tenantId, array $identityCache, foreach ($dtos as $dto) { $id = (string) Uuid::uuid4(); - $identityId = $identityCache[$dto->authorDiscordId] ?? $this->resolveAuthorIdentity($dto, $tenantId)->id; + $identityId = $identityCache[$dto->authorDiscordId] ?? $this->resolveAuthorIdentity($dto)->id; $row = $dto->toDatabase([ 'id' => $id, - 'tenant_id' => $tenantId, 'external_identity_id' => $identityId, 'obtained_experience' => 0, ...$this->extractProviderSignals($dto, $adapter), @@ -117,11 +114,11 @@ public function handleBatch(array $dtos, string $tenantId, array $identityCache, if ($adapter instanceof MessageActivityAdapter) { foreach ($dtos as $dto) { $stub = $stubs[$dto->discordMessageId]; - $this->syncMentions($stub, $dto, $tenantId, $adapter); - $this->syncThread($stub, $dto, $tenantId, $adapter); - $this->syncAttachments($stub, $dto, $tenantId, $adapter); - $this->syncEmbeds($stub, $dto, $tenantId, $adapter); - $this->syncMembershipEvent($stub, $dto, $tenantId, $adapter); + $this->syncMentions($stub, $dto, $adapter); + $this->syncThread($stub, $dto, $adapter); + $this->syncAttachments($stub, $dto, $adapter); + $this->syncEmbeds($stub, $dto, $adapter); + $this->syncMembershipEvent($stub, $dto, $adapter); } } @@ -136,7 +133,7 @@ public function handleBatch(array $dtos, string $tenantId, array $identityCache, * @param array $existingCache * @return array */ - public function prewarm(iterable $dtos, string $tenantId, array $existingCache = []): array + public function prewarm(iterable $dtos, array $existingCache = []): array { $newAuthors = []; foreach ($dtos as $dto) { @@ -158,7 +155,6 @@ public function prewarm(iterable $dtos, string $tenantId, array $existingCache = /** @var array $existing */ $existing = ExternalIdentity::query() ->where('provider', IdentityProvider::Discord) - ->where('tenant_id', $tenantId) ->whereIn('external_account_id', array_keys($newAuthors)) ->pluck('id', 'external_account_id') ->all(); @@ -170,7 +166,7 @@ public function prewarm(iterable $dtos, string $tenantId, array $existingCache = continue; } - $cache[$discordId] = $this->createIdentity($dto, $tenantId)->id; + $cache[$discordId] = $this->createIdentity($dto)->id; } return $cache; @@ -180,7 +176,7 @@ public function prewarm(iterable $dtos, string $tenantId, array $existingCache = * @param iterable $dtos * @return array reply_to_provider_message_id => message uuid */ - public function prewarmReplyTargets(iterable $dtos, string $tenantId): array + public function prewarmReplyTargets(iterable $dtos): array { $adapter = IdentityProvider::Discord->getMessageAdapter(); if (!$adapter instanceof MessageActivityAdapter) { @@ -201,7 +197,6 @@ public function prewarmReplyTargets(iterable $dtos, string $tenantId): array /** @var array */ return Message::query() - ->where('tenant_id', $tenantId) ->whereIn('provider_message_id', array_keys($replyProviderIds)) ->pluck('id', 'provider_message_id') ->all(); @@ -239,7 +234,7 @@ private function resolveReplyTargetId( DiscordMessageDTO $dto, ?MessageActivityAdapter $adapter, array $replyCache = [], - ?string $tenantId = null, + bool $allowDbLookup = false, ): ?string { if (!$adapter instanceof MessageActivityAdapter) { return null; @@ -254,12 +249,11 @@ private function resolveReplyTargetId( return $replyCache[$reply->replyToProviderMessageId]; } - if ($tenantId === null) { + if (!$allowDbLookup) { return null; } return Message::query() - ->where('tenant_id', $tenantId) ->where('provider_message_id', $reply->replyToProviderMessageId) ->value('id'); } @@ -267,7 +261,6 @@ private function resolveReplyTargetId( private function syncMentions( Message $message, DiscordMessageDTO $dto, - string $tenantId, MessageActivityAdapter $adapter, ): void { $mentions = $adapter->extractMentions($dto->metadata); @@ -282,7 +275,6 @@ private function syncMentions( $identityMap = ExternalIdentity::query() ->where('provider', IdentityProvider::Discord) - ->where('tenant_id', $tenantId) ->whereIn('external_account_id', $providerIds) ->pluck('id', 'external_account_id') ->all(); @@ -294,7 +286,6 @@ private function syncMentions( 'mentioned_provider_account_id' => $mention->mentionedProviderAccountId, ], [ - 'tenant_id' => $tenantId, 'mentioned_identity_id' => $identityMap[$mention->mentionedProviderAccountId] ?? null, 'mentioned_username' => $mention->mentionedUsername, 'position' => $mention->position, @@ -306,7 +297,6 @@ private function syncMentions( private function syncThread( Message $message, DiscordMessageDTO $dto, - string $tenantId, MessageActivityAdapter $adapter, ): void { $thread = $adapter->extractThread($dto->metadata); @@ -316,7 +306,6 @@ private function syncThread( MessageThread::query()->updateOrCreate( [ - 'tenant_id' => $tenantId, 'provider_thread_id' => $thread->providerThreadId, ], [ @@ -331,7 +320,6 @@ private function syncThread( private function syncAttachments( Message $message, DiscordMessageDTO $dto, - string $tenantId, MessageActivityAdapter $adapter, ): void { $attachments = $adapter->extractAttachments($dto->metadata); @@ -353,7 +341,6 @@ private function syncAttachments( foreach ($attachments as $index => $attachment) { $rows[] = [ 'id' => (string) Uuid::uuid4(), - 'tenant_id' => $tenantId, 'message_id' => $message->id, 'provider_attachment_id' => $providerIds[$index] ?? null, 'url' => $attachment->url, @@ -373,7 +360,6 @@ private function syncAttachments( private function syncEmbeds( Message $message, DiscordMessageDTO $dto, - string $tenantId, MessageActivityAdapter $adapter, ): void { $embeds = $adapter->extractEmbeds($dto->metadata); @@ -389,7 +375,6 @@ private function syncEmbeds( foreach ($embeds as $index => $embed) { $rows[] = [ 'id' => (string) Uuid::uuid4(), - 'tenant_id' => $tenantId, 'message_id' => $message->id, 'url' => $embed->url, 'title' => $embed->title, @@ -410,7 +395,6 @@ private function syncEmbeds( private function syncMembershipEvent( Message $message, DiscordMessageDTO $dto, - string $tenantId, MessageActivityAdapter $adapter, ): void { $event = $adapter->extractMembershipEvent($dto->metadata); @@ -420,7 +404,6 @@ private function syncMembershipEvent( MembershipEvent::query()->updateOrCreate( [ - 'tenant_id' => $tenantId, 'provider_message_id' => $message->provider_message_id, ], [ @@ -432,30 +415,27 @@ private function syncMembershipEvent( ); } - private function resolveAuthorIdentity(DiscordMessageDTO $dto, string $tenantId): ExternalIdentity + private function resolveAuthorIdentity(DiscordMessageDTO $dto): ExternalIdentity { $identity = ExternalIdentity::query() ->where('provider', IdentityProvider::Discord) ->where('external_account_id', $dto->authorDiscordId) - ->where('tenant_id', $tenantId) ->first(); if ($identity) { return $identity; } - return $this->createIdentity($dto, $tenantId); + return $this->createIdentity($dto); } - private function createIdentity(DiscordMessageDTO $dto, string $tenantId): ExternalIdentity + private function createIdentity(DiscordMessageDTO $dto): ExternalIdentity { $user = $this->resolveOrCreateUser($dto); - $user->tenants()->syncWithoutDetaching([$tenantId]); return ExternalIdentity::query()->create([ 'provider' => IdentityProvider::Discord, 'external_account_id' => $dto->authorDiscordId, - 'tenant_id' => $tenantId, 'model_type' => (new User)->getMorphClass(), 'model_id' => $user->id, 'type' => IdentityProvider::Discord->getType(), diff --git a/app-modules/integration-discord/src/ETL/Actions/ImportDiscordModerationEventAction.php b/app-modules/integration-discord/src/ETL/Actions/ImportDiscordModerationEventAction.php index b646ddfc7..92ba8edc0 100644 --- a/app-modules/integration-discord/src/ETL/Actions/ImportDiscordModerationEventAction.php +++ b/app-modules/integration-discord/src/ETL/Actions/ImportDiscordModerationEventAction.php @@ -13,17 +13,15 @@ final class ImportDiscordModerationEventAction { public function handle( DiscordModerationEventDTO $dto, - string $tenantId, ?string $sourceMessageId = null, ): ModerationEvent { - $subjectIdentity = $this->resolveSubject($dto, $tenantId); - $moderatorIdentity = $this->resolveModerator($dto, $tenantId); - $botIdentity = $this->resolveBot($dto, $tenantId); + $subjectIdentity = $this->resolveSubject($dto); + $moderatorIdentity = $this->resolveModerator($dto); + $botIdentity = $this->resolveBot($dto); $providerMessageId = isset($dto->metadata['id']) ? (string) $dto->metadata['id'] : null; $attributes = $dto->toDatabase([ - 'tenant_id' => $tenantId, 'external_identity_id' => $subjectIdentity?->id, 'moderator_identity_id' => $moderatorIdentity?->id, 'source_identity_id' => $botIdentity?->id, @@ -34,7 +32,6 @@ public function handle( if ($providerMessageId !== null) { return ModerationEvent::query()->updateOrCreate( [ - 'tenant_id' => $tenantId, 'provider_message_id' => $providerMessageId, ], $attributes, @@ -51,29 +48,26 @@ public function handle( return ModerationEvent::query()->create($attributes); } - private function resolveBot(DiscordModerationEventDTO $dto, string $tenantId): ?ExternalIdentity + private function resolveBot(DiscordModerationEventDTO $dto): ?ExternalIdentity { return ExternalIdentity::query() ->where('provider', IdentityProvider::Discord) ->where('external_account_id', $dto->botDiscordId) - ->where('tenant_id', $tenantId) ->first(); } - private function resolveSubject(DiscordModerationEventDTO $dto, string $tenantId): ?ExternalIdentity + private function resolveSubject(DiscordModerationEventDTO $dto): ?ExternalIdentity { if ($dto->subjectDiscordId) { return ExternalIdentity::query() ->where('provider', IdentityProvider::Discord) ->where('external_account_id', $dto->subjectDiscordId) - ->where('tenant_id', $tenantId) ->first(); } if ($dto->subjectUsername && $dto->subjectDiscriminator) { return ExternalIdentity::query() ->where('provider', IdentityProvider::Discord) - ->where('tenant_id', $tenantId) ->whereJsonContains('metadata->user->username', $dto->subjectUsername) ->whereJsonContains('metadata->user->discriminator', $dto->subjectDiscriminator) ->first(); @@ -82,7 +76,7 @@ private function resolveSubject(DiscordModerationEventDTO $dto, string $tenantId return null; } - private function resolveModerator(DiscordModerationEventDTO $dto, string $tenantId): ?ExternalIdentity + private function resolveModerator(DiscordModerationEventDTO $dto): ?ExternalIdentity { if (!$dto->moderatorDiscordId) { return null; @@ -91,7 +85,6 @@ private function resolveModerator(DiscordModerationEventDTO $dto, string $tenant return ExternalIdentity::query() ->where('provider', IdentityProvider::Discord) ->where('external_account_id', $dto->moderatorDiscordId) - ->where('tenant_id', $tenantId) ->first(); } } diff --git a/app-modules/integration-discord/src/ETL/Actions/ImportDiscordProfileAction.php b/app-modules/integration-discord/src/ETL/Actions/ImportDiscordProfileAction.php index f3fc64b24..19d23cff1 100644 --- a/app-modules/integration-discord/src/ETL/Actions/ImportDiscordProfileAction.php +++ b/app-modules/integration-discord/src/ETL/Actions/ImportDiscordProfileAction.php @@ -17,16 +17,14 @@ final class ImportDiscordProfileAction { - public function handle(DiscordProfileDTO $dto, string $tenantId): ExternalIdentity + public function handle(DiscordProfileDTO $dto): ExternalIdentity { - $user = $this->resolveUser($dto, $tenantId); - $user->tenants()->syncWithoutDetaching([$tenantId]); + $user = $this->resolveUser($dto); $discordIdentity = ExternalIdentity::query()->updateOrCreate( [ 'provider' => IdentityProvider::Discord, 'external_account_id' => $dto->discordId, - 'tenant_id' => $tenantId, ], [ 'model_type' => (new User)->getMorphClass(), @@ -40,18 +38,17 @@ public function handle(DiscordProfileDTO $dto, string $tenantId): ExternalIdenti ); foreach ($dto->connectedAccounts as $account) { - $this->upsertConnectedAccount($account, $user, $tenantId, $dto); + $this->upsertConnectedAccount($account, $user, $dto); } return $discordIdentity; } - private function resolveUser(DiscordProfileDTO $dto, string $tenantId): User + private function resolveUser(DiscordProfileDTO $dto): User { $identity = ExternalIdentity::query() ->where('provider', IdentityProvider::Discord) ->where('external_account_id', $dto->discordId) - ->where('tenant_id', $tenantId) ->first(); if ($identity instanceof ExternalIdentity) { @@ -106,13 +103,11 @@ private function syncUserAttributes(User $user, DiscordProfileDTO $dto): User private function upsertConnectedAccount( ConnectedAccountDTO $account, User $user, - string $tenantId, DiscordProfileDTO $dto, ): void { $existing = ExternalIdentity::query() ->where('provider', $account->provider) ->where('external_account_id', $account->externalAccountId) - ->where('tenant_id', $tenantId) ->first(); if ($existing instanceof ExternalIdentity && (string) $existing->model_id !== (string) $user->id) { @@ -132,7 +127,6 @@ private function upsertConnectedAccount( [ 'provider' => $account->provider, 'external_account_id' => $account->externalAccountId, - 'tenant_id' => $tenantId, ], [ 'model_type' => (new User)->getMorphClass(), diff --git a/app-modules/integration-discord/src/ETL/Actions/ImportDiscordReactionsAction.php b/app-modules/integration-discord/src/ETL/Actions/ImportDiscordReactionsAction.php index 2e169b3b6..6395d71d3 100644 --- a/app-modules/integration-discord/src/ETL/Actions/ImportDiscordReactionsAction.php +++ b/app-modules/integration-discord/src/ETL/Actions/ImportDiscordReactionsAction.php @@ -14,7 +14,7 @@ final class ImportDiscordReactionsAction /** * @param list $reactions */ - public function handle(Message $message, array $reactions, string $tenantId): void + public function handle(Message $message, array $reactions): void { if ($reactions === []) { return; @@ -24,7 +24,6 @@ public function handle(Message $message, array $reactions, string $tenantId): vo $rows = array_map( static fn (DiscordMessageReactionDTO $r): array => $r->toDatabase([ 'id' => (string) Str::uuid(), - 'tenant_id' => $tenantId, 'reactable_type' => $message->getMorphClass(), 'reactable_id' => $message->id, 'created_at' => $now, diff --git a/app-modules/integration-discord/src/ETL/Actions/ImportDiscordVoiceLogAction.php b/app-modules/integration-discord/src/ETL/Actions/ImportDiscordVoiceLogAction.php index e22d941bb..881eb7131 100644 --- a/app-modules/integration-discord/src/ETL/Actions/ImportDiscordVoiceLogAction.php +++ b/app-modules/integration-discord/src/ETL/Actions/ImportDiscordVoiceLogAction.php @@ -14,12 +14,11 @@ final class ImportDiscordVoiceLogAction /** * @param array $channelMap */ - public function handle(DiscordVoiceLogDTO $dto, string $tenantId, array $channelMap): ?Voice + public function handle(DiscordVoiceLogDTO $dto, array $channelMap): ?Voice { $identity = ExternalIdentity::query() ->where('provider', IdentityProvider::Discord) ->where('external_account_id', $dto->userDiscordId) - ->where('tenant_id', $tenantId) ->first(); if (!$identity) { @@ -27,7 +26,6 @@ public function handle(DiscordVoiceLogDTO $dto, string $tenantId, array $channel } $attributes = $dto->toDatabase([ - 'tenant_id' => $tenantId, 'external_identity_id' => $identity->id, 'channel_name' => $channelMap[$dto->voiceChannelId] ?? $dto->voiceChannelId, ]); @@ -40,7 +38,6 @@ public function handle(DiscordVoiceLogDTO $dto, string $tenantId, array $channel return Voice::query()->updateOrCreate( [ - 'tenant_id' => $tenantId, 'provider_message_id' => $providerMessageId, ], $attributes, diff --git a/app-modules/integration-discord/src/ETL/Actions/MergeDuplicateDiscordUserAction.php b/app-modules/integration-discord/src/ETL/Actions/MergeDuplicateDiscordUserAction.php index 57bd7672a..b59271ac3 100644 --- a/app-modules/integration-discord/src/ETL/Actions/MergeDuplicateDiscordUserAction.php +++ b/app-modules/integration-discord/src/ETL/Actions/MergeDuplicateDiscordUserAction.php @@ -31,8 +31,6 @@ public function handle(User $oldUser, User $newUser, string $targetUsername): ar $this->mergeOneToOneRelations($oldUser, $newUser); - $this->mergePivotTable('tenant_users', 'tenant_id', $oldUser, $newUser); - $newUser->delete(); if ($oldUser->username !== $targetUsername) { @@ -75,10 +73,6 @@ private function reassignFkRelations(User $old, User $new): array ->where('admin_id', $new->id) ->update(['admin_id' => $old->id]); - $stats['tenants'] = DB::table('tenants') - ->where('owner_id', $new->id) - ->update(['owner_id' => $old->id]); - $stats['feedbacks_target'] = DB::table('feedbacks') ->where('target_id', $new->id) ->update(['target_id' => $old->id]); @@ -107,23 +101,4 @@ private function mergeOneToOneRelations(User $old, User $new): void } } } - - private function mergePivotTable(string $table, string $otherKey, User $old, User $new): void - { - $oldKeys = DB::table($table) - ->where('user_id', $old->id) - ->pluck($otherKey) - ->all(); - - if ($oldKeys !== []) { - DB::table($table) - ->where('user_id', $new->id) - ->whereIn($otherKey, $oldKeys) - ->delete(); - } - - DB::table($table) - ->where('user_id', $new->id) - ->update(['user_id' => $old->id]); - } } diff --git a/app-modules/integration-discord/src/ETL/Console/BackfillVoiceLogsCommand.php b/app-modules/integration-discord/src/ETL/Console/BackfillVoiceLogsCommand.php index 26986dacc..07acaa91b 100644 --- a/app-modules/integration-discord/src/ETL/Console/BackfillVoiceLogsCommand.php +++ b/app-modules/integration-discord/src/ETL/Console/BackfillVoiceLogsCommand.php @@ -6,7 +6,6 @@ use Carbon\CarbonImmutable; use He4rt\Activity\Voice\Models\Voice; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationDiscord\ETL\Actions\ImportDiscordVoiceLogAction; use He4rt\IntegrationDiscord\ETL\DTOs\DiscordVoiceLogDTO; use He4rt\IntegrationDiscord\Transport\DiscordConnector; @@ -18,7 +17,6 @@ use Illuminate\Support\Facades\DB; use Illuminate\Support\Sleep; -use function Laravel\Prompts\error; use function Laravel\Prompts\intro; use function Laravel\Prompts\note; use function Laravel\Prompts\outro; @@ -54,26 +52,15 @@ public function handle( ): int { DB::disableQueryLog(); - $tenantSlug = (string) $this->option('tenant'); - $tenant = Tenant::query()->where('slug', $tenantSlug)->first(); - - if ($tenant === null) { - error(sprintf('Tenant "%s" not found.', $tenantSlug)); - - return self::FAILURE; - } - $channelId = (string) $this->argument('channel_id'); $botId = (string) $this->option('bot-id'); $isDryRun = (bool) $this->option('dry-run'); $since = CarbonImmutable::parse($this->option('since') ?? '2026-03-01'); $until = CarbonImmutable::parse($this->option('until') ?? 'now'); - $tenantId = $tenant->getKey(); intro(sprintf('Discord Voice Backfill%s', $isDryRun ? ' [DRY RUN]' : '')); $existingCount = Voice::query() - ->where('tenant_id', $tenantId) ->whereBetween('occurred_at', [$since, $until]) ->count(); @@ -83,7 +70,6 @@ public function handle( ['Channel', $channelId], ['Bot filter', $botId], ['Period', sprintf('%s → %s', $since->toDateString(), $until->toDateString())], - ['Tenant', sprintf('%s (ID: %d)', $tenant->name, $tenantId)], ['Existing voice events in period', number_format($existingCount)], ], ); @@ -99,7 +85,7 @@ public function handle( label: 'Fetching voice logs [starting...]', callback: function ($logger) use ( $connector, $voiceAction, $channelId, $botId, - $isDryRun, $since, $until, $tenantId, $channelMap, + $isDryRun, $since, $until, $channelMap, &$before, &$pages, &$fetched, ): void { $reachedSince = false; @@ -173,7 +159,6 @@ public function handle( $channelName = $channelMap[$voiceDto->voiceChannelId] ?? $voiceDto->voiceChannelId; $exists = Voice::query() - ->where('tenant_id', $tenantId) ->where('provider_message_id', (string) $message['id']) ->exists(); @@ -188,7 +173,7 @@ public function handle( )); } else { if (!$isDryRun) { - $voiceAction->handle($voiceDto, $tenantId, $channelMap); + $voiceAction->handle($voiceDto, $channelMap); } $this->voiceCount++; diff --git a/app-modules/integration-discord/src/ETL/Console/ImportDiscordMessagesCommand.php b/app-modules/integration-discord/src/ETL/Console/ImportDiscordMessagesCommand.php index f289935ce..34d37e366 100644 --- a/app-modules/integration-discord/src/ETL/Console/ImportDiscordMessagesCommand.php +++ b/app-modules/integration-discord/src/ETL/Console/ImportDiscordMessagesCommand.php @@ -6,7 +6,6 @@ use He4rt\Activity\Message\Models\Message; use He4rt\Activity\Voice\Models\Voice; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationDiscord\ETL\Actions\ImportDiscordMessageAction; use He4rt\IntegrationDiscord\ETL\Actions\ImportDiscordModerationEventAction; use He4rt\IntegrationDiscord\ETL\Actions\ImportDiscordReactionsAction; @@ -55,14 +54,6 @@ public function handle( return self::FAILURE; } - $tenant = Tenant::query()->where('slug', 'he4rt')->first(); - - if (!$tenant) { - error('Tenant "he4rt" nao encontrado.'); - - return self::FAILURE; - } - $basePath = $this->argument('path'); if (!is_dir($basePath)) { @@ -72,7 +63,6 @@ public function handle( } $channelMap = $this->loadChannelMap($basePath); - $tenantId = $tenant->getKey(); $channelDirs = $this->getChannelDirectories($basePath); $channelDirs = $this->filterChannels($channelDirs, $this->option('channels')); @@ -86,7 +76,7 @@ public function handle( $limit = $this->option('limit') !== null ? (int) $this->option('limit') : null; $chunksPerChannel = $this->option('chunks') !== null ? (int) $this->option('chunks') : null; - info(sprintf('Importando mensagens de %d canais para tenant "%s"...', count($channelDirs), $tenant->name)); + info(sprintf('Importando mensagens de %d canais...', count($channelDirs))); if ($limit !== null) { info(sprintf('Limite total: %s mensagens.', number_format($limit))); } @@ -161,7 +151,7 @@ public function handle( /** @var list> $rawMessages */ $rawMessages = array_values(array_filter($allMessages, is_array(...))); - $messages = $this->filterNewMessages($rawMessages, $tenantId); + $messages = $this->filterNewMessages($rawMessages); $stats['skipped'] += count($allMessages) - count($messages); if ($messages !== []) { @@ -175,8 +165,8 @@ public function handle( $dtos = array_slice($dtos, 0, $remaining); } - $identityCache = $messageAction->prewarm($dtos, $tenantId, $identityCache); - $replyCache = $messageAction->prewarmReplyTargets($dtos, $tenantId); + $identityCache = $messageAction->prewarm($dtos, $identityCache); + $replyCache = $messageAction->prewarmReplyTargets($dtos); $rawById = []; foreach ($messages as $raw) { @@ -192,12 +182,12 @@ public function handle( DB::transaction(function () use ( $dtoBatch, $rawById, $messageAction, $reactionsAction, $voiceAction, $moderationAction, - $tenantId, $channelMap, $channelName, &$stats, &$errorSamples, + $channelMap, $channelName, &$stats, &$errorSamples, $identityCache, $replyCache, $statsSection, &$lastStatsRender, ): void { DB::statement('SET LOCAL synchronous_commit = off'); - $stubs = $messageAction->handleBatch($dtoBatch, $tenantId, $identityCache, $replyCache); + $stubs = $messageAction->handleBatch($dtoBatch, $identityCache, $replyCache); $stats['messages'] += count($stubs); foreach ($stubs as $providerId => $stub) { @@ -209,7 +199,7 @@ public function handle( try { $this->processSubEntities( $raw, $stub, $reactionsAction, $voiceAction, $moderationAction, - $tenantId, $channelMap, $stats, + $channelMap, $stats, ); } catch (Throwable $e) { $stats['errors']++; @@ -292,19 +282,18 @@ private function processSubEntities( ImportDiscordReactionsAction $reactionsAction, ImportDiscordVoiceLogAction $voiceAction, ImportDiscordModerationEventAction $moderationAction, - string $tenantId, array $channelMap, array &$stats, ): void { $reactions = DiscordMessageReactionDTO::fromDumpMessage($raw); if ($reactions !== []) { - $reactionsAction->handle($message, $reactions, $tenantId); + $reactionsAction->handle($message, $reactions); $stats['reactions'] += count($reactions); } $voiceDto = DiscordVoiceLogDTO::fromDump($raw); if ($voiceDto instanceof DiscordVoiceLogDTO) { - $voice = $voiceAction->handle($voiceDto, $tenantId, $channelMap); + $voice = $voiceAction->handle($voiceDto, $channelMap); if ($voice instanceof Voice) { $stats['voice']++; } @@ -312,7 +301,7 @@ private function processSubEntities( $moderationDto = DiscordModerationEventDTO::fromDump($raw); if ($moderationDto instanceof DiscordModerationEventDTO) { - $moderationAction->handle($moderationDto, $tenantId, $message->id); + $moderationAction->handle($moderationDto, $message->id); $stats['moderation']++; } } @@ -323,7 +312,7 @@ private function processSubEntities( private function assertSchema(): array { $required = [ - 'id', 'tenant_id', 'external_identity_id', 'provider_message_id', + 'id', 'external_identity_id', 'provider_message_id', 'channel_id', 'content', 'metadata', 'sent_at', 'edited_at', 'kind', 'raw_message_type', 'source_kind', 'is_pinned', 'mentions_everyone', 'mention_role_count', 'obtained_experience', @@ -385,7 +374,7 @@ private function renderBox(ConsoleSectionOutput $section, string $title, int $cu * @param list> $messages * @return list> */ - private function filterNewMessages(array $messages, string $tenantId): array + private function filterNewMessages(array $messages): array { $unique = []; foreach ($messages as $m) { @@ -399,7 +388,6 @@ private function filterNewMessages(array $messages, string $tenantId): array } $existing = Message::query() - ->where('tenant_id', $tenantId) ->whereIn('provider_message_id', array_keys($unique)) ->pluck('provider_message_id') ->flip() diff --git a/app-modules/integration-discord/src/ETL/Console/ImportDiscordProfilesCommand.php b/app-modules/integration-discord/src/ETL/Console/ImportDiscordProfilesCommand.php index 968ff572e..843ced72e 100644 --- a/app-modules/integration-discord/src/ETL/Console/ImportDiscordProfilesCommand.php +++ b/app-modules/integration-discord/src/ETL/Console/ImportDiscordProfilesCommand.php @@ -4,7 +4,6 @@ namespace He4rt\IntegrationDiscord\ETL\Console; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationDiscord\ETL\Actions\ImportDiscordProfileAction; use He4rt\IntegrationDiscord\ETL\DTOs\DiscordProfileDTO; use Illuminate\Console\Attributes\Description; @@ -41,14 +40,6 @@ public function handle(ImportDiscordProfileAction $action): int return self::FAILURE; } - $tenant = Tenant::query()->where('slug', 'he4rt')->first(); - - if (!$tenant) { - error('Tenant "he4rt" nao encontrado.'); - - return self::FAILURE; - } - $basePath = $this->argument('path'); if (!is_dir($basePath)) { @@ -73,12 +64,11 @@ public function handle(ImportDiscordProfileAction $action): int )); } - $tenantId = $tenant->getKey(); $stats = ['created' => 0, 'skipped' => 0, 'errors' => 0]; /** @var list */ $errorSamples = []; - info(sprintf('Encontrados %d chunks para importar no tenant "%s".', count($chunks), $tenant->name)); + info(sprintf('Encontrados %d chunks para importar.', count($chunks))); $output = $this->output->getOutput(); @@ -119,7 +109,7 @@ public function handle(ImportDiscordProfileAction $action): int foreach (array_chunk($profiles, 250) as $batch) { DB::transaction(function () use ( - $batch, $action, $tenantId, $chunkName, + $batch, $action, $chunkName, &$stats, &$errorSamples, &$profileCurrent, $totalProfiles, $profileSection, $statsSection, $profileTitle, &$lastStatsRender, ): void { @@ -127,7 +117,7 @@ public function handle(ImportDiscordProfileAction $action): int $dto = DiscordProfileDTO::fromDump($profile); try { - $identity = $action->handle($dto, $tenantId); + $identity = $action->handle($dto); $identity->wasRecentlyCreated ? $stats['created']++ : $stats['skipped']++; } catch (Throwable $e) { $stats['errors']++; @@ -207,7 +197,7 @@ private function assertSchema(): array { $required = [ 'external_identities' => [ - 'id', 'tenant_id', 'provider', 'external_account_id', 'type', + 'id', 'provider', 'external_account_id', 'type', 'model_type', 'model_id', 'credentials_type', 'credentials', 'connected_at', 'metadata', 'created_at', 'updated_at', ], diff --git a/app-modules/integration-discord/src/ETL/Console/MergeDuplicateDiscordProfilesCommand.php b/app-modules/integration-discord/src/ETL/Console/MergeDuplicateDiscordProfilesCommand.php index 4f0a63c9c..60a882ba1 100644 --- a/app-modules/integration-discord/src/ETL/Console/MergeDuplicateDiscordProfilesCommand.php +++ b/app-modules/integration-discord/src/ETL/Console/MergeDuplicateDiscordProfilesCommand.php @@ -6,7 +6,6 @@ use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\IntegrationDiscord\ETL\Actions\MergeDuplicateDiscordUserAction; use Illuminate\Console\Attributes\Description; @@ -168,13 +167,6 @@ private function runFromPairsFile(MergeDuplicateDiscordUserAction $merge, string private function runFromHeuristic(MergeDuplicateDiscordUserAction $merge): int { - $tenant = Tenant::query()->where('slug', $this->option('tenant'))->first(); - if (!$tenant instanceof Tenant) { - error('Tenant nao encontrado: '.$this->option('tenant')); - - return self::FAILURE; - } - $fromDate = (string) $this->option('from-date'); $dryRun = (bool) $this->option('dry-run'); $limit = $this->option('limit') !== null ? (int) $this->option('limit') : null; @@ -183,9 +175,8 @@ private function runFromHeuristic(MergeDuplicateDiscordUserAction $merge): int $stats = ['merged' => 0, 'no_match' => 0, 'conflict' => 0, 'errors' => 0]; info(sprintf( - 'Procurando dups apos %s no tenant "%s"%s (heuristic mode)...', + 'Procurando dups apos %s%s (heuristic mode)...', $fromDate, - $tenant->slug, $dryRun ? ' [DRY-RUN]' : '', )); @@ -200,7 +191,6 @@ private function runFromHeuristic(MergeDuplicateDiscordUserAction $merge): int $candidates = ExternalIdentity::query() ->where('provider', IdentityProvider::Discord) ->where('model_type', $userMorph) - ->where('tenant_id', $tenant->getKey()) ->whereExists(fn (Builder $q) => $q ->select(DB::raw(1)) ->from('users') diff --git a/app-modules/integration-discord/src/Models/DiscordGuild.php b/app-modules/integration-discord/src/Models/DiscordGuild.php index e81419316..35f60c257 100644 --- a/app-modules/integration-discord/src/Models/DiscordGuild.php +++ b/app-modules/integration-discord/src/Models/DiscordGuild.php @@ -5,17 +5,14 @@ namespace He4rt\IntegrationDiscord\Models; use Carbon\CarbonInterface; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationDiscord\Database\Factories\DiscordGuildFactory; use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; -use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; /** * @property int $id - * @property string|null $tenant_id * @property string $discord_guild_id * @property string $name * @property string|null $icon @@ -26,7 +23,6 @@ * @property CarbonInterface|null $synced_at * @property CarbonInterface|null $created_at * @property CarbonInterface|null $updated_at - * @property-read Tenant|null $tenant * @property-read Collection $channels * @property-read Collection $roles * @property-read Collection $members @@ -36,14 +32,6 @@ final class DiscordGuild extends Model /** @use HasFactory */ use HasFactory; - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class); - } - /** * @return HasMany */ diff --git a/app-modules/integration-discord/tests/Feature/ETL/ImportDiscordMessageTest.php b/app-modules/integration-discord/tests/Feature/ETL/ImportDiscordMessageTest.php index abd526dd3..7bb60731e 100644 --- a/app-modules/integration-discord/tests/Feature/ETL/ImportDiscordMessageTest.php +++ b/app-modules/integration-discord/tests/Feature/ETL/ImportDiscordMessageTest.php @@ -19,7 +19,6 @@ use He4rt\Identity\ExternalIdentity\Enums\CredentialsType; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\IntegrationDiscord\ETL\Actions\ImportDiscordMessageAction; use He4rt\IntegrationDiscord\ETL\Actions\ImportDiscordModerationEventAction; @@ -104,18 +103,16 @@ function heartdevsModerationLog(string $subjectId, string $moderatorId, string $ ]); } -function createTestIdentity(Tenant $tenant, string $discordId, string $username = 'testuser'): ExternalIdentity +function createTestIdentity(string $discordId, string $username = 'testuser'): ExternalIdentity { $user = User::query()->firstOrCreate( ['username' => $username], ['id' => Uuid::uuid4()->toString(), 'name' => $username, 'is_donator' => false], ); - $user->tenants()->syncWithoutDetaching([$tenant->getKey()]); return ExternalIdentity::query()->create([ 'provider' => IdentityProvider::Discord, 'external_account_id' => $discordId, - 'tenant_id' => $tenant->getKey(), 'model_type' => (new User)->getMorphClass(), 'model_id' => $user->id, 'type' => IdentityProvider::Discord->getType(), @@ -164,14 +161,14 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username test('DiscordMessageDTO::toDatabase maps fields and parses sent_at to Carbon', function (): void { $dto = DiscordMessageDTO::fromDump(discordMessage()); - $result = $dto->toDatabase(['tenant_id' => 1, 'obtained_experience' => 0]); + $result = $dto->toDatabase(['external_identity_id' => 1, 'obtained_experience' => 0]); expect($result['provider_message_id'])->toBe('541468820355940381') ->and($result['channel_id'])->toBe('541443469642563585') ->and($result['content'])->toBe('Olá, mundo!') ->and($result['sent_at'])->toBeInstanceOf(CarbonInterface::class) ->and($result['metadata'])->toBeArray() - ->and($result['tenant_id'])->toBe(1) + ->and($result['external_identity_id'])->toBe(1) ->and($result['obtained_experience'])->toBe(0); }); @@ -371,11 +368,10 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username // ── ImportDiscordMessageAction Tests ───────────────────────────── test('it creates message linked to existing external identity', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - $identity = createTestIdentity($tenant, '253642464697516033', 'letsch1'); + $identity = createTestIdentity('253642464697516033', 'letsch1'); $action = resolve(ImportDiscordMessageAction::class); - $message = $action->handle(DiscordMessageDTO::fromDump(discordMessage()), $tenant->getKey()); + $message = $action->handle(DiscordMessageDTO::fromDump(discordMessage())); expect($message)->toBeInstanceOf(Message::class) ->and($message->external_identity_id)->toBe($identity->id) @@ -383,44 +379,35 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username }); test('it creates user and external identity for unknown author', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - $action = resolve(ImportDiscordMessageAction::class); - $action->handle(DiscordMessageDTO::fromDump(discordMessage()), $tenant->getKey()); + $action->handle(DiscordMessageDTO::fromDump(discordMessage())); $this->assertDatabaseHas('users', ['username' => 'letsch1']); $this->assertDatabaseHas('external_identities', [ 'provider' => 'discord', 'external_account_id' => '253642464697516033', - 'tenant_id' => $tenant->getKey(), ]); }); test('it upserts message when provider_message_id already exists', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - $action = resolve(ImportDiscordMessageAction::class); - $action->handle(DiscordMessageDTO::fromDump(discordMessage()), $tenant->getKey()); - $action->handle(DiscordMessageDTO::fromDump(discordMessage(['content' => 'updated'])), $tenant->getKey()); + $action->handle(DiscordMessageDTO::fromDump(discordMessage())); + $action->handle(DiscordMessageDTO::fromDump(discordMessage(['content' => 'updated']))); expect(Message::query()->count())->toBe(1) ->and(Message::query()->first()->content)->toBe('updated'); }); test('it sets obtained_experience to zero', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - $action = resolve(ImportDiscordMessageAction::class); - $message = $action->handle(DiscordMessageDTO::fromDump(discordMessage()), $tenant->getKey()); + $message = $action->handle(DiscordMessageDTO::fromDump(discordMessage())); expect($message->obtained_experience)->toBe(0); }); test('it stores projected message metadata without redundant fields', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - $action = resolve(ImportDiscordMessageAction::class); - $message = $action->handle(DiscordMessageDTO::fromDump(discordMessage()), $tenant->getKey()); + $message = $action->handle(DiscordMessageDTO::fromDump(discordMessage())); expect($message->metadata)->toBeArray() ->toHaveKey('type') @@ -433,10 +420,8 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username }); test('it preserves empty arrays and null fields in metadata', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - $action = resolve(ImportDiscordMessageAction::class); - $message = $action->handle(DiscordMessageDTO::fromDump(discordMessage()), $tenant->getKey()); + $message = $action->handle(DiscordMessageDTO::fromDump(discordMessage())); expect($message->metadata) ->toHaveKey('mentions', []) @@ -447,8 +432,6 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username }); test('it returns null metadata when projection leaves empty object', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - $action = resolve(ImportDiscordMessageAction::class); $message = $action->handle(DiscordMessageDTO::fromDump([ 'id' => '999999999999', @@ -457,14 +440,12 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username 'content' => '', 'author' => ['id' => '253642464697516033', 'username' => 'letsch1'], 'reactions' => [], - ]), $tenant->getKey()); + ])); expect($message->metadata)->toBeNull(); }); test('it persists full author raw payload into external_identity metadata', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - $action = resolve(ImportDiscordMessageAction::class); $action->handle(DiscordMessageDTO::fromDump(discordMessage([ 'author' => [ @@ -475,7 +456,7 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username 'discriminator' => '0001', 'public_flags' => 64, ], - ])), $tenant->getKey()); + ]))); $identity = ExternalIdentity::query() ->where('external_account_id', '253642464697516033') @@ -488,10 +469,8 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username }); test('it parses sent_at from discord timestamp', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - $action = resolve(ImportDiscordMessageAction::class); - $message = $action->handle(DiscordMessageDTO::fromDump(discordMessage()), $tenant->getKey()); + $message = $action->handle(DiscordMessageDTO::fromDump(discordMessage())); expect($message->sent_at)->toBeInstanceOf(CarbonInterface::class) ->and($message->sent_at->year)->toBe(2_019); @@ -500,11 +479,10 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username // ── ImportDiscordReactionsAction Tests ─────────────────────────── test('it persists reactions with reactable_type message and reactable_id', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $msgAction = resolve(ImportDiscordMessageAction::class); - $message = $msgAction->handle(DiscordMessageDTO::fromDump(discordMessage()), $tenant->getKey()); + $message = $msgAction->handle(DiscordMessageDTO::fromDump(discordMessage())); $reactions = DiscordMessageReactionDTO::fromDumpMessage(discordMessage(['reactions' => [ ['emoji' => ['id' => null, 'name' => '👍'], 'count' => 3, 'count_details' => ['burst' => 0, 'normal' => 3]], @@ -512,7 +490,7 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username ]])); $reactionsAction = resolve(ImportDiscordReactionsAction::class); - $reactionsAction->handle($message, $reactions, $tenant->getKey()); + $reactionsAction->handle($message, $reactions); expect(Reaction::query()->count())->toBe(2); @@ -532,30 +510,28 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username }); test('it is idempotent - re-running updates counts instead of duplicating', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $msgAction = resolve(ImportDiscordMessageAction::class); - $message = $msgAction->handle(DiscordMessageDTO::fromDump(discordMessage()), $tenant->getKey()); + $message = $msgAction->handle(DiscordMessageDTO::fromDump(discordMessage())); $reactionsAction = resolve(ImportDiscordReactionsAction::class); $reactions1 = [new DiscordMessageReactionDTO(emojiId: null, emojiName: '👍', count: 3, countBurst: 0, countNormal: 3)]; - $reactionsAction->handle($message, $reactions1, $tenant->getKey()); + $reactionsAction->handle($message, $reactions1); $reactions2 = [new DiscordMessageReactionDTO(emojiId: null, emojiName: '👍', count: 7, countBurst: 1, countNormal: 6)]; - $reactionsAction->handle($message, $reactions2, $tenant->getKey()); + $reactionsAction->handle($message, $reactions2); expect(Reaction::query()->count())->toBe(1) ->and(Reaction::query()->first()->count)->toBe(7); }); test('it updates message reaction counters', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $msgAction = resolve(ImportDiscordMessageAction::class); - $message = $msgAction->handle(DiscordMessageDTO::fromDump(discordMessage()), $tenant->getKey()); + $message = $msgAction->handle(DiscordMessageDTO::fromDump(discordMessage())); $reactions = [ new DiscordMessageReactionDTO(emojiId: null, emojiName: '👍', count: 3, countBurst: 0, countNormal: 3), @@ -563,7 +539,7 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username ]; $reactionsAction = resolve(ImportDiscordReactionsAction::class); - $reactionsAction->handle($message, $reactions, $tenant->getKey()); + $reactionsAction->handle($message, $reactions); $message->refresh(); @@ -572,30 +548,28 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username }); test('Message::reactions returns MorphMany relation', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $msgAction = resolve(ImportDiscordMessageAction::class); - $message = $msgAction->handle(DiscordMessageDTO::fromDump(discordMessage()), $tenant->getKey()); + $message = $msgAction->handle(DiscordMessageDTO::fromDump(discordMessage())); $reactions = [new DiscordMessageReactionDTO(emojiId: null, emojiName: '🔥', count: 1, countBurst: 0, countNormal: 1)]; $reactionsAction = resolve(ImportDiscordReactionsAction::class); - $reactionsAction->handle($message, $reactions, $tenant->getKey()); + $reactionsAction->handle($message, $reactions); expect($message->reactions()->count())->toBe(1) ->and($message->reactions()->first()->emoji_name)->toBe('🔥'); }); test('it does nothing when reactions list is empty', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $msgAction = resolve(ImportDiscordMessageAction::class); - $message = $msgAction->handle(DiscordMessageDTO::fromDump(discordMessage()), $tenant->getKey()); + $message = $msgAction->handle(DiscordMessageDTO::fromDump(discordMessage())); $reactionsAction = resolve(ImportDiscordReactionsAction::class); - $reactionsAction->handle($message, [], $tenant->getKey()); + $reactionsAction->handle($message, []); expect(Reaction::query()->count())->toBe(0); }); @@ -603,14 +577,13 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username // ── ImportDiscordVoiceLogAction Tests ──────────────────────────── test('it creates voice record from dyno join log', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '529963308577456128', 'voiceuser'); + createTestIdentity('529963308577456128', 'voiceuser'); $dto = DiscordVoiceLogDTO::fromDump(dynoVoiceLog('529963308577456128', '452928009964355604', 'joined')); $channelMap = ['452928009964355604' => 'general-voice']; $action = resolve(ImportDiscordVoiceLogAction::class); - $voice = $action->handle($dto, $tenant->getKey(), $channelMap); + $voice = $action->handle($dto, $channelMap); expect($voice)->toBeInstanceOf(Voice::class) ->and($voice->state)->toBe('joined') @@ -619,36 +592,32 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username }); test('it creates voice record from dyno leave log with left state', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '529963308577456128', 'voiceuser'); + createTestIdentity('529963308577456128', 'voiceuser'); $dto = DiscordVoiceLogDTO::fromDump(dynoVoiceLog('529963308577456128', '452928009964355604', 'left')); $action = resolve(ImportDiscordVoiceLogAction::class); - $voice = $action->handle($dto, $tenant->getKey(), []); + $voice = $action->handle($dto, []); expect($voice->state)->toBe('left'); }); test('it skips when user has no external identity', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - $dto = DiscordVoiceLogDTO::fromDump(dynoVoiceLog('999999999', '452928009964355604')); $action = resolve(ImportDiscordVoiceLogAction::class); - $voice = $action->handle($dto, $tenant->getKey(), []); + $voice = $action->handle($dto, []); expect($voice)->toBeNull(); }); test('it resolves channel name from channel map', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '529963308577456128', 'voiceuser'); + createTestIdentity('529963308577456128', 'voiceuser'); $dto = DiscordVoiceLogDTO::fromDump(dynoVoiceLog('529963308577456128', '999')); $action = resolve(ImportDiscordVoiceLogAction::class); - $voice = $action->handle($dto, $tenant->getKey(), ['999' => 'music-channel']); + $voice = $action->handle($dto, ['999' => 'music-channel']); expect($voice->channel_name)->toBe('music-channel'); }); @@ -656,15 +625,14 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username // ── ImportDiscordModerationEventAction Tests ───────────────────── test('it creates moderation event linked to subject identity (heartdevs)', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - $identity = createTestIdentity($tenant, '367487241171501076', 'punished_user'); - $bot = createTestIdentity($tenant, '123456789', 'heartdevs_bot'); + $identity = createTestIdentity('367487241171501076', 'punished_user'); + $bot = createTestIdentity('123456789', 'heartdevs_bot'); $raw = heartdevsModerationLog('367487241171501076', '237242679283548160', 'Banimento', 'motivo'); $dto = DiscordModerationEventDTO::fromDump($raw); $action = resolve(ImportDiscordModerationEventAction::class); - $event = $action->handle($dto, $tenant->getKey()); + $event = $action->handle($dto); expect($event)->toBeInstanceOf(ModerationEvent::class) ->and($event->type)->toBe(ModerationType::Ban) @@ -673,93 +641,84 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username }); test('it creates moderation event with null subject when dyno username does not match', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - $raw = dynoModerationLog('unknownuser', '9999', 'was banned'); $dto = DiscordModerationEventDTO::fromDump($raw); $action = resolve(ImportDiscordModerationEventAction::class); - $event = $action->handle($dto, $tenant->getKey()); + $event = $action->handle($dto); expect($event->external_identity_id)->toBeNull() ->and($event->type)->toBe(ModerationType::Ban); }); test('it stores moderator identity from heartdevs embed', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '367487241171501076', 'subject'); - $moderator = createTestIdentity($tenant, '237242679283548160', 'moderator'); + createTestIdentity('367487241171501076', 'subject'); + $moderator = createTestIdentity('237242679283548160', 'moderator'); $raw = heartdevsModerationLog('367487241171501076', '237242679283548160', 'Banimento', 'motivo'); $dto = DiscordModerationEventDTO::fromDump($raw); $action = resolve(ImportDiscordModerationEventAction::class); - $event = $action->handle($dto, $tenant->getKey()); + $event = $action->handle($dto); expect($event->moderator_identity_id)->toBe($moderator->id); }); test('it stores reason and occurred_at from embed', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - $raw = heartdevsModerationLog('111', '222', 'Advertência', 'comportamento inadequado'); $dto = DiscordModerationEventDTO::fromDump($raw); $action = resolve(ImportDiscordModerationEventAction::class); - $event = $action->handle($dto, $tenant->getKey()); + $event = $action->handle($dto); expect($event->reason)->toBe('comportamento inadequado') ->and($event->occurred_at)->toBeInstanceOf(CarbonInterface::class); }); test('it links source_message_id when provided', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $msgAction = resolve(ImportDiscordMessageAction::class); - $message = $msgAction->handle(DiscordMessageDTO::fromDump(discordMessage()), $tenant->getKey()); + $message = $msgAction->handle(DiscordMessageDTO::fromDump(discordMessage())); $raw = heartdevsModerationLog('111', '222', 'Banimento', 'motivo'); $dto = DiscordModerationEventDTO::fromDump($raw); $action = resolve(ImportDiscordModerationEventAction::class); - $event = $action->handle($dto, $tenant->getKey(), $message->id); + $event = $action->handle($dto, $message->id); expect($event->source_message_id)->toBe($message->id); }); test('it is idempotent when re-importing the same source message', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $msgAction = resolve(ImportDiscordMessageAction::class); - $message = $msgAction->handle(DiscordMessageDTO::fromDump(discordMessage()), $tenant->getKey()); + $message = $msgAction->handle(DiscordMessageDTO::fromDump(discordMessage())); $raw = heartdevsModerationLog('111', '222', 'Banimento', 'motivo'); $dto = DiscordModerationEventDTO::fromDump($raw); $action = resolve(ImportDiscordModerationEventAction::class); - $first = $action->handle($dto, $tenant->getKey(), $message->id); - $second = $action->handle($dto, $tenant->getKey(), $message->id); + $first = $action->handle($dto, $message->id); + $second = $action->handle($dto, $message->id); expect($first->id)->toBe($second->id) ->and(ModerationEvent::query()->where('source_message_id', $message->id)->count())->toBe(1); }); test('it disambiguates user name when author global_name collides', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - $action = resolve(ImportDiscordMessageAction::class); $action->handle(DiscordMessageDTO::fromDump(discordMessage([ 'id' => '900000000000000001', 'author' => ['id' => '111', 'username' => 'user_a', 'global_name' => 'Joao', 'bot' => false], - ])), $tenant->getKey()); + ]))); $action->handle(DiscordMessageDTO::fromDump(discordMessage([ 'id' => '900000000000000002', 'author' => ['id' => '222', 'username' => 'user_b', 'global_name' => 'Joao', 'bot' => false], - ])), $tenant->getKey()); + ]))); expect(User::query()->where('name', 'Joao')->count())->toBe(1) ->and(User::query()->where('username', 'user_a')->value('name'))->toBe('Joao') @@ -769,13 +728,12 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username // ── Fase 1: canonical columns populated by adapter ─────────────── test('it populates canonical kind + raw_message_type from adapter', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $raw = discordMessage(['type' => 19, 'message_reference' => ['message_id' => 'parent-msg-1']]); $action = resolve(ImportDiscordMessageAction::class); - $message = $action->handle(DiscordMessageDTO::fromDump($raw), $tenant->getKey()); + $message = $action->handle(DiscordMessageDTO::fromDump($raw)); expect($message->kind)->toBe(MessageKind::Reply) ->and($message->raw_message_type)->toBe(19) @@ -783,21 +741,18 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username }); test('it populates source_kind based on author flags', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $action = resolve(ImportDiscordMessageAction::class); $message = $action->handle( DiscordMessageDTO::fromDump(discordMessage(['author' => ['bot' => true]])), - $tenant->getKey(), ); expect($message->source_kind)->toBe(MessageSourceKind::Bot); }); test('it populates is_pinned, mentions_everyone and mention_role_count', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $raw = discordMessage([ 'pinned' => true, @@ -806,7 +761,7 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username ]); $action = resolve(ImportDiscordMessageAction::class); - $message = $action->handle(DiscordMessageDTO::fromDump($raw), $tenant->getKey()); + $message = $action->handle(DiscordMessageDTO::fromDump($raw)); expect($message->is_pinned)->toBeTrue() ->and($message->mentions_everyone)->toBeTrue() @@ -814,13 +769,12 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username }); test('it parses edited_at into a Carbon instance', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $raw = discordMessage(['edited_timestamp' => '2024-05-01T10:00:00+00:00']); $action = resolve(ImportDiscordMessageAction::class); - $message = $action->handle(DiscordMessageDTO::fromDump($raw), $tenant->getKey()); + $message = $action->handle(DiscordMessageDTO::fromDump($raw)); expect($message->edited_at)->toBeInstanceOf(CarbonInterface::class) ->and($message->edited_at->year)->toBe(2_024); @@ -836,19 +790,17 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username }); test('it keeps deleted Discord users as separate rows', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - $action = resolve(ImportDiscordMessageAction::class); $action->handle(DiscordMessageDTO::fromDump(discordMessage([ 'id' => '800000000000000001', 'author' => ['id' => '111', 'username' => 'Deleted User', 'global_name' => null, 'bot' => false], - ])), $tenant->getKey()); + ]))); $action->handle(DiscordMessageDTO::fromDump(discordMessage([ 'id' => '800000000000000002', 'author' => ['id' => '222', 'username' => 'Deleted User', 'global_name' => null, 'bot' => false], - ])), $tenant->getKey()); + ]))); expect(User::query()->where('username', 'deleted_user_111')->count())->toBe(1) ->and(User::query()->where('username', 'deleted_user_222')->count())->toBe(1) @@ -858,30 +810,28 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username // ── Fase 1: Voice upsert idempotency ───────────────────────────── -test('it upserts voice events by (tenant_id, provider_message_id)', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '529963308577456128', 'voiceuser'); +test('it upserts voice events by provider_message_id', function (): void { + createTestIdentity('529963308577456128', 'voiceuser'); $raw = dynoVoiceLog('529963308577456128', '452928009964355604', 'joined'); $dto = DiscordVoiceLogDTO::fromDump($raw); $action = resolve(ImportDiscordVoiceLogAction::class); - $action->handle($dto, $tenant->getKey(), []); - $action->handle($dto, $tenant->getKey(), []); + $action->handle($dto, []); + $action->handle($dto, []); expect(Voice::query()->count())->toBe(1) ->and(Voice::query()->first()->provider_message_id)->toBe($raw['id']); }); test('it preserves the Dyno log timestamp in occurred_at', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '529963308577456128', 'voiceuser'); + createTestIdentity('529963308577456128', 'voiceuser'); $raw = dynoVoiceLog('529963308577456128', '452928009964355604', 'joined'); $dto = DiscordVoiceLogDTO::fromDump($raw); $action = resolve(ImportDiscordVoiceLogAction::class); - $voice = $action->handle($dto, $tenant->getKey(), []); + $voice = $action->handle($dto, []); expect($voice->occurred_at)->toBeInstanceOf(CarbonInterface::class) ->and($voice->occurred_at->toISOString())->toStartWith('2019-02-03'); @@ -899,15 +849,13 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username ->and($result['metadata']['subject_discriminator'])->toBe('1234'); }); -test('it upserts moderation events by (tenant_id, provider_message_id)', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - +test('it upserts moderation events by provider_message_id', function (): void { $raw = dynoModerationLog('someuser', '1234', 'was banned'); $dto = DiscordModerationEventDTO::fromDump($raw); $action = resolve(ImportDiscordModerationEventAction::class); - $first = $action->handle($dto, $tenant->getKey()); - $second = $action->handle($dto, $tenant->getKey()); + $first = $action->handle($dto); + $second = $action->handle($dto); expect($first->id)->toBe($second->id) ->and(ModerationEvent::query()->count())->toBe(1); @@ -916,9 +864,8 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username // ── Fase 2: mentions / threads / resolved replies ──────────────── test('it populates message_mentions with provider id, position and linked identity when known', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); - $bob = createTestIdentity($tenant, '999', 'bob'); + createTestIdentity('253642464697516033', 'letsch1'); + $bob = createTestIdentity('999', 'bob'); $raw = discordMessage([ 'id' => 'msg-with-mentions', @@ -929,7 +876,7 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username ]); $action = resolve(ImportDiscordMessageAction::class); - $message = $action->handle(DiscordMessageDTO::fromDump($raw), $tenant->getKey()); + $message = $action->handle(DiscordMessageDTO::fromDump($raw)); $mentions = MessageMention::query() ->where('message_id', $message->id) @@ -947,8 +894,7 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username }); test('it upserts mentions idempotently on re-import', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $raw = discordMessage([ 'id' => 'msg-dup-mentions', @@ -956,15 +902,14 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username ]); $action = resolve(ImportDiscordMessageAction::class); - $action->handle(DiscordMessageDTO::fromDump($raw), $tenant->getKey()); - $action->handle(DiscordMessageDTO::fromDump($raw), $tenant->getKey()); + $action->handle(DiscordMessageDTO::fromDump($raw)); + $action->handle(DiscordMessageDTO::fromDump($raw)); expect(MessageMention::query()->count())->toBe(1); }); test('it creates a message_thread when payload has a thread block', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $raw = discordMessage([ 'id' => 'msg-with-thread', @@ -976,7 +921,7 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username ]); $action = resolve(ImportDiscordMessageAction::class); - $message = $action->handle(DiscordMessageDTO::fromDump($raw), $tenant->getKey()); + $message = $action->handle(DiscordMessageDTO::fromDump($raw)); $thread = MessageThread::query()->where('message_id', $message->id)->first(); @@ -988,13 +933,11 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username }); test('it resolves reply_to_message_id when parent message already exists', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $action = resolve(ImportDiscordMessageAction::class); $parent = $action->handle( DiscordMessageDTO::fromDump(discordMessage(['id' => 'parent-1'])), - $tenant->getKey(), ); $child = $action->handle( @@ -1003,7 +946,6 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username 'type' => 19, 'message_reference' => ['message_id' => 'parent-1'], ])), - $tenant->getKey(), ); expect($child->reply_to_provider_message_id)->toBe('parent-1') @@ -1011,8 +953,7 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username }); test('it leaves reply_to_message_id null when parent is out of order', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $action = resolve(ImportDiscordMessageAction::class); $child = $action->handle( @@ -1021,7 +962,6 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username 'type' => 19, 'message_reference' => ['message_id' => 'unseen-parent'], ])), - $tenant->getKey(), ); expect($child->reply_to_provider_message_id)->toBe('unseen-parent') @@ -1031,8 +971,7 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username // ── Fase 3: attachments / embeds / membership events ───────────── test('it persists attachments with content type, size and dimensions', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $raw = discordMessage([ 'id' => 'msg-atts', @@ -1048,7 +987,7 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username ]); $action = resolve(ImportDiscordMessageAction::class); - $message = $action->handle(DiscordMessageDTO::fromDump($raw), $tenant->getKey()); + $message = $action->handle(DiscordMessageDTO::fromDump($raw)); $attachment = MessageAttachment::query()->where('message_id', $message->id)->first(); @@ -1060,8 +999,7 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username }); test('attachments are replaced on re-import (no duplicates)', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $raw = discordMessage([ 'id' => 'msg-atts-dup', @@ -1072,15 +1010,14 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username ]); $action = resolve(ImportDiscordMessageAction::class); - $action->handle(DiscordMessageDTO::fromDump($raw), $tenant->getKey()); - $action->handle(DiscordMessageDTO::fromDump($raw), $tenant->getKey()); + $action->handle(DiscordMessageDTO::fromDump($raw)); + $action->handle(DiscordMessageDTO::fromDump($raw)); expect(MessageAttachment::query()->count())->toBe(2); }); test('it persists embeds with derived source_domain and raw payload', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $raw = discordMessage([ 'id' => 'msg-embed', @@ -1094,7 +1031,7 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username ]); $action = resolve(ImportDiscordMessageAction::class); - $message = $action->handle(DiscordMessageDTO::fromDump($raw), $tenant->getKey()); + $message = $action->handle(DiscordMessageDTO::fromDump($raw)); $embed = MessageEmbed::query()->where('message_id', $message->id)->first(); @@ -1105,8 +1042,7 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username }); test('it derives a membership_event for type=7 user joins', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $raw = discordMessage([ 'id' => 'join-1', @@ -1115,7 +1051,7 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username ]); $action = resolve(ImportDiscordMessageAction::class); - $message = $action->handle(DiscordMessageDTO::fromDump($raw), $tenant->getKey()); + $message = $action->handle(DiscordMessageDTO::fromDump($raw)); $event = MembershipEvent::query() ->where('provider_message_id', $message->provider_message_id) @@ -1127,8 +1063,7 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username }); test('it derives a boost_tier_2 membership_event for type=10', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $raw = discordMessage([ 'id' => 'boost-t2', @@ -1137,14 +1072,13 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username ]); $action = resolve(ImportDiscordMessageAction::class); - $action->handle(DiscordMessageDTO::fromDump($raw), $tenant->getKey()); + $action->handle(DiscordMessageDTO::fromDump($raw)); expect(MembershipEvent::query()->where('kind', 'boost_tier_2')->count())->toBe(1); }); test('membership_events are idempotent on re-import', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - createTestIdentity($tenant, '253642464697516033', 'letsch1'); + createTestIdentity('253642464697516033', 'letsch1'); $raw = discordMessage([ 'id' => 'join-dup', @@ -1153,15 +1087,13 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username ]); $action = resolve(ImportDiscordMessageAction::class); - $action->handle(DiscordMessageDTO::fromDump($raw), $tenant->getKey()); - $action->handle(DiscordMessageDTO::fromDump($raw), $tenant->getKey()); + $action->handle(DiscordMessageDTO::fromDump($raw)); + $action->handle(DiscordMessageDTO::fromDump($raw)); expect(MembershipEvent::query()->count())->toBe(1); }); test('resolveOrCreateUser reuses existing legacy #0 user when no discord identity exists', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - $existing = User::factory()->create(['username' => 'oldbie#0', 'name' => 'Oldbie']); $raw = discordMessage([ @@ -1170,7 +1102,7 @@ function createTestIdentity(Tenant $tenant, string $discordId, string $username ]); $action = resolve(ImportDiscordMessageAction::class); - $message = $action->handle(DiscordMessageDTO::fromDump($raw), $tenant->getKey()); + $message = $action->handle(DiscordMessageDTO::fromDump($raw)); $identity = ExternalIdentity::query() ->where('provider', IdentityProvider::Discord) diff --git a/app-modules/integration-discord/tests/Feature/ETL/ImportDiscordProfileTest.php b/app-modules/integration-discord/tests/Feature/ETL/ImportDiscordProfileTest.php index 960922107..faee8af63 100644 --- a/app-modules/integration-discord/tests/Feature/ETL/ImportDiscordProfileTest.php +++ b/app-modules/integration-discord/tests/Feature/ETL/ImportDiscordProfileTest.php @@ -4,7 +4,6 @@ use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\IntegrationDiscord\ETL\Actions\ImportDiscordProfileAction; use He4rt\IntegrationDiscord\ETL\DTOs\ConnectedAccountDTO; @@ -134,12 +133,11 @@ function discordProfile(array $overrides = []): array // Action Tests test('it creates user and external identity from discord profile', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $profile = discordProfile(); $dto = DiscordProfileDTO::fromDump($profile); $action = resolve(ImportDiscordProfileAction::class); - $identity = $action->handle($dto, $tenant->getKey()); + $identity = $action->handle($dto); expect($identity)->toBeInstanceOf(ExternalIdentity::class); @@ -151,45 +149,29 @@ function discordProfile(array $overrides = []): array $this->assertDatabaseHas('external_identities', [ 'provider' => 'discord', 'external_account_id' => '49615312957476864', - 'tenant_id' => $tenant->getKey(), ]); }); test('it upserts external identity when already exists', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $action = resolve(ImportDiscordProfileAction::class); $profileOld = discordProfile(['user_profile' => ['bio' => 'old bio'], 'connected_accounts' => []]); - $action->handle(DiscordProfileDTO::fromDump($profileOld), $tenant->getKey()); + $action->handle(DiscordProfileDTO::fromDump($profileOld)); $profileNew = discordProfile(['user_profile' => ['bio' => 'new bio'], 'connected_accounts' => []]); - $identity = $action->handle(DiscordProfileDTO::fromDump($profileNew), $tenant->getKey()); + $identity = $action->handle(DiscordProfileDTO::fromDump($profileNew)); expect(ExternalIdentity::query()->count())->toBe(1) ->and(User::query()->where('username', '_tats')->count())->toBe(1) ->and($identity->metadata['user_profile']['bio'])->toBe('new bio'); }); -test('it attaches user to tenant', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - $dto = DiscordProfileDTO::fromDump(discordProfile()); - - $action = resolve(ImportDiscordProfileAction::class); - $identity = $action->handle($dto, $tenant->getKey()); - - $this->assertDatabaseHas('tenant_users', [ - 'user_id' => $identity->model_id, - 'tenant_id' => $tenant->getKey(), - ]); -}); - test('it stores complete discord metadata in external identity', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $profile = discordProfile(); $dto = DiscordProfileDTO::fromDump($profile); $action = resolve(ImportDiscordProfileAction::class); - $identity = $action->handle($dto, $tenant->getKey()); + $identity = $action->handle($dto); $identity->refresh(); @@ -212,18 +194,16 @@ function discordProfile(array $overrides = []): array }); test('it sets connected_at to null when guild_member joined_at is absent', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $profile = discordProfile(['guild_member' => ['joined_at' => null]]); $dto = DiscordProfileDTO::fromDump($profile); $action = resolve(ImportDiscordProfileAction::class); - $identity = $action->handle($dto, $tenant->getKey()); + $identity = $action->handle($dto); expect($identity->connected_at)->toBeNull(); }); test('it creates external identities for each connected account', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $profile = discordProfile([ 'connected_accounts' => [ ['type' => 'twitch', 'id' => '81085454', 'name' => 'fewerygor', 'verified' => true], @@ -233,7 +213,7 @@ function discordProfile(array $overrides = []): array $dto = DiscordProfileDTO::fromDump($profile); $action = resolve(ImportDiscordProfileAction::class); - $action->handle($dto, $tenant->getKey()); + $action->handle($dto); expect(ExternalIdentity::query()->count())->toBe(3) ->and(ExternalIdentity::query()->where('provider', 'discord')->exists())->toBeTrue() @@ -245,7 +225,6 @@ function discordProfile(array $overrides = []): array }); test('it stores connected account metadata in external identity', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $profile = discordProfile([ 'connected_accounts' => [ [ @@ -260,7 +239,7 @@ function discordProfile(array $overrides = []): array $dto = DiscordProfileDTO::fromDump($profile); $action = resolve(ImportDiscordProfileAction::class); - $action->handle($dto, $tenant->getKey()); + $action->handle($dto); $steamIdentity = ExternalIdentity::query()->where('provider', 'steam')->first(); @@ -272,19 +251,17 @@ function discordProfile(array $overrides = []): array }); test('it handles profile with no connected accounts', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $profile = discordProfile(['connected_accounts' => []]); $dto = DiscordProfileDTO::fromDump($profile); $action = resolve(ImportDiscordProfileAction::class); - $action->handle($dto, $tenant->getKey()); + $action->handle($dto); expect(ExternalIdentity::query()->count())->toBe(1) ->and(ExternalIdentity::query()->where('provider', 'discord')->exists())->toBeTrue(); }); test('it upserts connected account external identities', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $action = resolve(ImportDiscordProfileAction::class); $profileOld = discordProfile([ @@ -292,7 +269,7 @@ function discordProfile(array $overrides = []): array ['type' => 'spotify', 'id' => 'user123', 'name' => 'old_name', 'verified' => false], ], ]); - $action->handle(DiscordProfileDTO::fromDump($profileOld), $tenant->getKey()); + $action->handle(DiscordProfileDTO::fromDump($profileOld)); expect(ExternalIdentity::query()->count())->toBe(2) ->and(ExternalIdentity::query()->where('provider', 'spotify')->first()->metadata['name'])->toBe('old_name'); @@ -302,7 +279,7 @@ function discordProfile(array $overrides = []): array ['type' => 'spotify', 'id' => 'user123', 'name' => 'new_name', 'verified' => true], ], ]); - $action->handle(DiscordProfileDTO::fromDump($profileNew), $tenant->getKey()); + $action->handle(DiscordProfileDTO::fromDump($profileNew)); expect(ExternalIdentity::query()->count())->toBe(2) ->and(ExternalIdentity::query()->where('provider', 'spotify')->count())->toBe(1) @@ -330,7 +307,6 @@ function discordProfile(array $overrides = []): array // Regression: identity-first lookup prevents user duplication on Discord username changes. test('it reuses existing user when discord identity already exists with legacy #0 username', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $action = resolve(ImportDiscordProfileAction::class); $oldUser = User::factory()->create(['username' => 'sun.dev_#0', 'name' => 'Sun']); @@ -339,7 +315,6 @@ function discordProfile(array $overrides = []): array ->create([ 'provider' => IdentityProvider::Discord, 'external_account_id' => '49615312957476864', - 'tenant_id' => $tenant->getKey(), 'model_id' => $oldUser->id, ]); @@ -348,7 +323,6 @@ function discordProfile(array $overrides = []): array 'user' => ['username' => 'sun.dev_', 'global_name' => 'Sun'], 'connected_accounts' => [], ])), - $tenant->getKey(), ); expect(User::query()->whereIn('username', ['sun.dev_', 'sun.dev_#0'])->count())->toBe(1) @@ -363,7 +337,6 @@ function discordProfile(array $overrides = []): array }); test('it updates username when discord pomelo handle changes', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $action = resolve(ImportDiscordProfileAction::class); $user = User::factory()->create(['username' => 'oldhandle', 'name' => 'oldhandle']); @@ -372,7 +345,6 @@ function discordProfile(array $overrides = []): array ->create([ 'provider' => IdentityProvider::Discord, 'external_account_id' => '49615312957476864', - 'tenant_id' => $tenant->getKey(), 'model_id' => $user->id, ]); @@ -381,7 +353,6 @@ function discordProfile(array $overrides = []): array 'user' => ['username' => 'newhandle', 'global_name' => 'New Display'], 'connected_accounts' => [], ])), - $tenant->getKey(), ); $user->refresh(); @@ -391,7 +362,6 @@ function discordProfile(array $overrides = []): array }); test('it does not steal connected account identity already linked to another user', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $action = resolve(ImportDiscordProfileAction::class); $alice = User::factory()->create(['username' => 'alice']); @@ -400,7 +370,6 @@ function discordProfile(array $overrides = []): array ->create([ 'provider' => IdentityProvider::Twitch, 'external_account_id' => '81085454', - 'tenant_id' => $tenant->getKey(), 'model_id' => $alice->id, ]); @@ -411,7 +380,6 @@ function discordProfile(array $overrides = []): array ['type' => 'twitch', 'id' => '81085454', 'name' => 'fake', 'verified' => true], ], ])), - $tenant->getKey(), ); $aliceTwitch->refresh(); @@ -420,7 +388,6 @@ function discordProfile(array $overrides = []): array }); test('it creates user when no identity and no username match exists', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $action = resolve(ImportDiscordProfileAction::class); $usersBefore = User::query()->count(); @@ -430,7 +397,6 @@ function discordProfile(array $overrides = []): array 'user' => ['id' => '777', 'username' => 'fresh', 'global_name' => 'Fresh'], 'connected_accounts' => [], ])), - $tenant->getKey(), ); expect(User::query()->count())->toBe($usersBefore + 1) @@ -438,7 +404,6 @@ function discordProfile(array $overrides = []): array }); test('it links discord identity to portal user matching username when no identity exists yet', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $action = resolve(ImportDiscordProfileAction::class); $portalUser = User::factory()->create(['username' => 'portal_user', 'name' => 'Portal']); @@ -448,7 +413,6 @@ function discordProfile(array $overrides = []): array 'user' => ['id' => '888', 'username' => 'portal_user'], 'connected_accounts' => [], ])), - $tenant->getKey(), ); $identity = ExternalIdentity::query() diff --git a/app-modules/integration-discord/tests/Feature/ETL/MergeDuplicateDiscordProfilesTest.php b/app-modules/integration-discord/tests/Feature/ETL/MergeDuplicateDiscordProfilesTest.php index 648c8200e..fbce00adf 100644 --- a/app-modules/integration-discord/tests/Feature/ETL/MergeDuplicateDiscordProfilesTest.php +++ b/app-modules/integration-discord/tests/Feature/ETL/MergeDuplicateDiscordProfilesTest.php @@ -4,7 +4,6 @@ use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Database\Eloquent\Collection; use Illuminate\Support\Facades\Artisan; @@ -14,7 +13,7 @@ /** * @return array|ExternalIdentity|Collection> */ -function makeImportedDup(Tenant $tenant, string $discordId, string $username, array $metadataExtras = []): array +function makeImportedDup(string $discordId, string $username, array $metadataExtras = []): array { $newUser = User::factory()->create([ 'username' => $username, @@ -27,7 +26,6 @@ function makeImportedDup(Tenant $tenant, string $discordId, string $username, ar ->create([ 'provider' => IdentityProvider::Discord, 'external_account_id' => $discordId, - 'tenant_id' => $tenant->getKey(), 'model_id' => $newUser->id, 'metadata' => $metadataExtras, ]); @@ -45,9 +43,8 @@ function makeOrphan(string $username, ?string $createdAt = '2025-08-10 00:00:00' } test('dry-run does not modify the database', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $orphan = makeOrphan('Tats#0927'); - [$newUser] = makeImportedDup($tenant, '49615312957476864', '_tats', ['legacy_username' => 'Tats#0927']); + [$newUser] = makeImportedDup('49615312957476864', '_tats', ['legacy_username' => 'Tats#0927']); Artisan::call('discord:merge-duplicate-profiles', ['--dry-run' => true, '--from-date' => '2026-05-01']); @@ -57,9 +54,8 @@ function makeOrphan(string $username, ?string $createdAt = '2025-08-10 00:00:00' }); test('merges via metadata.legacy_username (preferred match)', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $orphan = makeOrphan('Tats#0927'); - [$newUser, $identity] = makeImportedDup($tenant, '49615312957476864', '_tats', ['legacy_username' => 'Tats#0927']); + [$newUser, $identity] = makeImportedDup('49615312957476864', '_tats', ['legacy_username' => 'Tats#0927']); Artisan::call('discord:merge-duplicate-profiles', ['--from-date' => '2026-05-01']); @@ -72,9 +68,8 @@ function makeOrphan(string $username, ?string $createdAt = '2025-08-10 00:00:00' }); test('merges via badge legacy_username description fallback', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $orphan = makeOrphan('OldName#1234'); - [$newUser, $identity] = makeImportedDup($tenant, '111', 'newname', [ + [$newUser, $identity] = makeImportedDup('111', 'newname', [ 'badges' => [ ['id' => 'legacy_username', 'description' => 'Originally known as OldName#1234'], ], @@ -91,9 +86,8 @@ function makeOrphan(string $username, ?string $createdAt = '2025-08-10 00:00:00' }); test('merges via #0 heuristic when metadata has no legacy_username', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $orphan = makeOrphan('xpto#0'); - [$newUser, $identity] = makeImportedDup($tenant, '222', 'xpto'); + [$newUser, $identity] = makeImportedDup('222', 'xpto'); Artisan::call('discord:merge-duplicate-profiles', ['--from-date' => '2026-05-01']); @@ -106,8 +100,7 @@ function makeOrphan(string $username, ?string $createdAt = '2025-08-10 00:00:00' }); test('skips when no orphan candidate exists (genuinely new user)', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - [$newUser] = makeImportedDup($tenant, '333', 'brand_new'); + [$newUser] = makeImportedDup('333', 'brand_new'); $exitCode = Artisan::call('discord:merge-duplicate-profiles', ['--from-date' => '2026-05-01']); @@ -116,10 +109,9 @@ function makeOrphan(string $username, ?string $createdAt = '2025-08-10 00:00:00' }); test('skips when multiple orphan candidates match (conflict)', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $orphanA = makeOrphan('ambig#0'); $orphanB = makeOrphan('ambig#9999'); - [$newUser] = makeImportedDup($tenant, '444', 'ambig', [ + [$newUser] = makeImportedDup('444', 'ambig', [ 'badges' => [ ['id' => 'legacy_username', 'description' => 'Originally known as ambig#9999'], ], @@ -133,15 +125,13 @@ function makeOrphan(string $username, ?string $createdAt = '2025-08-10 00:00:00' }); test('reassigns user_id on tables with simple FK', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $orphan = makeOrphan('xpto#0'); - [$newUser] = makeImportedDup($tenant, '555', 'xpto'); + [$newUser] = makeImportedDup('555', 'xpto'); $charId = (string) Uuid::uuid4(); DB::table('characters')->insert([ 'id' => $charId, 'user_id' => $newUser->id, - 'tenant_id' => $tenant->getKey(), 'experience' => 100, 'reputation' => 0, 'created_at' => now(), @@ -155,32 +145,11 @@ function makeOrphan(string $username, ?string $createdAt = '2025-08-10 00:00:00' ->and((string) $row->user_id)->toBe((string) $orphan->id); }); -test('dedupes pivot rows when both users have same key', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); - $orphan = makeOrphan('xpto#0'); - [$newUser] = makeImportedDup($tenant, '666', 'xpto'); - - DB::table('tenant_users')->insert([ - ['tenant_id' => $tenant->getKey(), 'user_id' => $orphan->id, 'created_at' => now(), 'updated_at' => now()], - ['tenant_id' => $tenant->getKey(), 'user_id' => $newUser->id, 'created_at' => now(), 'updated_at' => now()], - ]); - - Artisan::call('discord:merge-duplicate-profiles', ['--from-date' => '2026-05-01']); - - $count = DB::table('tenant_users') - ->where('tenant_id', $tenant->getKey()) - ->where('user_id', $orphan->id) - ->count(); - expect($count)->toBe(1); -}); - test('merges via --pairs-file JSONL when provided (file-based strategy)', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $orphan = makeOrphan('renamed-once'); - [$newUser, $identity] = makeImportedDup($tenant, '7777', 'renamed-twice'); + [$newUser, $identity] = makeImportedDup('7777', 'renamed-twice'); $jsonl = json_encode([ - 'tenant_id' => $tenant->getKey(), 'external_account_id' => '7777', 'old_user_id' => $orphan->id, 'old_username' => $orphan->username, @@ -204,20 +173,17 @@ function makeOrphan(string $username, ?string $createdAt = '2025-08-10 00:00:00' }); test('--pairs-file skips lines whose users no longer exist', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); $orphan = makeOrphan('valid-orphan'); - [$newUser] = makeImportedDup($tenant, '8888', 'valid-dup'); + [$newUser] = makeImportedDup('8888', 'valid-dup'); $lines = [ json_encode([ - 'tenant_id' => $tenant->getKey(), 'external_account_id' => '8888', 'old_user_id' => $orphan->id, 'new_user_id' => $newUser->id, 'new_username' => 'valid-dup', ]), json_encode([ - 'tenant_id' => $tenant->getKey(), 'external_account_id' => '0000', 'old_user_id' => '00000000-0000-0000-0000-000000000000', 'new_user_id' => '11111111-1111-1111-1111-111111111111', @@ -237,11 +203,10 @@ function makeOrphan(string $username, ?string $createdAt = '2025-08-10 00:00:00' }); test('respects --limit option', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt']); makeOrphan('a#0'); makeOrphan('b#0'); - [$dup1] = makeImportedDup($tenant, '101', 'a'); - [$dup2] = makeImportedDup($tenant, '102', 'b'); + [$dup1] = makeImportedDup('101', 'a'); + [$dup2] = makeImportedDup('102', 'b'); Artisan::call('discord:merge-duplicate-profiles', ['--from-date' => '2026-05-01', '--limit' => 1]); diff --git a/app-modules/integration-github/database/factories/GithubContributionFactory.php b/app-modules/integration-github/database/factories/GithubContributionFactory.php index bb34e96ec..3f7b832d5 100644 --- a/app-modules/integration-github/database/factories/GithubContributionFactory.php +++ b/app-modules/integration-github/database/factories/GithubContributionFactory.php @@ -4,7 +4,6 @@ namespace He4rt\IntegrationGithub\Database\Factories; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationGithub\Enums\ContributionType; use He4rt\IntegrationGithub\Models\GithubContribution; use Illuminate\Database\Eloquent\Factories\Factory; @@ -24,7 +23,6 @@ public function definition(): array $number = fake()->unique()->numberBetween(1, 1_000_000); return [ - 'tenant_id' => Tenant::factory(), 'repo' => 'he4rt/heartdevs.com', 'actor_login' => fake()->userName(), 'actor_id' => fake()->numberBetween(1, 9_999_999), diff --git a/app-modules/integration-github/database/factories/GithubRepositoryFactory.php b/app-modules/integration-github/database/factories/GithubRepositoryFactory.php index 374c7d254..460b7e1eb 100644 --- a/app-modules/integration-github/database/factories/GithubRepositoryFactory.php +++ b/app-modules/integration-github/database/factories/GithubRepositoryFactory.php @@ -4,7 +4,6 @@ namespace He4rt\IntegrationGithub\Database\Factories; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationGithub\Enums\PurposeType; use He4rt\IntegrationGithub\Models\GithubRepository; use Illuminate\Database\Eloquent\Factories\Factory; @@ -22,7 +21,6 @@ final class GithubRepositoryFactory extends Factory public function definition(): array { return [ - 'tenant_id' => Tenant::factory(), 'full_name' => 'he4rt/'.fake()->unique()->slug(2), 'enabled' => true, 'last_backfilled_at' => null, diff --git a/app-modules/integration-github/database/migrations/2026_06_04_000001_create_github_repositories_table.php b/app-modules/integration-github/database/migrations/2026_06_04_000001_create_github_repositories_table.php index d6009c574..4924a9257 100644 --- a/app-modules/integration-github/database/migrations/2026_06_04_000001_create_github_repositories_table.php +++ b/app-modules/integration-github/database/migrations/2026_06_04_000001_create_github_repositories_table.php @@ -12,15 +12,13 @@ public function up(): void { Schema::create('github_repositories', static function (Blueprint $table): void { $table->uuid('id')->primary(); - $table->foreignUuid('tenant_id')->constrained('tenants'); $table->string('full_name'); // owner/repo $table->boolean('enabled')->default(value: true); $table->timestampTz('last_backfilled_at')->nullable(); $table->timestampsTz(); - // A allowlist é por tenant: cada comunidade mantém a sua, e o mesmo - // repo público pode ser acompanhado por mais de uma comunidade. - $table->unique(['tenant_id', 'full_name'], 'uniq_github_repositories_tenant_repo'); + // A allowlist é global: cada repo público é acompanhado uma única vez. + $table->unique('full_name', 'uniq_github_repositories_repo'); }); } diff --git a/app-modules/integration-github/database/migrations/2026_06_04_000002_create_github_contributions_table.php b/app-modules/integration-github/database/migrations/2026_06_04_000002_create_github_contributions_table.php index d0b03678c..c5bf52877 100644 --- a/app-modules/integration-github/database/migrations/2026_06_04_000002_create_github_contributions_table.php +++ b/app-modules/integration-github/database/migrations/2026_06_04_000002_create_github_contributions_table.php @@ -13,7 +13,6 @@ public function up(): void { Schema::create('github_contributions', static function (Blueprint $table): void { $table->uuid('id')->primary(); - $table->foreignUuid('tenant_id')->constrained('tenants'); $table->string('repo'); $table->string('actor_login'); $table->unsignedBigInteger('actor_id')->nullable(); @@ -24,12 +23,11 @@ public function up(): void $table->jsonb('metadata')->nullable(); $table->timestampsTz(); - // Isolamento por tenant: a mesma contribuição de um repo compartilhado - // é gravada uma vez por comunidade que acompanha o repo. - $table->unique(['tenant_id', 'repo', 'type', 'external_ref'], 'uniq_github_contributions_ref'); - $table->index(['tenant_id', 'occurred_at'], 'idx_github_contributions_tenant_time'); + // Cada contribuição de um repo é gravada uma única vez. + $table->unique(['repo', 'type', 'external_ref'], 'uniq_github_contributions_ref'); + $table->index('occurred_at', 'idx_github_contributions_time'); $table->index('actor_id', 'idx_github_contributions_actor'); - $table->index(['tenant_id', 'type', 'occurred_at'], 'idx_github_contributions_type_time'); + $table->index(['type', 'occurred_at'], 'idx_github_contributions_type_time'); }); } diff --git a/app-modules/integration-github/src/Backfill/BackfillRepository.php b/app-modules/integration-github/src/Backfill/BackfillRepository.php index 131e3eb8f..e6d8887b6 100644 --- a/app-modules/integration-github/src/Backfill/BackfillRepository.php +++ b/app-modules/integration-github/src/Backfill/BackfillRepository.php @@ -37,35 +37,33 @@ public function __construct( */ public function execute(GithubRepository $repository, ?callable $onProgress = null, bool $full = false): void { - $tenantId = $repository->tenant_id; $repo = $repository->full_name; $since = $full || $repository->last_backfilled_at === null ? null : $repository->last_backfilled_at->subDay()->utc()->format('Y-m-d\TH:i:s\Z'); - $this->backfillPullRequests($tenantId, $repo, $since, $onProgress); - $this->backfillIssues($tenantId, $repo, $since, $onProgress); - $this->backfillIssueComments($tenantId, $repo, $since, $onProgress); - $this->backfillReviewComments($tenantId, $repo, $since, $onProgress); - $this->backfillCommits($tenantId, $repo, $since, $onProgress); + $this->backfillPullRequests($repo, $since, $onProgress); + $this->backfillIssues($repo, $since, $onProgress); + $this->backfillIssueComments($repo, $since, $onProgress); + $this->backfillReviewComments($repo, $since, $onProgress); + $this->backfillCommits($repo, $since, $onProgress); } /** * @param (callable(NewContributionDTO, bool): void)|null $onProgress */ - private function backfillPullRequests(string $tenantId, string $repo, ?string $since, ?callable $onProgress): void + private function backfillPullRequests(string $repo, ?string $since, ?callable $onProgress): void { $this->paginate( fn (int $page): Request => new ListPullRequests($repo, $page, self::PER_PAGE), - function (array $pr) use ($tenantId, $repo, $onProgress): void { + function (array $pr) use ($repo, $onProgress): void { $number = $this->intFrom($pr, 'number') ?? 0; /** @var array $prSize */ $prSize = (array) $this->github->send(new GetPullRequest($repo, $number))->throw()->json(); $login = $this->actorLogin($pr); $this->record(new NewContributionDTO( - tenantId: $tenantId, repo: $repo, type: ContributionType::Pr, externalRef: ContributionType::Pr->ref($number), @@ -85,7 +83,7 @@ function (array $pr) use ($tenantId, $repo, $onProgress): void { ], ), $onProgress); - $this->backfillReviews($tenantId, $repo, $number, $onProgress); + $this->backfillReviews($repo, $number, $onProgress); }, // PRs vêm ordenados por updated desc: ao cruzar o corte, todo o resto é mais // antigo — paramos de paginar (mata o N+1 de GetPullRequest + reviews). @@ -103,11 +101,11 @@ function (array $pr) use ($tenantId, $repo, $onProgress): void { /** * @param (callable(NewContributionDTO, bool): void)|null $onProgress */ - private function backfillReviews(string $tenantId, string $repo, int $number, ?callable $onProgress): void + private function backfillReviews(string $repo, int $number, ?callable $onProgress): void { $this->paginate( fn (int $page): Request => new ListPullRequestReviews($repo, $number, $page, self::PER_PAGE), - function (array $review) use ($tenantId, $repo, $number, $onProgress): void { + function (array $review) use ($repo, $number, $onProgress): void { $submittedAt = $this->stringFrom($review, 'submitted_at'); // Reviews PENDING (rascunho não enviado) não têm submitted_at — a API @@ -119,7 +117,6 @@ function (array $review) use ($tenantId, $repo, $number, $onProgress): void { $login = $this->actorLogin($review); $this->record(new NewContributionDTO( - tenantId: $tenantId, repo: $repo, type: ContributionType::Review, externalRef: ContributionType::Review->ref($this->stringFrom($review, 'id')), @@ -139,11 +136,11 @@ function (array $review) use ($tenantId, $repo, $number, $onProgress): void { /** * @param (callable(NewContributionDTO, bool): void)|null $onProgress */ - private function backfillIssues(string $tenantId, string $repo, ?string $since, ?callable $onProgress): void + private function backfillIssues(string $repo, ?string $since, ?callable $onProgress): void { $this->paginate( fn (int $page): Request => new ListIssues($repo, $page, self::PER_PAGE, $since), - function (array $issue) use ($tenantId, $repo, $onProgress): void { + function (array $issue) use ($repo, $onProgress): void { if (isset($issue['pull_request'])) { return; // o endpoint de issues também devolve PRs; estes já entram via backfillPullRequests } @@ -151,7 +148,6 @@ function (array $issue) use ($tenantId, $repo, $onProgress): void { $login = $this->actorLogin($issue); $this->record(new NewContributionDTO( - tenantId: $tenantId, repo: $repo, type: ContributionType::Issue, externalRef: ContributionType::Issue->ref($this->stringFrom($issue, 'number')), @@ -173,15 +169,14 @@ function (array $issue) use ($tenantId, $repo, $onProgress): void { /** * @param (callable(NewContributionDTO, bool): void)|null $onProgress */ - private function backfillIssueComments(string $tenantId, string $repo, ?string $since, ?callable $onProgress): void + private function backfillIssueComments(string $repo, ?string $since, ?callable $onProgress): void { $this->paginate( fn (int $page): Request => new ListIssueComments($repo, $page, self::PER_PAGE, $since), - function (array $comment) use ($tenantId, $repo, $onProgress): void { + function (array $comment) use ($repo, $onProgress): void { $login = $this->actorLogin($comment); $this->record(new NewContributionDTO( - tenantId: $tenantId, repo: $repo, type: ContributionType::Comment, externalRef: ContributionType::Comment->ref($this->stringFrom($comment, 'id')), @@ -202,15 +197,14 @@ function (array $comment) use ($tenantId, $repo, $onProgress): void { /** * @param (callable(NewContributionDTO, bool): void)|null $onProgress */ - private function backfillReviewComments(string $tenantId, string $repo, ?string $since, ?callable $onProgress): void + private function backfillReviewComments(string $repo, ?string $since, ?callable $onProgress): void { $this->paginate( fn (int $page): Request => new ListPullRequestReviewComments($repo, $page, self::PER_PAGE, $since), - function (array $comment) use ($tenantId, $repo, $onProgress): void { + function (array $comment) use ($repo, $onProgress): void { $login = $this->actorLogin($comment); $this->record(new NewContributionDTO( - tenantId: $tenantId, repo: $repo, type: ContributionType::ReviewComment, externalRef: ContributionType::ReviewComment->ref($this->stringFrom($comment, 'id')), @@ -231,16 +225,15 @@ function (array $comment) use ($tenantId, $repo, $onProgress): void { /** * @param (callable(NewContributionDTO, bool): void)|null $onProgress */ - private function backfillCommits(string $tenantId, string $repo, ?string $since, ?callable $onProgress): void + private function backfillCommits(string $repo, ?string $since, ?callable $onProgress): void { $this->paginate( fn (int $page): Request => new ListCommits($repo, $page, self::PER_PAGE, $since), - function (array $commit) use ($tenantId, $repo, $onProgress): void { + function (array $commit) use ($repo, $onProgress): void { $login = $this->stringFrom($commit, 'author.login') ?: $this->stringFrom($commit, 'commit.author.name', 'ghost'); $this->record(new NewContributionDTO( - tenantId: $tenantId, repo: $repo, type: ContributionType::Commit, externalRef: ContributionType::Commit->ref($this->stringFrom($commit, 'sha')), diff --git a/app-modules/integration-github/src/Contributions/DTOs/NewContributionDTO.php b/app-modules/integration-github/src/Contributions/DTOs/NewContributionDTO.php index 640668005..18b0784a6 100644 --- a/app-modules/integration-github/src/Contributions/DTOs/NewContributionDTO.php +++ b/app-modules/integration-github/src/Contributions/DTOs/NewContributionDTO.php @@ -17,7 +17,6 @@ * @param array $metadata */ public function __construct( - public string $tenantId, public string $repo, public ContributionType $type, public string $externalRef, diff --git a/app-modules/integration-github/src/Contributions/RecordContribution.php b/app-modules/integration-github/src/Contributions/RecordContribution.php index def8a2e31..8c2bf16d4 100644 --- a/app-modules/integration-github/src/Contributions/RecordContribution.php +++ b/app-modules/integration-github/src/Contributions/RecordContribution.php @@ -11,7 +11,7 @@ /** * Idempotent writer for contributions, shared by backfill (bulk, silent) and * webhook ingestion (live, emits the seam event). Convergence is guaranteed by - * the unique (tenant_id, repo, type, external_ref) key. + * the unique (repo, type, external_ref) key. */ final class RecordContribution { @@ -19,7 +19,6 @@ public function execute(NewContributionDTO $contribution, bool $emit = false): G { $recorded = GithubContribution::query()->updateOrCreate( [ - 'tenant_id' => $contribution->tenantId, 'repo' => $contribution->repo, 'type' => $contribution->type, 'external_ref' => $contribution->externalRef, diff --git a/app-modules/integration-github/src/Models/GithubContribution.php b/app-modules/integration-github/src/Models/GithubContribution.php index da2d9b662..7f4234825 100644 --- a/app-modules/integration-github/src/Models/GithubContribution.php +++ b/app-modules/integration-github/src/Models/GithubContribution.php @@ -5,18 +5,15 @@ namespace He4rt\IntegrationGithub\Models; use Carbon\CarbonInterface; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationGithub\Database\Factories\GithubContributionFactory; use He4rt\IntegrationGithub\Enums\ContributionType; use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Concerns\HasUuids; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; -use Illuminate\Database\Eloquent\Relations\BelongsTo; /** * @property string $id - * @property string $tenant_id * @property string $repo * @property string $actor_login * @property int|null $actor_id @@ -35,14 +32,6 @@ final class GithubContribution extends Model use HasFactory; use HasUuids; - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class); - } - protected static function newFactory(): GithubContributionFactory { return GithubContributionFactory::new(); diff --git a/app-modules/integration-github/src/Models/GithubRepository.php b/app-modules/integration-github/src/Models/GithubRepository.php index 098fb0e53..7bbd8cbeb 100644 --- a/app-modules/integration-github/src/Models/GithubRepository.php +++ b/app-modules/integration-github/src/Models/GithubRepository.php @@ -5,7 +5,6 @@ namespace He4rt\IntegrationGithub\Models; use Carbon\CarbonInterface; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationGithub\Database\Factories\GithubRepositoryFactory; use He4rt\IntegrationGithub\Enums\PurposeType; use Illuminate\Database\Eloquent\Attributes\Table; @@ -14,12 +13,10 @@ use Illuminate\Database\Eloquent\Concerns\HasUuids; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; -use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Support\Str; /** * @property string $id - * @property string $tenant_id * @property string $full_name * @property bool $enabled * @property PurposeType $purpose @@ -34,14 +31,6 @@ final class GithubRepository extends Model use HasFactory; use HasUuids; - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class); - } - protected static function newFactory(): GithubRepositoryFactory { return GithubRepositoryFactory::new(); diff --git a/app-modules/integration-github/src/Webhook/ProjectGithubEvent.php b/app-modules/integration-github/src/Webhook/ProjectGithubEvent.php index 263cf1127..1951aa286 100644 --- a/app-modules/integration-github/src/Webhook/ProjectGithubEvent.php +++ b/app-modules/integration-github/src/Webhook/ProjectGithubEvent.php @@ -34,45 +34,39 @@ public function execute(string $event, array $payload): void return; } - // Fan-out: cada comunidade que acompanha esse repo recebe a sua própria - // contribuição (isolamento por tenant). Uma entrega vira N projeções. - foreach ($this->tenantsTracking($repo) as $tenantId) { - match ($event) { - 'pull_request' => $this->pullRequest($tenantId, $repo, $payload), - 'pull_request_review' => $this->review($tenantId, $repo, $payload), - 'issues' => $this->issue($tenantId, $repo, $payload), - 'issue_comment' => $this->issueComment($tenantId, $repo, $payload), - 'pull_request_review_comment' => $this->reviewComment($tenantId, $repo, $payload), - 'push' => $this->push($tenantId, $repo, $payload), - default => null, - }; + if (!$this->isTracked($repo)) { + return; } + + match ($event) { + 'pull_request' => $this->pullRequest($repo, $payload), + 'pull_request_review' => $this->review($repo, $payload), + 'issues' => $this->issue($repo, $payload), + 'issue_comment' => $this->issueComment($repo, $payload), + 'pull_request_review_comment' => $this->reviewComment($repo, $payload), + 'push' => $this->push($repo, $payload), + default => null, + }; } - /** - * @return list - */ - private function tenantsTracking(string $repo): array + private function isTracked(string $repo): bool { - return array_values(GithubRepository::query() + return GithubRepository::query() ->enabled() ->where('full_name', $repo) ->where('purpose', PurposeType::Contributions) - ->pluck('tenant_id') - ->map(static fn (mixed $tenantId): string => (string) $tenantId) - ->all()); + ->exists(); } /** * @param array $payload */ - private function pullRequest(string $tenantId, string $repo, array $payload): void + private function pullRequest(string $repo, array $payload): void { $pr = $this->arrayFrom($payload, 'pull_request'); $login = $this->stringFrom($pr, 'user.login', 'ghost'); $this->recorder->execute(new NewContributionDTO( - tenantId: $tenantId, repo: $repo, type: ContributionType::Pr, externalRef: ContributionType::Pr->ref($this->stringFrom($pr, 'number')), @@ -96,7 +90,7 @@ private function pullRequest(string $tenantId, string $repo, array $payload): vo /** * @param array $payload */ - private function review(string $tenantId, string $repo, array $payload): void + private function review(string $repo, array $payload): void { $review = $this->arrayFrom($payload, 'review'); $submittedAt = $this->stringFrom($review, 'submitted_at'); @@ -109,7 +103,6 @@ private function review(string $tenantId, string $repo, array $payload): void $login = $this->stringFrom($review, 'user.login', 'ghost'); $this->recorder->execute(new NewContributionDTO( - tenantId: $tenantId, repo: $repo, type: ContributionType::Review, externalRef: ContributionType::Review->ref($this->stringFrom($review, 'id')), @@ -127,13 +120,12 @@ private function review(string $tenantId, string $repo, array $payload): void /** * @param array $payload */ - private function issue(string $tenantId, string $repo, array $payload): void + private function issue(string $repo, array $payload): void { $issue = $this->arrayFrom($payload, 'issue'); $login = $this->stringFrom($issue, 'user.login', 'ghost'); $this->recorder->execute(new NewContributionDTO( - tenantId: $tenantId, repo: $repo, type: ContributionType::Issue, externalRef: ContributionType::Issue->ref($this->stringFrom($issue, 'number')), @@ -153,7 +145,7 @@ private function issue(string $tenantId, string $repo, array $payload): void /** * @param array $payload */ - private function issueComment(string $tenantId, string $repo, array $payload): void + private function issueComment(string $repo, array $payload): void { $comment = $this->arrayFrom($payload, 'comment'); $login = $this->stringFrom($comment, 'user.login', 'ghost'); @@ -161,7 +153,6 @@ private function issueComment(string $tenantId, string $repo, array $payload): v $target = ($isPr ? ContributionType::Pr : ContributionType::Issue)->ref($this->stringFrom($payload, 'issue.number')); $this->recorder->execute(new NewContributionDTO( - tenantId: $tenantId, repo: $repo, type: ContributionType::Comment, externalRef: ContributionType::Comment->ref($this->stringFrom($comment, 'id')), @@ -180,13 +171,12 @@ private function issueComment(string $tenantId, string $repo, array $payload): v /** * @param array $payload */ - private function reviewComment(string $tenantId, string $repo, array $payload): void + private function reviewComment(string $repo, array $payload): void { $comment = $this->arrayFrom($payload, 'comment'); $login = $this->stringFrom($comment, 'user.login', 'ghost'); $this->recorder->execute(new NewContributionDTO( - tenantId: $tenantId, repo: $repo, type: ContributionType::ReviewComment, externalRef: ContributionType::ReviewComment->ref($this->stringFrom($comment, 'id')), @@ -205,7 +195,7 @@ private function reviewComment(string $tenantId, string $repo, array $payload): /** * @param array $payload */ - private function push(string $tenantId, string $repo, array $payload): void + private function push(string $repo, array $payload): void { foreach ($this->arrayFrom($payload, 'commits') as $commit) { if (!is_array($commit)) { @@ -216,7 +206,6 @@ private function push(string $tenantId, string $repo, array $payload): void $login = $username !== '' ? $username : $this->stringFrom($commit, 'author.name', 'ghost'); $this->recorder->execute(new NewContributionDTO( - tenantId: $tenantId, repo: $repo, type: ContributionType::Commit, externalRef: ContributionType::Commit->ref($this->stringFrom($commit, 'id')), diff --git a/app-modules/integration-github/tests/Feature/BackfillRepositoryTest.php b/app-modules/integration-github/tests/Feature/BackfillRepositoryTest.php index c7b95b538..72bfc2cb1 100644 --- a/app-modules/integration-github/tests/Feature/BackfillRepositoryTest.php +++ b/app-modules/integration-github/tests/Feature/BackfillRepositoryTest.php @@ -68,7 +68,7 @@ function backfill(GithubRepository $repo): void resolve(BackfillRepository::class)->execute($repo); } -it('faz backfill de PRs upsertando contributions com tamanho, autor e tenant', function (): void { +it('faz backfill de PRs upsertando contributions com tamanho e autor', function (): void { mockGithub([ ListPullRequests::class => MockResponse::make([prPayload(1, 'maria', 42)]), GetPullRequest::class => MockResponse::make(['additions' => 10, 'deletions' => 2, 'changed_files' => 3]), @@ -79,7 +79,6 @@ function backfill(GithubRepository $repo): void $contribution = GithubContribution::query()->where('external_ref', 'pr:1')->sole(); expect($contribution->type)->toBe(ContributionType::Pr) - ->and($contribution->tenant_id)->toBe($this->repo->tenant_id) ->and($contribution->actor_login)->toBe('maria') ->and($contribution->actor_id)->toBe(42) ->and($contribution->repo)->toBe('he4rt/heartdevs.com') diff --git a/app-modules/integration-github/tests/Feature/GithubContributionTest.php b/app-modules/integration-github/tests/Feature/GithubContributionTest.php index 6bcfe7fc3..ff0ba85f6 100644 --- a/app-modules/integration-github/tests/Feature/GithubContributionTest.php +++ b/app-modules/integration-github/tests/Feature/GithubContributionTest.php @@ -3,7 +3,6 @@ declare(strict_types=1); use Carbon\CarbonInterface; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationGithub\Enums\ContributionType; use He4rt\IntegrationGithub\Models\GithubContribution; use Illuminate\Database\QueryException; @@ -20,43 +19,27 @@ expect($contribution->type)->toBe(ContributionType::Pr) ->and($contribution->occurred_at)->toBeInstanceOf(CarbonInterface::class) ->and($contribution->metadata['additions'])->toBe(10) - ->and($contribution->id)->toBeString() - ->and($contribution->tenant)->toBeInstanceOf(Tenant::class); + ->and($contribution->id)->toBeString(); }); -it('impede contribuição duplicada por (tenant, repo, type, external_ref)', function (): void { - $tenant = Tenant::factory()->create(); - - GithubContribution::factory()->for($tenant)->create([ +it('impede contribuição duplicada por (repo, type, external_ref)', function (): void { + GithubContribution::factory()->create([ 'repo' => 'he4rt/heartdevs.com', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', ]); - GithubContribution::factory()->for($tenant)->create([ + GithubContribution::factory()->create([ 'repo' => 'he4rt/heartdevs.com', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', ]); })->throws(QueryException::class); -it('permite a mesma contribuição em tenants diferentes', function (): void { +it('permite o mesmo external_ref em repos ou tipos diferentes', function (): void { GithubContribution::factory()->create([ 'repo' => 'he4rt/heartdevs.com', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', ]); GithubContribution::factory()->create([ - 'repo' => 'he4rt/heartdevs.com', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', - ]); - - expect(GithubContribution::query()->where('external_ref', 'pr:1')->count())->toBe(2); -}); - -it('permite o mesmo external_ref em repos ou tipos diferentes', function (): void { - $tenant = Tenant::factory()->create(); - - GithubContribution::factory()->for($tenant)->create([ - 'repo' => 'he4rt/heartdevs.com', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', - ]); - GithubContribution::factory()->for($tenant)->create([ 'repo' => 'he4rt/4noobs', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', ]); - GithubContribution::factory()->for($tenant)->create([ + GithubContribution::factory()->create([ 'repo' => 'he4rt/heartdevs.com', 'type' => ContributionType::Issue, 'external_ref' => 'pr:1', ]); diff --git a/app-modules/integration-github/tests/Feature/GithubRepositoryTest.php b/app-modules/integration-github/tests/Feature/GithubRepositoryTest.php index 94b64e2de..1b2c0601d 100644 --- a/app-modules/integration-github/tests/Feature/GithubRepositoryTest.php +++ b/app-modules/integration-github/tests/Feature/GithubRepositoryTest.php @@ -2,7 +2,6 @@ declare(strict_types=1); -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationGithub\Models\GithubRepository; use Illuminate\Database\QueryException; @@ -12,23 +11,13 @@ expect($repo->full_name)->toBe('he4rt/heartdevs.com') ->and($repo->enabled)->toBeTrue() ->and($repo->last_backfilled_at)->toBeNull() - ->and($repo->id)->toBeString() - ->and($repo->tenant)->toBeInstanceOf(Tenant::class); + ->and($repo->id)->toBeString(); }); -it('impede full_name duplicado no mesmo tenant', function (): void { - $tenant = Tenant::factory()->create(); - - GithubRepository::factory()->for($tenant)->create(['full_name' => 'he4rt/4noobs']); - GithubRepository::factory()->for($tenant)->create(['full_name' => 'he4rt/4noobs']); -})->throws(QueryException::class); - -it('permite o mesmo full_name em tenants diferentes', function (): void { +it('impede full_name duplicado', function (): void { GithubRepository::factory()->create(['full_name' => 'he4rt/4noobs']); GithubRepository::factory()->create(['full_name' => 'he4rt/4noobs']); - - expect(GithubRepository::query()->where('full_name', 'he4rt/4noobs')->count())->toBe(2); -}); +})->throws(QueryException::class); it('o scope enabled retorna somente os repositórios habilitados', function (): void { GithubRepository::factory()->count(2)->create(); diff --git a/app-modules/integration-github/tests/Feature/GithubWebhookTest.php b/app-modules/integration-github/tests/Feature/GithubWebhookTest.php index 8e38f4007..0cbafeddb 100644 --- a/app-modules/integration-github/tests/Feature/GithubWebhookTest.php +++ b/app-modules/integration-github/tests/Feature/GithubWebhookTest.php @@ -93,7 +93,7 @@ function prWebhookPayload(string $repo = 'he4rt/heartdevs.com', int $number = 1, it('grava no lake e projeta a contribuição para repo na allowlist, emitindo o evento', function (): void { Event::fake([GithubContributionRecorded::class]); - $repo = GithubRepository::factory()->create(['full_name' => 'he4rt/heartdevs.com']); + GithubRepository::factory()->create(['full_name' => 'he4rt/heartdevs.com']); postGithubWebhook('pull_request', prWebhookPayload())->assertSuccessful(); @@ -102,25 +102,12 @@ function prWebhookPayload(string $repo = 'he4rt/heartdevs.com', int $number = 1, $contribution = GithubContribution::query()->where('external_ref', 'pr:1')->sole(); expect($contribution->type)->toBe(ContributionType::Pr) - ->and($contribution->tenant_id)->toBe($repo->tenant_id) ->and($contribution->actor_login)->toBe('maria') ->and($contribution->metadata['additions'])->toBe(5); Event::assertDispatched(GithubContributionRecorded::class); }); -it('faz fan-out: projeta uma contribuição por tenant que acompanha o repo', function (): void { - $a = GithubRepository::factory()->create(['full_name' => 'he4rt/heartdevs.com']); - $b = GithubRepository::factory()->create(['full_name' => 'he4rt/heartdevs.com']); - GithubRepository::factory()->disabled()->create(['full_name' => 'he4rt/heartdevs.com']); - - postGithubWebhook('pull_request', prWebhookPayload())->assertSuccessful(); - - expect(GithubEventLog::query()->count())->toBe(1) - ->and(GithubContribution::query()->where('external_ref', 'pr:1')->pluck('tenant_id')->sort()->values()->all()) - ->toBe(collect([$a->tenant_id, $b->tenant_id])->sort()->values()->all()); -}); - it('deduplica entregas repetidas pelo delivery id', function (): void { GithubRepository::factory()->create(['full_name' => 'he4rt/heartdevs.com']); $delivery = Str::uuid()->toString(); @@ -180,7 +167,7 @@ function prWebhookPayload(string $repo = 'he4rt/heartdevs.com', int $number = 1, it('grava no lake e projeta a contribuição para repo de contributions, emitindo o evento', function (): void { Event::fake([GithubContributionRecorded::class]); - $repo = GithubRepository::factory()->create([ + GithubRepository::factory()->create([ 'full_name' => 'he4rt/heartdevs.com', 'purpose' => PurposeType::Contributions, ]); @@ -192,7 +179,6 @@ function prWebhookPayload(string $repo = 'he4rt/heartdevs.com', int $number = 1, $contribution = GithubContribution::query()->where('external_ref', 'pr:1')->sole(); expect($contribution->type)->toBe(ContributionType::Pr) - ->and($contribution->tenant_id)->toBe($repo->tenant_id) ->and($contribution->actor_login)->toBe('maria') ->and($contribution->metadata['additions'])->toBe(5); diff --git a/app-modules/integration-twitch/routes/twitch-webhook-routes.php b/app-modules/integration-twitch/routes/twitch-webhook-routes.php index 75bda344c..f8004ca40 100644 --- a/app-modules/integration-twitch/routes/twitch-webhook-routes.php +++ b/app-modules/integration-twitch/routes/twitch-webhook-routes.php @@ -13,6 +13,6 @@ VerifyTwitchSignature::class, ]) ->group(static function (): void { - Route::post('/eventsub/{tenant:slug}', TwitchWebhookController::class) + Route::post('/eventsub', TwitchWebhookController::class) ->name('twitch.eventsub.webhook'); }); diff --git a/app-modules/integration-twitch/src/Actions/RegisterTwitchSubscriptionsAction.php b/app-modules/integration-twitch/src/Actions/RegisterTwitchSubscriptionsAction.php index db8f3b9e8..d7dc97c78 100644 --- a/app-modules/integration-twitch/src/Actions/RegisterTwitchSubscriptionsAction.php +++ b/app-modules/integration-twitch/src/Actions/RegisterTwitchSubscriptionsAction.php @@ -4,9 +4,6 @@ namespace He4rt\IntegrationTwitch\Actions; -use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; -use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationTwitch\Enums\TwitchEventSubType; use He4rt\IntegrationTwitch\Models\TwitchSubscription; use He4rt\IntegrationTwitch\Transport\Requests\EventSub\CreateSubscription; @@ -23,16 +20,16 @@ public function __construct( * @param array $types * @return array{created: int, skipped: int, failed: int, errors: array} */ - public function __invoke(Tenant $tenant, array $types = []): array + public function __invoke(array $types = []): array { - $broadcasterId = $this->resolveBroadcasterId($tenant); + $broadcasterId = $this->resolveBroadcasterId(); if ($broadcasterId === null) { return [ 'created' => 0, 'skipped' => 0, 'failed' => 0, - 'errors' => ['broadcaster' => 'No Twitch channel linked to this tenant.'], + 'errors' => ['broadcaster' => 'No Twitch broadcaster configured (set TWITCH_BROADCASTER_ID).'], ]; } @@ -40,12 +37,11 @@ public function __invoke(Tenant $tenant, array $types = []): array $types = TwitchEventSubType::cases(); } - $callbackUrl = mb_rtrim(config('app.url'), '/').'/api/webhooks/twitch/eventsub/'.$tenant->slug; + $callbackUrl = $this->resolveCallbackUrl(); $secret = config()->string('services.twitch.eventsub_secret'); $existingTypes = TwitchSubscription::query() - ->where('tenant_id', $tenant->getKey()) ->where('broadcaster_user_id', $broadcasterId) ->where('status', 'enabled') ->pluck('type') @@ -99,7 +95,6 @@ public function __invoke(Tenant $tenant, array $types = []): array 'callback_url' => $data['transport']['callback'] ?? $callbackUrl, 'cost' => $data['cost'] ?? 0, 'version' => $data['version'] ?? $type->getVersion(), - 'tenant_id' => $tenant->getKey(), ] ); @@ -118,13 +113,21 @@ public function __invoke(Tenant $tenant, array $types = []): array return ['created' => $created, 'skipped' => $skipped, 'failed' => $failed, 'errors' => $errors]; } - private function resolveBroadcasterId(Tenant $tenant): ?string + private function resolveBroadcasterId(): ?string { - return ExternalIdentity::query() - ->where('tenant_id', $tenant->getKey()) - ->where('provider', IdentityProvider::Twitch) - ->whereNotNull('connected_at') - ->whereNull('disconnected_at') - ->value('external_account_id'); + $broadcasterId = config()->string('services.twitch.broadcaster_id', ''); + + return $broadcasterId === '' ? null : $broadcasterId; + } + + private function resolveCallbackUrl(): string + { + $configured = config()->string('services.twitch.eventsub_callback', ''); + + if ($configured !== '') { + return $configured; + } + + return mb_rtrim(config()->string('app.url'), '/').'/api/webhooks/twitch/eventsub'; } } diff --git a/app-modules/integration-twitch/src/Console/LinkTwitchChannelCommand.php b/app-modules/integration-twitch/src/Console/LinkTwitchChannelCommand.php index 8698f5967..4d9dfaf24 100644 --- a/app-modules/integration-twitch/src/Console/LinkTwitchChannelCommand.php +++ b/app-modules/integration-twitch/src/Console/LinkTwitchChannelCommand.php @@ -4,25 +4,25 @@ namespace He4rt\IntegrationTwitch\Console; -use He4rt\Identity\ExternalIdentity\Data\ClientAccessManager; -use He4rt\Identity\ExternalIdentity\Enums\CredentialsType; -use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; -use He4rt\Identity\ExternalIdentity\Enums\IdentityType; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationTwitch\Transport\Requests\Users\GetUsers; use He4rt\IntegrationTwitch\Transport\TwitchHelixConnector; use Illuminate\Console\Attributes\Description; use Illuminate\Console\Attributes\Signature; use Illuminate\Console\Command; -#[Description(description: 'Link a Twitch channel to a tenant via ExternalIdentity')] -#[Signature(signature: 'twitch:link-channel {login : Twitch channel login name} {--tenant= : Tenant slug or ID}')] +#[Description(description: 'Resolve a Twitch channel broadcaster id for the fixed config-based integration')] +#[Signature(signature: 'twitch:link-channel {login? : Twitch channel login name (defaults to config broadcaster login)}')] final class LinkTwitchChannelCommand extends Command { public function handle(TwitchHelixConnector $helix): int { - $login = $this->argument('login'); - $tenantOption = $this->option('tenant'); + $login = $this->argument('login') ?? config()->string('services.twitch.broadcaster_login', ''); + + if ($login === '') { + $this->error('No Twitch login provided. Pass a login argument or set TWITCH_BROADCASTER_LOGIN.'); + + return self::FAILURE; + } $response = $helix->send(new GetUsers(login: $login)); $users = $response->json('data', []); @@ -37,46 +37,12 @@ public function handle(TwitchHelixConnector $helix): int $broadcasterId = $twitchUser['id']; $displayName = $twitchUser['display_name']; - $query = Tenant::query()->where('slug', $tenantOption); - - if (is_numeric($tenantOption)) { - $query->orWhere('id', $tenantOption); - } - - $tenant = $query->first(); - - if (!$tenant) { - $this->error(sprintf("Tenant '%s' not found.", $tenantOption)); - - return self::FAILURE; - } - - $existing = $tenant->providers() - ->where('provider', IdentityProvider::Twitch) - ->where('external_account_id', $broadcasterId) - ->first(); - - if ($existing) { - $this->warn(sprintf("Channel '%s' (ID: %s) is already linked to tenant '%s'.", $login, $broadcasterId, $tenant->name)); - - return self::SUCCESS; - } - - $tenant->providers()->create([ - 'tenant_id' => $tenant->getKey(), - 'type' => IdentityType::External, - 'provider' => IdentityProvider::Twitch, - 'credentials_type' => CredentialsType::OAuth2, - 'credentials' => ClientAccessManager::make(), - 'external_account_id' => $broadcasterId, - 'connected_at' => now(), - 'metadata' => [ - 'login' => $login, - 'display_name' => $displayName, - ], - ]); - - $this->info(sprintf("Linked Twitch channel '%s' (ID: %s) to tenant '%s'.", $displayName, $broadcasterId, $tenant->name)); + $this->info(sprintf("Resolved Twitch channel '%s' (login: %s).", $displayName, $login)); + $this->line(sprintf('Broadcaster ID: %s', $broadcasterId)); + $this->newLine(); + $this->comment('Set the following in your .env to activate the integration:'); + $this->line(sprintf(' TWITCH_BROADCASTER_LOGIN=%s', $login)); + $this->line(sprintf(' TWITCH_BROADCASTER_ID=%s', $broadcasterId)); return self::SUCCESS; } diff --git a/app-modules/integration-twitch/src/Http/Controllers/TwitchWebhookController.php b/app-modules/integration-twitch/src/Http/Controllers/TwitchWebhookController.php index ab0084a6a..27f2925ea 100644 --- a/app-modules/integration-twitch/src/Http/Controllers/TwitchWebhookController.php +++ b/app-modules/integration-twitch/src/Http/Controllers/TwitchWebhookController.php @@ -4,7 +4,6 @@ namespace He4rt\IntegrationTwitch\Http\Controllers; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationTwitch\Events\TwitchEventReceived; use He4rt\IntegrationTwitch\Models\TwitchEventLog; use Illuminate\Http\Request; @@ -12,7 +11,7 @@ final class TwitchWebhookController { - public function __invoke(Request $request, Tenant $tenant): Response + public function __invoke(Request $request): Response { $messageType = $request->header('Twitch-Eventsub-Message-Type'); @@ -34,7 +33,6 @@ public function __invoke(Request $request, Tenant $tenant): Response $messageId = $request->header('Twitch-Eventsub-Message-Id'); $inserted = TwitchEventLog::query()->insertOrIgnore([ - 'tenant_id' => $tenant->getKey(), 'event_type' => $subscription['type'] ?? $messageType, 'broadcaster_user_id' => $event['broadcaster_user_id'] ?? $event['to_broadcaster_user_id'] diff --git a/app-modules/integration-twitch/src/Models/TwitchEventLog.php b/app-modules/integration-twitch/src/Models/TwitchEventLog.php index 0433c9ee6..4ba68c14e 100644 --- a/app-modules/integration-twitch/src/Models/TwitchEventLog.php +++ b/app-modules/integration-twitch/src/Models/TwitchEventLog.php @@ -5,13 +5,10 @@ namespace He4rt\IntegrationTwitch\Models; use Carbon\CarbonInterface; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Database\Eloquent\Model; -use Illuminate\Database\Eloquent\Relations\BelongsTo; /** * @property int $id - * @property string|null $tenant_id * @property string $event_type * @property string|null $broadcaster_user_id * @property string|null $user_id @@ -23,7 +20,6 @@ final class TwitchEventLog extends Model { protected $fillable = [ - 'tenant_id', 'event_type', 'broadcaster_user_id', 'user_id', @@ -31,14 +27,6 @@ final class TwitchEventLog extends Model 'payload', ]; - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class); - } - /** * @return array */ diff --git a/app-modules/integration-twitch/src/Models/TwitchSubscription.php b/app-modules/integration-twitch/src/Models/TwitchSubscription.php index cb30277e1..7cdc4063f 100644 --- a/app-modules/integration-twitch/src/Models/TwitchSubscription.php +++ b/app-modules/integration-twitch/src/Models/TwitchSubscription.php @@ -5,10 +5,8 @@ namespace He4rt\IntegrationTwitch\Models; use Carbon\CarbonInterface; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationTwitch\Enums\TwitchSubscriptionStatus; use Illuminate\Database\Eloquent\Model; -use Illuminate\Database\Eloquent\Relations\BelongsTo; /** * @property int $id @@ -21,7 +19,6 @@ * @property string|null $callback_url * @property int $cost * @property string $version - * @property string $tenant_id * @property CarbonInterface|null $created_at * @property CarbonInterface|null $updated_at */ @@ -37,17 +34,8 @@ final class TwitchSubscription extends Model 'callback_url', 'cost', 'version', - 'tenant_id', ]; - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class); - } - /** * @return array */ diff --git a/app-modules/integration-twitch/tests/Feature/LinkTwitchChannelCommandTest.php b/app-modules/integration-twitch/tests/Feature/LinkTwitchChannelCommandTest.php index 79b655809..6d6dc0bd5 100644 --- a/app-modules/integration-twitch/tests/Feature/LinkTwitchChannelCommandTest.php +++ b/app-modules/integration-twitch/tests/Feature/LinkTwitchChannelCommandTest.php @@ -2,9 +2,6 @@ declare(strict_types=1); -use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; -use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationTwitch\Transport\TwitchHelixConnector; use Saloon\Http\Faking\MockClient; use Saloon\Http\Faking\MockResponse; @@ -31,37 +28,14 @@ function mockHelixUsersResponse(string $id = '12345', string $login = 'danielhe4 return $mock; } -test('links a twitch channel to a tenant', function (): void { +test('resolves a twitch channel broadcaster id and prints the env config', function (): void { mockHelixUsersResponse(); - $tenant = Tenant::factory()->create(['slug' => 'he4rt-developers']); - $this->artisan('twitch:link-channel', ['login' => 'danielhe4rt', '--tenant' => 'he4rt-developers']) + $this->artisan('twitch:link-channel', ['login' => 'danielhe4rt']) + ->expectsOutputToContain('Broadcaster ID: 12345') + ->expectsOutputToContain('TWITCH_BROADCASTER_LOGIN=danielhe4rt') + ->expectsOutputToContain('TWITCH_BROADCASTER_ID=12345') ->assertSuccessful(); - - $identity = ExternalIdentity::query() - ->where('provider', IdentityProvider::Twitch) - ->where('external_account_id', '12345') - ->first(); - - expect($identity)->not->toBeNull() - ->and($identity->tenant_id)->toBe($tenant->id) - ->and($identity->metadata)->toMatchArray([ - 'login' => 'danielhe4rt', - 'display_name' => 'danielhe4rt', - ]); -}); - -test('warns when channel is already linked', function (): void { - mockHelixUsersResponse(); - $tenant = Tenant::factory()->create(['slug' => 'he4rt-developers']); - - $this->artisan('twitch:link-channel', ['login' => 'danielhe4rt', '--tenant' => 'he4rt-developers']) - ->assertSuccessful(); - - $this->artisan('twitch:link-channel', ['login' => 'danielhe4rt', '--tenant' => 'he4rt-developers']) - ->assertSuccessful(); - - expect(ExternalIdentity::query()->where('provider', IdentityProvider::Twitch)->count())->toBe(1); }); test('fails when twitch user is not found', function (): void { @@ -74,15 +48,16 @@ function mockHelixUsersResponse(string $id = '12345', string $login = 'danielhe4 fn (TwitchHelixConnector $connector) => $connector->withMockClient($mock), )); - Tenant::factory()->create(['slug' => 'he4rt-developers']); - - $this->artisan('twitch:link-channel', ['login' => 'nonexistent', '--tenant' => 'he4rt-developers']) + $this->artisan('twitch:link-channel', ['login' => 'nonexistent']) ->assertFailed(); }); -test('fails when tenant is not found', function (): void { +test('fails when no login is provided and no broadcaster login is configured', function (): void { + // Bind a connector instance so resolving the command does not build the real + // one from (absent) Twitch credentials; the command fails before it ever sends. mockHelixUsersResponse(); + config()->set('services.twitch.broadcaster_login', ''); - $this->artisan('twitch:link-channel', ['login' => 'danielhe4rt', '--tenant' => 'nonexistent']) + $this->artisan('twitch:link-channel') ->assertFailed(); }); diff --git a/app-modules/integration-twitch/tests/Feature/TwitchWebhookTest.php b/app-modules/integration-twitch/tests/Feature/TwitchWebhookTest.php index 6605e4994..ae14fab90 100644 --- a/app-modules/integration-twitch/tests/Feature/TwitchWebhookTest.php +++ b/app-modules/integration-twitch/tests/Feature/TwitchWebhookTest.php @@ -2,7 +2,6 @@ declare(strict_types=1); -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationTwitch\Models\TwitchEventLog; use Illuminate\Support\Str; use Illuminate\Testing\TestResponse; @@ -61,7 +60,7 @@ function postTwitchWebhook(array $payload, string $messageType = 'notification', $headers = signedTwitchHeaders($body, $messageType, $messageId); return test()->postJson( - '/api/webhooks/twitch/eventsub/'.test()->tenant->slug, + '/api/webhooks/twitch/eventsub', $payload, $headers, ); @@ -69,11 +68,10 @@ function postTwitchWebhook(array $payload, string $messageType = 'notification', beforeEach(function (): void { config()->set('services.twitch.eventsub_secret', 'test-secret-at-least-ten-chars'); - test()->tenant = Tenant::factory()->create(['slug' => 'test-tenant']); }); test('rejects request with missing twitch headers', function (): void { - $this->postJson('/api/webhooks/twitch/eventsub/'.$this->tenant->slug, ['foo' => 'bar']) + $this->postJson('/api/webhooks/twitch/eventsub', ['foo' => 'bar']) ->assertStatus(403); }); @@ -84,7 +82,7 @@ function postTwitchWebhook(array $payload, string $messageType = 'notification', $headers = signedTwitchHeaders($body); $headers['Twitch-Eventsub-Message-Signature'] = 'sha256=invalid'; - $this->postJson('/api/webhooks/twitch/eventsub/'.$this->tenant->slug, $payload, $headers) + $this->postJson('/api/webhooks/twitch/eventsub', $payload, $headers) ->assertStatus(403); }); @@ -95,7 +93,7 @@ function postTwitchWebhook(array $payload, string $messageType = 'notification', $headers = signedTwitchHeaders($body, 'notification', timestamp: $timestamp); - $this->postJson('/api/webhooks/twitch/eventsub/'.$this->tenant->slug, $payload, $headers) + $this->postJson('/api/webhooks/twitch/eventsub', $payload, $headers) ->assertStatus(403); }); @@ -117,7 +115,6 @@ function postTwitchWebhook(array $payload, string $messageType = 'notification', ->and($log->event_type)->toBe('channel.follow') ->and($log->broadcaster_user_id)->toBe('12345') ->and($log->user_id)->toBe('67890') - ->and($log->tenant_id)->toBe($this->tenant->id) ->and($log->twitch_message_id)->not->toBeNull() ->and($log->payload)->toBeArray(); }); diff --git a/app-modules/moderation/database/factories/ModerationCaseFactory.php b/app-modules/moderation/database/factories/ModerationCaseFactory.php index 2856808a6..f0b6b3446 100644 --- a/app-modules/moderation/database/factories/ModerationCaseFactory.php +++ b/app-modules/moderation/database/factories/ModerationCaseFactory.php @@ -4,7 +4,6 @@ namespace He4rt\Moderation\Database\Factories; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\Moderation\Cases\Models\ModerationCase; use Illuminate\Database\Eloquent\Factories\Factory; @@ -28,7 +27,6 @@ public function definition(): array 'violation_type' => fake()->randomElement(['spam', 'toxicity', 'harassment']), 'ai_scores' => ['spam' => fake()->randomFloat(2, 0, 1)], 'author_id' => User::factory(), - 'tenant_id' => Tenant::factory(), ]; } diff --git a/app-modules/moderation/src/Appeals/ModerationAppeal.php b/app-modules/moderation/src/Appeals/ModerationAppeal.php index 229906a8b..bf94dc924 100644 --- a/app-modules/moderation/src/Appeals/ModerationAppeal.php +++ b/app-modules/moderation/src/Appeals/ModerationAppeal.php @@ -5,7 +5,6 @@ namespace He4rt\Moderation\Appeals; use Carbon\CarbonInterface; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\Moderation\Database\Factories\ModerationAppealFactory; use He4rt\Moderation\Enforcement\ModerationAction; @@ -28,7 +27,6 @@ * @property string|null $reviewer_notes * @property CarbonInterface|null $resolved_at * @property CarbonInterface $sla_deadline - * @property string|null $tenant_id * @property CarbonInterface $created_at */ #[Table(name: 'moderation_appeals', timestamps: false)] @@ -39,12 +37,6 @@ final class ModerationAppeal extends Model use HasFactory; use HasUuids; - /** @return BelongsTo */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class); - } - /** @return BelongsTo */ public function action(): BelongsTo { diff --git a/app-modules/moderation/src/Audit/ModerationAuditLog.php b/app-modules/moderation/src/Audit/ModerationAuditLog.php index 17e76e99e..1ec4b3404 100644 --- a/app-modules/moderation/src/Audit/ModerationAuditLog.php +++ b/app-modules/moderation/src/Audit/ModerationAuditLog.php @@ -16,7 +16,6 @@ * @property string|null $case_id * @property array $details * @property string|null $platform - * @property string|null $tenant_id * @property CarbonInterface $created_at */ #[Table(name: 'moderation_audit_log', timestamps: false)] diff --git a/app-modules/moderation/src/Audit/RecordAuditLog.php b/app-modules/moderation/src/Audit/RecordAuditLog.php index 561e09c03..658d13b97 100644 --- a/app-modules/moderation/src/Audit/RecordAuditLog.php +++ b/app-modules/moderation/src/Audit/RecordAuditLog.php @@ -23,7 +23,6 @@ public function handleCaseCreated(CaseCreated $event): void 'content_type' => $event->case->content_type, ], 'platform' => $event->case->source_platform->value, - 'tenant_id' => $event->case->tenant_id, ]); } @@ -39,7 +38,6 @@ public function handleCaseResolved(CaseResolved $event): void 'violation_type' => $event->case->violation_type?->value, ], 'platform' => $event->case->source_platform->value, - 'tenant_id' => $event->case->tenant_id, ]); } @@ -57,7 +55,6 @@ public function handleActionExecuted(ActionExecuted $event): void 'execution_results' => $event->action->execution_results, ], 'platform' => null, - 'tenant_id' => $event->action->case?->tenant_id, ]); } } diff --git a/app-modules/moderation/src/Cases/Models/ModerationCase.php b/app-modules/moderation/src/Cases/Models/ModerationCase.php index f2ab6c864..536f1b763 100644 --- a/app-modules/moderation/src/Cases/Models/ModerationCase.php +++ b/app-modules/moderation/src/Cases/Models/ModerationCase.php @@ -5,7 +5,6 @@ namespace He4rt\Moderation\Cases\Models; use Carbon\CarbonInterface; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\Moderation\Database\Factories\ModerationCaseFactory; use He4rt\Moderation\Enforcement\ModerationAction; @@ -39,7 +38,6 @@ * @property ActionType|null $suggested_action * @property string|null $assigned_to * @property string|null $author_id - * @property string|null $tenant_id * @property CarbonInterface|null $assigned_at * @property CarbonInterface|null $resolved_at * @property CarbonInterface $created_at @@ -65,12 +63,6 @@ public function assignee(): BelongsTo return $this->belongsTo(User::class, 'assigned_to'); } - /** @return BelongsTo */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class); - } - /** @return HasMany */ public function reports(): HasMany { diff --git a/app-modules/moderation/src/Classification/Actions/Classifiers/RuleBasedClassifier.php b/app-modules/moderation/src/Classification/Actions/Classifiers/RuleBasedClassifier.php index de182488d..2a42f5496 100644 --- a/app-modules/moderation/src/Classification/Actions/Classifiers/RuleBasedClassifier.php +++ b/app-modules/moderation/src/Classification/Actions/Classifiers/RuleBasedClassifier.php @@ -8,7 +8,6 @@ use He4rt\Moderation\DTOs\ClassificationResultDTO; use He4rt\Moderation\DTOs\ModerationContentDTO; use He4rt\Moderation\Rules\ModerationRule; -use Illuminate\Contracts\Database\Query\Builder; final class RuleBasedClassifier implements ContentClassifierContract { @@ -21,9 +20,6 @@ public function classify(ModerationContentDTO $content): ClassificationResultDTO { $rules = ModerationRule::query() ->where('is_active', operator: true) - ->when($content->tenantId, fn ($q) => $q->where(static function (Builder $q) use ($content): void { - $q->where('tenant_id', $content->tenantId)->orWhereNull('tenant_id'); - })) ->get(); $scores = []; diff --git a/app-modules/moderation/src/Classification/Jobs/IngestContent.php b/app-modules/moderation/src/Classification/Jobs/IngestContent.php index 28ac2cea9..2acf84c24 100644 --- a/app-modules/moderation/src/Classification/Jobs/IngestContent.php +++ b/app-modules/moderation/src/Classification/Jobs/IngestContent.php @@ -35,7 +35,6 @@ public function handle(): ModerationCase $identity = resolve(FindExternalIdentity::class)->handle( provider: IdentityProvider::Discord->value, providerId: $this->content->authorExternalId, - tenantId: $this->content->tenantId, ); $authorId = $identity->model_id; } catch (Throwable) { @@ -52,7 +51,6 @@ public function handle(): ModerationCase 'status' => CaseStatus::Pending, 'priority' => 50, 'author_id' => $authorId, - 'tenant_id' => $this->content->tenantId, ]); event(new CaseCreated($case)); diff --git a/app-modules/moderation/src/Classification/Jobs/ScreenContent.php b/app-modules/moderation/src/Classification/Jobs/ScreenContent.php index b825980d5..0031939d5 100644 --- a/app-modules/moderation/src/Classification/Jobs/ScreenContent.php +++ b/app-modules/moderation/src/Classification/Jobs/ScreenContent.php @@ -75,7 +75,6 @@ public function handle(RouteCaseAction $routeAction): void 'status' => CaseStatus::Pending, 'priority' => 50, 'author_id' => $authorId, - 'tenant_id' => $this->content->tenantId, 'ai_scores' => $result->scores, 'violation_type' => $result->primary, 'severity' => $result->severity, diff --git a/app-modules/moderation/src/DTOs/ModerationContentDTO.php b/app-modules/moderation/src/DTOs/ModerationContentDTO.php index 95c7cc657..2227ba6dc 100644 --- a/app-modules/moderation/src/DTOs/ModerationContentDTO.php +++ b/app-modules/moderation/src/DTOs/ModerationContentDTO.php @@ -24,7 +24,6 @@ public function __construct( public array $mediaUrls, public array $metadata, public array $snapshot, - public ?string $tenantId, ) {} public static function fromCase(ModerationCase $case): self @@ -38,7 +37,6 @@ public static function fromCase(ModerationCase $case): self mediaUrls: $case->content_snapshot['media_urls'] ?? [], metadata: $case->content_snapshot['metadata'] ?? [], snapshot: $case->content_snapshot ?? [], - tenantId: $case->tenant_id !== null ? (string) $case->tenant_id : null, ); } @@ -56,7 +54,6 @@ public static function fromPlatform(Platform $platform, array $rawPayload): self mediaUrls: $rawPayload['media_urls'] ?? [], metadata: $rawPayload['metadata'] ?? [], snapshot: $rawPayload, - tenantId: $rawPayload['tenant_id'] ?? null, ); } @@ -74,7 +71,6 @@ public function jsonSerialize(): array 'media_urls' => $this->mediaUrls, 'metadata' => $this->metadata, 'snapshot' => $this->snapshot, - 'tenant_id' => $this->tenantId, ]; } } diff --git a/app-modules/moderation/src/Enforcement/ModerationAction.php b/app-modules/moderation/src/Enforcement/ModerationAction.php index 7ba8baba9..ca30511c0 100644 --- a/app-modules/moderation/src/Enforcement/ModerationAction.php +++ b/app-modules/moderation/src/Enforcement/ModerationAction.php @@ -5,7 +5,6 @@ namespace He4rt\Moderation\Enforcement; use Carbon\CarbonInterface; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\Moderation\Appeals\ModerationAppeal; use He4rt\Moderation\Cases\Models\ModerationCase; @@ -30,7 +29,6 @@ * @property array|null $metadata * @property array|null $execution_results * @property bool $automated - * @property string|null $tenant_id * @property CarbonInterface $created_at */ #[Table(name: 'moderation_actions', timestamps: false)] @@ -53,12 +51,6 @@ public function moderator(): BelongsTo return $this->belongsTo(User::class, 'moderator_id'); } - /** @return BelongsTo */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class); - } - /** @return HasOne */ public function appeal(): HasOne { diff --git a/app-modules/moderation/src/Pipeline/SubmitForModeration.php b/app-modules/moderation/src/Pipeline/SubmitForModeration.php index 1c3389cde..8d2a203b5 100644 --- a/app-modules/moderation/src/Pipeline/SubmitForModeration.php +++ b/app-modules/moderation/src/Pipeline/SubmitForModeration.php @@ -58,7 +58,6 @@ public function execute(ModerationContentDTO $content, CaseSource $source): ?Mod 'status' => CaseStatus::Pending, 'priority' => 50, 'author_id' => $this->resolveAuthorId($content), - 'tenant_id' => $content->tenantId, 'ai_scores' => $ruleResult->scores, 'violation_type' => $ruleResult->primary, 'severity' => $ruleResult->severity, diff --git a/app-modules/moderation/src/Rules/ModerationRule.php b/app-modules/moderation/src/Rules/ModerationRule.php index e6d3f116e..c1803fce0 100644 --- a/app-modules/moderation/src/Rules/ModerationRule.php +++ b/app-modules/moderation/src/Rules/ModerationRule.php @@ -5,7 +5,6 @@ namespace He4rt\Moderation\Rules; use Carbon\CarbonInterface; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Moderation\Enums\ActionType; use He4rt\Moderation\Enums\Platform; use He4rt\Moderation\Enums\Severity; @@ -13,7 +12,6 @@ use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Concerns\HasUuids; use Illuminate\Database\Eloquent\Model; -use Illuminate\Database\Eloquent\Relations\BelongsTo; /** * @property string $id @@ -25,7 +23,6 @@ * @property Severity $severity * @property ActionType $action_on_match * @property bool $is_active - * @property string|null $tenant_id * @property CarbonInterface $created_at * @property CarbonInterface $updated_at */ @@ -43,12 +40,6 @@ public function matches(string $text): bool }; } - /** @return BelongsTo */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class); - } - /** @return array */ protected function casts(): array { diff --git a/app-modules/moderation/tests/Feature/Audit/AuditLogTest.php b/app-modules/moderation/tests/Feature/Audit/AuditLogTest.php index ede8dbf91..362172c65 100644 --- a/app-modules/moderation/tests/Feature/Audit/AuditLogTest.php +++ b/app-modules/moderation/tests/Feature/Audit/AuditLogTest.php @@ -2,7 +2,6 @@ declare(strict_types=1); -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\Moderation\Audit\ModerationAuditLog; use He4rt\Moderation\Audit\RecordAuditLog; @@ -85,14 +84,3 @@ expect($log->actor_type)->toBe('system') ->and($log->actor_id)->toBeNull(); }); - -test('audit log stores tenant_id from case', function (): void { - $tenant = Tenant::factory()->create(); - $case = ModerationCase::factory()->create(['tenant_id' => $tenant->id]); - - $listener = new RecordAuditLog(); - $listener->handleCaseCreated(new CaseCreated($case)); - - $log = ModerationAuditLog::query()->where('event_type', 'case_created')->first(); - expect($log->tenant_id)->toBe($tenant->id); -}); diff --git a/app-modules/moderation/tests/Feature/CaseWorkflowTest.php b/app-modules/moderation/tests/Feature/CaseWorkflowTest.php index 4698f36cc..38c56a5f3 100644 --- a/app-modules/moderation/tests/Feature/CaseWorkflowTest.php +++ b/app-modules/moderation/tests/Feature/CaseWorkflowTest.php @@ -32,7 +32,6 @@ mediaUrls: [], metadata: [], snapshot: ['text' => 'some bad content'], - tenantId: null, ), reason: ViolationType::Toxicity, details: 'This user is being toxic', @@ -70,7 +69,6 @@ mediaUrls: [], metadata: [], snapshot: ['text' => 'bad stuff'], - tenantId: null, ); $case1 = $action->handle($reporter1, $dto, ViolationType::Spam, details: null, platform: Platform::Discord); diff --git a/app-modules/moderation/tests/Feature/Cases/SubmitReportTest.php b/app-modules/moderation/tests/Feature/Cases/SubmitReportTest.php index a348dd260..19e0c00c2 100644 --- a/app-modules/moderation/tests/Feature/Cases/SubmitReportTest.php +++ b/app-modules/moderation/tests/Feature/Cases/SubmitReportTest.php @@ -31,7 +31,6 @@ function makeReportDTO(string $contentId = 'msg-1', string $text = 'test'): Mode mediaUrls: [], metadata: [], snapshot: ['text' => $text], - tenantId: null, ); } diff --git a/app-modules/moderation/tests/Feature/Classification/RuleBasedClassifierTest.php b/app-modules/moderation/tests/Feature/Classification/RuleBasedClassifierTest.php index 517192729..61afa0248 100644 --- a/app-modules/moderation/tests/Feature/Classification/RuleBasedClassifierTest.php +++ b/app-modules/moderation/tests/Feature/Classification/RuleBasedClassifierTest.php @@ -2,7 +2,6 @@ declare(strict_types=1); -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Moderation\Classification\Actions\Classifiers\RuleBasedClassifier; use He4rt\Moderation\DTOs\ModerationContentDTO; use He4rt\Moderation\Enums\Platform; @@ -10,7 +9,7 @@ use He4rt\Moderation\Enums\ViolationType; use He4rt\Moderation\Rules\ModerationRule; -function contentDTO(string $text, ?string $tenantId = null): ModerationContentDTO +function contentDTO(string $text): ModerationContentDTO { return new ModerationContentDTO( contentId: 'msg-test', @@ -21,7 +20,6 @@ function contentDTO(string $text, ?string $tenantId = null): ModerationContentDT mediaUrls: [], metadata: [], snapshot: ['text' => $text], - tenantId: $tenantId, ); } @@ -122,37 +120,6 @@ function contentDTO(string $text, ?string $tenantId = null): ModerationContentDT ->and($result->matchedRules)->toHaveCount(2); }); -test('tenant-scoped rules only match for correct tenant', function (): void { - $tenant = Tenant::factory()->create(); - $otherTenant = Tenant::factory()->create(); - - ModerationRule::query()->create([ - 'name' => 'Tenant rule', 'type' => 'keyword', 'pattern' => 'specific', - 'violation_type' => 'spam', 'severity' => 'medium', 'action_on_match' => 'warn', - 'is_active' => true, 'tenant_id' => $tenant->id, - ]); - - $matchResult = RuleBasedClassifier::make()->classify(contentDTO('something specific', (string) $tenant->id)); - $noMatchResult = RuleBasedClassifier::make()->classify(contentDTO('something specific', (string) $otherTenant->id)); - - expect($matchResult->scores)->toHaveKey('spam') - ->and($noMatchResult->scores)->toBeEmpty(); -}); - -test('global rules (null tenant) match for any tenant', function (): void { - $anyTenant = Tenant::factory()->create(); - - ModerationRule::query()->create([ - 'name' => 'Global', 'type' => 'keyword', 'pattern' => 'universal', - 'violation_type' => 'harassment', 'severity' => 'high', 'action_on_match' => 'mute', - 'is_active' => true, 'tenant_id' => null, - ]); - - $result = RuleBasedClassifier::make()->classify(contentDTO('universal truth', (string) $anyTenant->id)); - - expect($result->primary)->toBe(ViolationType::Harassment); -}); - test('returns empty when no rules exist', function (): void { $result = RuleBasedClassifier::make()->classify(contentDTO('anything at all')); diff --git a/app-modules/moderation/tests/Feature/ModelRelationshipTest.php b/app-modules/moderation/tests/Feature/ModelRelationshipTest.php index 21ab92718..f5c7e6f3b 100644 --- a/app-modules/moderation/tests/Feature/ModelRelationshipTest.php +++ b/app-modules/moderation/tests/Feature/ModelRelationshipTest.php @@ -2,7 +2,6 @@ declare(strict_types=1); -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\Moderation\Appeals\ModerationAppeal; use He4rt\Moderation\Cases\Models\ModerationCase; @@ -44,13 +43,6 @@ expect($case->assignee->id)->toBe($moderator->id); }); -test('ModerationCase belongs to tenant', function (): void { - $tenant = Tenant::factory()->create(); - $case = ModerationCase::factory()->create(['tenant_id' => $tenant->id]); - - expect($case->tenant->id)->toBe($tenant->id); -}); - test('ModerationAction belongs to case', function (): void { $case = ModerationCase::factory()->create(); $action = ModerationAction::factory()->create(['case_id' => $case->id]); diff --git a/app-modules/moderation/tests/Feature/Pipeline/ScreenContentTest.php b/app-modules/moderation/tests/Feature/Pipeline/ScreenContentTest.php index 8fb58c459..0b8e2e9ff 100644 --- a/app-modules/moderation/tests/Feature/Pipeline/ScreenContentTest.php +++ b/app-modules/moderation/tests/Feature/Pipeline/ScreenContentTest.php @@ -50,7 +50,6 @@ mediaUrls: [], metadata: [], snapshot: ['text' => 'extremely toxic content here'], - tenantId: null, ); $job = new ScreenContent($dto, CaseSource::AutoDetect); @@ -92,7 +91,6 @@ mediaUrls: [], metadata: [], snapshot: ['text' => 'this is a normal message'], - tenantId: null, ); $job = new ScreenContent($dto, CaseSource::AutoDetect); @@ -128,7 +126,6 @@ mediaUrls: [], metadata: [], snapshot: ['text' => 'very harassing content'], - tenantId: null, ); $job = new ScreenContent($dto, CaseSource::AutoDetect); diff --git a/app-modules/moderation/tests/Feature/Pipeline/SubmitForModerationTest.php b/app-modules/moderation/tests/Feature/Pipeline/SubmitForModerationTest.php index 95c636d64..25c43e51d 100644 --- a/app-modules/moderation/tests/Feature/Pipeline/SubmitForModerationTest.php +++ b/app-modules/moderation/tests/Feature/Pipeline/SubmitForModerationTest.php @@ -49,7 +49,6 @@ mediaUrls: [], metadata: [], snapshot: ['text' => 'buy followers now at spam.com'], - tenantId: null, ); $action = resolve(SubmitForModeration::class); @@ -80,7 +79,6 @@ mediaUrls: [], metadata: [], snapshot: ['text' => 'hello everyone, how are you?'], - tenantId: null, ); $action = resolve(SubmitForModeration::class); @@ -105,7 +103,6 @@ mediaUrls: [], metadata: [], snapshot: ['text' => ''], - tenantId: null, ); $action = resolve(SubmitForModeration::class); diff --git a/app-modules/moderation/tests/Feature/PipelineTest.php b/app-modules/moderation/tests/Feature/PipelineTest.php index f4aaade5a..8c9dd3290 100644 --- a/app-modules/moderation/tests/Feature/PipelineTest.php +++ b/app-modules/moderation/tests/Feature/PipelineTest.php @@ -24,7 +24,6 @@ mediaUrls: [], metadata: ['channel_id' => 'ch-1'], snapshot: ['text' => 'some spam content'], - tenantId: null, ); $job = new IngestContent($dto, CaseSource::UserReport); @@ -129,7 +128,6 @@ mediaUrls: [], metadata: [], snapshot: ['text' => 'Get free followers at spam.com'], - tenantId: null, ); $case = new IngestContent($dto, CaseSource::AutoDetect)->handle(); diff --git a/app-modules/moderation/tests/Feature/Platform/WebAdapterTest.php b/app-modules/moderation/tests/Feature/Platform/WebAdapterTest.php index e59e70632..279201ce4 100644 --- a/app-modules/moderation/tests/Feature/Platform/WebAdapterTest.php +++ b/app-modules/moderation/tests/Feature/Platform/WebAdapterTest.php @@ -183,7 +183,6 @@ 'text' => 'Some post content', 'media_urls' => ['https://example.com/img.jpg'], 'metadata' => ['url' => '/posts/123'], - 'tenant_id' => '1', 'author_external_id' => 'user-uuid', ]; @@ -194,8 +193,7 @@ ->and($dto->contentType)->toBe('post') ->and($dto->sourcePlatform)->toBe(Platform::Web) ->and($dto->textContent)->toBe('Some post content') - ->and($dto->mediaUrls)->toBe(['https://example.com/img.jpg']) - ->and($dto->tenantId)->toBe('1'); + ->and($dto->mediaUrls)->toBe(['https://example.com/img.jpg']); }); test('resolveUser finds user by ID', function (): void { diff --git a/app-modules/moderation/tests/Unit/ClassifierTest.php b/app-modules/moderation/tests/Unit/ClassifierTest.php index d82d608e3..26a295636 100644 --- a/app-modules/moderation/tests/Unit/ClassifierTest.php +++ b/app-modules/moderation/tests/Unit/ClassifierTest.php @@ -28,7 +28,6 @@ function makeContentDTO(string $text = 'hello world'): ModerationContentDTO mediaUrls: [], metadata: [], snapshot: ['text' => $text], - tenantId: null, ); } diff --git a/app-modules/moderation/tests/Unit/DTOTest.php b/app-modules/moderation/tests/Unit/DTOTest.php index a1dca4437..decd516ab 100644 --- a/app-modules/moderation/tests/Unit/DTOTest.php +++ b/app-modules/moderation/tests/Unit/DTOTest.php @@ -21,7 +21,6 @@ mediaUrls: ['https://example.com/img.png'], metadata: ['channel_id' => '123', 'guild_id' => '456'], snapshot: ['raw' => 'full message data'], - tenantId: 'tenant-uuid', ); expect($dto->contentId)->toBe('msg-123') @@ -31,8 +30,7 @@ ->and($dto->textContent)->toBe('spam content here') ->and($dto->mediaUrls)->toBe(['https://example.com/img.png']) ->and($dto->metadata)->toBe(['channel_id' => '123', 'guild_id' => '456']) - ->and($dto->snapshot)->toBe(['raw' => 'full message data']) - ->and($dto->tenantId)->toBe('tenant-uuid'); + ->and($dto->snapshot)->toBe(['raw' => 'full message data']); }); test('ClassificationResultDTO holds scores and primary violation', function (): void { @@ -103,7 +101,6 @@ classifierName: 'openai', mediaUrls: ['https://example.com/file.png'], metadata: ['channel_id' => 'ch-1'], snapshot: ['text' => 'test serialization'], - tenantId: 'tenant-1', ); $json = json_encode($dto); @@ -115,7 +112,6 @@ classifierName: 'openai', ->and($decoded['source_platform'])->toBe('discord') ->and($decoded['author_external_id'])->toBe('ext-123') ->and($decoded['text_content'])->toBe('test serialization') - ->and($decoded['tenant_id'])->toBe('tenant-1') ->and($decoded)->not->toHaveKey('author'); }); @@ -129,7 +125,6 @@ classifierName: 'openai', mediaUrls: [], metadata: [], snapshot: ['text' => 'content without author'], - tenantId: null, ); $serialized = $dto->jsonSerialize(); @@ -147,12 +142,10 @@ classifierName: 'openai', 'text' => 'platform content', 'media_urls' => [], 'metadata' => ['guild_id' => 'g-1'], - 'tenant_id' => 'tenant-2', ]); expect($dto->contentId)->toBe('msg-fp-1') ->and($dto->sourcePlatform)->toBe(Platform::Discord) ->and($dto->authorExternalId)->toBe('ext-789') - ->and($dto->textContent)->toBe('platform content') - ->and($dto->tenantId)->toBe('tenant-2'); + ->and($dto->textContent)->toBe('platform content'); }); diff --git a/app-modules/panel-admin/config/panel-admin.php b/app-modules/panel-admin/config/panel-admin.php index 8c8b65233..0e472e872 100644 --- a/app-modules/panel-admin/config/panel-admin.php +++ b/app-modules/panel-admin/config/panel-admin.php @@ -2,23 +2,9 @@ declare(strict_types=1); -use He4rt\Moderation\Appeals\ModerationAppeal; -use He4rt\Moderation\Audit\ModerationAuditLog; -use He4rt\Moderation\Cases\Models\ModerationCase; -use He4rt\Moderation\Enforcement\ModerationAction; -use He4rt\Moderation\Rules\ModerationRule; - return [ 'modules' => [ // Modules whose Filament/Admin/ resources will be discovered // Ex: 'identity', 'gamification', 'events' ], - - 'tenant_scoped_models' => [ - ModerationCase::class, - ModerationAction::class, - ModerationAppeal::class, - ModerationRule::class, - ModerationAuditLog::class, - ], ]; diff --git a/app-modules/panel-admin/src/Filament/Resources/ExternalIdentities/RelationManagers/MessagesRelationManager.php b/app-modules/panel-admin/src/Filament/Resources/ExternalIdentities/RelationManagers/MessagesRelationManager.php index d390c2225..712548310 100644 --- a/app-modules/panel-admin/src/Filament/Resources/ExternalIdentities/RelationManagers/MessagesRelationManager.php +++ b/app-modules/panel-admin/src/Filament/Resources/ExternalIdentities/RelationManagers/MessagesRelationManager.php @@ -54,12 +54,6 @@ public function form(Schema $schema): Schema DatePicker::make('sent_at') ->label('Sent Date'), - Select::make('tenant_id') - ->label('Tenant Id') - ->relationship('tenant', 'name') - ->searchable() - ->required(), - TextInput::make('reactions_count') ->label('Reactions Count') ->required() @@ -272,7 +266,6 @@ public function table(Table $table): Table 'author_external_id' => $identity->external_account_id ?? '', 'text' => $record->content, 'media_urls' => [], - 'tenant_id' => (string) $record->tenant_id, 'metadata' => [ 'channel_id' => $record->channel_id, ], diff --git a/app-modules/panel-admin/src/Filament/Resources/ExternalIdentities/Schemas/ExternalIdentityForm.php b/app-modules/panel-admin/src/Filament/Resources/ExternalIdentities/Schemas/ExternalIdentityForm.php index ee1e28c8c..72b7fda22 100644 --- a/app-modules/panel-admin/src/Filament/Resources/ExternalIdentities/Schemas/ExternalIdentityForm.php +++ b/app-modules/panel-admin/src/Filament/Resources/ExternalIdentities/Schemas/ExternalIdentityForm.php @@ -16,10 +16,6 @@ public static function configure(Schema $schema): Schema { return $schema ->components([ - TextInput::make('tenant_id') - ->label('Tenant Id') - ->required(), - TextInput::make('model_type') ->label('Model Type') ->required(), diff --git a/app-modules/panel-admin/src/Filament/Resources/ExternalIdentities/Schemas/ExternalIdentityInfolist.php b/app-modules/panel-admin/src/Filament/Resources/ExternalIdentities/Schemas/ExternalIdentityInfolist.php index e992e55ca..8fed4232b 100644 --- a/app-modules/panel-admin/src/Filament/Resources/ExternalIdentities/Schemas/ExternalIdentityInfolist.php +++ b/app-modules/panel-admin/src/Filament/Resources/ExternalIdentities/Schemas/ExternalIdentityInfolist.php @@ -16,9 +16,6 @@ public static function configure(Schema $schema): Schema TextEntry::make('id') ->label('Id'), - TextEntry::make('tenant_id') - ->label('Tenant Id'), - TextEntry::make('model_type') ->label('Model Type'), diff --git a/app-modules/panel-admin/src/Filament/Resources/ExternalIdentities/Tables/ExternalIdentitiesTable.php b/app-modules/panel-admin/src/Filament/Resources/ExternalIdentities/Tables/ExternalIdentitiesTable.php index 1099d79bc..02ca36048 100644 --- a/app-modules/panel-admin/src/Filament/Resources/ExternalIdentities/Tables/ExternalIdentitiesTable.php +++ b/app-modules/panel-admin/src/Filament/Resources/ExternalIdentities/Tables/ExternalIdentitiesTable.php @@ -23,9 +23,6 @@ public static function table(Table $table): Table { return $table ->columns([ - TextColumn::make('tenant_id') - ->label('Tenant Id'), - TextColumn::make('model_type') ->label('Model Type'), diff --git a/app-modules/panel-admin/src/Github/Resources/GithubRepositoryResource.php b/app-modules/panel-admin/src/Github/Resources/GithubRepositoryResource.php index 63629059b..014bec089 100644 --- a/app-modules/panel-admin/src/Github/Resources/GithubRepositoryResource.php +++ b/app-modules/panel-admin/src/Github/Resources/GithubRepositoryResource.php @@ -7,7 +7,6 @@ use BackedEnum; use Filament\Actions\Action; use Filament\Actions\EditAction; -use Filament\Facades\Filament; use Filament\Forms\Components\TextInput; use Filament\Forms\Components\Toggle; use Filament\Notifications\Notification; @@ -24,7 +23,6 @@ use He4rt\PanelAdmin\Github\Resources\GithubRepositoryResource\Pages\CreateGithubRepository; use He4rt\PanelAdmin\Github\Resources\GithubRepositoryResource\Pages\EditGithubRepository; use He4rt\PanelAdmin\Github\Resources\GithubRepositoryResource\Pages\ListGithubRepositories; -use Illuminate\Validation\Rules\Unique; class GithubRepositoryResource extends Resource { @@ -62,9 +60,7 @@ public static function form(Schema $schema): Schema ->required() ->maxLength(255) ->rule('regex:/^[\w.-]+\/[\w.-]+$/') - // Unicidade é por tenant: o mesmo repo pode ser acompanhado por - // mais de uma comunidade, então a validação respeita o tenant atual. - ->unique(ignoreRecord: true, modifyRuleUsing: fn (Unique $rule): Unique => $rule->where('tenant_id', Filament::getTenant()?->getKey())), + ->unique(ignoreRecord: true), Toggle::make('enabled') ->label('Habilitado') ->default(state: true), diff --git a/app-modules/panel-admin/src/Http/Middleware/ApplyTenantScopes.php b/app-modules/panel-admin/src/Http/Middleware/ApplyTenantScopes.php deleted file mode 100644 index ed270f022..000000000 --- a/app-modules/panel-admin/src/Http/Middleware/ApplyTenantScopes.php +++ /dev/null @@ -1,39 +0,0 @@ -> $models */ - $models = config('panel-admin.tenant_scoped_models', []); - - foreach ($models as $model) { - $model::addGlobalScope( - 'tenant', - fn (Builder $query) => $query->whereBelongsTo($tenant), - ); - } - - return $next($request); - } -} diff --git a/app-modules/panel-admin/src/Moderation/Livewire/ModerationQueue.php b/app-modules/panel-admin/src/Moderation/Livewire/ModerationQueue.php index f44359813..16080f915 100644 --- a/app-modules/panel-admin/src/Moderation/Livewire/ModerationQueue.php +++ b/app-modules/panel-admin/src/Moderation/Livewire/ModerationQueue.php @@ -145,7 +145,6 @@ public function handleAction(): Action 'duration' => $data['duration'], 'reason' => $data['reason'], 'automated' => false, - 'tenant_id' => $case->tenant_id, ]); if ($case->author) { diff --git a/app-modules/panel-admin/src/Moderation/Resources/ModerationCaseResource/Pages/ViewModerationCase.php b/app-modules/panel-admin/src/Moderation/Resources/ModerationCaseResource/Pages/ViewModerationCase.php index 53521687b..39633eef8 100644 --- a/app-modules/panel-admin/src/Moderation/Resources/ModerationCaseResource/Pages/ViewModerationCase.php +++ b/app-modules/panel-admin/src/Moderation/Resources/ModerationCaseResource/Pages/ViewModerationCase.php @@ -110,7 +110,6 @@ protected function getHeaderActions(): array 'duration' => $data['duration'], 'reason' => $data['reason'], 'automated' => false, - 'tenant_id' => $case->tenant_id, ]); if ($case->author) { diff --git a/app-modules/panel-admin/src/Tenant/EditTenantProfilePage.php b/app-modules/panel-admin/src/Tenant/EditTenantProfilePage.php deleted file mode 100644 index 497fecebc..000000000 --- a/app-modules/panel-admin/src/Tenant/EditTenantProfilePage.php +++ /dev/null @@ -1,48 +0,0 @@ -components([ - Section::make('General') - ->schema([ - Grid::make(2)->schema([ - TextInput::make('name') - ->required() - ->maxLength(255), - TextInput::make('slug') - ->required() - ->maxLength(255) - ->unique(ignoreRecord: true), - ]), - TextInput::make('domain') - ->maxLength(255), - Toggle::make('active') - ->default(state: true), - ]), - Section::make('Connections') - ->schema([ - Livewire::make('connection-hub'), - ]), - ]); - } -} diff --git a/app-modules/panel-admin/src/Twitch/Actions/RegisterSubscriptionsAction.php b/app-modules/panel-admin/src/Twitch/Actions/RegisterSubscriptionsAction.php index da7908cf8..3b1d16115 100644 --- a/app-modules/panel-admin/src/Twitch/Actions/RegisterSubscriptionsAction.php +++ b/app-modules/panel-admin/src/Twitch/Actions/RegisterSubscriptionsAction.php @@ -9,7 +9,6 @@ use Filament\Support\Enums\Width; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationTwitch\Actions\RegisterTwitchSubscriptionsAction; use He4rt\IntegrationTwitch\Enums\TwitchEventSubType; use He4rt\IntegrationTwitch\Models\TwitchSubscription; @@ -28,27 +27,15 @@ protected function setUp(): void ->modalHeading(__('panel-admin::twitch.subscriptions.actions.register')) ->modalSubmitActionLabel(__('panel-admin::twitch.subscriptions.actions.register_confirm_button')) ->modalWidth(Width::ThreeExtraLarge) - ->modalContent(function (): View { - /** @var Tenant|null $tenant */ - $tenant = filament()->getTenant(); - - return view('panel-admin::twitch.register-subscriptions-modal', [ - 'broadcaster' => $this->resolveBroadcaster($tenant), - 'callbackUrl' => $this->resolveCallbackUrl($tenant), - 'groups' => $this->buildEventTypeGroups($tenant), - 'secret' => $this->maskSecret(), - ]); - }) + ->modalContent(fn (): View => view('panel-admin::twitch.register-subscriptions-modal', [ + 'broadcaster' => $this->resolveBroadcaster(), + 'callbackUrl' => $this->resolveCallbackUrl(), + 'groups' => $this->buildEventTypeGroups(), + 'secret' => $this->maskSecret(), + ])) ->action(static function (): void { - /** @var Tenant|null $tenant */ - $tenant = filament()->getTenant(); - - if (!$tenant instanceof Tenant) { - return; - } - $action = resolve(RegisterTwitchSubscriptionsAction::class); - $result = $action($tenant); + $result = $action(); if ($result['errors']['broadcaster'] ?? null) { Notification::make() @@ -81,14 +68,9 @@ public static function getDefaultName(): ?string /** * @return array{id: string, login: string}|null */ - private function resolveBroadcaster(?Tenant $tenant): ?array + private function resolveBroadcaster(): ?array { - if (!$tenant instanceof Tenant) { - return null; - } - $identity = ExternalIdentity::query() - ->where('tenant_id', $tenant->getKey()) ->where('provider', IdentityProvider::Twitch) ->whereNotNull('connected_at') ->whereNull('disconnected_at') @@ -104,11 +86,15 @@ private function resolveBroadcaster(?Tenant $tenant): ?array ]; } - private function resolveCallbackUrl(?Tenant $tenant): string + private function resolveCallbackUrl(): string { - $slug = $tenant instanceof Tenant ? $tenant->slug : 'default'; + $configured = config()->string('services.twitch.eventsub_callback', ''); - return mb_rtrim(config('app.url'), '/').'/api/webhooks/twitch/eventsub/'.$slug; + if ($configured !== '') { + return $configured; + } + + return mb_rtrim(config()->string('app.url'), '/').'/api/webhooks/twitch/eventsub'; } private function maskSecret(): string @@ -121,17 +107,12 @@ private function maskSecret(): string /** * @return array}> */ - private function buildEventTypeGroups(?Tenant $tenant): array + private function buildEventTypeGroups(): array { - $existingTypes = []; - - if ($tenant instanceof Tenant) { - $existingTypes = TwitchSubscription::query() - ->where('tenant_id', $tenant->getKey()) - ->where('status', 'enabled') - ->pluck('type') - ->all(); - } + $existingTypes = TwitchSubscription::query() + ->where('status', 'enabled') + ->pluck('type') + ->all(); $groups = [ 'stream' => ['label' => 'Stream', 'types' => []], diff --git a/app-modules/panel-admin/src/Twitch/Resources/TwitchSubscriptionResource/Pages/ListTwitchSubscriptions.php b/app-modules/panel-admin/src/Twitch/Resources/TwitchSubscriptionResource/Pages/ListTwitchSubscriptions.php index ba0eb3d8f..d84d8d0e6 100644 --- a/app-modules/panel-admin/src/Twitch/Resources/TwitchSubscriptionResource/Pages/ListTwitchSubscriptions.php +++ b/app-modules/panel-admin/src/Twitch/Resources/TwitchSubscriptionResource/Pages/ListTwitchSubscriptions.php @@ -40,7 +40,6 @@ private function syncSubscriptions(): void /** @var array> $remoteSubscriptions */ $remoteSubscriptions = $response->json('data', []); - $tenantId = filament()->getTenant()?->getKey(); $syncedIds = []; foreach ($remoteSubscriptions as $sub) { @@ -57,9 +56,6 @@ private function syncSubscriptions(): void 'callback_url' => $sub['transport']['callback'] ?? null, 'cost' => $sub['cost'] ?? 0, 'version' => $sub['version'] ?? '1', - 'tenant_id' => $tenantId ?? TwitchSubscription::query() - ->where('subscription_id', $sub['id']) - ->value('tenant_id') ?? 0, ] ); @@ -67,7 +63,6 @@ private function syncSubscriptions(): void } TwitchSubscription::query() - ->where('tenant_id', $tenantId) ->whereNotIn('subscription_id', $syncedIds) ->delete(); diff --git a/app-modules/panel-admin/src/Twitch/Widgets/EventsByTypeChartWidget.php b/app-modules/panel-admin/src/Twitch/Widgets/EventsByTypeChartWidget.php index b1c18cf62..d0b761a09 100644 --- a/app-modules/panel-admin/src/Twitch/Widgets/EventsByTypeChartWidget.php +++ b/app-modules/panel-admin/src/Twitch/Widgets/EventsByTypeChartWidget.php @@ -25,10 +25,7 @@ protected function getType(): string protected function getData(): array { - $tenantId = filament()->getTenant()?->getKey(); - $counts = TwitchEventLog::query() - ->when($tenantId, fn ($q) => $q->where('tenant_id', $tenantId)) ->selectRaw('event_type, COUNT(*) as total') ->groupBy('event_type') ->orderByDesc('total') diff --git a/app-modules/panel-admin/src/Twitch/Widgets/EventsPerDayChartWidget.php b/app-modules/panel-admin/src/Twitch/Widgets/EventsPerDayChartWidget.php index fb30b3481..a0bdbef31 100644 --- a/app-modules/panel-admin/src/Twitch/Widgets/EventsPerDayChartWidget.php +++ b/app-modules/panel-admin/src/Twitch/Widgets/EventsPerDayChartWidget.php @@ -27,10 +27,7 @@ protected function getData(): array { $start = now()->subDays(29)->startOfDay(); - $tenantId = filament()->getTenant()?->getKey(); - $events = TwitchEventLog::query() - ->when($tenantId, fn ($q) => $q->where('tenant_id', $tenantId)) ->where('created_at', '>=', $start) ->selectRaw('DATE(created_at) as date, COUNT(*) as total') ->groupBy('date') diff --git a/app-modules/panel-admin/src/Twitch/Widgets/TwitchStatsWidget.php b/app-modules/panel-admin/src/Twitch/Widgets/TwitchStatsWidget.php index e7ac2ca8d..cc0a0402a 100644 --- a/app-modules/panel-admin/src/Twitch/Widgets/TwitchStatsWidget.php +++ b/app-modules/panel-admin/src/Twitch/Widgets/TwitchStatsWidget.php @@ -23,28 +23,18 @@ class TwitchStatsWidget extends StatsOverviewWidget */ protected function getStats(): array { - $tenantId = filament()->getTenant()?->getKey(); + $totalEvents = TwitchEventLog::query()->count(); - $totalEvents = TwitchEventLog::query() - ->when($tenantId, fn ($q) => $q->where('tenant_id', $tenantId)) + $eventsToday = TwitchEventLog::query()->where('created_at', '>=', today()) ->count(); - $eventsToday = TwitchEventLog::query() - ->when($tenantId, fn ($q) => $q->where('tenant_id', $tenantId)) - ->where('created_at', '>=', today()) + $activeSubs = TwitchSubscription::query()->where('status', TwitchSubscriptionStatus::Enabled) ->count(); - $activeSubs = TwitchSubscription::query() - ->when($tenantId, fn ($q) => $q->where('tenant_id', $tenantId)) - ->where('status', TwitchSubscriptionStatus::Enabled) - ->count(); - - $errorSubs = TwitchSubscription::query() - ->when($tenantId, fn ($q) => $q->where('tenant_id', $tenantId)) - ->whereNotIn('status', [ - TwitchSubscriptionStatus::Enabled->value, - TwitchSubscriptionStatus::VerificationPending->value, - ]) + $errorSubs = TwitchSubscription::query()->whereNotIn('status', [ + TwitchSubscriptionStatus::Enabled->value, + TwitchSubscriptionStatus::VerificationPending->value, + ]) ->count(); return [ diff --git a/app-modules/panel-admin/tests/Feature/AdminPanelAccessTest.php b/app-modules/panel-admin/tests/Feature/AdminPanelAccessTest.php index f61cdf54f..30ccf7e8d 100644 --- a/app-modules/panel-admin/tests/Feature/AdminPanelAccessTest.php +++ b/app-modules/panel-admin/tests/Feature/AdminPanelAccessTest.php @@ -3,14 +3,11 @@ declare(strict_types=1); use Filament\Facades\Filament; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; test('unauthenticated user is redirected to login', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt-dev']); - $this - ->get('/admin/'.$tenant->slug) + ->get('/admin') ->assertRedirect('/admin/login'); }); @@ -21,17 +18,14 @@ }); test('authenticated admin can access admin panel', function (): void { - $tenant = Tenant::factory()->create(['slug' => 'he4rt-dev']); $user = User::factory()->create(['username' => 'danielhe4rt']); - $tenant->members()->attach($user); - config(['he4rt.admins' => 'danielhe4rt']); $this ->actingAs($user) ->get('/admin') - ->assertRedirect(); + ->assertOk(); }); test('admin user can access panel via canAccessPanel', function (): void { diff --git a/app-modules/panel-admin/tests/Feature/ApplyTenantScopesTest.php b/app-modules/panel-admin/tests/Feature/ApplyTenantScopesTest.php deleted file mode 100644 index 21a16e334..000000000 --- a/app-modules/panel-admin/tests/Feature/ApplyTenantScopesTest.php +++ /dev/null @@ -1,71 +0,0 @@ -create(); - - Filament::shouldReceive('getTenant') - ->andReturn($tenant); - - config(['panel-admin.tenant_scoped_models' => [ - Character::class, - ]]); - - $middleware = new ApplyTenantScopes(); - - $middleware->handle( - Request::create('/admin'), - fn () => new Response(), - ); - - $query = Character::query()->toSql(); - - expect($query)->toContain('where'); -}); - -test('skips scope application when no tenant is set', function (): void { - Filament::shouldReceive('getTenant') - ->andReturn(null); - - config(['panel-admin.tenant_scoped_models' => [ - User::class, - ]]); - - $middleware = new ApplyTenantScopes(); - - $middleware->handle( - Request::create('/admin'), - fn () => new Response(), - ); - - $query = User::query()->toSql(); - - expect($query)->not->toContain('tenant_id'); -}); - -test('handles empty tenant_scoped_models config', function (): void { - $tenant = Tenant::factory()->create(); - - Filament::shouldReceive('getTenant') - ->andReturn($tenant); - - config(['panel-admin.tenant_scoped_models' => []]); - - $middleware = new ApplyTenantScopes(); - - $response = $middleware->handle( - Request::create('/admin'), - fn () => new Response('ok'), - ); - - expect($response->getContent())->toBe('ok'); -}); diff --git a/app-modules/panel-admin/tests/Feature/Github/GithubRepositoryResourceTest.php b/app-modules/panel-admin/tests/Feature/Github/GithubRepositoryResourceTest.php index 184d091e2..b65b42340 100644 --- a/app-modules/panel-admin/tests/Feature/Github/GithubRepositoryResourceTest.php +++ b/app-modules/panel-admin/tests/Feature/Github/GithubRepositoryResourceTest.php @@ -4,7 +4,6 @@ use Filament\Actions\Testing\TestAction; use Filament\Facades\Filament; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\IntegrationGithub\Backfill\Jobs\BackfillGithubRepository; use He4rt\IntegrationGithub\Models\GithubRepository; @@ -16,23 +15,15 @@ beforeEach(function (): void { $user = User::factory()->create(['username' => 'danielhe4rt']); - $tenant = Tenant::factory()->create(['slug' => 'he4rt-dev']); - $tenant->members()->attach($user); config(['he4rt.admins' => 'danielhe4rt']); $this->actingAs($user); Filament::setCurrentPanel(Filament::getPanel('admin')); - Filament::setTenant($tenant); - // Boota o painel para registrar o global scope + o observer de tenancy - // (em testes Livewire o painel não passa pelo middleware que faz isso no HTTP). - Filament::getPanel('admin')->boot(); - - $this->tenant = $tenant; }); -test('admin cria um repositório associando ao tenant atual', function (): void { +test('admin cria um repositório', function (): void { livewire(CreateGithubRepository::class) ->fillForm(['full_name' => 'he4rt/heartdevs.com', 'enabled' => true]) ->call('create') @@ -40,7 +31,7 @@ $repo = GithubRepository::query()->where('full_name', 'he4rt/heartdevs.com')->sole(); - expect($repo->tenant_id)->toBe($this->tenant->id); + expect($repo)->not->toBeNull(); }); test('rejeita full_name sem owner/repo', function (): void { @@ -50,7 +41,7 @@ ->assertHasFormErrors(['full_name']); }); -test('rejeita full_name duplicado no mesmo tenant', function (): void { +test('rejeita full_name duplicado', function (): void { GithubRepository::factory()->create(['full_name' => 'he4rt/4noobs']); livewire(CreateGithubRepository::class) @@ -59,18 +50,12 @@ ->assertHasFormErrors(['full_name']); }); -test('lista apenas os repositórios do tenant atual', function (): void { +test('lista os repositórios cadastrados', function (): void { $mine = GithubRepository::factory()->create(['full_name' => 'he4rt/mine']); - $other = Tenant::factory()->create(['slug' => 'outra']); - Filament::setTenant($other); - $theirs = GithubRepository::factory()->create(['full_name' => 'he4rt/theirs']); - Filament::setTenant($this->tenant); - livewire(ListGithubRepositories::class) ->loadTable() - ->assertCanSeeTableRecords([$mine]) - ->assertCanNotSeeTableRecords([$theirs]); + ->assertCanSeeTableRecords([$mine]); }); test('backfill pelo painel enfileira o job em segundo plano', function (): void { diff --git a/app-modules/panel-admin/tests/Feature/Marketing/CommunityActivityStatsTest.php b/app-modules/panel-admin/tests/Feature/Marketing/CommunityActivityStatsTest.php index 29323598d..cde45bf14 100644 --- a/app-modules/panel-admin/tests/Feature/Marketing/CommunityActivityStatsTest.php +++ b/app-modules/panel-admin/tests/Feature/Marketing/CommunityActivityStatsTest.php @@ -6,7 +6,6 @@ use He4rt\Activity\Message\Models\Message; use He4rt\Activity\Timeline\Timeline; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\PanelAdmin\Marketing\Pages\Location\Queries\CommunityActivityStats; use Illuminate\Support\Facades\Cache; @@ -35,21 +34,20 @@ test('it counts distinct web and discord actives within the current window', function (): void { $tz = $this->tz; - $tenant = Tenant::factory()->create(); $userA = User::factory()->create(); $userB = User::factory()->create(); $userC = User::factory()->create(); // Web: userA (twice) and userB post inside the 30-day window; userC only outside. - Timeline::factory()->recycle($tenant)->create(['user_id' => $userA->id, 'created_at' => Date::create(2_026, 6, 10, 12, 0, 0, $tz)]); - Timeline::factory()->recycle($tenant)->create(['user_id' => $userA->id, 'created_at' => Date::create(2_026, 6, 12, 12, 0, 0, $tz)]); - Timeline::factory()->recycle($tenant)->create(['user_id' => $userB->id, 'created_at' => Date::create(2_026, 6, 1, 12, 0, 0, $tz)]); - Timeline::factory()->recycle($tenant)->create(['user_id' => $userC->id, 'created_at' => Date::create(2_026, 1, 1, 12, 0, 0, $tz)]); + Timeline::factory()->create(['user_id' => $userA->id, 'created_at' => Date::create(2_026, 6, 10, 12, 0, 0, $tz)]); + Timeline::factory()->create(['user_id' => $userA->id, 'created_at' => Date::create(2_026, 6, 12, 12, 0, 0, $tz)]); + Timeline::factory()->create(['user_id' => $userB->id, 'created_at' => Date::create(2_026, 6, 1, 12, 0, 0, $tz)]); + Timeline::factory()->create(['user_id' => $userC->id, 'created_at' => Date::create(2_026, 1, 1, 12, 0, 0, $tz)]); // Discord: one distinct identity with a message inside the window. - $identity = ExternalIdentity::factory()->recycle($tenant)->create(); - Message::factory()->recycle($tenant)->create(['external_identity_id' => $identity->id, 'sent_at' => Date::create(2_026, 6, 11, 12, 0, 0, $tz)]); + $identity = ExternalIdentity::factory()->create(); + Message::factory()->create(['external_identity_id' => $identity->id, 'sent_at' => Date::create(2_026, 6, 11, 12, 0, 0, $tz)]); // Location coverage: one located member. Address::factory()->forUser($userA)->create(['state' => 'São Paulo']); diff --git a/app-modules/panel-admin/tests/Feature/Marketing/LocationDashboardTest.php b/app-modules/panel-admin/tests/Feature/Marketing/LocationDashboardTest.php index f9c9906a0..ee8c03bc0 100644 --- a/app-modules/panel-admin/tests/Feature/Marketing/LocationDashboardTest.php +++ b/app-modules/panel-admin/tests/Feature/Marketing/LocationDashboardTest.php @@ -3,7 +3,6 @@ declare(strict_types=1); use Filament\Facades\Filament; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\PanelAdmin\Marketing\Pages\Location\LocationDashboard; use Illuminate\Support\Facades\Cache; @@ -24,12 +23,9 @@ ]); $admin = User::factory()->create(); - $tenant = Tenant::factory()->create(); - $tenant->members()->attach($admin); $this->actingAs($admin); Filament::setCurrentPanel(Filament::getPanel('admin')); - Filament::setTenant($tenant); }); test('the location dashboard renders for an admin', function (): void { diff --git a/app-modules/panel-admin/tests/Feature/Marketing/PeriodStatsTest.php b/app-modules/panel-admin/tests/Feature/Marketing/PeriodStatsTest.php index a3d589264..f525b998d 100644 --- a/app-modules/panel-admin/tests/Feature/Marketing/PeriodStatsTest.php +++ b/app-modules/panel-admin/tests/Feature/Marketing/PeriodStatsTest.php @@ -5,7 +5,6 @@ use Carbon\CarbonInterface; use He4rt\Activity\Message\Models\Message; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\PanelAdmin\Marketing\Pages\Discord\Dashboard\Queries\PeriodStats; use Illuminate\Support\Facades\Date; use Illuminate\Support\Facades\DB; @@ -29,40 +28,38 @@ test('it buckets messages, distinct users and voice joins into the correct daily blocks', function (): void { $tz = $this->displayTimezone; - $tenant = Tenant::factory()->create(); - $identityA = ExternalIdentity::factory()->recycle($tenant)->create(); - $identityB = ExternalIdentity::factory()->recycle($tenant)->create(); + $identityA = ExternalIdentity::factory()->create(); + $identityB = ExternalIdentity::factory()->create(); $firstBlockNoon = Date::create(2_026, 6, 8, 12, 0, 0, $tz); // block 0 (oldest day) $lastBlockNoon = Date::create(2_026, 6, 14, 12, 0, 0, $tz); // block 6 (most recent full day) $todayNoon = Date::create(2_026, 6, 15, 12, 0, 0, $tz); // outside every block // Block 0: three messages from two distinct identities. - Message::factory()->count(2)->recycle($tenant)->create([ + Message::factory()->count(2)->create([ 'external_identity_id' => $identityA->id, 'sent_at' => $firstBlockNoon, ]); - Message::factory()->recycle($tenant)->create([ + Message::factory()->create([ 'external_identity_id' => $identityB->id, 'sent_at' => $firstBlockNoon, ]); // Block 6: two messages from a single identity. - Message::factory()->count(2)->recycle($tenant)->create([ + Message::factory()->count(2)->create([ 'external_identity_id' => $identityA->id, 'sent_at' => $lastBlockNoon, ]); // Today's message falls outside all seven blocks and must not be counted. - Message::factory()->recycle($tenant)->create([ + Message::factory()->create([ 'external_identity_id' => $identityA->id, 'sent_at' => $todayNoon, ]); - $insertVoice = static function (string $state, CarbonInterface $occurredAt) use ($identityA, $tenant): void { + $insertVoice = static function (string $state, CarbonInterface $occurredAt) use ($identityA): void { DB::table('voice_messages')->insert([ 'external_identity_id' => $identityA->id, - 'tenant_id' => $tenant->id, 'channel_name' => 'general', 'state' => $state, 'obtained_experience' => 0, diff --git a/app-modules/panel-admin/tests/Feature/Moderation/AppealQueueTest.php b/app-modules/panel-admin/tests/Feature/Moderation/AppealQueueTest.php index 4cf236f27..43fbe57cb 100644 --- a/app-modules/panel-admin/tests/Feature/Moderation/AppealQueueTest.php +++ b/app-modules/panel-admin/tests/Feature/Moderation/AppealQueueTest.php @@ -3,7 +3,6 @@ declare(strict_types=1); use Filament\Facades\Filament; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\Moderation\Appeals\ModerationAppeal; use He4rt\Moderation\Cases\Models\ModerationCase; @@ -14,15 +13,12 @@ beforeEach(function (): void { $this->user = User::factory()->create(['username' => 'danielhe4rt']); - $this->tenant = Tenant::factory()->create(['slug' => 'he4rt-dev']); - $this->tenant->members()->attach($this->user); config(['he4rt.admins' => 'danielhe4rt']); $this->actingAs($this->user); Filament::setCurrentPanel(Filament::getPanel('admin')); - Filament::setTenant($this->tenant); }); test('appeal queue renders with appeals ordered by sla_deadline', function (): void { diff --git a/app-modules/panel-admin/tests/Feature/Moderation/ModerationDashboardTest.php b/app-modules/panel-admin/tests/Feature/Moderation/ModerationDashboardTest.php index 6eddbac99..85414ce26 100644 --- a/app-modules/panel-admin/tests/Feature/Moderation/ModerationDashboardTest.php +++ b/app-modules/panel-admin/tests/Feature/Moderation/ModerationDashboardTest.php @@ -3,7 +3,6 @@ declare(strict_types=1); use Filament\Facades\Filament; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\Moderation\Appeals\ModerationAppeal; use He4rt\Moderation\Cases\Models\ModerationCase; @@ -15,15 +14,12 @@ beforeEach(function (): void { $user = User::factory()->create(['username' => 'danielhe4rt']); - $tenant = Tenant::factory()->create(['slug' => 'he4rt-dev']); - $tenant->members()->attach($user); config(['he4rt.admins' => 'danielhe4rt']); $this->actingAs($user); Filament::setCurrentPanel(Filament::getPanel('admin')); - Filament::setTenant($tenant); }); test('dashboard page renders successfully', function (): void { @@ -51,11 +47,8 @@ }); test('stats show correct pending count', function (): void { - $tenant = Filament::getTenant(); - ModerationCase::factory()->count(3)->create([ 'status' => 'pending', - 'tenant_id' => $tenant->id, ]); livewire(ModerationDashboardLivewire::class) diff --git a/app-modules/panel-admin/tests/Feature/Moderation/ModerationQueueTest.php b/app-modules/panel-admin/tests/Feature/Moderation/ModerationQueueTest.php index df68e808a..7cdc6d319 100644 --- a/app-modules/panel-admin/tests/Feature/Moderation/ModerationQueueTest.php +++ b/app-modules/panel-admin/tests/Feature/Moderation/ModerationQueueTest.php @@ -3,7 +3,6 @@ declare(strict_types=1); use Filament\Facades\Filament; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\Moderation\Cases\Models\ModerationCase; use He4rt\PanelAdmin\Moderation\Livewire\ModerationQueue; @@ -12,25 +11,20 @@ beforeEach(function (): void { $this->user = User::factory()->create(['username' => 'danielhe4rt']); - $this->tenant = Tenant::factory()->create(['slug' => 'he4rt-dev']); - $this->tenant->members()->attach($this->user); config(['he4rt.admins' => 'danielhe4rt']); $this->actingAs($this->user); Filament::setCurrentPanel(Filament::getPanel('admin')); - Filament::setTenant($this->tenant); }); test('queue page renders with cases ordered by priority', function (): void { $lowPriority = ModerationCase::factory()->create([ 'priority' => 10, - 'tenant_id' => $this->tenant->id, ]); $highPriority = ModerationCase::factory()->create([ 'priority' => 90, - 'tenant_id' => $this->tenant->id, ]); $component = livewire(ModerationQueue::class); @@ -41,9 +35,7 @@ }); test('queue auto-selects first case on mount', function (): void { - $case = ModerationCase::factory()->create([ - 'tenant_id' => $this->tenant->id, - ]); + $case = ModerationCase::factory()->create(); $component = livewire(ModerationQueue::class); @@ -53,12 +45,10 @@ test('queue filters cases by status', function (): void { ModerationCase::factory()->create([ 'status' => 'pending', - 'tenant_id' => $this->tenant->id, ]); ModerationCase::factory()->create([ 'status' => 'resolved', 'resolved_at' => now(), - 'tenant_id' => $this->tenant->id, ]); $component = livewire(ModerationQueue::class) @@ -73,11 +63,9 @@ test('queue filters cases by platform', function (): void { ModerationCase::factory()->create([ 'source_platform' => 'discord', - 'tenant_id' => $this->tenant->id, ]); ModerationCase::factory()->create([ 'source_platform' => 'twitch', - 'tenant_id' => $this->tenant->id, ]); $component = livewire(ModerationQueue::class) @@ -88,8 +76,8 @@ }); test('selecting a case updates selectedCaseId', function (): void { - $case1 = ModerationCase::factory()->create(['tenant_id' => $this->tenant->id]); - $case2 = ModerationCase::factory()->create(['tenant_id' => $this->tenant->id]); + $case1 = ModerationCase::factory()->create(); + $case2 = ModerationCase::factory()->create(); livewire(ModerationQueue::class) ->call('selectCase', $case2->id) @@ -100,13 +88,11 @@ $pending = ModerationCase::factory()->create([ 'status' => 'pending', 'priority' => 80, - 'tenant_id' => $this->tenant->id, ]); ModerationCase::factory()->create([ 'status' => 'resolved', 'resolved_at' => now(), 'priority' => 90, - 'tenant_id' => $this->tenant->id, ]); $component = livewire(ModerationQueue::class); @@ -117,7 +103,6 @@ test('dismiss action updates case status', function (): void { $case = ModerationCase::factory()->create([ 'status' => 'pending', - 'tenant_id' => $this->tenant->id, ]); livewire(ModerationQueue::class) @@ -133,7 +118,6 @@ test('escalate action updates case status', function (): void { $case = ModerationCase::factory()->create([ 'status' => 'pending', - 'tenant_id' => $this->tenant->id, ]); livewire(ModerationQueue::class) @@ -148,7 +132,6 @@ test('empty state shows when no cases match filters', function (): void { ModerationCase::factory()->create([ 'source_platform' => 'discord', - 'tenant_id' => $this->tenant->id, ]); $component = livewire(ModerationQueue::class) diff --git a/app-modules/panel-admin/tests/Feature/Moderation/TestRuleActionTest.php b/app-modules/panel-admin/tests/Feature/Moderation/TestRuleActionTest.php index b9f481160..9ee56ea15 100644 --- a/app-modules/panel-admin/tests/Feature/Moderation/TestRuleActionTest.php +++ b/app-modules/panel-admin/tests/Feature/Moderation/TestRuleActionTest.php @@ -3,7 +3,6 @@ declare(strict_types=1); use Filament\Facades\Filament; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\Moderation\Rules\ModerationRule; use He4rt\PanelAdmin\Moderation\Resources\ModerationRuleResource\Pages\EditModerationRule; @@ -12,15 +11,12 @@ beforeEach(function (): void { $user = User::factory()->create(['username' => 'danielhe4rt']); - $tenant = Tenant::factory()->create(['slug' => 'he4rt-dev']); - $tenant->members()->attach($user); config(['he4rt.admins' => 'danielhe4rt']); $this->actingAs($user); Filament::setCurrentPanel(Filament::getPanel('admin')); - Filament::setTenant($tenant); }); test('test rule action shows match notification for keyword rule', function (): void { diff --git a/app-modules/panel-app/resources/views/auth/login.blade.php b/app-modules/panel-app/resources/views/auth/login.blade.php index 67b2fdb93..7db1b862a 100644 --- a/app-modules/panel-app/resources/views/auth/login.blade.php +++ b/app-modules/panel-app/resources/views/auth/login.blade.php @@ -82,7 +82,7 @@ class="h-12 w-auto text-purple-500" {{-- OAuth --}}
@svg ('fab-discord', 'h-5 w-5') @@ -90,7 +90,7 @@ class="flex items-center justify-center gap-2.5 rounded-lg bg-[#5865F2] px-4 py- @svg ('fab-github', 'h-5 w-5') @@ -98,7 +98,7 @@ class="flex items-center justify-center gap-2.5 rounded-lg bg-zinc-800 px-4 py-2 @svg ('fab-twitch', 'h-5 w-5') diff --git a/app-modules/panel-app/resources/views/dashboard.blade.php b/app-modules/panel-app/resources/views/dashboard.blade.php index 73a51e8d7..7076f2e5b 100644 --- a/app-modules/panel-app/resources/views/dashboard.blade.php +++ b/app-modules/panel-app/resources/views/dashboard.blade.php @@ -1,5 +1,5 @@
- +
diff --git a/app-modules/panel-app/src/Livewire/Timeline/Composer.php b/app-modules/panel-app/src/Livewire/Timeline/Composer.php index 288f0fb28..2ba6551cb 100644 --- a/app-modules/panel-app/src/Livewire/Timeline/Composer.php +++ b/app-modules/panel-app/src/Livewire/Timeline/Composer.php @@ -4,7 +4,6 @@ namespace He4rt\PanelApp\Livewire\Timeline; -use Filament\Facades\Filament; use Filament\Forms\Components\FileUpload; use Filament\Forms\Components\MarkdownEditor; use Filament\Schemas\Concerns\InteractsWithSchemas; @@ -63,15 +62,11 @@ public function post(): void /** @var array{content: string, images?: list} $state */ $state = $this->form->getState(); - /** @var string $tenantId */ - $tenantId = Filament::getTenant()->getKey(); - /** @var User $user */ $user = auth()->user(); resolve(CreatePost::class)->handle(new CreatePostDTO( userId: $user->id, - tenantId: $tenantId, content: $state['content'], images: $state['images'] ?? [], )); diff --git a/app-modules/panel-app/src/Livewire/Timeline/Feed.php b/app-modules/panel-app/src/Livewire/Timeline/Feed.php index cd64d8a36..66e113729 100644 --- a/app-modules/panel-app/src/Livewire/Timeline/Feed.php +++ b/app-modules/panel-app/src/Livewire/Timeline/Feed.php @@ -7,7 +7,6 @@ use He4rt\Activity\Timeline\Queries\TimelineFeed; use He4rt\PanelApp\Livewire\Timeline\Concerns\HasLoadMore; use Illuminate\View\View; -use Livewire\Attributes\Locked; use Livewire\Attributes\On; use Livewire\Component; @@ -15,9 +14,6 @@ final class Feed extends Component { use HasLoadMore; - #[Locked] - public string $tenantId; - #[On(event: 'timeline.post-created')] #[On(event: 'timeline.reply-created')] #[On(event: 'timeline.reply-deleted')] @@ -25,7 +21,7 @@ public function refresh(): void {} public function render(): View { - $items = new TimelineFeed($this->tenantId) + $items = new TimelineFeed() ->builder() ->with(['user', 'postable']) ->withCount('children', 'reactions') diff --git a/app-modules/panel-app/src/Livewire/Timeline/PostShow.php b/app-modules/panel-app/src/Livewire/Timeline/PostShow.php index bd1abfa33..e8d576cd2 100644 --- a/app-modules/panel-app/src/Livewire/Timeline/PostShow.php +++ b/app-modules/panel-app/src/Livewire/Timeline/PostShow.php @@ -31,9 +31,7 @@ public function togglePin(#[CurrentUser] ?User $user): void } $timeline = Timeline::query() - ->where('id', $this->timelineId) - ->where('tenant_id', filament()->getTenant()->getKey()) - ->firstOrFail(); + ->where('id', $this->timelineId)->firstOrFail(); resolve(TogglePinPost::class)->handle($user, $timeline); @@ -43,9 +41,7 @@ public function togglePin(#[CurrentUser] ?User $user): void public function render(): View { $timeline = Timeline::query() - ->where('id', $this->timelineId) - ->where('tenant_id', filament()->getTenant()->getKey()) - ->with([ + ->where('id', $this->timelineId)->with([ 'user', 'postable', 'reactions', diff --git a/app-modules/panel-app/src/Livewire/Timeline/ReplyComposer.php b/app-modules/panel-app/src/Livewire/Timeline/ReplyComposer.php index c09b3f24d..57001606d 100644 --- a/app-modules/panel-app/src/Livewire/Timeline/ReplyComposer.php +++ b/app-modules/panel-app/src/Livewire/Timeline/ReplyComposer.php @@ -70,12 +70,8 @@ public function reply(): void /** @var User $user */ $user = auth()->user(); - /** @var string $tenantId */ - $tenantId = filament()->getTenant()->getKey(); - resolve(CreateReply::class)->handle(new CreateReplyDTO( userId: $user->id, - tenantId: $tenantId, parentTimelineId: $this->timelineId, content: $state['content'], images: $state['images'] ?? [], diff --git a/app-modules/panel-app/src/Livewire/Timeline/ThreadReplies.php b/app-modules/panel-app/src/Livewire/Timeline/ThreadReplies.php index 353c8719e..e9ae79ffc 100644 --- a/app-modules/panel-app/src/Livewire/Timeline/ThreadReplies.php +++ b/app-modules/panel-app/src/Livewire/Timeline/ThreadReplies.php @@ -32,9 +32,7 @@ public function deleteReply(string $replyId, #[CurrentUser] ?User $user): void } $reply = Timeline::query() - ->where('id', $replyId) - ->where('tenant_id', filament()->getTenant()->getKey()) - ->firstOrFail(); + ->where('id', $replyId)->firstOrFail(); resolve(DeleteReply::class)->handle($user, $reply); @@ -44,9 +42,7 @@ public function deleteReply(string $replyId, #[CurrentUser] ?User $user): void public function render(): View { $replies = Timeline::query() - ->where('root_id', $this->timelineId) - ->where('tenant_id', filament()->getTenant()->getKey()) - ->whereNotNull('parent_id') + ->where('root_id', $this->timelineId)->whereNotNull('parent_id') ->with(['user', 'postable']) ->oldest() ->simplePaginate($this->perPage); diff --git a/app-modules/panel-app/src/Pages/ProfilePage.php b/app-modules/panel-app/src/Pages/ProfilePage.php index 7f63a656e..6646285b9 100644 --- a/app-modules/panel-app/src/Pages/ProfilePage.php +++ b/app-modules/panel-app/src/Pages/ProfilePage.php @@ -426,14 +426,10 @@ public function save(): void public function getRecord(): Profile { - $tenantId = filament()->getTenant()?->getKey(); - abort_unless($tenantId, 403); - return Profile::query() ->firstOrCreate( [ 'user_id' => auth()->id(), - 'tenant_id' => $tenantId, ], ); } @@ -444,7 +440,6 @@ public function character(): ?Character return Character::query() ->with('badges') ->where('user_id', auth()->id()) - ->where('tenant_id', filament()->getTenant()?->getKey()) ->first(); } diff --git a/app-modules/panel-app/src/Pages/ThreadPage.php b/app-modules/panel-app/src/Pages/ThreadPage.php index 49a69f3c4..8bb274c73 100644 --- a/app-modules/panel-app/src/Pages/ThreadPage.php +++ b/app-modules/panel-app/src/Pages/ThreadPage.php @@ -25,9 +25,7 @@ class ThreadPage extends Page public function mount(string $record): void { $exists = Timeline::query() - ->where('id', $record) - ->where('tenant_id', filament()->getTenant()->getKey()) - ->whereNull('parent_id') + ->where('id', $record)->whereNull('parent_id') ->exists(); abort_unless($exists, 404); diff --git a/app-modules/panel-app/tests/Feature/ProfilePageTest.php b/app-modules/panel-app/tests/Feature/ProfilePageTest.php index 2b5c52723..906ca113b 100644 --- a/app-modules/panel-app/tests/Feature/ProfilePageTest.php +++ b/app-modules/panel-app/tests/Feature/ProfilePageTest.php @@ -4,7 +4,6 @@ use Filament\Facades\Filament; use Filament\Forms\Components\Select; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\PanelApp\Pages\ProfilePage; use He4rt\Profile\Enums\EmploymentType; @@ -41,17 +40,13 @@ ]); $this->user = User::factory()->create(); - $this->tenant = Tenant::factory()->create(['slug' => 'test-tenant']); - $this->tenant->members()->attach($this->user); $this->actingAs($this->user); Filament::setCurrentPanel(Filament::getPanel('app')); - Filament::setTenant($this->tenant); $this->profile = Profile::query() ->where('user_id', $this->user->id) - ->where('tenant_id', $this->tenant->id) ->first(); }); diff --git a/app-modules/panel-app/tests/Feature/Timeline/ThreadPageTest.php b/app-modules/panel-app/tests/Feature/Timeline/ThreadPageTest.php index d4bc4f4c2..635131fcc 100644 --- a/app-modules/panel-app/tests/Feature/Timeline/ThreadPageTest.php +++ b/app-modules/panel-app/tests/Feature/Timeline/ThreadPageTest.php @@ -5,31 +5,25 @@ use Filament\Facades\Filament; use He4rt\Activity\Timeline\Delegated\PostEntry; use He4rt\Activity\Timeline\Timeline; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\PanelApp\Livewire\Timeline\PostShow; use He4rt\PanelApp\Livewire\Timeline\ReplyComposer; use He4rt\PanelApp\Livewire\Timeline\ThreadReplies; use He4rt\PanelApp\Pages\ThreadPage; -use Illuminate\Database\Eloquent\ModelNotFoundException; use function Pest\Livewire\livewire; beforeEach(function (): void { $this->user = User::factory()->create(); - $this->tenant = Tenant::factory()->create(['slug' => 'test-tenant']); - $this->tenant->members()->attach($this->user); $this->actingAs($this->user); Filament::setCurrentPanel(Filament::getPanel('app')); - Filament::setTenant($this->tenant); $postEntry = PostEntry::factory()->create(['content' => 'Root post content']); $this->rootPost = Timeline::factory() ->for($this->user) ->create([ - 'tenant_id' => $this->tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $postEntry->id, ]); @@ -61,7 +55,6 @@ $entry1 = PostEntry::factory()->create(['content' => 'First reply']); Timeline::factory()->for($replier)->create([ - 'tenant_id' => $this->tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $entry1->id, 'root_id' => $this->rootPost->id, @@ -71,7 +64,6 @@ $entry2 = PostEntry::factory()->create(['content' => 'Second reply']); Timeline::factory()->for($this->user)->create([ - 'tenant_id' => $this->tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $entry2->id, 'root_id' => $this->rootPost->id, @@ -89,7 +81,6 @@ $ghost = User::factory()->create(); $entry = PostEntry::factory()->create(['content' => 'Orphaned post content']); $orphan = Timeline::factory()->for($ghost)->create([ - 'tenant_id' => $this->tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $entry->id, ]); @@ -102,71 +93,9 @@ ->assertSee('Orphaned post content'); }); -// --- Critical: Tenant isolation --- - -test('thread page returns 404 for post from another tenant', function (): void { - $otherTenant = Tenant::factory()->create(['slug' => 'other-tenant']); - $otherEntry = PostEntry::factory()->create(['content' => 'Other tenant post']); - $otherPost = Timeline::factory()->for($this->user)->create([ - 'tenant_id' => $otherTenant->id, - 'postable_type' => (new PostEntry)->getMorphClass(), - 'postable_id' => $otherEntry->id, - ]); - - $this->get(ThreadPage::getUrl(['record' => $otherPost->id])) - ->assertNotFound(); -}); - -test('thread replies does not show replies from another tenant', function (): void { - $otherTenant = Tenant::factory()->create(['slug' => 'other-tenant']); - $otherEntry = PostEntry::factory()->create(['content' => 'Other tenant post']); - $otherPost = Timeline::factory()->for($this->user)->create([ - 'tenant_id' => $otherTenant->id, - 'postable_type' => (new PostEntry)->getMorphClass(), - 'postable_id' => $otherEntry->id, - ]); - - $replyEntry = PostEntry::factory()->create(['content' => 'Cross-tenant reply']); - Timeline::factory()->for($this->user)->create([ - 'tenant_id' => $otherTenant->id, - 'postable_type' => (new PostEntry)->getMorphClass(), - 'postable_id' => $replyEntry->id, - 'root_id' => $otherPost->id, - 'parent_id' => $otherPost->id, - ]); - - livewire(ThreadReplies::class, ['timelineId' => $otherPost->id]) - ->assertDontSee('Cross-tenant reply'); -}); - -test('cannot delete reply from another tenant', function (): void { - $otherTenant = Tenant::factory()->create(['slug' => 'other-tenant']); - $otherEntry = PostEntry::factory()->create(['content' => 'Other post']); - $otherPost = Timeline::factory()->for($this->user)->create([ - 'tenant_id' => $otherTenant->id, - 'postable_type' => (new PostEntry)->getMorphClass(), - 'postable_id' => $otherEntry->id, - ]); - - $replyEntry = PostEntry::factory()->create(['content' => 'Other reply']); - $otherReply = Timeline::factory()->for($this->user)->create([ - 'tenant_id' => $otherTenant->id, - 'postable_type' => (new PostEntry)->getMorphClass(), - 'postable_id' => $replyEntry->id, - 'root_id' => $otherPost->id, - 'parent_id' => $otherPost->id, - ]); - - $this->expectException(ModelNotFoundException::class); - - livewire(ThreadReplies::class, ['timelineId' => $otherPost->id]) - ->call('deleteReply', $otherReply->id); -}); - test('owner can delete their own reply', function (): void { $replyEntry = PostEntry::factory()->create(['content' => 'My reply']); $reply = Timeline::factory()->for($this->user)->create([ - 'tenant_id' => $this->tenant->id, 'postable_type' => (new PostEntry)->getMorphClass(), 'postable_id' => $replyEntry->id, 'root_id' => $this->rootPost->id, diff --git a/app-modules/portal/src/Livewire/CommunityRetrospectivePage.php b/app-modules/portal/src/Livewire/CommunityRetrospectivePage.php index 770b5e59e..9fe0df7c8 100644 --- a/app-modules/portal/src/Livewire/CommunityRetrospectivePage.php +++ b/app-modules/portal/src/Livewire/CommunityRetrospectivePage.php @@ -6,7 +6,6 @@ use Carbon\CarbonImmutable; use Carbon\CarbonInterface; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationGithub\Enums\ContributionType; use He4rt\IntegrationGithub\Models\GithubContribution; use He4rt\Portal\Retrospective\CommunityRetrospective; @@ -21,8 +20,6 @@ #[Title(content: 'Quem fez a He4rt bater')] final class CommunityRetrospectivePage extends Component { - public string $tenantId; - #[Url] public ?string $since = null; @@ -55,16 +52,6 @@ final class CommunityRetrospectivePage extends Component #[Url] public bool $showHighlights = true; - public function mount(?string $tenantSlug = null): void - { - $slug = $tenantSlug ?? config()->string('he4rt.main_tenant'); - - /** @var Tenant $tenant */ - $tenant = Tenant::query()->where('slug', $slug)->firstOrFail(); - - $this->tenantId = $tenant->id; - } - public function toggleType(string $type): void { $this->types = $this->toggleAware($this->types, $this->allTypes(), $type); @@ -97,7 +84,7 @@ public function render(): View : CarbonImmutable::now(); $filters = RetrospectiveFilters::make($since, $until, $this->repos, $this->types, $this->outcome, $this->person, $this->hideBots, $this->sort); - $data = new CommunityRetrospective($this->tenantId, $filters)->build(); + $data = new CommunityRetrospective($filters)->build(); $repoOptions = collect($this->allRepos()) ->mapWithKeys(fn (string $repo): array => [$repo => (string) str($repo)->afterLast('/')]) @@ -141,14 +128,13 @@ private function toggleAware(array $selected, array $all, string $value): array } /** - * Data da contribuição mais antiga dentro do escopo atual (tenant + repos + * Data da contribuição mais antiga dentro do escopo atual (repos * selecionados), para o preset "tudo" cobrir o histórico real do que está * sendo apresentado. Sem registros, cai no mesmo default semanal do render(). */ private function firstContributionDate(): string { $first = GithubContribution::query() - ->where('tenant_id', $this->tenantId) ->when($this->repos !== [], fn ($query) => $query->whereIn('repo', $this->repos)) ->min('occurred_at'); @@ -164,7 +150,6 @@ private function allRepos(): array { /** @var list $repos */ $repos = GithubContribution::query() - ->where('tenant_id', $this->tenantId) ->distinct() ->orderBy('repo') ->pluck('repo') diff --git a/app-modules/portal/src/PortalServiceProvider.php b/app-modules/portal/src/PortalServiceProvider.php index 01b9430dc..2bcdc9d33 100644 --- a/app-modules/portal/src/PortalServiceProvider.php +++ b/app-modules/portal/src/PortalServiceProvider.php @@ -21,7 +21,6 @@ public function boot(): void Route::get('/', Homepage::class); Route::get('/redes', SocialLinksPage::class)->name('social-links'); Route::get('/comunidade/retrospectiva', CommunityRetrospectivePage::class)->name('community.retrospective'); - Route::get('/comunidade/{tenantSlug}/retrospectiva', CommunityRetrospectivePage::class)->name('community.retrospective.tenant'); Livewire::component('hero-section', HeroSection::class); } diff --git a/app-modules/portal/src/Retrospective/CommunityRetrospective.php b/app-modules/portal/src/Retrospective/CommunityRetrospective.php index af26f16c9..41b83bba9 100644 --- a/app-modules/portal/src/Retrospective/CommunityRetrospective.php +++ b/app-modules/portal/src/Retrospective/CommunityRetrospective.php @@ -17,7 +17,6 @@ final readonly class CommunityRetrospective { public function __construct( - private string $tenantId, private RetrospectiveFilters $filters, ) {} @@ -34,7 +33,6 @@ public function build(): array { /** @var Collection $contributions */ $contributions = GithubContribution::query() - ->where('tenant_id', $this->tenantId) ->whereBetween('occurred_at', [$this->filters->since, $this->filters->until]) ->get() ->when( diff --git a/app-modules/portal/tests/Feature/CommunityRetrospectivePageTest.php b/app-modules/portal/tests/Feature/CommunityRetrospectivePageTest.php index ec05b89a0..38bc9b70f 100644 --- a/app-modules/portal/tests/Feature/CommunityRetrospectivePageTest.php +++ b/app-modules/portal/tests/Feature/CommunityRetrospectivePageTest.php @@ -3,20 +3,14 @@ declare(strict_types=1); use Carbon\CarbonImmutable; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationGithub\Enums\ContributionType; use He4rt\IntegrationGithub\Models\GithubContribution; use He4rt\Portal\Livewire\CommunityRetrospectivePage; use function Pest\Livewire\livewire; -beforeEach(function (): void { - config(['he4rt.main_tenant' => 'he4rt']); - $this->tenant = Tenant::factory()->create(['slug' => 'he4rt']); -}); - it('mostra os contribuidores do período informado', function (): void { - GithubContribution::factory()->for($this->tenant)->create([ + GithubContribution::factory()->create([ 'actor_login' => 'maria', 'actor_id' => 42, 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false], ]); @@ -30,7 +24,7 @@ it('usa a janela padrão (segunda passada → hoje) quando sem parâmetros', function (): void { $this->travelTo(CarbonImmutable::parse('2026-06-04 10:00:00')); - GithubContribution::factory()->for($this->tenant)->create([ + GithubContribution::factory()->create([ 'actor_login' => 'joao', 'actor_id' => 7, 'type' => ContributionType::Issue, 'external_ref' => 'issue:1', 'occurred_at' => '2026-06-02', ]); @@ -40,16 +34,12 @@ ->assertSee('joao'); }); -it('responde na rota pública /comunidade/retrospectiva (tenant principal)', function (): void { +it('responde na rota pública /comunidade/retrospectiva', function (): void { test()->get('/comunidade/retrospectiva')->assertOk(); }); -it('responde na rota com slug /comunidade/{tenant}/retrospectiva', function (): void { - test()->get('/comunidade/he4rt/retrospectiva')->assertOk(); -}); - it('inclui e marca contribuidor cujo único PR foi fechado sem merge', function (): void { - GithubContribution::factory()->for($this->tenant)->create([ + GithubContribution::factory()->create([ 'actor_login' => 'rejeitada', 'actor_id' => 99, 'type' => ContributionType::Pr, 'external_ref' => 'pr:5', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'closed', 'merged' => false], ]); @@ -61,7 +51,7 @@ }); it('não renderiza o chrome do portal (sem navbar)', function (): void { - GithubContribution::factory()->for($this->tenant)->create([ + GithubContribution::factory()->create([ 'actor_login' => 'alguem', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false], ]); @@ -84,7 +74,7 @@ }); it('filtra por tipo ao alternar um tipo de contribuição', function (): void { - GithubContribution::factory()->for($this->tenant)->create([ + GithubContribution::factory()->create([ 'actor_login' => 'soreview', 'type' => ContributionType::Review, 'external_ref' => 'review:1', 'occurred_at' => '2026-06-02', ]); @@ -104,11 +94,11 @@ it('preset "tudo" ancora o período na primeira contribuição e traz o histórico inteiro', function (): void { $this->travelTo(CarbonImmutable::parse('2026-06-04 10:00:00')); - GithubContribution::factory()->for($this->tenant)->create([ + GithubContribution::factory()->create([ 'actor_login' => 'pioneira', 'actor_id' => 1, 'type' => ContributionType::Commit, 'external_ref' => 'commit:abc', 'occurred_at' => '2020-03-30 02:13:45', ]); - GithubContribution::factory()->for($this->tenant)->create([ + GithubContribution::factory()->create([ 'actor_login' => 'recente', 'actor_id' => 2, 'type' => ContributionType::Issue, 'external_ref' => 'issue:1', 'occurred_at' => '2026-06-02', ]); @@ -123,11 +113,11 @@ it('preset "tudo" com repos filtrados ancora na 1ª contribuição daqueles repos', function (): void { $this->travelTo(CarbonImmutable::parse('2026-06-04 10:00:00')); - GithubContribution::factory()->for($this->tenant)->create([ + GithubContribution::factory()->create([ 'repo' => 'he4rt/antigo', 'actor_login' => 'veterano', 'actor_id' => 1, 'type' => ContributionType::Commit, 'external_ref' => 'commit:old', 'occurred_at' => '2018-01-01 00:00:00', ]); - GithubContribution::factory()->for($this->tenant)->create([ + GithubContribution::factory()->create([ 'repo' => 'he4rt/4noobs', 'actor_login' => 'pioneira', 'actor_id' => 2, 'type' => ContributionType::Commit, 'external_ref' => 'commit:abc', 'occurred_at' => '2020-03-30 02:13:45', ]); diff --git a/app-modules/portal/tests/Feature/CommunityRetrospectiveTest.php b/app-modules/portal/tests/Feature/CommunityRetrospectiveTest.php index 3e536350d..75c22ab7d 100644 --- a/app-modules/portal/tests/Feature/CommunityRetrospectiveTest.php +++ b/app-modules/portal/tests/Feature/CommunityRetrospectiveTest.php @@ -3,7 +3,6 @@ declare(strict_types=1); use Carbon\CarbonImmutable; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\IntegrationGithub\Enums\ContributionType; use He4rt\IntegrationGithub\Models\GithubContribution; use He4rt\Portal\Retrospective\CommunityRetrospective; @@ -11,11 +10,9 @@ use Illuminate\Support\Facades\Blade; beforeEach(function (): void { - $this->tenant = Tenant::factory()->create(); $this->since = CarbonImmutable::parse('2026-06-01 00:00:00'); $this->until = CarbonImmutable::parse('2026-06-07 23:59:59'); $this->build = fn (?RetrospectiveFilters $filters = null): array => new CommunityRetrospective( - $this->tenant->id, $filters ?? RetrospectiveFilters::period($this->since, $this->until), )->build(); }); @@ -23,15 +20,15 @@ /** * @param array $attributes */ -function contribution(Tenant $tenant, array $attributes): GithubContribution +function contribution(array $attributes): GithubContribution { - return GithubContribution::factory()->for($tenant)->create($attributes); + return GithubContribution::factory()->create($attributes); } it('agrega contribuições por pessoa com contagem por tipo e total, ordenado desc', function (): void { - contribution($this->tenant, ['actor_login' => 'maria', 'actor_id' => 42, 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false]]); - contribution($this->tenant, ['actor_login' => 'maria', 'actor_id' => 42, 'type' => ContributionType::Issue, 'external_ref' => 'issue:1', 'occurred_at' => '2026-06-03']); - contribution($this->tenant, ['actor_login' => 'joao', 'actor_id' => 7, 'type' => ContributionType::Review, 'external_ref' => 'review:1', 'occurred_at' => '2026-06-03']); + contribution(['actor_login' => 'maria', 'actor_id' => 42, 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false]]); + contribution(['actor_login' => 'maria', 'actor_id' => 42, 'type' => ContributionType::Issue, 'external_ref' => 'issue:1', 'occurred_at' => '2026-06-03']); + contribution(['actor_login' => 'joao', 'actor_id' => 7, 'type' => ContributionType::Review, 'external_ref' => 'review:1', 'occurred_at' => '2026-06-03']); $data = ($this->build)(); @@ -45,18 +42,8 @@ function contribution(Tenant $tenant, array $attributes): GithubContribution }); it('exclui bots do ranking', function (): void { - contribution($this->tenant, ['actor_login' => 'dependabot[bot]', 'type' => ContributionType::Pr, 'external_ref' => 'pr:9', 'occurred_at' => '2026-06-02', 'metadata' => ['is_bot' => true, 'state' => 'open', 'merged' => false]]); - contribution($this->tenant, ['actor_login' => 'maria', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false]]); - - $data = ($this->build)(); - - expect($data['meta']['people'])->toBe(1) - ->and($data['people'][0]['login'])->toBe('maria'); -}); - -it('isola por tenant: ignora contribuições de outra comunidade', function (): void { - contribution($this->tenant, ['actor_login' => 'maria', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false]]); - contribution(Tenant::factory()->create(), ['actor_login' => 'estranho', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false]]); + contribution(['actor_login' => 'dependabot[bot]', 'type' => ContributionType::Pr, 'external_ref' => 'pr:9', 'occurred_at' => '2026-06-02', 'metadata' => ['is_bot' => true, 'state' => 'open', 'merged' => false]]); + contribution(['actor_login' => 'maria', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false]]); $data = ($this->build)(); @@ -65,9 +52,9 @@ function contribution(Tenant $tenant, array $attributes): GithubContribution }); it('inclui PRs fechados sem merge no total, distinguindo por desfecho', function (): void { - contribution($this->tenant, ['actor_login' => 'a', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'closed', 'merged' => false]]); - contribution($this->tenant, ['actor_login' => 'a', 'type' => ContributionType::Pr, 'external_ref' => 'pr:2', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'closed', 'merged' => true]]); - contribution($this->tenant, ['actor_login' => 'a', 'type' => ContributionType::Pr, 'external_ref' => 'pr:3', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false]]); + contribution(['actor_login' => 'a', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'closed', 'merged' => false]]); + contribution(['actor_login' => 'a', 'type' => ContributionType::Pr, 'external_ref' => 'pr:2', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'closed', 'merged' => true]]); + contribution(['actor_login' => 'a', 'type' => ContributionType::Pr, 'external_ref' => 'pr:3', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false]]); $data = ($this->build)(); @@ -83,8 +70,8 @@ function contribution(Tenant $tenant, array $attributes): GithubContribution }); it('conta comentários de issue e de review separadamente', function (): void { - contribution($this->tenant, ['actor_login' => 'maria', 'type' => ContributionType::Comment, 'external_ref' => 'comment:1', 'occurred_at' => '2026-06-02']); - contribution($this->tenant, ['actor_login' => 'maria', 'type' => ContributionType::ReviewComment, 'external_ref' => 'review_comment:1', 'occurred_at' => '2026-06-02']); + contribution(['actor_login' => 'maria', 'type' => ContributionType::Comment, 'external_ref' => 'comment:1', 'occurred_at' => '2026-06-02']); + contribution(['actor_login' => 'maria', 'type' => ContributionType::ReviewComment, 'external_ref' => 'review_comment:1', 'occurred_at' => '2026-06-02']); $data = ($this->build)(); $maria = collect($data['people'])->firstWhere('login', 'maria'); @@ -97,8 +84,8 @@ function contribution(Tenant $tenant, array $attributes): GithubContribution }); it('respeita a janela de período pelo occurred_at', function (): void { - contribution($this->tenant, ['actor_login' => 'maria', 'type' => ContributionType::Issue, 'external_ref' => 'issue:1', 'occurred_at' => '2026-05-30']); - contribution($this->tenant, ['actor_login' => 'maria', 'type' => ContributionType::Issue, 'external_ref' => 'issue:2', 'occurred_at' => '2026-06-03']); + contribution(['actor_login' => 'maria', 'type' => ContributionType::Issue, 'external_ref' => 'issue:1', 'occurred_at' => '2026-05-30']); + contribution(['actor_login' => 'maria', 'type' => ContributionType::Issue, 'external_ref' => 'issue:2', 'occurred_at' => '2026-06-03']); $data = ($this->build)(); @@ -107,9 +94,9 @@ function contribution(Tenant $tenant, array $attributes): GithubContribution }); it('soma additions/deletions/changed_files de PRs em meta e por pessoa', function (): void { - contribution($this->tenant, ['actor_login' => 'maria', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'merged', 'merged' => true, 'additions' => 100, 'deletions' => 20, 'changed_files' => 5]]); - contribution($this->tenant, ['actor_login' => 'maria', 'type' => ContributionType::Pr, 'external_ref' => 'pr:2', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false, 'additions' => 30, 'deletions' => 4, 'changed_files' => 2]]); - contribution($this->tenant, ['actor_login' => 'maria', 'type' => ContributionType::Review, 'external_ref' => 'review:1', 'occurred_at' => '2026-06-02']); + contribution(['actor_login' => 'maria', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'merged', 'merged' => true, 'additions' => 100, 'deletions' => 20, 'changed_files' => 5]]); + contribution(['actor_login' => 'maria', 'type' => ContributionType::Pr, 'external_ref' => 'pr:2', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false, 'additions' => 30, 'deletions' => 4, 'changed_files' => 2]]); + contribution(['actor_login' => 'maria', 'type' => ContributionType::Review, 'external_ref' => 'review:1', 'occurred_at' => '2026-06-02']); $data = ($this->build)(); $maria = collect($data['people'])->firstWhere('login', 'maria'); @@ -122,8 +109,8 @@ function contribution(Tenant $tenant, array $attributes): GithubContribution }); it('expõe refs de PR e issue por pessoa para os chips de atividade', function (): void { - contribution($this->tenant, ['actor_login' => 'maria', 'type' => ContributionType::Pr, 'external_ref' => 'pr:290', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'merged', 'merged' => true, 'title' => 'feat: x', 'url' => 'https://github.com/he4rt/heartdevs.com/pull/290']]); - contribution($this->tenant, ['actor_login' => 'maria', 'type' => ContributionType::Issue, 'external_ref' => 'issue:12', 'occurred_at' => '2026-06-03', 'metadata' => ['title' => 'bug: y', 'url' => 'https://github.com/he4rt/heartdevs.com/issues/12']]); + contribution(['actor_login' => 'maria', 'type' => ContributionType::Pr, 'external_ref' => 'pr:290', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'merged', 'merged' => true, 'title' => 'feat: x', 'url' => 'https://github.com/he4rt/heartdevs.com/pull/290']]); + contribution(['actor_login' => 'maria', 'type' => ContributionType::Issue, 'external_ref' => 'issue:12', 'occurred_at' => '2026-06-03', 'metadata' => ['title' => 'bug: y', 'url' => 'https://github.com/he4rt/heartdevs.com/issues/12']]); $data = ($this->build)(); $maria = collect($data['people'])->firstWhere('login', 'maria'); @@ -136,9 +123,9 @@ function contribution(Tenant $tenant, array $attributes): GithubContribution }); it('ordena os refs de PR do mais recente para o mais antigo (para o "últimos N")', function (): void { - contribution($this->tenant, ['actor_login' => 'maria', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-01', 'metadata' => ['title' => 'antigo', 'url' => 'u1', 'state' => 'merged']]); - contribution($this->tenant, ['actor_login' => 'maria', 'type' => ContributionType::Pr, 'external_ref' => 'pr:2', 'occurred_at' => '2026-06-05', 'metadata' => ['title' => 'recente', 'url' => 'u2', 'state' => 'open']]); - contribution($this->tenant, ['actor_login' => 'maria', 'type' => ContributionType::Pr, 'external_ref' => 'pr:3', 'occurred_at' => '2026-06-03', 'metadata' => ['title' => 'meio', 'url' => 'u3', 'state' => 'open']]); + contribution(['actor_login' => 'maria', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-01', 'metadata' => ['title' => 'antigo', 'url' => 'u1', 'state' => 'merged']]); + contribution(['actor_login' => 'maria', 'type' => ContributionType::Pr, 'external_ref' => 'pr:2', 'occurred_at' => '2026-06-05', 'metadata' => ['title' => 'recente', 'url' => 'u2', 'state' => 'open']]); + contribution(['actor_login' => 'maria', 'type' => ContributionType::Pr, 'external_ref' => 'pr:3', 'occurred_at' => '2026-06-03', 'metadata' => ['title' => 'meio', 'url' => 'u3', 'state' => 'open']]); $maria = collect(($this->build)()['people'])->firstWhere('login', 'maria'); @@ -192,8 +179,8 @@ function contribution(Tenant $tenant, array $attributes): GithubContribution }); it('agrupa PRs por repositório e lista destaques por linhas mudadas', function (): void { - contribution($this->tenant, ['actor_login' => 'maria', 'repo' => 'he4rt/heartdevs.com', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'merged', 'merged' => true, 'title' => 'grande', 'url' => 'u1', 'additions' => 500, 'deletions' => 100, 'changed_files' => 10]]); - contribution($this->tenant, ['actor_login' => 'joao', 'repo' => 'he4rt/bot', 'type' => ContributionType::Pr, 'external_ref' => 'pr:2', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false, 'title' => 'pequeno', 'url' => 'u2', 'additions' => 10, 'deletions' => 2, 'changed_files' => 1]]); + contribution(['actor_login' => 'maria', 'repo' => 'he4rt/heartdevs.com', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'merged', 'merged' => true, 'title' => 'grande', 'url' => 'u1', 'additions' => 500, 'deletions' => 100, 'changed_files' => 10]]); + contribution(['actor_login' => 'joao', 'repo' => 'he4rt/bot', 'type' => ContributionType::Pr, 'external_ref' => 'pr:2', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false, 'title' => 'pequeno', 'url' => 'u2', 'additions' => 10, 'deletions' => 2, 'changed_files' => 1]]); $data = ($this->build)(); @@ -206,9 +193,9 @@ function contribution(Tenant $tenant, array $attributes): GithubContribution }); it('aplica filtros de tipo, repo, desfecho e pessoa', function (): void { - contribution($this->tenant, ['actor_login' => 'maria', 'repo' => 'he4rt/a', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'merged', 'merged' => true]]); - contribution($this->tenant, ['actor_login' => 'maria', 'repo' => 'he4rt/a', 'type' => ContributionType::Pr, 'external_ref' => 'pr:2', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false]]); - contribution($this->tenant, ['actor_login' => 'joao', 'repo' => 'he4rt/b', 'type' => ContributionType::Review, 'external_ref' => 'review:1', 'occurred_at' => '2026-06-02']); + contribution(['actor_login' => 'maria', 'repo' => 'he4rt/a', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'merged', 'merged' => true]]); + contribution(['actor_login' => 'maria', 'repo' => 'he4rt/a', 'type' => ContributionType::Pr, 'external_ref' => 'pr:2', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false]]); + contribution(['actor_login' => 'joao', 'repo' => 'he4rt/b', 'type' => ContributionType::Review, 'external_ref' => 'review:1', 'occurred_at' => '2026-06-02']); $filters = RetrospectiveFilters::make($this->since, $this->until, repos: ['he4rt/a'], types: ['pr'], outcome: 'merged', person: 'maria'); $data = ($this->build)($filters); @@ -220,7 +207,7 @@ function contribution(Tenant $tenant, array $attributes): GithubContribution }); it('keeps only truly-closed PRs under outcome=closed: !(A ∧ ¬B) ≡ ¬A ∨ B', function (string $state, bool $merged, bool $shouldKeep): void { - contribution($this->tenant, [ + contribution([ 'actor_login' => 'a', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', @@ -242,8 +229,8 @@ function contribution(Tenant $tenant, array $attributes): GithubContribution ]); it('ordena o ranking por linhas quando sort=lines', function (): void { - contribution($this->tenant, ['actor_login' => 'poucas', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false, 'additions' => 10, 'deletions' => 0]]); - contribution($this->tenant, ['actor_login' => 'muitas', 'type' => ContributionType::Pr, 'external_ref' => 'pr:2', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false, 'additions' => 900, 'deletions' => 50]]); + contribution(['actor_login' => 'poucas', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false, 'additions' => 10, 'deletions' => 0]]); + contribution(['actor_login' => 'muitas', 'type' => ContributionType::Pr, 'external_ref' => 'pr:2', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false, 'additions' => 900, 'deletions' => 50]]); $filters = RetrospectiveFilters::make($this->since, $this->until, sort: 'lines'); $data = ($this->build)($filters); diff --git a/app-modules/profile/database/factories/ProfileFactory.php b/app-modules/profile/database/factories/ProfileFactory.php index b6c062a8b..5fc6f1436 100644 --- a/app-modules/profile/database/factories/ProfileFactory.php +++ b/app-modules/profile/database/factories/ProfileFactory.php @@ -4,7 +4,6 @@ namespace He4rt\Profile\Database\Factories; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\Profile\Enums\SeniorityLevel; use He4rt\Profile\Enums\SocialPlatform; @@ -24,7 +23,6 @@ public function definition(): array { return [ 'user_id' => User::factory(), - 'tenant_id' => Tenant::factory(), 'nickname' => null, 'birthdate' => null, 'about' => null, @@ -37,6 +35,28 @@ public function definition(): array ]; } + /** + * Reuse the profile that {@see \He4rt\Identity\User\Observers\UserObserver} + * already created for the user instead of inserting a second row, which + * would violate the (now tenant-free) unique constraint on `user_id`. + * + * @param array $attributes + */ + public function newModel(array $attributes = []): Profile + { + $userId = $attributes['user_id'] ?? null; + + if ($userId !== null) { + $existing = Profile::query()->where('user_id', $userId)->first(); + + if ($existing !== null) { + return $existing->fill($attributes); + } + } + + return parent::newModel($attributes); + } + public function complete(): self { return $this->state(fn (): array => [ diff --git a/app-modules/profile/src/Models/Profile.php b/app-modules/profile/src/Models/Profile.php index 433fc64e5..d2710e248 100644 --- a/app-modules/profile/src/Models/Profile.php +++ b/app-modules/profile/src/Models/Profile.php @@ -5,7 +5,6 @@ namespace He4rt\Profile\Models; use Carbon\CarbonInterface; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\Profile\Casts\AsWorkPreferences; use He4rt\Profile\Data\WorkPreferences; @@ -27,7 +26,6 @@ /** * @property string $id * @property string $user_id - * @property string $tenant_id * @property string|null $nickname * @property CarbonInterface|null $birthdate * @property string|null $about @@ -53,7 +51,6 @@ final class Profile extends Model protected $fillable = [ 'user_id', - 'tenant_id', 'nickname', 'birthdate', 'about', @@ -68,12 +65,11 @@ final class Profile extends Model 'preferences', ]; - public static function ensureExists(string $userId, string $tenantId): self + public static function ensureExists(string $userId): self { /** @var Profile $profile */ $profile = self::query()->firstOrCreate([ 'user_id' => $userId, - 'tenant_id' => $tenantId, ], [ 'available_for_proposals' => false, ]); @@ -89,14 +85,6 @@ public function user(): BelongsTo return $this->belongsTo(User::class); } - /** - * @return BelongsTo - */ - public function tenant(): BelongsTo - { - return $this->belongsTo(Tenant::class); - } - /** * @return HasMany */ @@ -125,6 +113,11 @@ public function skills(): BelongsToMany ->withTimestamps(); } + protected static function newFactory(): ProfileFactory + { + return ProfileFactory::new(); + } + /** * @return Attribute|null> */ diff --git a/app-modules/profile/tests/Feature/ProfileCreationTest.php b/app-modules/profile/tests/Feature/ProfileCreationTest.php index 369adad0a..3ba724aba 100644 --- a/app-modules/profile/tests/Feature/ProfileCreationTest.php +++ b/app-modules/profile/tests/Feature/ProfileCreationTest.php @@ -2,23 +2,16 @@ declare(strict_types=1); -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use He4rt\Profile\Models\Profile; -test('profile is created when user joins tenant', function (): void { +test('profile is created when a user is created', function (): void { $user = User::factory()->create([ 'username' => 'danielhe4rt', ]); - $tenant = Tenant::factory()->create([ - 'name' => 'He4rt Developers', - ]); - - $tenant->members()->attach($user); $profile = Profile::query() ->whereBelongsTo($user) - ->whereBelongsTo($tenant) ->sole(); expect($profile->nickname)->toBeNull() @@ -30,56 +23,27 @@ $user = User::factory()->create([ 'username' => 'danielhe4rt', ]); - $tenant = Tenant::factory()->create([ - 'name' => 'He4rt Developers', - ]); - $existingProfile = Profile::factory()->create([ - 'user_id' => $user->id, - 'tenant_id' => $tenant->id, - 'headline' => 'Existing headline', - ]); + $existingProfile = Profile::query()->whereBelongsTo($user)->sole(); + $existingProfile->update(['headline' => 'Existing headline']); - $tenant->members()->attach($user); + Profile::ensureExists((string) $user->id); expect(Profile::query() ->whereBelongsTo($user) - ->whereBelongsTo($tenant) ->count())->toBe(1) ->and($existingProfile->fresh()->headline)->toBe('Existing headline'); }); -test('member can have independent profiles in multiple tenants', function (): void { - $user = User::factory()->create([ - 'username' => 'danielhe4rt', - ]); - $firstTenant = Tenant::factory()->create([ - 'name' => 'He4rt Developers', - ]); - $secondTenant = Tenant::factory()->create([ - 'name' => 'Outro Tenant', - ]); - - $firstTenant->members()->attach($user); - $secondTenant->members()->attach($user); - - $profiles = Profile::query() - ->whereBelongsTo($user) - ->get(); - - $tenantIds = $profiles->pluck('tenant_id')->sort()->values()->all(); - $expectedTenantIds = collect([$firstTenant->id, $secondTenant->id])->sort()->values()->all(); - - expect($profiles)->toHaveCount(2) - ->and($tenantIds)->toBe($expectedTenantIds) - ->and($profiles->pluck('id')->unique())->toHaveCount(2); -}); - test('factory creates a valid profile and supports optional states', function (): void { - $profile = Profile::factory()->complete()->create(); + $user = User::factory()->create(); + // UserObserver already created a blank profile for this user; replace it + // so the factory's own insert does not collide with the unique user_id. + Profile::query()->where('user_id', $user->id)->delete(); + + $profile = Profile::factory()->complete()->create(['user_id' => $user->id]); expect($profile->user_id)->not->toBeNull() - ->and($profile->tenant_id)->not->toBeNull() ->and($profile->nickname)->not->toBeNull() ->and($profile->headline)->not->toBeNull() ->and($profile->available_for_proposals)->toBeTrue(); diff --git a/app/Console/Commands/GenerateDiscordTenant.php b/app/Console/Commands/GenerateDiscordTenant.php deleted file mode 100644 index 3e1e821a0..000000000 --- a/app/Console/Commands/GenerateDiscordTenant.php +++ /dev/null @@ -1,43 +0,0 @@ -afterCreating(function (Tenant $tenant): void { - $tenant - ->providers() - ->create([ - 'tenant_id' => $tenant->getKey(), - 'type' => IdentityType::External, - 'provider' => IdentityProvider::Discord, - 'credentials_type' => CredentialsType::OAuth2, - 'credentials' => ClientAccessManager::make(), - 'external_account_id' => $this->argument('guildId'), - 'connected_at' => now(), - ]); - }) - ->create(); - - $this->info('Tenant created successfully!'); - } -} diff --git a/app/Console/Commands/ImportDiscordMembers.php b/app/Console/Commands/ImportDiscordMembers.php index 171eeb614..f5bb37aa1 100644 --- a/app/Console/Commands/ImportDiscordMembers.php +++ b/app/Console/Commands/ImportDiscordMembers.php @@ -7,11 +7,9 @@ use He4rt\Identity\ExternalIdentity\Actions\CreateAccountByExternalIdentity; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Console\Attributes\Description; use Illuminate\Console\Attributes\Signature; use Illuminate\Console\Command; -use Illuminate\Contracts\Database\Query\Builder; use Illuminate\Support\Facades\Storage; #[Description(description: 'Import Discord members and GitHub connections from JSON files into the database')] @@ -36,7 +34,6 @@ public function handle(CreateAccountByExternalIdentity $createAccount): void $membersData = json_decode((string) Storage::disk('local')->get($membersFile), associative: true); $members = $membersData['members'] ?? []; - $guildId = $membersData['guild_id'] ?? config('he4rt.discord.guild_id'); $this->info('Loaded '.count($members).sprintf(' members from %s (scraped: %s)', $membersFile, $membersData['scraped_at'])); @@ -54,23 +51,7 @@ public function handle(CreateAccountByExternalIdentity $createAccount): void $this->warn(sprintf('GitHub file not found (%s), skipping GitHub imports.', $githubFile)); } - // Find tenant by guild ID - $tenant = Tenant::query() - ->whereHas('providers', fn (Builder $q) => $q - ->where('provider', IdentityProvider::Discord->value) - ->where('provider_id', $guildId) - ) - ->first(); - - if (!$tenant) { - $this->error(sprintf('No tenant found for guild ID %s. Run `php artisan misc:generate-discord-tenant %s` first.', $guildId, $guildId)); - - return; - } - - $this->info(sprintf('Importing into tenant: %s (ID: %d)', $tenant->name, $tenant->id)); - - $stats = ['created' => 0, 'existing' => 0, 'github_set' => 0, 'github_skipped' => 0, 'tenant_attached' => 0]; + $stats = ['created' => 0, 'existing' => 0, 'github_set' => 0, 'github_skipped' => 0]; $csvRows = []; $isDryRun = $this->option('dry-run'); $this->option('force'); @@ -106,7 +87,6 @@ public function handle(CreateAccountByExternalIdentity $createAccount): void if (!$isDryRun) { $identity = $createAccount->handle( - tenantId: $tenant->id, provider: IdentityProvider::Discord, providerId: $discordId, username: $username, @@ -115,12 +95,6 @@ public function handle(CreateAccountByExternalIdentity $createAccount): void } } - // Attach user to tenant if not already - if ($user && !$isDryRun && !$tenant->members()->where('user_id', $user->id)->exists()) { - $tenant->members()->attach($user->id); - $stats['tenant_attached']++; - } - // GitHub URL import removed — legacy information() model no longer exists. // GitHub is now derived from ExternalIdentity (OAuth) connections. @@ -160,7 +134,6 @@ public function handle(CreateAccountByExternalIdentity $createAccount): void [$prefix.'Existing users found', $stats['existing']], [$prefix.'GitHub URLs set', $stats['github_set']], [$prefix.'GitHub URLs skipped (existing)', $stats['github_skipped']], - [$prefix.'Users attached to tenant', $stats['tenant_attached']], ] ); } diff --git a/app/Http/Middleware/GuestTenantIdentifier.php b/app/Http/Middleware/GuestTenantIdentifier.php deleted file mode 100644 index 74e3215da..000000000 --- a/app/Http/Middleware/GuestTenantIdentifier.php +++ /dev/null @@ -1,42 +0,0 @@ -hasTenancy()) { - return $next($request); - } - - if (!$request->route()->hasParameter('tenant')) { - return $next($request); - } - - $tenantSlug = $request->route()->parameter('tenant'); - - if (!is_string($tenantSlug)) { - return $next($request); - } - - $tenant = $panel->getTenant($tenantSlug); - Filament::setTenant($tenant, isQuiet: true); - - return $next($request); - } -} diff --git a/app/Livewire/ConnectionHub.php b/app/Livewire/ConnectionHub.php index b0f71acbe..081562764 100644 --- a/app/Livewire/ConnectionHub.php +++ b/app/Livewire/ConnectionHub.php @@ -8,7 +8,6 @@ use He4rt\Identity\Auth\Actions\MergeAccountsAction; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Contracts\View\View; use Illuminate\Database\Eloquent\Collection; @@ -19,8 +18,6 @@ class ConnectionHub extends Component { public string $panel = 'app'; - public string $tenantId = ''; - public bool $showMergeModal = false; /** @var array|null */ @@ -29,7 +26,6 @@ class ConnectionHub extends Component public function mount(): void { $this->panel = filament()->getCurrentPanel()?->getId() ?? 'app'; - $this->tenantId = filament()->getTenant()?->getKey() ?? ''; $this->checkPendingMerge(); } @@ -55,10 +51,7 @@ public function render(): View public function connect(IdentityProvider $provider): void { - $tenant = Tenant::query()->find($this->tenantId); - $this->redirect(route('oauth.redirect', [ - 'tenant' => $tenant->domain ?? $tenant->slug, 'panel' => $this->panel, 'provider' => $provider->value, ])); @@ -94,7 +87,7 @@ public function confirmMerge(MergeAccountsAction $action): void ->success() ->send(); - $this->redirect(filament()->getCurrentPanel()->getUrl(filament()->getTenant())); + $this->redirect(filament()->getCurrentPanel()->getUrl()); } public function cancelMerge(): void @@ -108,7 +101,6 @@ public function disconnect(IdentityProvider $provider): void { $identity = auth()->user() ->providers() - ->where('tenant_id', $this->tenantId) ->where('provider', $provider->value) ->whereNotNull('connected_at') ->whereNull('disconnected_at') @@ -135,7 +127,6 @@ public function disconnectById(string $identityId): void { $identity = ExternalIdentity::query() ->where('id', $identityId) - ->where('tenant_id', $this->tenantId) ->whereNotNull('connected_at') ->whereNull('disconnected_at') ->first(); @@ -201,14 +192,13 @@ private function getMergeTarget(): ?array /** @return Collection */ private function getUserProviders(): Collection { - return auth()->user()->providers()->where('tenant_id', $this->tenantId)->get(); + return auth()->user()->providers()->get(); } /** @return Collection */ private function getTenantProviders(): Collection { return ExternalIdentity::query() - ->where('tenant_id', $this->tenantId) ->where('model_type', 'tenant') ->whereNotNull('connected_at') ->whereNull('disconnected_at') diff --git a/app/Providers/Filament/AdminPanelProvider.php b/app/Providers/Filament/AdminPanelProvider.php index 12abd930f..0cb7aacf7 100644 --- a/app/Providers/Filament/AdminPanelProvider.php +++ b/app/Providers/Filament/AdminPanelProvider.php @@ -13,10 +13,7 @@ use Filament\Panel; use Filament\PanelProvider; use Filament\Support\Colors\Color; -use He4rt\Identity\Tenant\Models\Tenant; -use He4rt\PanelAdmin\Http\Middleware\ApplyTenantScopes; use He4rt\PanelAdmin\Pages\Dashboard; -use He4rt\PanelAdmin\Tenant\EditTenantProfilePage; use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Cookie\Middleware\EncryptCookies; use Illuminate\Foundation\Http\Middleware\PreventRequestForgery; @@ -46,8 +43,6 @@ public function panel(Panel $panel): Panel ]; }) ->sidebarCollapsibleOnDesktop() - ->tenant(Tenant::class, slugAttribute: 'slug') - ->tenantProfile(EditTenantProfilePage::class) ->viteTheme('resources/css/filament/admin/theme.css') ->middleware([ EncryptCookies::class, @@ -65,9 +60,6 @@ public function panel(Panel $panel): Panel ]) ->authMiddleware([ Authenticate::class, - ]) - ->tenantMiddleware([ - ApplyTenantScopes::class, ]); } } diff --git a/app/Providers/Filament/AppPanelProvider.php b/app/Providers/Filament/AppPanelProvider.php index 3d225ca57..10e2d7a6e 100644 --- a/app/Providers/Filament/AppPanelProvider.php +++ b/app/Providers/Filament/AppPanelProvider.php @@ -12,7 +12,6 @@ use Filament\Panel; use Filament\PanelProvider; use Filament\Support\Colors\Color; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\PanelApp\Pages\LoginPage; use He4rt\PanelApp\Pages\ProfilePage; use He4rt\PanelApp\Pages\ThreadPage; @@ -30,7 +29,7 @@ class AppPanelProvider extends PanelProvider public function panel(Panel $panel): Panel { - $panel + return $panel ->id($this->panelId->value) ->path($this->panelId->value) ->login(LoginPage::class) @@ -63,11 +62,5 @@ public function panel(Panel $panel): Panel ->authMiddleware([ Authenticate::class, ]); - - app()->isProduction() - ? $panel->tenantDomain('{tenant:domain}')->tenant(model: Tenant::class, slugAttribute: 'domain') - : $panel->tenant(model: Tenant::class, slugAttribute: 'slug'); - - return $panel; } } diff --git a/config/he4rt.php b/config/he4rt.php index e196597c2..135f332f9 100644 --- a/config/he4rt.php +++ b/config/he4rt.php @@ -6,7 +6,6 @@ return [ 'admins' => env('HE4RT_ADMINS_USERNAMES', 'danielhe4rt,kaster'), - 'main_tenant' => env('HE4RT_MAIN_TENANT', 'he4rt'), 'season' => [ 'id' => (int) env('HE4RT_SEASON_ID', 2), 'minimum_level_for_retro' => env('HE4RT_SEASON_MIN_LEVEL', 3), diff --git a/config/services.php b/config/services.php index 25ec39757..8a5fa40e6 100644 --- a/config/services.php +++ b/config/services.php @@ -51,6 +51,8 @@ 'enabled' => env('TWITCH_OAUTH_ENABLED', default: true), 'eventsub_secret' => env('TWITCH_EVENTSUB_SECRET', 'h34rt-tw1tch-3v3ntsub-s3cr3t-k3y'), 'eventsub_callback' => env('TWITCH_EVENTSUB_CALLBACK'), + 'broadcaster_login' => env('TWITCH_BROADCASTER_LOGIN'), + 'broadcaster_id' => env('TWITCH_BROADCASTER_ID'), ], 'devto' => [ diff --git a/database/migrations/2026_03_21_192332_deduplicate_external_identities.php b/database/migrations/2026_03_21_192332_deduplicate_external_identities.php index ed17acc05..f8f249366 100644 --- a/database/migrations/2026_03_21_192332_deduplicate_external_identities.php +++ b/database/migrations/2026_03_21_192332_deduplicate_external_identities.php @@ -4,6 +4,7 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Schema; use Illuminate\Support\Str; return new class extends Migration @@ -38,9 +39,14 @@ public function up(): void ->where('external_identity_id', $dup->old_ei_id) ->update(['external_identity_id' => $dup->new_ei_id]); + // `tenant_id` only exists on pre-teardown databases; select it + // conditionally so this migration still replays after the column + // has been dropped by the multi-tenancy removal. + $hasTenantColumn = Schema::hasColumn('characters', 'tenant_id'); + $oldCharacter = DB::table('characters') ->where('user_id', $dup->old_user_id) - ->select(['experience', 'tenant_id']) + ->select($hasTenantColumn ? ['experience', 'tenant_id'] : ['experience']) ->first(); $oldXp = $oldCharacter->experience ?? 0; @@ -57,15 +63,20 @@ public function up(): void } else { logger()->warning(sprintf('Migration: Creating missing character for user %s with %s XP from old user %s', $dup->new_user_id, $oldXp, $dup->old_user_id)); - DB::table('characters')->insert([ + $newCharacter = [ 'id' => Str::uuid()->toString(), 'user_id' => $dup->new_user_id, - 'tenant_id' => $oldCharacter->tenant_id, 'experience' => $oldXp, 'reputation' => 0, 'created_at' => now(), 'updated_at' => now(), - ]); + ]; + + if ($hasTenantColumn) { + $newCharacter['tenant_id'] = $oldCharacter->tenant_id; + } + + DB::table('characters')->insert($newCharacter); } } diff --git a/database/migrations/2026_05_01_200459_delete_orphaned_tenant_records.php b/database/migrations/2026_05_01_200459_delete_orphaned_tenant_records.php index 022fc3bff..26b6fc19e 100644 --- a/database/migrations/2026_05_01_200459_delete_orphaned_tenant_records.php +++ b/database/migrations/2026_05_01_200459_delete_orphaned_tenant_records.php @@ -4,6 +4,7 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Schema; return new class extends Migration { @@ -42,12 +43,20 @@ public function up(): void 'tenant_users', ]; + // Guarded so a replay after multi-tenancy removal is a no-op instead of + // referencing dropped `tenant_id` columns / the dropped `tenants` table. DB::transaction(static function () use ($tables, $tenantId): void { foreach ($tables as $table) { + if (!Schema::hasColumn($table, 'tenant_id')) { + continue; + } + DB::table($table)->where('tenant_id', $tenantId)->delete(); } - DB::table('tenants')->where('id', $tenantId)->delete(); + if (Schema::hasTable('tenants')) { + DB::table('tenants')->where('id', $tenantId)->delete(); + } }); } }; diff --git a/database/seeders/BaseSeeder.php b/database/seeders/BaseSeeder.php index 4b7cbb05d..798aaa28a 100644 --- a/database/seeders/BaseSeeder.php +++ b/database/seeders/BaseSeeder.php @@ -9,7 +9,6 @@ use He4rt\Gamification\Character\Models\Character; use He4rt\Gamification\Season\Models\Season; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use He4rt\Identity\User\Models\User; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\Hash; @@ -26,23 +25,11 @@ public function run(): void 'password' => Hash::make('admin'), ]); - $he4rt = Tenant::factory() - ->for($admin, 'owner') - ->afterCreating(fn (Tenant $tenant) => $tenant->members()->attach($admin)) - ->withDiscordProvider('1442327864052547656') - ->create([ - 'name' => 'He4rt Developers', - 'slug' => 'he4rt', - 'domain' => 'he4rtdevs.test', - ]); - Character::factory() ->recycle($admin) - ->recycle($he4rt) ->createOne(); Season::factory() - ->recycle($he4rt) ->create([ 'name' => 'Season 1', 'started_at' => now()->subMonth(), @@ -51,17 +38,14 @@ public function run(): void ExternalIdentity::factory() ->recycle($admin) - ->recycle($he4rt) ->count(2) ->create(['email' => $admin->email]); Meeting::factory() ->count(2) - ->recycle($he4rt) ->create(); Message::factory() - ->recycle($he4rt) ->count(2) ->create(); } diff --git a/database/seeders/PersonalDiscordServerSeeder.php b/database/seeders/PersonalDiscordServerSeeder.php deleted file mode 100644 index 712dab22e..000000000 --- a/database/seeders/PersonalDiscordServerSeeder.php +++ /dev/null @@ -1,61 +0,0 @@ -string('he4rt.discord.guild_id'); - - if (blank($guildId)) { - $this->command->error('HE4RT_DISCORD_GUILD não está definido no .env'); - - return; - } - - if (ExternalIdentity::query()->where('external_account_id', $guildId)->exists()) { - $this->command->warn(sprintf('Guild %s já está cadastrado. Nada foi alterado.', $guildId)); - - return; - } - - $owner = User::query()->first(); - - $tenant = Tenant::factory() - ->for($owner, 'owner') - ->afterCreating(fn (Tenant $tenant) => $tenant->members()->attach($owner)) - ->create([ - 'name' => 'Servidor Pessoal', - 'slug' => 'personal', - 'active' => true, - ]); - - ExternalIdentity::query()->create([ - 'tenant_id' => $tenant->getKey(), - 'model_type' => (new Tenant)->getMorphClass(), - 'model_id' => $tenant->getKey(), - 'type' => IdentityType::External, - 'provider' => IdentityProvider::Discord, - 'credentials_type' => CredentialsType::ApiKey, - 'credentials' => ClientAccessManager::make(), - 'external_account_id' => $guildId, - 'connected_at' => now(), - ]); - - $this->command->info('Servidor pessoal cadastrado com sucesso!'); - $this->command->info(sprintf(' Tenant: %s (ID: %s)', $tenant->name, $tenant->getKey())); - $this->command->info(' Guild ID: '.$guildId); - } -} diff --git a/tests/.pest/shards.json b/tests/.pest/shards.json index 86a9b9b78..79d7704bd 100644 --- a/tests/.pest/shards.json +++ b/tests/.pest/shards.json @@ -1,140 +1,143 @@ { "timings": { - "Appmodules\\activity\\tests\\Unit\\Actions\\NewMessageTest": 2.095, - "Appmodules\\activity\\tests\\Unit\\Actions\\NewVoiceMessageTest": 0.8115, - "Appmodules\\activity\\tests\\Unit\\Actions\\RecordVoicePresenceTest": 1.1597, - "Appmodules\\activity\\tests\\Unit\\Queries\\GetCurrentVoiceChannelTest": 1.1538, - "Appmodules\\activity\\tests\\Unit\\Timeline\\CreatePostTest": 0.5821, - "Appmodules\\activity\\tests\\Unit\\Timeline\\CreateReplyTest": 0.5406, - "Appmodules\\activity\\tests\\Unit\\Timeline\\DeleteReplyTest": 0.5695, - "Appmodules\\activity\\tests\\Unit\\Timeline\\PublishModerationEntryTest": 0.7663, - "Appmodules\\activity\\tests\\Unit\\Timeline\\TimelineFeedQueryTest": 0.8555, - "Appmodules\\activity\\tests\\Unit\\Timeline\\TimelineModelTest": 0.4472, - "Appmodules\\activity\\tests\\Unit\\Timeline\\TogglePinPostTest": 0.6389, - "Appmodules\\activity\\tests\\Unit\\Tracking\\ApproveInteractionTest": 0.1645, - "Appmodules\\activity\\tests\\Unit\\Tracking\\CalculateRewardTest": 0.5703, - "Appmodules\\activity\\tests\\Unit\\Tracking\\ClassifyActivityTest": 0.1508, - "Appmodules\\activity\\tests\\Unit\\Tracking\\RejectInteractionTest": 0.1945, - "Appmodules\\activity\\tests\\Unit\\Tracking\\TrackActivityTest": 0.4563, - "Appmodules\\botdiscord\\tests\\Feature\\Actions\\VoiceChannel\\HandleStateChannelActionTest": 0.2335, - "Appmodules\\botdiscord\\tests\\Feature\\Events\\RawGatewayEventTest": 0.2337, - "Appmodules\\botdiscord\\tests\\Feature\\Listeners\\AutoExecuteActionTest": 0.5523, - "Appmodules\\botdiscord\\tests\\Feature\\Listeners\\NotifyModerationChannelTest": 0.5776, - "Appmodules\\botdiscord\\tests\\Feature\\Moderation\\DiscordModerationAdapterTest": 5.7378, - "Appmodules\\botdiscord\\tests\\Feature\\SlashCommands\\EditProfileCommandTest": 0.5881, - "Appmodules\\botdiscord\\tests\\Feature\\SlashCommands\\IntroductionCommandTest": 0.3027, - "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceChannel\\JoiningChannelActionTest": 0.0536, - "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceChannel\\LeftChannelActionTest": 0.1009, - "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceTransitionResolverTest": 0.301, - "Appmodules\\botdiscord\\tests\\Unit\\Moderation\\ModerationEmbedBuilderTest": 0.6902, - "Appmodules\\botdiscord\\tests\\Unit\\SlashCommands\\EditProfileModalValidationTest": 0.4961, - "Appmodules\\docs\\tests\\Feature\\Discovery\\CacheDocsCommandTest": 1.8584, - "Appmodules\\docs\\tests\\Feature\\Discovery\\DocsRoutingTest": 0.9489, - "Appmodules\\docs\\tests\\Unit\\Discovery\\BuildTreeTest": 0.4992, - "Appmodules\\docs\\tests\\Unit\\Discovery\\DiscoveryIntegrationTest": 0.2006, - "Appmodules\\docs\\tests\\Unit\\Discovery\\DocumentTierTest": 0.4947, - "Appmodules\\docs\\tests\\Unit\\Discovery\\FoundationsTest": 0.9454, - "Appmodules\\docs\\tests\\Unit\\Discovery\\ParsingTest": 0.3025, - "Appmodules\\docs\\tests\\Unit\\Discovery\\StrategiesTest": 0.4243, - "Appmodules\\economy\\tests\\Feature\\EconomyFlowTest": 0.3033, - "Appmodules\\economy\\tests\\Unit\\CreditTest": 0.1546, - "Appmodules\\economy\\tests\\Unit\\DebitTest": 0.3025, - "Appmodules\\economy\\tests\\Unit\\TransferTest": 0.4794, - "Appmodules\\gamification\\tests\\Unit\\Character\\GenerateTextExperienceTest": 0.704, - "Appmodules\\gamification\\tests\\Unit\\Character\\LevelCalculationTest": 2.0406, - "Appmodules\\gamification\\tests\\Unit\\Character\\VoiceExperienceTest": 0.7491, - "Appmodules\\identity\\tests\\Feature\\Auth\\DetectMergeConflictTest": 0.98, - "Appmodules\\identity\\tests\\Feature\\Auth\\EnrichUserOnFirstLoginTest": 0.5563, - "Appmodules\\identity\\tests\\Feature\\Auth\\FindOrCreateUserByProviderTest": 1.5236, - "Appmodules\\identity\\tests\\Feature\\Auth\\HandleOAuthCallbackActionTest": 0.3237, - "Appmodules\\identity\\tests\\Feature\\Auth\\MergeAccountsActionTest": 1.773, - "Appmodules\\identity\\tests\\Unit\\ExternalIdentity\\FindExternalIdentityTest": 0.8692, - "Appmodules\\integrationdevto\\tests\\Feature\\DevToOAuthTest": 0.1746, - "Appmodules\\integrationdevto\\tests\\Feature\\SyncDevToArticlesTest": 0.404, - "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\ImportDiscordMessageTest": 6.8537, - "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\ImportDiscordProfileTest": 2.2039, - "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\MergeDuplicateDiscordProfilesTest": 2.92, - "Appmodules\\integrationdiscord\\tests\\Feature\\Models\\DiscordEventLogTest": 0.1222, - "Appmodules\\integrationdiscord\\tests\\Feature\\OAuth\\DiscordOAuthClientTest": 0.177, - "Appmodules\\integrationdiscord\\tests\\Unit\\DiscordMessageAdapterTest": 2.2978, - "Appmodules\\integrationdiscord\\tests\\Unit\\Sync\\PurgeUnusedInvitesActionTest": 11.8086, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\DiscordConnectorTest": 0.1482, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\DiscordRoleResolverTest": 0.2467, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateBanTest": 0.1543, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateDmChannelTest": 0.1472, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateMessageTest": 0.1466, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\DeleteInviteTest": 0.1051, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\DeleteMessageTest": 0.0979, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ExchangeCodeForTokenTest": 0.1463, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\GetCurrentUserTest": 0.1469, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\GetMemberTest": 0.1053, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ListGuildInvitesTest": 0.0985, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ModifyMemberTest": 0.1462, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\RemoveMemberTest": 0.0975, - "Appmodules\\integrationgithub\\tests\\Feature\\BackfillGithubCommandTest": 0.549, - "Appmodules\\integrationgithub\\tests\\Feature\\BackfillGithubRepositoryJobTest": 0.2128, - "Appmodules\\integrationgithub\\tests\\Feature\\BackfillRepositoryTest": 1.8143, - "Appmodules\\integrationgithub\\tests\\Feature\\GitHubOAuthClientTest": 0.2886, - "Appmodules\\integrationgithub\\tests\\Feature\\GithubContributionTest": 0.4922, - "Appmodules\\integrationgithub\\tests\\Feature\\GithubRepositoryTest": 0.6587, - "Appmodules\\integrationgithub\\tests\\Feature\\GithubWebhookTest": 1.3299, - "Appmodules\\integrationtwitch\\tests\\Feature\\LinkTwitchChannelCommandTest": 0.413, - "Appmodules\\integrationtwitch\\tests\\Feature\\SubscribeTwitchEventsCommandTest": 0.5222, - "Appmodules\\integrationtwitch\\tests\\Feature\\TwitchWebhookTest": 0.9796, - "Appmodules\\integrationwhatsapp\\tests\\Feature\\Ingest\\StoreWhatsAppEventActionTest": 0.4336, - "Appmodules\\integrationwhatsapp\\tests\\Feature\\Ingest\\WebhookIngestTest": 0.6951, - "Appmodules\\moderation\\tests\\Feature\\AppealWorkflowTest": 1.077, - "Appmodules\\moderation\\tests\\Feature\\Appeals\\FileAppealTest": 1.3777, - "Appmodules\\moderation\\tests\\Feature\\Appeals\\ReviewAppealTest": 1.2935, - "Appmodules\\moderation\\tests\\Feature\\Audit\\AuditLogTest": 0.8392, - "Appmodules\\moderation\\tests\\Feature\\CaseWorkflowTest": 0.5974, - "Appmodules\\moderation\\tests\\Feature\\Cases\\SubmitReportTest": 1.5618, - "Appmodules\\moderation\\tests\\Feature\\Classification\\RouteDecisionTest": 3.968, - "Appmodules\\moderation\\tests\\Feature\\Classification\\RuleBasedClassifierTest": 0.7962, - "Appmodules\\moderation\\tests\\Feature\\Enforcement\\ExecuteActionTest": 1.2011, - "Appmodules\\moderation\\tests\\Feature\\ModelRelationshipTest": 1.8584, - "Appmodules\\moderation\\tests\\Feature\\PipelineTest": 1.0644, - "Appmodules\\moderation\\tests\\Feature\\Pipeline\\ClassifyAndRouteTest": 0.4463, - "Appmodules\\moderation\\tests\\Feature\\Pipeline\\ScreenContentTest": 0.3201, - "Appmodules\\moderation\\tests\\Feature\\Pipeline\\SubmitForModerationTest": 0.3239, - "Appmodules\\moderation\\tests\\Feature\\Platform\\WebAdapterTest": 2.0921, - "Appmodules\\moderation\\tests\\Unit\\ClassifierTest": 0.4152, - "Appmodules\\moderation\\tests\\Unit\\DTOTest": 0.3993, - "Appmodules\\moderation\\tests\\Unit\\EnumTest": 0.3526, - "Appmodules\\moderation\\tests\\Unit\\ModerationRuleMatchTest": 0.2867, - "Appmodules\\moderation\\tests\\Unit\\PenaltyAdvisorTest": 2.1791, - "Appmodules\\moderation\\tests\\Unit\\PlatformRegistryTest": 0.2098, - "Appmodules\\moderation\\tests\\Unit\\RouteCaseActionTest": 0.8256, - "Appmodules\\paneladmin\\tests\\Feature\\AdminPanelAccessTest": 0.5649, - "Appmodules\\paneladmin\\tests\\Feature\\ApplyTenantScopesTest": 0.266, - "Appmodules\\paneladmin\\tests\\Feature\\Github\\GithubRepositoryResourceTest": 1.301, - "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\PeriodStatsTest": 0.2831, - "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\AppealQueueTest": 3.4181, - "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\ModerationDashboardTest": 2.8877, - "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\ModerationQueueTest": 2.5896, - "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\TestRuleActionTest": 1.1423, - "Appmodules\\panelapp\\tests\\Feature\\ProfilePageTest": 6.1316, - "Appmodules\\panelapp\\tests\\Feature\\Timeline\\ThreadPageTest": 1.6969, - "Appmodules\\portal\\tests\\Feature\\CommunityRetrospectivePageTest": 1.3169, - "Appmodules\\portal\\tests\\Feature\\CommunityRetrospectiveTest": 1.5669, - "Appmodules\\portal\\tests\\Feature\\HomepageTest": 0.2566, - "Appmodules\\portal\\tests\\Feature\\RetrospectiveFiltersTest": 0.122, - "Appmodules\\portal\\tests\\Feature\\SocialLinksPageTest": 0.636, - "Appmodules\\profile\\tests\\Feature\\ProfileCreationTest": 0.6384, - "Appmodules\\profile\\tests\\Feature\\ProfilePreferencesTest": 0.4501, - "Appmodules\\profile\\tests\\Feature\\ProfileWorkExperiencesTest": 0.3042, - "Appmodules\\profile\\tests\\Feature\\SyncProfileSkillsTest": 1.2219, - "Appmodules\\profile\\tests\\Feature\\ToggleAvailabilityTest": 0.7305, - "Appmodules\\profile\\tests\\Feature\\UpsertProfileTest": 1.8365, - "Appmodules\\profile\\tests\\Feature\\WorkExperienceFactoryTest": 5.2888, - "Appmodules\\profile\\tests\\Unit\\ProfileEnumTest": 0.258, - "Appmodules\\profile\\tests\\Unit\\ProfileSocialLinksTest": 0.0502, - "Appmodules\\profile\\tests\\Unit\\SkillEnumTest": 0.1017, - "Appmodules\\profile\\tests\\Unit\\WorkExperienceTest": 0.1599, - "Appmodules\\profile\\tests\\Unit\\WorkPreferencesTest": 0.3199, - "Tests\\Feature\\AddressTest": 0.5364, - "Tests\\Feature\\Geo\\GeoLocationTest": 0.4048 + "Appmodules\\activity\\tests\\Unit\\Actions\\NewMessageTest": 3.7573, + "Appmodules\\activity\\tests\\Unit\\Actions\\NewVoiceMessageTest": 3.8189, + "Appmodules\\activity\\tests\\Unit\\Actions\\RecordVoicePresenceTest": 4.0348, + "Appmodules\\activity\\tests\\Unit\\Queries\\GetCurrentVoiceChannelTest": 3.8966, + "Appmodules\\activity\\tests\\Unit\\Timeline\\CreatePostTest": 3.7311, + "Appmodules\\activity\\tests\\Unit\\Timeline\\CreateReplyTest": 3.712, + "Appmodules\\activity\\tests\\Unit\\Timeline\\DeleteReplyTest": 3.5725, + "Appmodules\\activity\\tests\\Unit\\Timeline\\PublishModerationEntryTest": 3.8582, + "Appmodules\\activity\\tests\\Unit\\Timeline\\TimelineFeedQueryTest": 3.7426, + "Appmodules\\activity\\tests\\Unit\\Timeline\\TimelineModelTest": 3.6, + "Appmodules\\activity\\tests\\Unit\\Timeline\\TogglePinPostTest": 3.684, + "Appmodules\\activity\\tests\\Unit\\Tracking\\ApproveInteractionTest": 3.4666, + "Appmodules\\activity\\tests\\Unit\\Tracking\\CalculateRewardTest": 3.6858, + "Appmodules\\activity\\tests\\Unit\\Tracking\\ClassifyActivityTest": 0.3356, + "Appmodules\\activity\\tests\\Unit\\Tracking\\RejectInteractionTest": 3.5351, + "Appmodules\\activity\\tests\\Unit\\Tracking\\TrackActivityTest": 3.6102, + "Appmodules\\botdiscord\\tests\\Feature\\Actions\\VoiceChannel\\HandleStateChannelActionTest": 0.2035, + "Appmodules\\botdiscord\\tests\\Feature\\Events\\RawGatewayEventTest": 3.3034, + "Appmodules\\botdiscord\\tests\\Feature\\Listeners\\AutoExecuteActionTest": 3.3348, + "Appmodules\\botdiscord\\tests\\Feature\\Listeners\\NotifyModerationChannelTest": 3.7325, + "Appmodules\\botdiscord\\tests\\Feature\\Moderation\\DiscordModerationAdapterTest": 4.7711, + "Appmodules\\botdiscord\\tests\\Feature\\SlashCommands\\EditProfileCommandTest": 0.278, + "Appmodules\\botdiscord\\tests\\Feature\\SlashCommands\\IntroductionCommandTest": 0.198, + "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceChannel\\JoiningChannelActionTest": 0.2297, + "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceChannel\\LeftChannelActionTest": 0.335, + "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceTransitionResolverTest": 0.4612, + "Appmodules\\botdiscord\\tests\\Unit\\Moderation\\ModerationEmbedBuilderTest": 3.8299, + "Appmodules\\botdiscord\\tests\\Unit\\SlashCommands\\EditProfileModalValidationTest": 0.7054, + "Appmodules\\docs\\tests\\Feature\\Discovery\\CacheDocsCommandTest": 1.2439, + "Appmodules\\docs\\tests\\Feature\\Discovery\\DocsRoutingTest": 1.1609, + "Appmodules\\docs\\tests\\Unit\\Discovery\\BuildTreeTest": 0.6126, + "Appmodules\\docs\\tests\\Unit\\Discovery\\DiscoveryIntegrationTest": 0.4496, + "Appmodules\\docs\\tests\\Unit\\Discovery\\DocumentTierTest": 0.743, + "Appmodules\\docs\\tests\\Unit\\Discovery\\FoundationsTest": 1.033, + "Appmodules\\docs\\tests\\Unit\\Discovery\\ParsingTest": 0.5068, + "Appmodules\\docs\\tests\\Unit\\Discovery\\StrategiesTest": 0.5767, + "Appmodules\\economy\\tests\\Feature\\EconomyFlowTest": 0.2069, + "Appmodules\\economy\\tests\\Unit\\CreditTest": 3.4252, + "Appmodules\\economy\\tests\\Unit\\DebitTest": 3.5332, + "Appmodules\\economy\\tests\\Unit\\TransferTest": 3.5988, + "Appmodules\\gamification\\tests\\Unit\\Character\\GenerateTextExperienceTest": 0.8215, + "Appmodules\\gamification\\tests\\Unit\\Character\\LevelCalculationTest": 4.4844, + "Appmodules\\gamification\\tests\\Unit\\Character\\VoiceExperienceTest": 3.5438, + "Appmodules\\identity\\tests\\Feature\\Auth\\DetectMergeConflictTest": 0.2506, + "Appmodules\\identity\\tests\\Feature\\Auth\\EnrichUserOnFirstLoginTest": 0.3803, + "Appmodules\\identity\\tests\\Feature\\Auth\\FindOrCreateUserByProviderTest": 0.4864, + "Appmodules\\identity\\tests\\Feature\\Auth\\HandleOAuthCallbackActionTest": 0.1842, + "Appmodules\\identity\\tests\\Feature\\Auth\\MergeAccountsActionTest": 0.7768, + "Appmodules\\identity\\tests\\Unit\\ExternalIdentity\\FindExternalIdentityTest": 3.1953, + "Appmodules\\integrationdevto\\tests\\Feature\\DevToOAuthTest": 0.1982, + "Appmodules\\integrationdevto\\tests\\Feature\\SyncDevToArticlesTest": 0.1918, + "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\ImportDiscordMessageTest": 3.9343, + "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\ImportDiscordProfileTest": 1.5178, + "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\MergeDuplicateDiscordProfilesTest": 1.2103, + "Appmodules\\integrationdiscord\\tests\\Feature\\Models\\DiscordEventLogTest": 0.1331, + "Appmodules\\integrationdiscord\\tests\\Feature\\OAuth\\DiscordOAuthClientTest": 0.1947, + "Appmodules\\integrationdiscord\\tests\\Unit\\DiscordMessageAdapterTest": 1.8244, + "Appmodules\\integrationdiscord\\tests\\Unit\\Sync\\PurgeUnusedInvitesActionTest": 14.5984, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\DiscordConnectorTest": 0.1365, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\DiscordRoleResolverTest": 0.2313, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateBanTest": 0.1483, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateDmChannelTest": 0.1539, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateMessageTest": 0.145, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\DeleteInviteTest": 0.0784, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\DeleteMessageTest": 0.0909, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ExchangeCodeForTokenTest": 0.1197, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\GetCurrentUserTest": 0.1119, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\GetMemberTest": 0.0789, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ListGuildInvitesTest": 0.0764, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ModifyMemberTest": 0.1244, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\RemoveMemberTest": 0.0745, + "Appmodules\\integrationgithub\\tests\\Feature\\BackfillGithubCommandTest": 0.3534, + "Appmodules\\integrationgithub\\tests\\Feature\\BackfillGithubRepositoryJobTest": 0.1661, + "Appmodules\\integrationgithub\\tests\\Feature\\BackfillRepositoryTest": 1.4666, + "Appmodules\\integrationgithub\\tests\\Feature\\GitHubOAuthClientTest": 0.3223, + "Appmodules\\integrationgithub\\tests\\Feature\\GithubContributionTest": 0.231, + "Appmodules\\integrationgithub\\tests\\Feature\\GithubRepositoryTest": 0.3085, + "Appmodules\\integrationgithub\\tests\\Feature\\GithubWebhookTest": 0.9738, + "Appmodules\\integrationtwitch\\tests\\Feature\\LinkTwitchChannelCommandTest": 0.2239, + "Appmodules\\integrationtwitch\\tests\\Feature\\SubscribeTwitchEventsCommandTest": 0.5563, + "Appmodules\\integrationtwitch\\tests\\Feature\\TwitchWebhookTest": 0.7514, + "Appmodules\\integrationwhatsapp\\tests\\Feature\\Ingest\\StoreWhatsAppEventActionTest": 0.529, + "Appmodules\\integrationwhatsapp\\tests\\Feature\\Ingest\\WebhookIngestTest": 1.0186, + "Appmodules\\moderation\\tests\\Feature\\AppealWorkflowTest": 0.4746, + "Appmodules\\moderation\\tests\\Feature\\Appeals\\FileAppealTest": 0.6982, + "Appmodules\\moderation\\tests\\Feature\\Appeals\\ReviewAppealTest": 0.51, + "Appmodules\\moderation\\tests\\Feature\\Audit\\AuditLogTest": 0.3365, + "Appmodules\\moderation\\tests\\Feature\\CaseWorkflowTest": 0.4372, + "Appmodules\\moderation\\tests\\Feature\\Cases\\SubmitReportTest": 1.2173, + "Appmodules\\moderation\\tests\\Feature\\Classification\\RouteDecisionTest": 2.3092, + "Appmodules\\moderation\\tests\\Feature\\Classification\\RuleBasedClassifierTest": 0.7566, + "Appmodules\\moderation\\tests\\Feature\\Enforcement\\ExecuteActionTest": 0.7095, + "Appmodules\\moderation\\tests\\Feature\\ModelRelationshipTest": 0.9224, + "Appmodules\\moderation\\tests\\Feature\\PipelineTest": 0.9194, + "Appmodules\\moderation\\tests\\Feature\\Pipeline\\ClassifyAndRouteTest": 0.2631, + "Appmodules\\moderation\\tests\\Feature\\Pipeline\\ScreenContentTest": 0.2976, + "Appmodules\\moderation\\tests\\Feature\\Pipeline\\SubmitForModerationTest": 0.2794, + "Appmodules\\moderation\\tests\\Feature\\Platform\\WebAdapterTest": 1.1295, + "Appmodules\\moderation\\tests\\Unit\\ClassifierTest": 3.4102, + "Appmodules\\moderation\\tests\\Unit\\DTOTest": 0.3031, + "Appmodules\\moderation\\tests\\Unit\\EnumTest": 0.2429, + "Appmodules\\moderation\\tests\\Unit\\ModerationRuleMatchTest": 3.2761, + "Appmodules\\moderation\\tests\\Unit\\PenaltyAdvisorTest": 4.1179, + "Appmodules\\moderation\\tests\\Unit\\PlatformRegistryTest": 0.1506, + "Appmodules\\moderation\\tests\\Unit\\RouteCaseActionTest": 3.4258, + "Appmodules\\paneladmin\\tests\\Feature\\AdminPanelAccessTest": 0.7685, + "Appmodules\\paneladmin\\tests\\Feature\\Github\\GithubRepositoryResourceTest": 0.9748, + "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\CommunityActivityStatsTest": 0.1937, + "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\LocationDashboardTest": 0.2461, + "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\MembersByStateTest": 0.3018, + "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\PeriodStatsTest": 0.1105, + "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\AppealQueueTest": 1.2312, + "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\ModerationDashboardTest": 1.431, + "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\ModerationQueueTest": 1.2165, + "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\TestRuleActionTest": 0.8808, + "Appmodules\\panelapp\\tests\\Feature\\ProfilePageTest": 3.4779, + "Appmodules\\panelapp\\tests\\Feature\\Timeline\\ThreadPageTest": 0.7574, + "Appmodules\\portal\\tests\\Feature\\CommunityRetrospectivePageTest": 0.8736, + "Appmodules\\portal\\tests\\Feature\\CommunityRetrospectiveTest": 1.0532, + "Appmodules\\portal\\tests\\Feature\\HomepageTest": 0.3921, + "Appmodules\\portal\\tests\\Feature\\RetrospectiveFiltersTest": 0.15, + "Appmodules\\portal\\tests\\Feature\\SocialLinksPageTest": 0.6395, + "Appmodules\\profile\\tests\\Feature\\ProfileCreationTest": 0.3303, + "Appmodules\\profile\\tests\\Feature\\ProfilePreferencesTest": 0.3196, + "Appmodules\\profile\\tests\\Feature\\ProfileWorkExperiencesTest": 0.2122, + "Appmodules\\profile\\tests\\Feature\\SkillSearchTest": 0.2211, + "Appmodules\\profile\\tests\\Feature\\SyncProfileSkillsTest": 0.6547, + "Appmodules\\profile\\tests\\Feature\\ToggleAvailabilityTest": 0.4451, + "Appmodules\\profile\\tests\\Feature\\UpsertProfileTest": 0.8094, + "Appmodules\\profile\\tests\\Feature\\WorkExperienceFactoryTest": 0.4866, + "Appmodules\\profile\\tests\\Unit\\ProfileEnumTest": 0.1977, + "Appmodules\\profile\\tests\\Unit\\ProfileSocialLinksTest": 0.0394, + "Appmodules\\profile\\tests\\Unit\\SkillEnumTest": 0.089, + "Appmodules\\profile\\tests\\Unit\\WorkExperienceTest": 0.1381, + "Appmodules\\profile\\tests\\Unit\\WorkPreferencesTest": 0.2479, + "Tests\\Feature\\AddressTest": 3.2802, + "Tests\\Feature\\Geo\\GeoLocationTest": 0.3838 }, - "checksum": "aea25aa9b8c207999f85b63b1b884917", - "updated_at": "2026-07-08T13:57:20+00:00" + "checksum": "13d511df0f18d203d84c88c82954b4d3", + "updated_at": "2026-07-12T20:09:53+00:00" } diff --git a/tests/TestCase.php b/tests/TestCase.php index 09debe75f..53411164c 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -4,30 +4,9 @@ namespace Tests; -use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; -use He4rt\Identity\Tenant\Models\Tenant; use Illuminate\Foundation\Testing\TestCase as BaseTestCase; abstract class TestCase extends BaseTestCase { use CreatesApplication; - - protected function actingAsAdmin(): self - { - Tenant::factory() - ->afterCreating(static function (Tenant $tenant): void { - ExternalIdentity::factory([ - 'tenant_id' => $tenant->getKey(), - 'provider' => 'discord', - 'external_account_id' => '123', - ])->create(); - }) - ->create(); - - return $this->withHeaders([ - 'X-He4rt-Authorization' => config('he4rt.server_key'), - 'X-He4rt-Provider' => 'discord', - 'X-He4rt-Provider-Id' => '123', - ]); - } } From 81045cc0e809b5dfa3691142fd5c121c898010a2 Mon Sep 17 00:00:00 2001 From: Daniel Reis Date: Sun, 12 Jul 2026 18:43:52 -0300 Subject: [PATCH 11/46] feat(panel-admin): discord cluster refinement (#414) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Resumo Refina o cluster Discord do painel admin, que estava no estado cru do scaffold do CLI. Todos os 5 resources viram **somente leitura** (List + View — os dados são espelho do Discord sincronizado pelo bot/ETL; edições seriam sobrescritas no próximo sync), ganham tabelas calibradas com os payloads reais de produção, i18n en/pt_BR e um dashboard com widgets. Plano completo (com as decisões tomadas): `app-modules/panel-admin/docs/plans/2026-07-12-refinamento-cluster-discord.md`. ## Destaques - **Event logs (237k linhas)**: índice novo em `created_at`, badges por categoria de evento, filtros de tipo/período, payload JSON pretty na view com link cruzado pro membro. Mantém cursor pagination de propósito (evita `COUNT(*)`). - **Channels**: agrupados por categoria espelhando a sidebar do Discord (categorias viram títulos de grupo), tipo como badge via contratos Filament no enum `DiscordChannelType`. - **Members (26k)**: ativos por padrão (filtro ternário em `left_at`), avatares via CDN com fallback derivado do snowflake, busca global corrigida para username/global_name/nickname. - **Roles**: cor decimal → swatch hex, ordenação pela hierarquia do Discord (`position desc`). - **Guild**: relation managers de Channels/Roles/Members com links cruzados. - **Dashboard**: stats (membros ativos, entradas/saídas 7d, eventos 24h, boosters, canais), eventos por dia e crescimento de membros (fonte `discord_members`, sobrevive a prune futuro de event logs). ## Fix notável O painel configura `PaginationMode::Cursor` **globalmente**; cursor pagination quebra com `ORDER BY` por expressão (grouping por relacionamento e sorts por agregado) — 500 real reproduzido em dev com dados de prod. Channels/Members/Roles fazem override para length-aware, com teste de regressão de >1 página em tabela agrupada. ## Como foi feito Workflow multi-agente: plano por Fable, implementação paralela por Sonnet (fundações → resources → drill-down → testes), revisão adversarial final por Fable (4 issues encontradas e corrigidas, incl. `formatStateUsing` morto em `CodeEntry` → `jsonFlags()` nativo). ## Testes - Suite completa: **876 passed (2512 assertions)** com `--parallel --update-shards`. - 14 smoke tests novos em `app-modules/panel-admin/tests/Feature/Discord/`. - Pint ✅ · PHPStan 0 erros ✅ · migration aplicada e índice confirmado ✅ --- .../factories/DiscordEventLogFactory.php | 27 + ...d_at_index_to_discord_event_logs_table.php | 24 + .../integration-discord/lang/en/enums.php | 112 ++ .../integration-discord/lang/pt_BR/enums.php | 112 ++ .../src/Enums/DiscordChannelType.php | 80 +- .../src/Enums/DiscordEventType.php | 345 +++++ .../src/IntegrationDiscordServiceProvider.php | 2 + .../src/Models/DiscordEventLog.php | 7 + .../tests/Unit/Enums/DiscordEventTypeTest.php | 22 + .../2026-07-12-refinamento-cluster-discord.md | 1175 +++++++++++++++++ app-modules/panel-admin/lang/en/discord.php | 182 +++ .../panel-admin/lang/pt_BR/discord.php | 182 +++ .../views/discord/dashboard.blade.php | 1 + .../src/Discord/DiscordCluster.php | 30 + .../src/Discord/Pages/DiscordDashboard.php | 65 + .../DiscordChannelResource.php | 109 ++ .../Pages/ListDiscordChannels.php | 13 + .../Pages/ViewDiscordChannel.php | 13 + .../Schemas/DiscordChannelInfolist.php | 85 ++ .../Tables/DiscordChannelsTable.php | 111 ++ .../DiscordEventLogResource.php | 79 ++ .../Pages/ListDiscordEventLogs.php | 13 + .../Pages/ViewDiscordEventLog.php | 13 + .../Schemas/DiscordEventLogInfolist.php | 69 + .../Tables/DiscordEventLogsTable.php | 99 ++ .../DiscordGuilds/DiscordGuildResource.php | 94 ++ .../DiscordGuilds/Pages/ListDiscordGuilds.php | 13 + .../DiscordGuilds/Pages/ViewDiscordGuild.php | 13 + .../ChannelsRelationManager.php | 46 + .../MembersRelationManager.php | 51 + .../RelationManagers/RolesRelationManager.php | 48 + .../Schemas/DiscordGuildInfolist.php | 75 ++ .../Tables/DiscordGuildsTable.php | 79 ++ .../DiscordMembers/DiscordMemberResource.php | 98 ++ .../Pages/ListDiscordMembers.php | 13 + .../Pages/ViewDiscordMember.php | 13 + .../Schemas/DiscordMemberInfolist.php | 101 ++ .../Tables/DiscordMembersTable.php | 109 ++ .../DiscordRoles/DiscordRoleResource.php | 103 ++ .../DiscordRoles/Pages/ListDiscordRoles.php | 13 + .../DiscordRoles/Pages/ViewDiscordRole.php | 13 + .../Schemas/DiscordRoleInfolist.php | 73 + .../DiscordRoles/Tables/DiscordRolesTable.php | 80 ++ .../Discord/Widgets/DiscordStatsWidget.php | 80 ++ .../Widgets/EventsPerDayChartWidget.php | 61 + .../Widgets/MemberGrowthChartWidget.php | 85 ++ .../src/PanelAdminServiceProvider.php | 31 +- .../Discord/DiscordClusterSmokeTest.php | 211 +++ tests/.pest/shards.json | 280 ++-- 49 files changed, 4611 insertions(+), 142 deletions(-) create mode 100644 app-modules/integration-discord/database/factories/DiscordEventLogFactory.php create mode 100644 app-modules/integration-discord/database/migrations/2026_07_12_202441_add_created_at_index_to_discord_event_logs_table.php create mode 100644 app-modules/integration-discord/lang/en/enums.php create mode 100644 app-modules/integration-discord/lang/pt_BR/enums.php create mode 100644 app-modules/integration-discord/src/Enums/DiscordEventType.php create mode 100644 app-modules/integration-discord/tests/Unit/Enums/DiscordEventTypeTest.php create mode 100644 app-modules/panel-admin/docs/plans/2026-07-12-refinamento-cluster-discord.md create mode 100644 app-modules/panel-admin/lang/en/discord.php create mode 100644 app-modules/panel-admin/lang/pt_BR/discord.php create mode 100644 app-modules/panel-admin/resources/views/discord/dashboard.blade.php create mode 100644 app-modules/panel-admin/src/Discord/DiscordCluster.php create mode 100644 app-modules/panel-admin/src/Discord/Pages/DiscordDashboard.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordChannels/DiscordChannelResource.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordChannels/Pages/ListDiscordChannels.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordChannels/Pages/ViewDiscordChannel.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordChannels/Schemas/DiscordChannelInfolist.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordChannels/Tables/DiscordChannelsTable.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordEventLogs/DiscordEventLogResource.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordEventLogs/Pages/ListDiscordEventLogs.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordEventLogs/Pages/ViewDiscordEventLog.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordEventLogs/Schemas/DiscordEventLogInfolist.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordEventLogs/Tables/DiscordEventLogsTable.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/DiscordGuildResource.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/Pages/ListDiscordGuilds.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/Pages/ViewDiscordGuild.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/RelationManagers/ChannelsRelationManager.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/RelationManagers/MembersRelationManager.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/RelationManagers/RolesRelationManager.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/Schemas/DiscordGuildInfolist.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/Tables/DiscordGuildsTable.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordMembers/DiscordMemberResource.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordMembers/Pages/ListDiscordMembers.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordMembers/Pages/ViewDiscordMember.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordMembers/Schemas/DiscordMemberInfolist.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordMembers/Tables/DiscordMembersTable.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordRoles/DiscordRoleResource.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordRoles/Pages/ListDiscordRoles.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordRoles/Pages/ViewDiscordRole.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordRoles/Schemas/DiscordRoleInfolist.php create mode 100644 app-modules/panel-admin/src/Discord/Resources/DiscordRoles/Tables/DiscordRolesTable.php create mode 100644 app-modules/panel-admin/src/Discord/Widgets/DiscordStatsWidget.php create mode 100644 app-modules/panel-admin/src/Discord/Widgets/EventsPerDayChartWidget.php create mode 100644 app-modules/panel-admin/src/Discord/Widgets/MemberGrowthChartWidget.php create mode 100644 app-modules/panel-admin/tests/Feature/Discord/DiscordClusterSmokeTest.php diff --git a/app-modules/integration-discord/database/factories/DiscordEventLogFactory.php b/app-modules/integration-discord/database/factories/DiscordEventLogFactory.php new file mode 100644 index 000000000..c2cd4f7ed --- /dev/null +++ b/app-modules/integration-discord/database/factories/DiscordEventLogFactory.php @@ -0,0 +1,27 @@ + + */ +final class DiscordEventLogFactory extends Factory +{ + protected $model = DiscordEventLog::class; + + public function definition(): array + { + return [ + 'event_type' => fake()->randomElement(['MESSAGE_CREATE', 'GUILD_MEMBER_ADD', 'VOICE_STATE_UPDATE', 'GUILD_BAN_ADD']), + 'guild_id' => (string) fake()->numerify('45292621755816####'), + 'user_id' => (string) fake()->numerify('26749964733605####'), + 'channel_id' => (string) fake()->numerify('55922413525165####'), + 'payload' => ['id' => fake()->uuid(), 'content' => fake()->sentence()], + ]; + } +} diff --git a/app-modules/integration-discord/database/migrations/2026_07_12_202441_add_created_at_index_to_discord_event_logs_table.php b/app-modules/integration-discord/database/migrations/2026_07_12_202441_add_created_at_index_to_discord_event_logs_table.php new file mode 100644 index 000000000..c10277cba --- /dev/null +++ b/app-modules/integration-discord/database/migrations/2026_07_12_202441_add_created_at_index_to_discord_event_logs_table.php @@ -0,0 +1,24 @@ +index('created_at'); + }); + } + + public function down(): void + { + Schema::table('discord_event_logs', function (Blueprint $table): void { + $table->dropIndex(['created_at']); + }); + } +}; diff --git a/app-modules/integration-discord/lang/en/enums.php b/app-modules/integration-discord/lang/en/enums.php new file mode 100644 index 000000000..6289c7e00 --- /dev/null +++ b/app-modules/integration-discord/lang/en/enums.php @@ -0,0 +1,112 @@ + [ + 'READY' => 'Gateway ready', + 'RESUMED' => 'Gateway resumed', + 'PRESENCE_UPDATE' => 'Presence updated', + 'PRESENCES_REPLACE' => 'Presences replaced', + 'TYPING_START' => 'Typing started', + 'USER_SETTINGS_UPDATE' => 'User settings updated', + 'GUILD_MEMBERS_CHUNK' => 'Guild members chunk received', + 'INTERACTION_CREATE' => 'Interaction created', + 'USER_UPDATE' => 'User updated', + + 'GUILD_CREATE' => 'Guild created', + 'GUILD_DELETE' => 'Guild deleted', + 'GUILD_UPDATE' => 'Guild updated', + + 'GUILD_BAN_ADD' => 'Member banned', + 'GUILD_BAN_REMOVE' => 'Member unbanned', + + 'GUILD_EMOJIS_UPDATE' => 'Emojis updated', + 'GUILD_STICKERS_UPDATE' => 'Stickers updated', + + 'GUILD_MEMBER_ADD' => 'Member joined', + 'GUILD_MEMBER_REMOVE' => 'Member left', + 'GUILD_MEMBER_UPDATE' => 'Member updated', + + 'GUILD_ROLE_CREATE' => 'Role created', + 'GUILD_ROLE_UPDATE' => 'Role updated', + 'GUILD_ROLE_DELETE' => 'Role deleted', + + 'GUILD_SCHEDULED_EVENT_CREATE' => 'Scheduled event created', + 'GUILD_SCHEDULED_EVENT_UPDATE' => 'Scheduled event updated', + 'GUILD_SCHEDULED_EVENT_DELETE' => 'Scheduled event deleted', + 'GUILD_SCHEDULED_EVENT_USER_ADD' => 'Scheduled event RSVP added', + 'GUILD_SCHEDULED_EVENT_USER_REMOVE' => 'Scheduled event RSVP removed', + + 'GUILD_SCHEDULED_EVENT_EXCEPTION_CREATE' => 'Scheduled event exception created', + 'GUILD_SCHEDULED_EVENT_EXCEPTION_UPDATE' => 'Scheduled event exception updated', + 'GUILD_SCHEDULED_EVENT_EXCEPTION_DELETE' => 'Scheduled event exception deleted', + + 'GUILD_INTEGRATIONS_UPDATE' => 'Guild integrations updated', + 'INTEGRATION_CREATE' => 'Integration created', + 'INTEGRATION_UPDATE' => 'Integration updated', + 'INTEGRATION_DELETE' => 'Integration deleted', + 'WEBHOOKS_UPDATE' => 'Webhooks updated', + 'APPLICATION_COMMAND_PERMISSIONS_UPDATE' => 'Application command permissions updated', + + 'INVITE_CREATE' => 'Invite created', + 'INVITE_DELETE' => 'Invite deleted', + + 'AUTO_MODERATION_RULE_CREATE' => 'Auto moderation rule created', + 'AUTO_MODERATION_RULE_UPDATE' => 'Auto moderation rule updated', + 'AUTO_MODERATION_RULE_DELETE' => 'Auto moderation rule deleted', + 'AUTO_MODERATION_ACTION_EXECUTION' => 'Auto moderation action executed', + + 'GUILD_AUDIT_LOG_ENTRY_CREATE' => 'Audit log entry created', + + 'GUILD_SOUNDBOARD_SOUND_CREATE' => 'Soundboard sound created', + 'GUILD_SOUNDBOARD_SOUND_UPDATE' => 'Soundboard sound updated', + 'GUILD_SOUNDBOARD_SOUND_DELETE' => 'Soundboard sound deleted', + 'GUILD_SOUNDBOARD_SOUNDS_UPDATE' => 'Soundboard sounds updated', + 'SOUNDBOARD_SOUNDS' => 'Soundboard sounds listed', + + 'CHANNEL_CREATE' => 'Channel created', + 'CHANNEL_DELETE' => 'Channel deleted', + 'CHANNEL_UPDATE' => 'Channel updated', + 'CHANNEL_PINS_UPDATE' => 'Channel pins updated', + + 'THREAD_CREATE' => 'Thread created', + 'THREAD_UPDATE' => 'Thread updated', + 'THREAD_DELETE' => 'Thread deleted', + 'THREAD_LIST_SYNC' => 'Thread list synced', + 'THREAD_MEMBER_UPDATE' => 'Thread member updated', + 'THREAD_MEMBERS_UPDATE' => 'Thread members updated', + + 'VOICE_STATE_UPDATE' => 'Voice state updated', + 'VOICE_SERVER_UPDATE' => 'Voice server updated', + 'CHANNEL_INFO' => 'Channel info requested', + 'VOICE_CHANNEL_STATUS_UPDATE' => 'Voice channel status updated', + 'VOICE_CHANNEL_START_TIME_UPDATE' => 'Voice channel start time updated', + + 'STAGE_INSTANCE_CREATE' => 'Stage instance created', + 'STAGE_INSTANCE_UPDATE' => 'Stage instance updated', + 'STAGE_INSTANCE_DELETE' => 'Stage instance deleted', + + 'MESSAGE_CREATE' => 'Message sent', + 'MESSAGE_DELETE' => 'Message deleted', + 'MESSAGE_UPDATE' => 'Message edited', + 'MESSAGE_DELETE_BULK' => 'Messages bulk deleted', + 'MESSAGE_REACTION_ADD' => 'Reaction added', + 'MESSAGE_REACTION_REMOVE' => 'Reaction removed', + 'MESSAGE_REACTION_REMOVE_ALL' => 'All reactions removed', + 'MESSAGE_REACTION_REMOVE_EMOJI' => 'Reaction emoji removed', + 'MESSAGE_POLL_VOTE_ADD' => 'Poll vote added', + 'MESSAGE_POLL_VOTE_REMOVE' => 'Poll vote removed', + + 'ENTITLEMENT_CREATE' => 'Entitlement created', + 'ENTITLEMENT_UPDATE' => 'Entitlement updated', + 'ENTITLEMENT_DELETE' => 'Entitlement deleted', + + 'SUBSCRIPTION_CREATE' => 'Subscription created', + 'SUBSCRIPTION_UPDATE' => 'Subscription updated', + 'SUBSCRIPTION_DELETE' => 'Subscription deleted', + + 'GAME_SERVER_UPDATE' => 'Game server updated', + 'GAME_SERVER_DELETE' => 'Game server deleted', + ], +]; diff --git a/app-modules/integration-discord/lang/pt_BR/enums.php b/app-modules/integration-discord/lang/pt_BR/enums.php new file mode 100644 index 000000000..089252e25 --- /dev/null +++ b/app-modules/integration-discord/lang/pt_BR/enums.php @@ -0,0 +1,112 @@ + [ + 'READY' => 'Gateway pronto', + 'RESUMED' => 'Gateway retomado', + 'PRESENCE_UPDATE' => 'Presença atualizada', + 'PRESENCES_REPLACE' => 'Presenças substituídas', + 'TYPING_START' => 'Digitação iniciada', + 'USER_SETTINGS_UPDATE' => 'Configurações do usuário atualizadas', + 'GUILD_MEMBERS_CHUNK' => 'Lote de membros recebido', + 'INTERACTION_CREATE' => 'Interação criada', + 'USER_UPDATE' => 'Usuário atualizado', + + 'GUILD_CREATE' => 'Servidor criado', + 'GUILD_DELETE' => 'Servidor removido', + 'GUILD_UPDATE' => 'Servidor atualizado', + + 'GUILD_BAN_ADD' => 'Membro banido', + 'GUILD_BAN_REMOVE' => 'Banimento removido', + + 'GUILD_EMOJIS_UPDATE' => 'Emojis atualizados', + 'GUILD_STICKERS_UPDATE' => 'Figurinhas atualizadas', + + 'GUILD_MEMBER_ADD' => 'Membro entrou', + 'GUILD_MEMBER_REMOVE' => 'Membro saiu', + 'GUILD_MEMBER_UPDATE' => 'Membro atualizado', + + 'GUILD_ROLE_CREATE' => 'Cargo criado', + 'GUILD_ROLE_UPDATE' => 'Cargo atualizado', + 'GUILD_ROLE_DELETE' => 'Cargo removido', + + 'GUILD_SCHEDULED_EVENT_CREATE' => 'Evento agendado criado', + 'GUILD_SCHEDULED_EVENT_UPDATE' => 'Evento agendado atualizado', + 'GUILD_SCHEDULED_EVENT_DELETE' => 'Evento agendado removido', + 'GUILD_SCHEDULED_EVENT_USER_ADD' => 'Confirmação de presença adicionada', + 'GUILD_SCHEDULED_EVENT_USER_REMOVE' => 'Confirmação de presença removida', + + 'GUILD_SCHEDULED_EVENT_EXCEPTION_CREATE' => 'Exceção de evento agendado criada', + 'GUILD_SCHEDULED_EVENT_EXCEPTION_UPDATE' => 'Exceção de evento agendado atualizada', + 'GUILD_SCHEDULED_EVENT_EXCEPTION_DELETE' => 'Exceção de evento agendado removida', + + 'GUILD_INTEGRATIONS_UPDATE' => 'Integrações do servidor atualizadas', + 'INTEGRATION_CREATE' => 'Integração criada', + 'INTEGRATION_UPDATE' => 'Integração atualizada', + 'INTEGRATION_DELETE' => 'Integração removida', + 'WEBHOOKS_UPDATE' => 'Webhooks atualizados', + 'APPLICATION_COMMAND_PERMISSIONS_UPDATE' => 'Permissões de comando atualizadas', + + 'INVITE_CREATE' => 'Convite criado', + 'INVITE_DELETE' => 'Convite removido', + + 'AUTO_MODERATION_RULE_CREATE' => 'Regra de automoderação criada', + 'AUTO_MODERATION_RULE_UPDATE' => 'Regra de automoderação atualizada', + 'AUTO_MODERATION_RULE_DELETE' => 'Regra de automoderação removida', + 'AUTO_MODERATION_ACTION_EXECUTION' => 'Ação de automoderação executada', + + 'GUILD_AUDIT_LOG_ENTRY_CREATE' => 'Entrada de auditoria criada', + + 'GUILD_SOUNDBOARD_SOUND_CREATE' => 'Som do soundboard criado', + 'GUILD_SOUNDBOARD_SOUND_UPDATE' => 'Som do soundboard atualizado', + 'GUILD_SOUNDBOARD_SOUND_DELETE' => 'Som do soundboard removido', + 'GUILD_SOUNDBOARD_SOUNDS_UPDATE' => 'Sons do soundboard atualizados', + 'SOUNDBOARD_SOUNDS' => 'Sons do soundboard listados', + + 'CHANNEL_CREATE' => 'Canal criado', + 'CHANNEL_DELETE' => 'Canal removido', + 'CHANNEL_UPDATE' => 'Canal atualizado', + 'CHANNEL_PINS_UPDATE' => 'Fixados do canal atualizados', + + 'THREAD_CREATE' => 'Thread criada', + 'THREAD_UPDATE' => 'Thread atualizada', + 'THREAD_DELETE' => 'Thread removida', + 'THREAD_LIST_SYNC' => 'Lista de threads sincronizada', + 'THREAD_MEMBER_UPDATE' => 'Membro da thread atualizado', + 'THREAD_MEMBERS_UPDATE' => 'Membros da thread atualizados', + + 'VOICE_STATE_UPDATE' => 'Estado de voz atualizado', + 'VOICE_SERVER_UPDATE' => 'Servidor de voz atualizado', + 'CHANNEL_INFO' => 'Informações do canal solicitadas', + 'VOICE_CHANNEL_STATUS_UPDATE' => 'Status do canal de voz atualizado', + 'VOICE_CHANNEL_START_TIME_UPDATE' => 'Horário de início do canal de voz atualizado', + + 'STAGE_INSTANCE_CREATE' => 'Palco criado', + 'STAGE_INSTANCE_UPDATE' => 'Palco atualizado', + 'STAGE_INSTANCE_DELETE' => 'Palco removido', + + 'MESSAGE_CREATE' => 'Mensagem enviada', + 'MESSAGE_DELETE' => 'Mensagem removida', + 'MESSAGE_UPDATE' => 'Mensagem editada', + 'MESSAGE_DELETE_BULK' => 'Mensagens removidas em lote', + 'MESSAGE_REACTION_ADD' => 'Reação adicionada', + 'MESSAGE_REACTION_REMOVE' => 'Reação removida', + 'MESSAGE_REACTION_REMOVE_ALL' => 'Todas as reações removidas', + 'MESSAGE_REACTION_REMOVE_EMOJI' => 'Emoji de reação removido', + 'MESSAGE_POLL_VOTE_ADD' => 'Voto em enquete adicionado', + 'MESSAGE_POLL_VOTE_REMOVE' => 'Voto em enquete removido', + + 'ENTITLEMENT_CREATE' => 'Direito criado', + 'ENTITLEMENT_UPDATE' => 'Direito atualizado', + 'ENTITLEMENT_DELETE' => 'Direito removido', + + 'SUBSCRIPTION_CREATE' => 'Assinatura criada', + 'SUBSCRIPTION_UPDATE' => 'Assinatura atualizada', + 'SUBSCRIPTION_DELETE' => 'Assinatura removida', + + 'GAME_SERVER_UPDATE' => 'Servidor de jogo atualizado', + 'GAME_SERVER_DELETE' => 'Servidor de jogo removido', + ], +]; diff --git a/app-modules/integration-discord/src/Enums/DiscordChannelType.php b/app-modules/integration-discord/src/Enums/DiscordChannelType.php index fefc10cac..74568787f 100644 --- a/app-modules/integration-discord/src/Enums/DiscordChannelType.php +++ b/app-modules/integration-discord/src/Enums/DiscordChannelType.php @@ -4,7 +4,13 @@ namespace He4rt\IntegrationDiscord\Enums; -enum DiscordChannelType: int +use Filament\Support\Contracts\HasColor; +use Filament\Support\Contracts\HasDescription; +use Filament\Support\Contracts\HasIcon; +use Filament\Support\Contracts\HasLabel; +use Filament\Support\Icons\Heroicon; + +enum DiscordChannelType: int implements HasColor, HasDescription, HasIcon, HasLabel { case GuildText = 0; case Dm = 1; @@ -18,4 +24,76 @@ enum DiscordChannelType: int case GuildStageVoice = 13; case GuildForum = 15; case GuildMedia = 16; + + public function getLabel(): string + { + return match ($this) { + self::GuildText => 'Texto', + self::Dm => 'DM', + self::GuildVoice => 'Voz', + self::GroupDm => 'DM em grupo', + self::GuildCategory => 'Categoria', + self::GuildAnnouncement => 'Anúncios', + self::AnnouncementThread => 'Thread de anúncio', + self::PublicThread => 'Thread pública', + self::PrivateThread => 'Thread privada', + self::GuildStageVoice => 'Palco', + self::GuildForum => 'Fórum', + self::GuildMedia => 'Mídia', + }; + } + + public function getColor(): string + { + return match ($this) { + self::GuildText => 'gray', + self::Dm => 'info', + self::GuildVoice => 'success', + self::GroupDm => 'info', + self::GuildCategory => 'gray', + self::GuildAnnouncement => 'warning', + self::AnnouncementThread => 'warning', + self::PublicThread => 'primary', + self::PrivateThread => 'primary', + self::GuildStageVoice => 'danger', + self::GuildForum => 'primary', + self::GuildMedia => 'info', + }; + } + + public function getDescription(): string + { + return match ($this) { + self::GuildText => 'Canal de texto padrão do servidor', + self::Dm => 'Mensagem direta entre dois usuários', + self::GuildVoice => 'Canal de voz do servidor', + self::GroupDm => 'Mensagem direta em grupo entre vários usuários', + self::GuildCategory => 'Categoria usada para agrupar outros canais', + self::GuildAnnouncement => 'Canal de anúncios que pode ser seguido por outros servidores', + self::AnnouncementThread => 'Thread criada a partir de um canal de anúncios', + self::PublicThread => 'Thread pública visível a todos os membros do canal', + self::PrivateThread => 'Thread privada visível apenas a membros convidados', + self::GuildStageVoice => 'Canal de palco para eventos de áudio ao vivo', + self::GuildForum => 'Canal de fórum organizado em posts com threads', + self::GuildMedia => 'Canal de mídia organizado em posts com anexos', + }; + } + + public function getIcon(): Heroicon + { + return match ($this) { + self::GuildText => Heroicon::OutlinedHashtag, + self::Dm => Heroicon::OutlinedEnvelope, + self::GuildVoice => Heroicon::OutlinedSpeakerWave, + self::GroupDm => Heroicon::OutlinedEnvelope, + self::GuildCategory => Heroicon::OutlinedFolder, + self::GuildAnnouncement => Heroicon::OutlinedMegaphone, + self::AnnouncementThread => Heroicon::OutlinedChatBubbleBottomCenterText, + self::PublicThread => Heroicon::OutlinedChatBubbleBottomCenterText, + self::PrivateThread => Heroicon::OutlinedChatBubbleBottomCenterText, + self::GuildStageVoice => Heroicon::OutlinedMicrophone, + self::GuildForum => Heroicon::OutlinedChatBubbleLeftRight, + self::GuildMedia => Heroicon::OutlinedPhoto, + }; + } } diff --git a/app-modules/integration-discord/src/Enums/DiscordEventType.php b/app-modules/integration-discord/src/Enums/DiscordEventType.php new file mode 100644 index 000000000..c7385d1d0 --- /dev/null +++ b/app-modules/integration-discord/src/Enums/DiscordEventType.php @@ -0,0 +1,345 @@ +value); + } + + public function getColor(): string + { + return match ($this) { + // Messages → info + self::MessageCreate, + self::MessageDelete, + self::MessageUpdate, + self::MessageDeleteBulk, + self::MessageReactionAdd, + self::MessageReactionRemove, + self::MessageReactionRemoveAll, + self::MessageReactionRemoveEmoji, + self::MessagePollVoteAdd, + self::MessagePollVoteRemove => 'info', + + // Guild members → success + self::GuildMemberAdd, + self::GuildMemberRemove, + self::GuildMemberUpdate => 'success', + + // Bans / auto moderation / audit log → danger + self::GuildBanAdd, + self::GuildBanRemove, + self::AutoModerationRuleCreate, + self::AutoModerationRuleUpdate, + self::AutoModerationRuleDelete, + self::AutoModerationActionExecution, + self::GuildAuditLogEntryCreate => 'danger', + + // Voice / stage → warning + self::VoiceStateUpdate, + self::VoiceServerUpdate, + self::ChannelInfo, + self::VoiceChannelStatusUpdate, + self::VoiceChannelStartTimeUpdate, + self::StageInstanceCreate, + self::StageInstanceUpdate, + self::StageInstanceDelete => 'warning', + + // Channels / threads → primary + self::ChannelCreate, + self::ChannelDelete, + self::ChannelUpdate, + self::ChannelPinsUpdate, + self::ThreadCreate, + self::ThreadUpdate, + self::ThreadDelete, + self::ThreadListSync, + self::ThreadMemberUpdate, + self::ThreadMembersUpdate => 'primary', + + // Everything else → gray + self::Ready, + self::Resumed, + self::PresenceUpdate, + self::PresencesReplace, + self::TypingStart, + self::UserSettingsUpdate, + self::GuildMembersChunk, + self::InteractionCreate, + self::UserUpdate, + self::GuildCreate, + self::GuildDelete, + self::GuildUpdate, + self::GuildEmojisUpdate, + self::GuildStickersUpdate, + self::GuildRoleCreate, + self::GuildRoleUpdate, + self::GuildRoleDelete, + self::GuildScheduledEventCreate, + self::GuildScheduledEventUpdate, + self::GuildScheduledEventDelete, + self::GuildScheduledEventUserAdd, + self::GuildScheduledEventUserRemove, + self::GuildScheduledEventExceptionCreate, + self::GuildScheduledEventExceptionUpdate, + self::GuildScheduledEventExceptionDelete, + self::GuildIntegrationsUpdate, + self::IntegrationCreate, + self::IntegrationUpdate, + self::IntegrationDelete, + self::WebhooksUpdate, + self::ApplicationCommandPermissionsUpdate, + self::InviteCreate, + self::InviteDelete, + self::GuildSoundboardSoundCreate, + self::GuildSoundboardSoundUpdate, + self::GuildSoundboardSoundDelete, + self::GuildSoundboardSoundsUpdate, + self::SoundboardSounds, + self::EntitlementCreate, + self::EntitlementUpdate, + self::EntitlementDelete, + self::SubscriptionCreate, + self::SubscriptionUpdate, + self::SubscriptionDelete, + self::GameServerUpdate, + self::GameServerDelete => 'gray', + }; + } + + public function getIcon(): Heroicon + { + return match ($this) { + // Messages → chat bubble + self::MessageCreate, + self::MessageDelete, + self::MessageUpdate, + self::MessageDeleteBulk, + self::MessagePollVoteAdd, + self::MessagePollVoteRemove => Heroicon::OutlinedChatBubbleLeft, + + // Reactions → face smile + self::MessageReactionAdd, + self::MessageReactionRemove, + self::MessageReactionRemoveAll, + self::MessageReactionRemoveEmoji => Heroicon::OutlinedFaceSmile, + + // Members → users + self::GuildMemberAdd, + self::GuildMemberRemove, + self::GuildMemberUpdate, + self::GuildMembersChunk => Heroicon::OutlinedUsers, + + // Bans / auto moderation / audit log → shield exclamation + self::GuildBanAdd, + self::GuildBanRemove, + self::AutoModerationRuleCreate, + self::AutoModerationRuleUpdate, + self::AutoModerationRuleDelete, + self::AutoModerationActionExecution, + self::GuildAuditLogEntryCreate => Heroicon::OutlinedShieldExclamation, + + // Voice / stage → speaker wave + self::VoiceStateUpdate, + self::VoiceServerUpdate, + self::ChannelInfo, + self::VoiceChannelStatusUpdate, + self::VoiceChannelStartTimeUpdate, + self::StageInstanceCreate, + self::StageInstanceUpdate, + self::StageInstanceDelete => Heroicon::OutlinedSpeakerWave, + + // Channels / threads → hashtag + self::ChannelCreate, + self::ChannelDelete, + self::ChannelUpdate, + self::ChannelPinsUpdate, + self::ThreadCreate, + self::ThreadUpdate, + self::ThreadDelete, + self::ThreadListSync, + self::ThreadMemberUpdate, + self::ThreadMembersUpdate => Heroicon::OutlinedHashtag, + + // Roles → tag + self::GuildRoleCreate, + self::GuildRoleUpdate, + self::GuildRoleDelete => Heroicon::OutlinedTag, + + // Invites → envelope + self::InviteCreate, + self::InviteDelete => Heroicon::OutlinedEnvelope, + + // Scheduled events → calendar + self::GuildScheduledEventCreate, + self::GuildScheduledEventUpdate, + self::GuildScheduledEventDelete, + self::GuildScheduledEventUserAdd, + self::GuildScheduledEventUserRemove, + self::GuildScheduledEventExceptionCreate, + self::GuildScheduledEventExceptionUpdate, + self::GuildScheduledEventExceptionDelete => Heroicon::OutlinedCalendar, + + // Generic / everything else → bolt + self::Ready, + self::Resumed, + self::PresenceUpdate, + self::PresencesReplace, + self::TypingStart, + self::UserSettingsUpdate, + self::InteractionCreate, + self::UserUpdate, + self::GuildCreate, + self::GuildDelete, + self::GuildUpdate, + self::GuildEmojisUpdate, + self::GuildStickersUpdate, + self::GuildIntegrationsUpdate, + self::IntegrationCreate, + self::IntegrationUpdate, + self::IntegrationDelete, + self::WebhooksUpdate, + self::ApplicationCommandPermissionsUpdate, + self::GuildSoundboardSoundCreate, + self::GuildSoundboardSoundUpdate, + self::GuildSoundboardSoundDelete, + self::GuildSoundboardSoundsUpdate, + self::SoundboardSounds, + self::EntitlementCreate, + self::EntitlementUpdate, + self::EntitlementDelete, + self::SubscriptionCreate, + self::SubscriptionUpdate, + self::SubscriptionDelete, + self::GameServerUpdate, + self::GameServerDelete => Heroicon::OutlinedBolt, + }; + } +} diff --git a/app-modules/integration-discord/src/IntegrationDiscordServiceProvider.php b/app-modules/integration-discord/src/IntegrationDiscordServiceProvider.php index a849ce6d9..f75d4cb39 100644 --- a/app-modules/integration-discord/src/IntegrationDiscordServiceProvider.php +++ b/app-modules/integration-discord/src/IntegrationDiscordServiceProvider.php @@ -33,6 +33,8 @@ public function register(): void public function boot(): void { + $this->loadTranslationsFrom(__DIR__.'/../lang', 'integration-discord'); + DiscordEventLog::observe(DiscordEventLogObserver::class); if ($this->app->runningInConsole()) { diff --git a/app-modules/integration-discord/src/Models/DiscordEventLog.php b/app-modules/integration-discord/src/Models/DiscordEventLog.php index 492d03a6a..56633483c 100644 --- a/app-modules/integration-discord/src/Models/DiscordEventLog.php +++ b/app-modules/integration-discord/src/Models/DiscordEventLog.php @@ -5,6 +5,9 @@ namespace He4rt\IntegrationDiscord\Models; use Carbon\CarbonInterface; +use He4rt\IntegrationDiscord\Database\Factories\DiscordEventLogFactory; +use Illuminate\Database\Eloquent\Attributes\UseFactory; +use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; /** @@ -17,8 +20,12 @@ * @property CarbonInterface|null $created_at * @property CarbonInterface|null $updated_at */ +#[UseFactory(factoryClass: DiscordEventLogFactory::class)] final class DiscordEventLog extends Model { + /** @use HasFactory */ + use HasFactory; + /** * @return array */ diff --git a/app-modules/integration-discord/tests/Unit/Enums/DiscordEventTypeTest.php b/app-modules/integration-discord/tests/Unit/Enums/DiscordEventTypeTest.php new file mode 100644 index 000000000..d77280657 --- /dev/null +++ b/app-modules/integration-discord/tests/Unit/Enums/DiscordEventTypeTest.php @@ -0,0 +1,22 @@ +value; + + expect(Lang::has($key, 'en'))->toBeTrue('Missing en translation for '.$case->value) + ->and(Lang::has($key, 'pt_BR'))->toBeTrue('Missing pt_BR translation for '.$case->value); + } +}); + +test('every DiscordEventType case resolves a non-empty label', function (): void { + foreach (DiscordEventType::cases() as $case) { + expect($case->getLabel())->not->toBeEmpty() + ->and($case->getLabel())->not->toContain('discord_event_type'); + } +}); diff --git a/app-modules/panel-admin/docs/plans/2026-07-12-refinamento-cluster-discord.md b/app-modules/panel-admin/docs/plans/2026-07-12-refinamento-cluster-discord.md new file mode 100644 index 000000000..6a3af920e --- /dev/null +++ b/app-modules/panel-admin/docs/plans/2026-07-12-refinamento-cluster-discord.md @@ -0,0 +1,1175 @@ +--- +type: plan +title: "Refinamento do cluster Discord no painel admin" +module: panel-admin +status: proposed +date: 2026-07-12 +author: danielhe4rt +--- + +# Refinamento do cluster Discord (panel-admin) + +> **Para o agente implementador**: este plano é autossuficiente. Todos os +> namespaces, URLs de docs, configs e convenções do projeto necessários estão +> copiados aqui. Não é preciso consultar os arquivos do skill de planejamento. + +## Motivação + +O cluster Discord (`app-modules/panel-admin/src/Discord/`) foi scaffoldado via +CLI e está no estado cru: todas as colunas como `TextColumn` sem formatação, +zero filtros, labels hardcoded em inglês tipo "Discord Guild Id", CRUD completo +habilitado (Create/Edit/Delete) e infolists configuradas mas **sem View page +registrada** (ou seja, nunca renderizam). Os dados são espelho do Discord +sincronizado pelo bot/ETL — em produção: 1 guild (He4rt Developers), 272 +canais, 26.256 membros, 82 roles e 237.862 event logs (48 tipos de evento). + +## Decisões tomadas com o usuário (3 rodadas de perguntas) + +| Decisão | Escolha | +| --- | --- | +| CRUD | **Somente leitura** — List + View em todos os 5 resources; remover Create/Edit/Delete | +| Dashboard | **Sim** — página com Stats overview, Eventos por dia (chart) e Crescimento de membros (chart) | +| Sync action no painel | **Não** — sync continua só via artisan | +| Drill-down | Relation managers na Guild (Channels/Roles/Members) + links cruzados nas tabelas | +| Event logs / índice | **Migration** adicionando índice em `created_at` | +| Members default | **Ativos por padrão** (esconde quem tem `left_at`), com deferred loading | +| Channels | **Agrupado por categoria** (parent), position dentro do grupo, tipo como badge | +| Retenção de event logs | 100% read-only (prune fica fora do escopo) | +| i18n | Lang files `panel-admin::discord.*` em **en + pt_BR** (padrão do cluster Twitch) | +| Role history | **Fora do escopo** | +| Testes | **Smoke tests** (cada página renderiza com dados de factory) | + +## Convenções do projeto que este plano obedece + +- Padrão-ouro a copiar: `app-modules/panel-admin/src/Twitch/` (TwitchEventLogResource, + TwitchDashboard, TwitchStatsWidget, lang/en|pt_BR/twitch.php). +- Datas exibidas ao usuário: `->dateTime('d/m/Y H:i')->timezone(config('app.display_timezone'))`. +- Enums novos/estendidos implementam os contratos Filament (`HasLabel`, `HasColor`, + `HasDescription`, `HasIcon` quando fizer sentido) com `match ($this)` cobrindo + **todos** os cases, sem `default` (precedente: enums do módulo moderation). +- Migrations sempre via `php artisan make:migration --module=integration-discord`. +- Após alterar PHP: `vendor/bin/pint --dirty --format agent` e `vendor/bin/phpstan analyse`. +- Testes: Pest, `php artisan test --compact --filter=...`. + +## Mapa de navegação (estado final) + +``` +Admin Panel (sidebar) +└── 🗨️ Discord (DiscordCluster, sort 40, ícone OutlinedChatBubbleLeftRight) + │ + ├── Visão geral (nav group "group_overview") + │ └── 📊 Dashboard (DiscordDashboard page, sort 0) + │ ├── DiscordStatsWidget (header, full width) + │ ├── EventsPerDayChartWidget (footer, col 1) + │ └── MemberGrowthChartWidget (footer, col 2) + │ + ├── Servidor (nav group "group_server") + │ ├── 🖥️ Guilds (sort 1) List → View (+ RMs: Channels, Roles, Members) + │ ├── # Channels (sort 2) List (agrupada por categoria) → View + │ ├── 🏷️ Roles (sort 3) List → View + │ └── 👥 Members (sort 4) List (ativos por padrão) → View + │ + └── Eventos (nav group "group_events") + └── 📜 Event Logs (sort 1) List → View (payload JSON) +``` + +## Fluxo de usuário principal + +``` + USER (admin) SYSTEM (panel-admin) + │ │ + │ 👆 clica "Discord > Event Logs" │ + │ ─────────────────────────────────► │ + │ │ ListDiscordEventLogs: deferLoading=true + │ │ query: ORDER BY created_at DESC (índice novo) + │ │ render: badges por categoria de evento ✓ + │ │ + │ 📱 tabela com 25 linhas, │ + │ badges coloridas por tipo │ + │ ◄───────────────────────────────── │ + │ │ + │ ┌──────────────────────────┐ │ + │ │ Filtro: Tipo de evento ▾ │ │ + │ │ Filtro: Período (de/até) │ │ + │ └──────────────────────────┘ │ + │ │ + │ 👆 filtra "GUILD_BAN_ADD" │ + │ ─────────────────────────────────► │ + │ │ SelectFilter: event_type = GUILD_BAN_ADD + │ │ query usa índice event_type ✓ (106 rows) + │ │ + │ "106 registros encontrados" │ + │ ◄───────────────────────────────── │ + │ │ + │ 👆 clica numa linha (ViewAction) │ + │ ─────────────────────────────────► │ + │ │ ViewDiscordEventLog: infolist + │ │ Seção "Evento": ids copiáveis + │ │ Seção "Payload": CodeEntry JSON pretty ✓ + │ │ user_id resolvível → link p/ Member ✓ + │ │ + │ 📱 payload formatado + link │ + │ "Ver membro banido" │ + │ ◄───────────────────────────────── │ +``` + +--- + +# 1. Comandos (rodar antes de escrever código) + +```bash +# Índice para ordenação/filtragem por data nos event logs (237k linhas) +php artisan make:migration add_created_at_index_to_discord_event_logs_table --module=integration-discord --table=discord_event_logs +``` + +Nenhum outro comando de scaffold: os resources já existem; as View pages, +relation managers, widgets e a página de dashboard serão criados **manualmente** +nos caminhos do módulo (`app-modules/panel-admin/src/Discord/...`), porque os +geradores do Filament não conhecem os paths do `internachi/modular`. Os +esqueletos de referência estão em cada seção abaixo. + +# 2. Migration + Models + +## 2.1 Migration: índice em `created_at` + +**Contexto**: `discord_event_logs` tem 237k linhas e cresce ~4k/dia. Hoje só +`event_type` e `guild_id` são indexados; `defaultSort('created_at', 'desc')` e o +filtro de período fariam seq scan. Nenhuma coluna muda → **não** há PHPDoc de +model a atualizar. + +```php +// database/migrations/xxxx_add_created_at_index_to_discord_event_logs_table.php +Schema::table('discord_event_logs', function (Blueprint $table): void { + $table->index('created_at'); +}); +// down(): $table->dropIndex(['created_at']); +``` + +**Expected behavior** +- **Dado** a migration aplicada, **então** `\d discord_event_logs` mostra + `discord_event_logs_created_at_index`. +- **Dado** rollback, **então** o índice é removido sem afetar dados. + +## 2.2 Enum `DiscordChannelType` — contratos Filament + +**Contexto**: `He4rt\IntegrationDiscord\Enums\DiscordChannelType` (int-backed, +12 cases) é exibido cru como número na tabela de canais. A coluna `type` vira +badge; o enum precisa dos contratos Filament (precedente: enums de moderation). +Enum **não ordenado** → cores semânticas distintas por case (a regra do "heat +ramp" não se aplica). + +Antes / depois: + +```php +// ANTES +enum DiscordChannelType: int +{ + case GuildText = 0; + // ... +} + +// DEPOIS +use Filament\Support\Contracts\HasColor; +use Filament\Support\Contracts\HasDescription; +use Filament\Support\Contracts\HasIcon; +use Filament\Support\Contracts\HasLabel; +use Filament\Support\Icons\Heroicon; + +enum DiscordChannelType: int implements HasColor, HasDescription, HasIcon, HasLabel +{ + case GuildText = 0; + // ... cases inalterados ... + + public function getLabel(): string { /* match all cases */ } + public function getColor(): string { /* match all cases */ } + public function getDescription(): ?string { /* match all cases */ } + public function getIcon(): Heroicon { /* match all cases */ } +} +``` + +Mapeamento completo (todos os getters são `match ($this)` sem `default`): + +| Case | Label | Color | Icon (`Filament\Support\Icons\Heroicon`) | +| --- | --- | --- | --- | +| GuildText | `Texto` | `gray` | `Heroicon::OutlinedHashtag` | +| Dm | `DM` | `info` | `Heroicon::OutlinedEnvelope` | +| GuildVoice | `Voz` | `success` | `Heroicon::OutlinedSpeakerWave` | +| GroupDm | `DM em grupo` | `info` | `Heroicon::OutlinedEnvelope` | +| GuildCategory | `Categoria` | `gray` | `Heroicon::OutlinedFolder` | +| GuildAnnouncement | `Anúncios` | `warning` | `Heroicon::OutlinedMegaphone` | +| AnnouncementThread | `Thread de anúncio` | `warning` | `Heroicon::OutlinedChatBubbleBottomCenterText` | +| PublicThread | `Thread pública` | `primary` | `Heroicon::OutlinedChatBubbleBottomCenterText` | +| PrivateThread | `Thread privada` | `primary` | `Heroicon::OutlinedChatBubbleBottomCenterText` | +| GuildStageVoice | `Palco` | `danger` | `Heroicon::OutlinedMicrophone` | +| GuildForum | `Fórum` | `primary` | `Heroicon::OutlinedChatBubbleLeftRight` | +| GuildMedia | `Mídia` | `info` | `Heroicon::OutlinedPhoto` | + +Descrições curtas (`getDescription()`): uma frase por case explicando o tipo +(ex.: GuildText → `'Canal de texto padrão do servidor'`). Labels do enum ficam +hardcoded no enum (módulo de domínio não usa lang do panel-admin). + +**Expected behavior** +- **Dado** um canal tipo 0, **então** a tabela mostra badge cinza "Texto" com + ícone hashtag (sem config manual na coluna — os contratos resolvem). +- **Dado** qualquer case novo adicionado no futuro, **então** o `match` sem + `default` força erro de compilação até preencher os 4 getters. + +## 2.3 Factory para `DiscordEventLog` + +**Contexto**: `DiscordEventLog` é o único model do cluster sem factory (os +smoke tests precisam). O model hoje não usa `HasFactory`. Seguir a guideline de +atributos explícitos ao tocar o model. + +```php +// Model DiscordEventLog — adicionar: +use He4rt\IntegrationDiscord\Database\Factories\DiscordEventLogFactory; +use Illuminate\Database\Eloquent\Attributes\UseFactory; +use Illuminate\Database\Eloquent\Factories\HasFactory; + +#[UseFactory(DiscordEventLogFactory::class)] +final class DiscordEventLog extends Model +{ + /** @use HasFactory */ + use HasFactory; + // resto inalterado +} +``` + +Factory em +`app-modules/integration-discord/database/factories/DiscordEventLogFactory.php` +(namespace `He4rt\IntegrationDiscord\Database\Factories`, seguir os siblings): + +```php +public function definition(): array +{ + return [ + 'event_type' => fake()->randomElement(['MESSAGE_CREATE', 'GUILD_MEMBER_ADD', 'VOICE_STATE_UPDATE', 'GUILD_BAN_ADD']), + 'guild_id' => (string) fake()->numerify('45292621755816####'), + 'user_id' => (string) fake()->numerify('26749964733605####'), + 'channel_id' => (string) fake()->numerify('55922413525165####'), + 'payload' => ['id' => fake()->uuid(), 'content' => fake()->sentence()], + ]; +} +``` + +# 3. i18n — lang files + +**Contexto**: nenhuma label do cluster está traduzida. Criar +`app-modules/panel-admin/lang/en/discord.php` e `lang/pt_BR/discord.php` +espelhando a estrutura de `twitch.php`. Toda label citada nas seções abaixo com +chave `panel-admin::discord.*` deve existir nos dois arquivos. + +Estrutura mínima de chaves: + +```php +return [ + 'navigation' => [ + 'cluster' => 'Discord', + 'cluster_breadcrumb' => 'Discord', + 'group_overview' => 'Overview', // pt_BR: 'Visão geral' + 'group_server' => 'Server', // pt_BR: 'Servidor' + 'group_events' => 'Events', // pt_BR: 'Eventos' + 'dashboard' => 'Dashboard', + 'guilds' => 'Guilds', + 'channels' => 'Channels', // pt_BR: 'Canais' + 'roles' => 'Roles', // pt_BR: 'Cargos' + 'members' => 'Members', // pt_BR: 'Membros' + 'event_logs' => 'Event Logs', // pt_BR: 'Logs de eventos' + ], + 'guilds' => ['label' => ..., 'plural' => ..., 'fields' => [/* uma chave por coluna/entry */], 'sections' => [...]], + 'channels' => ['label' => ..., 'plural' => ..., 'fields' => [...], 'filters' => [...], 'groups' => ['uncategorized' => ...]], + 'members' => ['label' => ..., 'plural' => ..., 'fields' => [...], 'filters' => [...]], + 'roles' => ['label' => ..., 'plural' => ..., 'fields' => [...]], + 'event_logs' => ['label' => ..., 'plural' => ..., 'fields' => [...], 'filters' => [...]], + 'dashboard' => ['heading' => ..., 'stats' => [...], 'events_per_day' => ..., 'member_growth' => [...]], +]; +``` + +O implementador define os textos finais (en + pt_BR) para cada campo citado nos +resources abaixo — nomes de campo humanos, nunca "Discord Guild Id". + +# 4. Cluster + +**Contexto**: `DiscordCluster` usa `Heroicon::OutlinedCodeBracket` (genérico) e +labels hardcoded. Arquivo: +`app-modules/panel-admin/src/Discord/DiscordCluster.php`. + +Mudanças: +- `$navigationIcon` → `Heroicon::OutlinedChatBubbleLeftRight` +- `getNavigationLabel()` → `__('panel-admin::discord.navigation.cluster')` +- `getClusterBreadcrumb()` → `__('panel-admin::discord.navigation.cluster_breadcrumb')` +- Mantém `$navigationSort = 40`, `$slug = 'discord'`, `$shouldRegisterSubNavigation = false`. + +# 5. Padrão read-only (aplica-se aos 5 resources) + +**Contexto**: hoje cada resource registra `index`/`create`/`edit`, tem +`DiscordXxxForm` e a tabela expõe Edit/Delete/DeleteBulk. Os dados são espelho +do sync — qualquer edição seria sobrescrita. + +Para **cada** resource: + +1. **Deletar** `Pages/CreateDiscordXxx.php` e `Pages/EditDiscordXxx.php`. +2. **Deletar** `Schemas/DiscordXxxForm.php` e remover o método `form()` do resource. +3. **Criar** `Pages/ViewDiscordXxx.php`: + +```php + ListDiscordGuilds::route('/'), + 'view' => ViewDiscordGuild::route('/{record}'), +]; +``` + +(usar `use` statements, não FQCN inline como está no scaffold.) + +5. **Tabela** — antes/depois das actions: + +```php +// ANTES +->recordActions([EditAction::make(), DeleteAction::make()]) +->toolbarActions([BulkActionGroup::make([DeleteBulkAction::make()])]) + +// DEPOIS +->recordActions([ViewAction::make()]) +// sem toolbarActions +``` + +`ViewAction` = `Filament\Actions\ViewAction`. Clique na linha navega para a View +page automaticamente (único page-route de record registrado). + +6. Nas `ListDiscordXxx` pages, remover `CreateAction` de `getHeaderActions()` + (o scaffold gera `[CreateAction::make()]` — deixar `[]` ou remover o método). + +**Expected behavior (todos os resources)** +- **Dado** um admin na listagem, **então** não existe botão "New/Create", nem + Edit/Delete por linha, nem bulk actions. +- **Dado** acesso direto a `/admin/discord/discord-guilds/create`, **então** 404 + (rota não registrada). +- **Dado** clique numa linha, **então** navega para a View page (infolist). + +--- + +# 6. DiscordGuildResource + +**Contexto**: 1 registro em prod (He4rt Developers, 24.723 membros, tier 3, 38 +features). A tabela atual mostra `icon` como hash de texto e `features` como +JSON cru. Arquivos em +`app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/`. + +Navegação (no resource): +- Ícone: `Heroicon::OutlinedServerStack`; sort `1` +- `getNavigationLabel()` → `__('panel-admin::discord.navigation.guilds')` +- `getNavigationGroup()` → `__('panel-admin::discord.navigation.group_server')` +- `getModelLabel()` / `getPluralModelLabel()` → `panel-admin::discord.guilds.label|plural` +- `$recordTitleAttribute = 'name'`; global search: `['name']` (manter). + +## Tabela (`Tables/DiscordGuildsTable.php`) + +Antes / depois (colunas-chave): + +```php +// ANTES +TextColumn::make('icon')->label('Icon'), +TextColumn::make('features')->label('Features'), + +// DEPOIS +ImageColumn::make('icon') + ->label(__('panel-admin::discord.guilds.fields.icon')) + ->circular() + ->state(fn (DiscordGuild $record): ?string => $record->icon + ? sprintf('https://cdn.discordapp.com/icons/%s/%s.png?size=64', $record->discord_guild_id, $record->icon) + : null), +// features sai da tabela (vira badges na View) +``` + +``` +Column: icon + Component: Filament\Tables\Columns\ImageColumn + Docs: https://filamentphp.com/docs/5.x/tables/columns/image + Config: ->circular(), ->state(closure CDN acima) + +Column: name + Component: Filament\Tables\Columns\TextColumn + Docs: https://filamentphp.com/docs/5.x/tables/columns/text + Config: ->searchable(), ->sortable(), ->weight(FontWeight::Bold), ->description(fn (DiscordGuild $record): ?string => $record->description) + Imports: Filament\Support\Enums\FontWeight + +Column: member_count + Component: Filament\Tables\Columns\TextColumn + Config: ->numeric(), ->sortable() + +Column: premium_tier + Component: Filament\Tables\Columns\TextColumn + Config: ->badge(), ->formatStateUsing(fn (int $state): string => "Tier {$state}"), ->color(fn (int $state): string => match (true) { $state >= 3 => 'success', $state >= 1 => 'warning', default => 'gray' }) + +Column: channels_count + Component: Filament\Tables\Columns\TextColumn + Config: ->counts('channels'), ->numeric() + +Column: roles_count + Component: Filament\Tables\Columns\TextColumn + Config: ->counts('roles'), ->numeric() + +Column: synced_at + Component: Filament\Tables\Columns\TextColumn + Config: ->dateTime('d/m/Y H:i'), ->timezone(config('app.display_timezone')), ->sortable(), ->placeholder('—') + +Column: discord_guild_id + Component: Filament\Tables\Columns\TextColumn + Config: ->copyable(), ->toggleable(isToggledHiddenByDefault: true) +``` + +Sem filtros (1 registro). `->defaultSort('name')`. + +## Infolist (`Schemas/DiscordGuildInfolist.php`) + +Layout: `Columns: 1` no schema raiz (`$schema->columns(1)`), seções com +`->columns(2)` internas (largura efetiva 50% — ok). + +``` +Section: guilds.sections.overview (Filament\Schemas\Components\Section, ->columns(2)) + Entry: icon + Component: Filament\Infolists\Components\ImageEntry + Docs: https://filamentphp.com/docs/5.x/infolists/image-entry + Config: ->circular(), ->state(mesma closure CDN, size=128) + Entry: name — TextEntry, ->weight(FontWeight::Bold) + Entry: discord_guild_id — TextEntry, ->copyable() + Entry: description — TextEntry, ->columnSpanFull(), ->placeholder('—') + Entry: member_count — TextEntry, ->numeric() + Entry: premium_tier — TextEntry, ->badge() (mesma config da tabela) + Entry: synced_at — TextEntry, ->dateTime('d/m/Y H:i'), ->timezone(config('app.display_timezone')), ->placeholder('—') + +Section: guilds.sections.features (->collapsed()) + Entry: features + Component: Filament\Infolists\Components\TextEntry + Docs: https://filamentphp.com/docs/5.x/infolists/text-entry + Config: ->badge(), ->columnSpanFull() // array cast → um badge por item +``` + +## Relation Managers (drill-down escolhido pelo usuário) + +Criar manualmente em +`app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/RelationManagers/` +(base: `Filament\Resources\RelationManagers\RelationManager`; ver +`app-modules/panel-admin/src/Filament/Resources/ExternalIdentities/RelationManagers/MessagesRelationManager.php` +como exemplo de estrutura no repo). Registrar no resource: + +```php +public static function getRelations(): array +{ + return [ + ChannelsRelationManager::class, + RolesRelationManager::class, + MembersRelationManager::class, + ]; +} +``` + +Os 3 são **read-only**: sem `form()`, sem header/record actions exceto uma +`ViewAction` com `->url()` apontando para a View page do resource +correspondente (link cruzado): + +```php +ViewAction::make()->url(fn (DiscordChannel $record): string => DiscordChannelResource::getUrl('view', ['record' => $record])) +``` + +``` +RelationManager: ChannelsRelationManager + Relationship: channels (hasMany DiscordChannel) + Title attribute: name + Can create/edit/delete: não + Table: colunas name, type (badge — enum resolve), position (->numeric()->sortable()), nsfw (IconColumn ->boolean()) + defaultSort: position asc + +RelationManager: RolesRelationManager + Relationship: roles (hasMany DiscordRole) + Title attribute: name + Table: colunas color (ColorColumn, config da seção 8), name, position (->sortable()), is_managed (IconColumn ->boolean()) + defaultSort: position desc + +RelationManager: MembersRelationManager + Relationship: members (hasMany DiscordMember) + Title attribute: username + Table: colunas avatar (ImageColumn circular, config da seção 9), username (->searchable()), joined_at (dateTime display_timezone, ->sortable()) + defaultSort: joined_at desc + Config extra: ->deferLoading() (26k registros), ->modifyQueryUsing(fn (Builder $query) => $query->whereNull('left_at')) +``` + +**Expected behavior** +- **Dado** a View da guild He4rt, **então** vejo o ícone renderizado do CDN, + badge "Tier 3" verde, 38 features como badges na seção colapsada, e 3 abas de + relation managers (Canais, Cargos, Membros). +- **Dado** guild sem icon (null), **então** `ImageColumn`/`ImageEntry` não + quebra (state null → sem imagem). +- **Dado** clique na ViewAction de um canal dentro do relation manager, + **então** navega para a View page do DiscordChannelResource. + +--- + +# 7. DiscordChannelResource + +**Contexto**: 272 canais — 240 texto, 15 categorias (type 4), 11 voz, 3 fóruns, +2 palcos, 1 anúncios. Nomes usam emoji (`🍲 | Panela`). A lista atual é plana +com type numérico. Decisão: espelhar a sidebar do Discord — **agrupar por +categoria**, ordenar por `position` dentro do grupo, e **excluir as categorias +das linhas** (elas viram títulos de grupo). + +Navegação: ícone `Heroicon::OutlinedHashtag`, sort `2`, mesmo nav group +`group_server`, labels `panel-admin::discord.channels.*`. Global search: manter +`['name', 'guild.name', 'parent.name']` e os detalhes existentes. + +## Tabela (`Tables/DiscordChannelsTable.php`) + +Config da tabela: + +```php +->modifyQueryUsing(fn (Builder $query): Builder => $query + ->where('type', '!=', DiscordChannelType::GuildCategory) + ->with('parent')) +->defaultGroup( + Group::make('parent.name') + ->label(__('panel-admin::discord.channels.fields.category')) + ->getTitleFromRecordUsing(fn (DiscordChannel $record): string => $record->parent?->name ?? __('panel-admin::discord.channels.groups.uncategorized')) + ->collapsible() +) +->groupingSettingsHidden() +->defaultSort('position') +``` + +Imports: `Filament\Tables\Grouping\Group`, +`Illuminate\Database\Eloquent\Builder`. Docs: +https://filamentphp.com/docs/5.x/tables/grouping + +``` +Column: name + Component: Filament\Tables\Columns\TextColumn + Docs: https://filamentphp.com/docs/5.x/tables/columns/text + Config: ->searchable(), ->sortable(), ->weight(FontWeight::Medium), ->description(fn (DiscordChannel $record): ?string => $record->topic ? Str::limit($record->topic, 80) : null) + Imports: Illuminate\Support\Str, Filament\Support\Enums\FontWeight + +Column: type + Component: Filament\Tables\Columns\TextColumn + Config: ->badge() // label/cor/ícone vêm do enum (seção 2.2) + +Column: position + Component: Filament\Tables\Columns\TextColumn + Config: ->numeric(), ->sortable(), ->toggleable(isToggledHiddenByDefault: true) + +Column: nsfw + Component: Filament\Tables\Columns\IconColumn + Docs: https://filamentphp.com/docs/5.x/tables/columns/icon + Config: ->boolean(), ->toggleable(isToggledHiddenByDefault: true) + +Column: bitrate + Component: Filament\Tables\Columns\TextColumn + Config: ->formatStateUsing(fn (?int $state): ?string => $state ? ($state / 1000) . ' kbps' : null), ->placeholder('—'), ->toggleable(isToggledHiddenByDefault: true) + +Column: user_limit + Component: Filament\Tables\Columns\TextColumn + Config: ->numeric(), ->placeholder('—'), ->toggleable(isToggledHiddenByDefault: true) + +Column: discord_channel_id + Component: Filament\Tables\Columns\TextColumn + Config: ->copyable(), ->toggleable(isToggledHiddenByDefault: true) +``` + +Colunas removidas vs. scaffold: `guild.name` (só existe 1 guild — sai da +tabela; permanece na View), `topic` (vira description da coluna name). + +``` +Filter: type + Component: Filament\Tables\Filters\SelectFilter + Docs: https://filamentphp.com/docs/5.x/tables/filters/select + Config: ->options(collect(DiscordChannelType::cases())->reject(fn (DiscordChannelType $type): bool => $type === DiscordChannelType::GuildCategory)->mapWithKeys(fn (DiscordChannelType $type): array => [$type->value => $type->getLabel()])->all()), ->multiple() + +Filter: nsfw + Component: Filament\Tables\Filters\TernaryFilter + Docs: https://filamentphp.com/docs/5.x/tables/filters/ternary + Config: (padrão sim/não/todos) +``` + +## Infolist (`Schemas/DiscordChannelInfolist.php`) + +`Columns: 1` no raiz; seções `->columns(2)`. + +``` +Section: channels.sections.channel (->columns(2)) + Entry: name — TextEntry, ->weight(FontWeight::Bold) + Entry: type — TextEntry, ->badge() + Entry: topic — TextEntry, ->columnSpanFull(), ->placeholder('—') + Entry: parent.name — TextEntry (categoria), ->placeholder('—') + Entry: guild.name — TextEntry, ->url(fn (DiscordChannel $record): ?string => $record->guild ? DiscordGuildResource::getUrl('view', ['record' => $record->guild]) : null), ->color('primary') // link cruzado + Entry: discord_channel_id — TextEntry, ->copyable() + +Section: channels.sections.settings (->columns(2), ->collapsed()) + Entry: position — TextEntry, ->numeric() + Entry: nsfw — IconEntry (Filament\Infolists\Components\IconEntry), ->boolean() + Docs: https://filamentphp.com/docs/5.x/infolists/icon-entry + Entry: bitrate — TextEntry (mesmo formatStateUsing kbps), ->placeholder('—') + Entry: user_limit — TextEntry, ->placeholder('—') + Entry: created_at / updated_at — TextEntry, ->dateTime('d/m/Y H:i'), ->timezone(config('app.display_timezone')) +``` + +**Expected behavior** +- **Dado** a listagem padrão, **então** os canais aparecem agrupados por + categoria (grupos colapsáveis), ordenados por `position`, e nenhuma linha é + uma categoria (type 4). +- **Dado** canal sem categoria (`parent_id` null), **então** cai no grupo + "Sem categoria" (chave `channels.groups.uncategorized`). +- **Dado** canal de voz, **então** badge verde "Voz" com bitrate "64 kbps"; + canal de texto mostra "—" em bitrate/user_limit. +- **Dado** busca por "panela", **então** encontra canais com emoji no nome + (busca ILIKE no `name`). + +--- + +# 8. DiscordRoleResource + +**Contexto**: 82 roles com `color` decimal (7873791 = #782BF1), hierarquia por +`position` (maior = mais alto, como no Discord). Tabela atual mostra color como +inteiro. Navegação: ícone `Heroicon::OutlinedTag`, sort `3`, group +`group_server`, labels `panel-admin::discord.roles.*`. Global search: manter. + +## Tabela (`Tables/DiscordRolesTable.php`) + +Antes / depois da cor: + +```php +// ANTES +TextColumn::make('color')->label('Color'), // renderiza "7873791" + +// DEPOIS +ColorColumn::make('color') + ->label(__('panel-admin::discord.roles.fields.color')) + ->state(fn (DiscordRole $record): ?string => $record->color > 0 + ? sprintf('#%06X', $record->color) + : null), +``` + +``` +Column: color + Component: Filament\Tables\Columns\ColorColumn + Docs: https://filamentphp.com/docs/5.x/tables/columns/color + Config: ->state(closure hex acima) // color 0 = sem cor no Discord → null → célula vazia + +Column: name + Component: Filament\Tables\Columns\TextColumn + Config: ->searchable(), ->sortable(), ->weight(FontWeight::Medium) + +Column: position + Component: Filament\Tables\Columns\TextColumn + Config: ->numeric(), ->sortable() + +Column: members_count + Component: Filament\Tables\Columns\TextColumn + Config: ->counts('members'), ->numeric(), ->sortable() + +Column: is_hoisted + Component: Filament\Tables\Columns\IconColumn + Config: ->boolean(), ->toggleable(isToggledHiddenByDefault: true) + +Column: is_mentionable + Component: Filament\Tables\Columns\IconColumn + Config: ->boolean(), ->toggleable(isToggledHiddenByDefault: true) + +Column: is_managed + Component: Filament\Tables\Columns\IconColumn + Config: ->boolean() // visível: distingue roles de bot/integração + +Column: discord_role_id + Component: Filament\Tables\Columns\TextColumn + Config: ->copyable(), ->toggleable(isToggledHiddenByDefault: true) +``` + +Colunas removidas vs. scaffold: `guild.name`, `permissions` (bitfield ilegível +— fica na View, copiável), `icon` (raramente preenchido; fica na View). + +`->defaultSort('position', 'desc')` (espelha a hierarquia do Discord). + +``` +Filter: is_managed + Component: Filament\Tables\Filters\TernaryFilter + Docs: https://filamentphp.com/docs/5.x/tables/filters/ternary + +Filter: is_hoisted + Component: Filament\Tables\Filters\TernaryFilter +``` + +## Infolist (`Schemas/DiscordRoleInfolist.php`) + +`Columns: 1` raiz; seção única `->columns(2)`: + +``` +Section: roles.sections.role (->columns(2)) + Entry: color — ColorEntry (Filament\Infolists\Components\ColorEntry), ->state(mesma closure hex), ->placeholder('—') + Docs: https://filamentphp.com/docs/5.x/infolists/color-entry + Entry: name — TextEntry, ->weight(FontWeight::Bold) + Entry: position — TextEntry, ->numeric() + Entry: members_count — TextEntry, ->state(fn (DiscordRole $record): int => $record->members()->count()) + Entry: permissions — TextEntry, ->copyable(), ->helperText('Bitfield de permissões do Discord') + Entry: discord_role_id — TextEntry, ->copyable() + Entry: is_hoisted / is_mentionable / is_managed — IconEntry, ->boolean() + Entry: guild.name — TextEntry, ->url(link cruzado p/ DiscordGuildResource view), ->color('primary') +``` + +**Expected behavior** +- **Dado** o role "💜 heartdevs.com" (color 7873791), **então** a célula mostra + o swatch #782BF1. +- **Dado** role com color 0 (ex.: "Janitor"), **então** célula de cor vazia + (sem swatch preto incorreto). +- **Dado** ordenação padrão, **então** roles de topo de hierarquia primeiro + (position 81 → 0). +- **Dado** filtro is_managed = sim, **então** só roles de bots/integrações. + +--- + +# 9. DiscordMemberResource + +**Contexto**: 26.256 membros (680 saíram, 5 bots, 1.583 pending, 13 boosters, +0 vínculos com external identity em prod). Tabela atual lista tudo sem paginação +otimizada e busca global usa `externalIdentity.email` (inútil — 0 preenchidos). +Decisão: **ativos por padrão** + deferred loading. + +Navegação: ícone `Heroicon::OutlinedUsers`, sort `4`, group `group_server`, +labels `panel-admin::discord.members.*`. + +**Global search (corrigir)**: `getGloballySearchableAttributes()` → +`['username', 'global_name', 'nickname']`; `getGlobalSearchResultDetails()` +mostra `global_name` e `nickname` quando presentes; remover o eager load de +`externalIdentity` do `getGlobalSearchEloquentQuery()` (manter `guild` se usado +nos details, senão remover o override todo). + +## Tabela (`Tables/DiscordMembersTable.php`) + +Config da tabela: + +```php +->deferLoading() +->defaultSort('joined_at', 'desc') +->paginated([25, 50, 100]) +``` + +``` +Column: avatar + Component: Filament\Tables\Columns\ImageColumn + Docs: https://filamentphp.com/docs/5.x/tables/columns/image + Config: ->circular(), ->state(fn (DiscordMember $record): ?string => $record->avatar ? sprintf('https://cdn.discordapp.com/avatars/%s/%s.png?size=64', $record->discord_user_id, $record->avatar) : null), ->defaultImageUrl(fn (DiscordMember $record): string => sprintf('https://cdn.discordapp.com/embed/avatars/%d.png', ((int) $record->discord_user_id >> 22) % 6)) + +Column: username + Component: Filament\Tables\Columns\TextColumn + Config: ->searchable(), ->sortable(), ->weight(FontWeight::Medium), ->description(fn (DiscordMember $record): ?string => $record->nickname ?? $record->global_name) + +Column: joined_at + Component: Filament\Tables\Columns\TextColumn + Config: ->dateTime('d/m/Y H:i'), ->timezone(config('app.display_timezone')), ->sortable() + +Column: roles_count + Component: Filament\Tables\Columns\TextColumn + Config: ->counts('roles'), ->numeric(), ->sortable() + +Column: is_bot + Component: Filament\Tables\Columns\IconColumn + Config: ->boolean(), ->toggleable(isToggledHiddenByDefault: true) + +Column: premium_since + Component: Filament\Tables\Columns\TextColumn + Config: ->dateTime('d/m/Y H:i'), ->timezone(config('app.display_timezone')), ->sortable(), ->placeholder('—'), ->toggleable(isToggledHiddenByDefault: true) + +Column: left_at + Component: Filament\Tables\Columns\TextColumn + Config: ->dateTime('d/m/Y H:i'), ->timezone(config('app.display_timezone')), ->sortable(), ->placeholder('—'), ->toggleable(isToggledHiddenByDefault: true) + +Column: discord_user_id + Component: Filament\Tables\Columns\TextColumn + Config: ->copyable(), ->toggleable(isToggledHiddenByDefault: true) +``` + +Colunas removidas vs. scaffold: `guild.name`, `externalIdentity.email`, +`global_name`/`nickname` (viram description do username), `avatar` texto, +`is_pending` (vira filtro), `communication_disabled_until` (View). + +``` +Filter: left_at ("Status no servidor" — o default que esconde quem saiu) + Component: Filament\Tables\Filters\TernaryFilter + Docs: https://filamentphp.com/docs/5.x/tables/filters/ternary + Config: ->label(__('panel-admin::discord.members.filters.left')), ->nullable(), ->default(false), ->trueLabel(...'saíram'), ->falseLabel(...'ativos'), ->placeholder(...'todos') + // ->nullable(): true → whereNotNull('left_at'); false → whereNull('left_at'); default(false) = ativos + +Filter: is_bot + Component: Filament\Tables\Filters\TernaryFilter + +Filter: is_pending + Component: Filament\Tables\Filters\TernaryFilter + +Filter: roles + Component: Filament\Tables\Filters\SelectFilter + Docs: https://filamentphp.com/docs/5.x/tables/filters/select + Config: ->relationship('roles', 'name'), ->multiple(), ->preload(), ->searchable() +``` + +## Infolist (`Schemas/DiscordMemberInfolist.php`) + +`Columns: 1` raiz. + +``` +Section: members.sections.profile (->columns(2)) + Entry: avatar — ImageEntry, ->circular(), ->state(mesma closure CDN, size=128) + defaultImageUrl + Entry: username — TextEntry, ->weight(FontWeight::Bold) + Entry: global_name — TextEntry, ->placeholder('—') + Entry: nickname — TextEntry, ->placeholder('—') + Entry: discord_user_id — TextEntry, ->copyable() + Entry: guild.name — TextEntry, ->url(link cruzado p/ guild view), ->color('primary') + +Section: members.sections.status (->columns(2)) + Entry: is_bot — IconEntry, ->boolean() + Entry: is_pending — IconEntry, ->boolean() + Entry: joined_at — TextEntry, ->dateTime('d/m/Y H:i'), ->timezone(config('app.display_timezone')) + Entry: premium_since — TextEntry, idem, ->placeholder('—') + Entry: communication_disabled_until — TextEntry, idem, ->placeholder('—') + Entry: left_at — TextEntry, idem, ->placeholder('—') + +Section: members.sections.roles + Entry: roles.name + Component: Filament\Infolists\Components\TextEntry + Config: ->badge(), ->columnSpanFull(), ->placeholder('—') // um badge por role +``` + +**Expected behavior** +- **Dado** a listagem padrão, **então** só membros com `left_at` null aparecem + (25.576) e a tabela usa deferred loading (skeleton antes da primeira query). +- **Dado** o filtro "saíram", **então** os 680 ex-membros aparecem com `left_at` + visível ao togglar a coluna. +- **Dado** membro sem avatar custom, **então** a coluna mostra o avatar default + do Discord calculado do snowflake (`(id >> 22) % 6`), sem imagem quebrada. +- **Dado** busca "danielhe4rt" na busca global do painel, **então** encontra por + username/global_name/nickname (não mais por email de external identity). + +--- + +# 10. DiscordEventLogResource + +**Contexto**: 237k registros, insert-only pelo gateway do bot, 48 tipos de +evento. Payloads são JSON do gateway do Discord (mensagens com embeds, voice +states, audit log entries...). `guild_id`/`user_id`/`channel_id` são snowflakes +em texto (às vezes string vazia — tratar como ausente). Espelhar o +`TwitchEventLogResource`. + +Navegação: ícone `Heroicon::OutlinedQueueList`, sort `1`, group +`group_events`, labels `panel-admin::discord.event_logs.*`. Global search: +nenhum (manter `[]`, remover método se preferir — sem record title útil). +`$recordTitleAttribute = 'event_type'`. + +## Tabela (`Tables/DiscordEventLogsTable.php`) + +Config: `->deferLoading()`, `->defaultSort('created_at', 'desc')` (usa o índice +novo), `->paginated([25, 50, 100])`. + +Antes / depois da coluna principal: + +```php +// ANTES +TextColumn::make('event_type')->label('Event Type'), + +// DEPOIS +TextColumn::make('event_type') + ->label(__('panel-admin::discord.event_logs.fields.event_type')) + ->badge() + ->color(fn (string $state): string => match (true) { + str_starts_with($state, 'MESSAGE_') => 'info', + str_starts_with($state, 'GUILD_MEMBER_') || str_starts_with($state, 'GUILD_JOIN_') => 'success', + str_starts_with($state, 'GUILD_BAN_') || str_starts_with($state, 'AUTO_MODERATION_') => 'danger', + str_starts_with($state, 'VOICE_') || str_starts_with($state, 'STAGE_') => 'warning', + str_starts_with($state, 'GUILD_AUDIT_') => 'danger', + str_starts_with($state, 'CHANNEL_') || str_starts_with($state, 'THREAD_') => 'primary', + default => 'gray', + }) + ->searchable() + ->sortable(), +``` + +``` +Column: event_type — (acima) + +Column: user_id + Component: Filament\Tables\Columns\TextColumn + Config: ->copyable(), ->placeholder('—'), ->formatStateUsing(fn (?string $state): ?string => $state !== '' ? $state : null) + +Column: channel_id + Component: Filament\Tables\Columns\TextColumn + Config: ->copyable(), ->placeholder('—'), ->toggleable(isToggledHiddenByDefault: true) + +Column: guild_id + Component: Filament\Tables\Columns\TextColumn + Config: ->copyable(), ->toggleable(isToggledHiddenByDefault: true) // 1 guild só — ruído + +Column: created_at + Component: Filament\Tables\Columns\TextColumn + Config: ->dateTime('d/m/Y H:i:s'), ->timezone(config('app.display_timezone')), ->sortable() +``` + +Coluna `payload` **sai da lista** (JSON gigante — só na View). + +``` +Filter: event_type + Component: Filament\Tables\Filters\SelectFilter + Docs: https://filamentphp.com/docs/5.x/tables/filters/select + Config: ->options(fn (): array => DiscordEventLog::query()->select('event_type')->distinct()->orderBy('event_type')->pluck('event_type', 'event_type')->all()), ->multiple(), ->searchable() + // distinct usa o índice de event_type (index-only scan) — barato + +Filter: created_at (período) + Component: Filament\Tables\Filters\Filter + Docs: https://filamentphp.com/docs/5.x/tables/filters/custom + Form: Filament\Forms\Components\DatePicker::make('from') + DatePicker::make('until') + Config: ->schema([...]), ->query(fn (Builder $query, array $data): Builder => $query + ->when($data['from'] ?? null, fn (Builder $query, string $date): Builder => $query->where('created_at', '>=', $date)) + ->when($data['until'] ?? null, fn (Builder $query, string $date): Builder => $query->where('created_at', '<=', $date . ' 23:59:59'))) +``` + +## Infolist (`Schemas/DiscordEventLogInfolist.php`) + +`Columns: 1` raiz. Espelho do TwitchEventLogResource::infolist(). + +``` +Section: event_logs.sections.event (->columns(2)) + Entry: event_type — TextEntry, ->badge() (mesma closure de cor da tabela) + Entry: created_at — TextEntry, ->dateTime('d/m/Y H:i:s'), ->timezone(config('app.display_timezone')) + Entry: guild_id — TextEntry, ->copyable(), ->placeholder('—') + Entry: channel_id — TextEntry, ->copyable(), ->placeholder('—') + Entry: user_id (link cruzado — resolve 1 query só na View, nunca na lista) + Component: Filament\Infolists\Components\TextEntry + Config: ->copyable(), ->placeholder('—'), ->url(fn (DiscordEventLog $record): ?string => filled($record->user_id) && ($member = DiscordMember::query()->where('discord_user_id', $record->user_id)->first()) ? DiscordMemberResource::getUrl('view', ['record' => $member]) : null), ->color(fn (DiscordEventLog $record): string => filled($record->user_id) ? 'primary' : 'gray') + +Section: event_logs.sections.payload + Entry: payload + Component: Filament\Infolists\Components\CodeEntry + Docs: https://filamentphp.com/docs/5.x/infolists/code-entry + Config: ->formatStateUsing(fn (array $state): string => json_encode($state, JSON_THROW_ON_ERROR | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)), ->extraAttributes(['class' => 'overflow-auto max-h-128']), ->columnSpanFull() +``` + +**Expected behavior** +- **Dado** a listagem padrão, **então** ordena por `created_at desc` via índice + (sem seq scan) e `MESSAGE_CREATE` aparece como badge azul, `GUILD_BAN_ADD` + vermelha, `VOICE_STATE_UPDATE` amarela. +- **Dado** filtro tipo + período combinados, **então** a query combina os dois + índices e retorna sem timeout. +- **Dado** um evento com `user_id` vazio (`''`, comum em GUILD_MEMBER_UPDATE), + **então** a célula mostra "—" e o link cruzado não renderiza. +- **Dado** a View de um MESSAGE_CREATE, **então** o payload aparece como JSON + identado com scroll (não estoura a página) e o user_id linka para o membro + quando ele existe em `discord_members`. + +--- + +# 11. Dashboard + Widgets + +**Contexto**: o cluster não tem página de overview. Copiar a anatomia do +`TwitchDashboard` (page + blade vazio + widgets header/footer). + +## Página + +``` +Page: DiscordDashboard + Location: He4rt\PanelAdmin\Discord\Pages\DiscordDashboard + Docs: https://filamentphp.com/docs/5.x/navigation/custom-pages + Cluster: DiscordCluster + Slug: dashboard + NavigationSort: 0 + NavigationIcon: Heroicon::OutlinedChartBar + NavigationGroup: __('panel-admin::discord.navigation.group_overview') + NavigationLabel: __('panel-admin::discord.navigation.dashboard') + MaxContentWidth: Width::Full (Filament\Support\Enums\Width) + View: 'panel-admin::discord.dashboard' + HeaderWidgets: [DiscordStatsWidget] + FooterWidgets: [EventsPerDayChartWidget, MemberGrowthChartWidget] + getFooterWidgetsColumns(): 2 +``` + +Blade: `app-modules/panel-admin/resources/views/discord/dashboard.blade.php` +com o mesmo conteúdo do twitch: ` `. + +Layout resultante: + +``` +┌──────────────────────────────────────────────────────────────┐ +│ [👥 Membros ativos] [→ Entradas 7d] [← Saídas 7d] │ +│ [⚡ Eventos 24h] [✨ Boosters] [# Canais] │ +├──────────────────────────────┬───────────────────────────────┤ +│ Eventos por dia (line, 30d) │ Crescimento de membros (bar) │ +│ ╱╲ ╱╲ │ ██ joins ░░ leaves │ +│ ___╱ ╲__╱ ╲___ │ ██░ ██░ █░ ██░ │ +└──────────────────────────────┴───────────────────────────────┘ +``` + +## Widget: DiscordStatsWidget + +``` +Widget: DiscordStatsWidget + Type: Filament\Widgets\StatsOverviewWidget + Docs: https://filamentphp.com/docs/5.x/widgets/stats-overview + Location: He4rt\PanelAdmin\Discord\Widgets\DiscordStatsWidget + Properties: protected ?string $pollingInterval = null; protected int|string|array $columnSpan = 'full'; + Imports: Filament\Widgets\StatsOverviewWidget\Stat, Filament\Support\Colors\Color, Filament\Support\Icons\Heroicon + + Stats (labels/descrições via panel-admin::discord.dashboard.stats.*): + Stat: Membros ativos + Value: DiscordMember::query()->whereNull('left_at')->where('is_bot', false)->count() + Icon: Heroicon::OutlinedUsers, Color: Color::Blue + Stat: Entradas (7d) + Value: DiscordMember::query()->where('joined_at', '>=', now()->subDays(7))->count() + Icon: Heroicon::OutlinedArrowRightEndOnRectangle, Color: Color::Green + Stat: Saídas (7d) + Value: DiscordMember::query()->where('left_at', '>=', now()->subDays(7))->count() + Icon: Heroicon::OutlinedArrowLeftStartOnRectangle, Color: Color::Red + Stat: Eventos (24h) + Value: DiscordEventLog::query()->where('created_at', '>=', now()->subDay())->count() // usa índice novo + Icon: Heroicon::OutlinedBolt, Color: Color::Amber + Stat: Boosters + Value: DiscordMember::query()->whereNotNull('premium_since')->whereNull('left_at')->count() + Icon: Heroicon::OutlinedSparkles, Color: Color::Fuchsia + Stat: Canais + Value: DiscordChannel::query()->where('type', '!=', DiscordChannelType::GuildCategory)->count() + Icon: Heroicon::OutlinedHashtag, Color: Color::Gray +``` + +## Widget: EventsPerDayChartWidget + +``` +Widget: EventsPerDayChartWidget + Type: Filament\Widgets\ChartWidget + Docs: https://filamentphp.com/docs/5.x/widgets/charts + Location: He4rt\PanelAdmin\Discord\Widgets\EventsPerDayChartWidget + ChartType: line + Heading: __('panel-admin::discord.dashboard.events_per_day') + Data: cópia estrutural do He4rt\PanelAdmin\Twitch\Widgets\EventsPerDayChartWidget — + DiscordEventLog, últimos 30 dias, selectRaw('DATE(created_at) as date, COUNT(*) as total'), + preenchendo dias sem eventos com 0. + Cores do dataset: borderColor '#782bf1' (roxo He4rt), backgroundColor 'rgba(120, 43, 241, 0.1)', fill true, tension 0.3 +``` + +## Widget: MemberGrowthChartWidget + +``` +Widget: MemberGrowthChartWidget + Type: Filament\Widgets\ChartWidget + Location: He4rt\PanelAdmin\Discord\Widgets\MemberGrowthChartWidget + ChartType: bar + Heading: __('panel-admin::discord.dashboard.member_growth.heading') + + Data (fonte: discord_members, não event logs — sobrevive a prune futuro): + $start = now()->subDays(29)->startOfDay(); + joins: DiscordMember::query()->where('joined_at', '>=', $start)->selectRaw('DATE(joined_at) as date, COUNT(*) as total')->groupBy('date')->pluck('total', 'date') + leaves: DiscordMember::query()->where('left_at', '>=', $start)->selectRaw('DATE(left_at) as date, COUNT(*) as total')->groupBy('date')->pluck('total', 'date') + Loop de 30 dias preenchendo zeros (mesmo padrão do widget da Twitch). + + Datasets: + - label __('...member_growth.joins'), data joins, backgroundColor 'rgba(34, 197, 94, 0.7)' + - label __('...member_growth.leaves'), data leaves (valores negativos: * -1, para efeito espelhado), backgroundColor 'rgba(239, 68, 68, 0.7)' + Options: stacked true nos eixos x/y (getOptions() retornando ['scales' => ['x' => ['stacked' => true], 'y' => ['stacked' => true]]]) +``` + +**Expected behavior** +- **Dado** o dashboard aberto, **então** os 6 stats carregam com uma query cada + (todas count com filtros indexados ou tabelas pequenas). +- **Dado** um dia sem eventos, **então** o chart mostra 0 (não pula o dia). +- **Dado** dark mode, **então** nada quebra (widgets nativos do Filament — sem + bg hardcoded; o blade custom é vazio). + +# 12. Autorização + +``` +Todos os resources e o dashboard: Authorization: todos os usuários autenticados +no painel admin (o acesso ao painel já é restrito por config('he4rt.admins') — +ver AdminPanelAccessTest). Sem policies novas. O read-only é estrutural: não +existem rotas create/edit nem actions de escrita. +``` + +# 13. Testes (smoke) + +**Contexto**: não existe teste para o cluster Discord. Padrão de setup copiado +de `app-modules/panel-admin/tests/Feature/Github/GithubRepositoryResourceTest.php`. + +Arquivo: `app-modules/panel-admin/tests/Feature/Discord/DiscordClusterSmokeTest.php` + +Setup (beforeEach): + +```php +use function Pest\Livewire\livewire; + +beforeEach(function (): void { + $user = User::factory()->create(['username' => 'danielhe4rt']); + config(['he4rt.admins' => 'danielhe4rt']); + $this->actingAs($user); + Filament::setCurrentPanel(Filament::getPanel('admin')); +}); +``` + +Casos (todos com dados de factory, usando `->recycle($guild)` para propagar a +guild): + +1. `lista as guilds` — cria `DiscordGuild::factory()`, `livewire(ListDiscordGuilds::class)->loadTable()->assertCanSeeTableRecords([...])` (loadTable por causa do deferLoading onde houver). +2. `exibe a view da guild` — `livewire(ViewDiscordGuild::class, ['record' => $guild->id])->assertOk()`. +3. `lista canais agrupados sem categorias` — cria 1 categoria + 2 canais filhos; assertCanSeeTableRecords nos filhos e `assertCanNotSeeTableRecords([$categoria])`. +4. `exibe a view do canal` — assertOk. +5. `lista membros ativos por padrão` — cria 1 membro ativo + 1 com `left_at`; vê o ativo, não vê o que saiu; `filterTable('left_at', true)` inverte. +6. `exibe a view do membro` — assertOk. +7. `lista roles ordenadas por position desc` — 2 roles, assertCanSeeTableRecords in order. +8. `exibe a view do role` — assertOk (incluir role com color 0 para cobrir o placeholder). +9. `lista event logs` — `DiscordEventLog::factory()->count(2)`, loadTable, assertCanSeeTableRecords. +10. `filtra event logs por tipo` — `filterTable('event_type', ['GUILD_BAN_ADD'])`. +11. `exibe a view do event log com payload` — assertOk. +12. `dashboard renderiza` — `livewire(DiscordDashboard::class)->assertOk()` e cada widget: `livewire(DiscordStatsWidget::class)->assertOk()` etc. +13. `relation managers da guild renderizam` — padrão: + +```php +livewire(ChannelsRelationManager::class, [ + 'ownerRecord' => $guild, + 'pageClass' => ViewDiscordGuild::class, +])->assertOk(); +``` + +Rodar: `php artisan test --compact --filter=DiscordClusterSmokeTest` e depois a +suíte do módulo panel-admin + integration-discord (a migration). + +# 14. Ordem de implementação e verificação final + +1. Migration (índice) + `php artisan migrate`. +2. Enum `DiscordChannelType` (contratos) — roda PHPStan cedo, pega call sites. +3. Factory + model `DiscordEventLog`. +4. Lang files (en + pt_BR). +5. Cluster (ícone/labels). +6. Resources na ordem: EventLogs (espelho fiel do Twitch, valida o padrão) → + Guild → Channels → Roles → Members. +7. Relation managers da Guild. +8. Dashboard + widgets + blade. +9. Smoke tests. +10. `vendor/bin/pint --dirty --format agent` && `vendor/bin/phpstan analyse` && + `php artisan test --compact` (módulos panel-admin e integration-discord). + +## Checklist do plano (auto-revisão) + +- [x] Namespaces completos em todo componente (colunas, filtros, entries, actions, widgets). +- [x] Docs URLs (5.x) em cada tipo de componente usado. +- [x] Sem componentes inexistentes (BadgeColumn/BooleanColumn → TextColumn->badge()/IconColumn->boolean()). +- [x] Layout: infolists com `Columns: 1` no raiz + seções `->columns(2)` (largura efetiva 50%). +- [x] Read-only: nenhum form spec (não há create/edit) — validação N/A. +- [x] Autorização declarada explicitamente (sem policies novas). +- [x] Timezone: todo dateTime com `config('app.display_timezone')`. +- [x] `toolbarActions` removidas (não há bulk actions para preservar). +- [x] Comando de migration com `--module`; colunas de data intocadas (sem Tz a corrigir). diff --git a/app-modules/panel-admin/lang/en/discord.php b/app-modules/panel-admin/lang/en/discord.php new file mode 100644 index 000000000..c8d39cf01 --- /dev/null +++ b/app-modules/panel-admin/lang/en/discord.php @@ -0,0 +1,182 @@ + [ + 'cluster' => 'Discord', + 'cluster_breadcrumb' => 'Discord', + 'group_overview' => 'Overview', + 'group_server' => 'Server', + 'group_events' => 'Events', + 'dashboard' => 'Dashboard', + 'guilds' => 'Guilds', + 'channels' => 'Channels', + 'roles' => 'Roles', + 'members' => 'Members', + 'event_logs' => 'Event Logs', + ], + + 'guilds' => [ + 'label' => 'Guild', + 'plural' => 'Guilds', + 'fields' => [ + 'icon' => 'Icon', + 'name' => 'Name', + 'description' => 'Description', + 'discord_guild_id' => 'Guild ID', + 'member_count' => 'Members', + 'premium_tier' => 'Boost tier', + 'channels_count' => 'Channels', + 'roles_count' => 'Roles', + 'synced_at' => 'Last synced', + 'features' => 'Features', + ], + 'sections' => [ + 'overview' => 'Overview', + 'features' => 'Features', + ], + ], + + 'channels' => [ + 'label' => 'Channel', + 'plural' => 'Channels', + 'fields' => [ + 'name' => 'Name', + 'type' => 'Type', + 'topic' => 'Topic', + 'category' => 'Category', + 'guild' => 'Guild', + 'position' => 'Position', + 'nsfw' => 'Age-restricted', + 'bitrate' => 'Bitrate', + 'user_limit' => 'User limit', + 'discord_channel_id' => 'Channel ID', + 'created_at' => 'Created at', + 'updated_at' => 'Updated at', + ], + 'filters' => [ + 'type' => 'Type', + 'nsfw' => 'Age-restricted', + ], + 'groups' => [ + 'uncategorized' => 'Uncategorized', + ], + 'sections' => [ + 'channel' => 'Channel', + 'settings' => 'Settings', + ], + ], + + 'members' => [ + 'label' => 'Member', + 'plural' => 'Members', + 'fields' => [ + 'avatar' => 'Avatar', + 'username' => 'Username', + 'global_name' => 'Display name', + 'nickname' => 'Nickname', + 'joined_at' => 'Joined at', + 'roles_count' => 'Roles', + 'is_bot' => 'Bot', + 'premium_since' => 'Boosting since', + 'left_at' => 'Left at', + 'discord_user_id' => 'User ID', + 'guild' => 'Guild', + 'is_pending' => 'Pending verification', + 'communication_disabled_until' => 'Timed out until', + 'roles' => 'Roles', + ], + 'filters' => [ + 'left' => [ + 'label' => 'Server status', + 'true' => 'Left', + 'false' => 'Active', + 'placeholder' => 'All', + ], + 'is_bot' => 'Bot', + 'is_pending' => 'Pending verification', + 'roles' => 'Roles', + ], + 'sections' => [ + 'profile' => 'Profile', + 'status' => 'Status', + 'roles' => 'Roles', + ], + ], + + 'roles' => [ + 'label' => 'Role', + 'plural' => 'Roles', + 'fields' => [ + 'color' => 'Color', + 'name' => 'Name', + 'position' => 'Position', + 'members_count' => 'Members', + 'is_hoisted' => 'Shown separately', + 'is_mentionable' => 'Mentionable', + 'is_managed' => 'Managed by integration', + 'discord_role_id' => 'Role ID', + 'permissions' => 'Permissions', + 'permissions_helper' => 'Discord permissions bitfield', + 'guild' => 'Guild', + ], + 'filters' => [ + 'is_managed' => 'Managed by integration', + 'is_hoisted' => 'Shown separately', + ], + 'sections' => [ + 'role' => 'Role', + ], + ], + + 'event_logs' => [ + 'label' => 'Event Log', + 'plural' => 'Event Logs', + 'fields' => [ + 'event_type' => 'Event type', + 'user_id' => 'User ID', + 'channel_id' => 'Channel ID', + 'guild_id' => 'Guild ID', + 'created_at' => 'Occurred at', + 'payload' => 'Payload', + ], + 'filters' => [ + 'event_type' => 'Event type', + 'period' => [ + 'label' => 'Period', + 'from' => 'From', + 'until' => 'Until', + ], + ], + 'sections' => [ + 'event' => 'Event', + 'payload' => 'Payload', + ], + ], + + 'dashboard' => [ + 'heading' => 'Discord Overview', + 'stats' => [ + 'active_members' => 'Active members', + 'active_members_desc' => 'currently in the server', + 'joins_7d' => 'Joins (7d)', + 'joins_7d_desc' => 'last 7 days', + 'leaves_7d' => 'Leaves (7d)', + 'leaves_7d_desc' => 'last 7 days', + 'events_24h' => 'Events (24h)', + 'events_24h_desc' => 'last 24 hours', + 'boosters' => 'Boosters', + 'boosters_desc' => 'active boosts', + 'channels' => 'Channels', + 'channels_desc' => 'excluding categories', + ], + 'events_per_day' => 'Events per Day', + 'events_per_day_label' => 'Events', + 'member_growth' => [ + 'heading' => 'Member Growth', + 'joins' => 'Joins', + 'leaves' => 'Leaves', + ], + ], +]; diff --git a/app-modules/panel-admin/lang/pt_BR/discord.php b/app-modules/panel-admin/lang/pt_BR/discord.php new file mode 100644 index 000000000..29633f83b --- /dev/null +++ b/app-modules/panel-admin/lang/pt_BR/discord.php @@ -0,0 +1,182 @@ + [ + 'cluster' => 'Discord', + 'cluster_breadcrumb' => 'Discord', + 'group_overview' => 'Visão geral', + 'group_server' => 'Servidor', + 'group_events' => 'Eventos', + 'dashboard' => 'Dashboard', + 'guilds' => 'Guilds', + 'channels' => 'Canais', + 'roles' => 'Cargos', + 'members' => 'Membros', + 'event_logs' => 'Logs de eventos', + ], + + 'guilds' => [ + 'label' => 'Guild', + 'plural' => 'Guilds', + 'fields' => [ + 'icon' => 'Ícone', + 'name' => 'Nome', + 'description' => 'Descrição', + 'discord_guild_id' => 'ID da guild', + 'member_count' => 'Membros', + 'premium_tier' => 'Nível de boost', + 'channels_count' => 'Canais', + 'roles_count' => 'Cargos', + 'synced_at' => 'Última sincronização', + 'features' => 'Recursos', + ], + 'sections' => [ + 'overview' => 'Visão geral', + 'features' => 'Recursos', + ], + ], + + 'channels' => [ + 'label' => 'Canal', + 'plural' => 'Canais', + 'fields' => [ + 'name' => 'Nome', + 'type' => 'Tipo', + 'topic' => 'Tópico', + 'category' => 'Categoria', + 'guild' => 'Guild', + 'position' => 'Posição', + 'nsfw' => 'Conteúdo sensível', + 'bitrate' => 'Taxa de bits', + 'user_limit' => 'Limite de usuários', + 'discord_channel_id' => 'ID do canal', + 'created_at' => 'Criado em', + 'updated_at' => 'Atualizado em', + ], + 'filters' => [ + 'type' => 'Tipo', + 'nsfw' => 'Conteúdo sensível', + ], + 'groups' => [ + 'uncategorized' => 'Sem categoria', + ], + 'sections' => [ + 'channel' => 'Canal', + 'settings' => 'Configurações', + ], + ], + + 'members' => [ + 'label' => 'Membro', + 'plural' => 'Membros', + 'fields' => [ + 'avatar' => 'Avatar', + 'username' => 'Usuário', + 'global_name' => 'Nome de exibição', + 'nickname' => 'Apelido', + 'joined_at' => 'Entrou em', + 'roles_count' => 'Cargos', + 'is_bot' => 'Bot', + 'premium_since' => 'Boost desde', + 'left_at' => 'Saiu em', + 'discord_user_id' => 'ID do usuário', + 'guild' => 'Guild', + 'is_pending' => 'Verificação pendente', + 'communication_disabled_until' => 'Silenciado até', + 'roles' => 'Cargos', + ], + 'filters' => [ + 'left' => [ + 'label' => 'Status no servidor', + 'true' => 'Saíram', + 'false' => 'Ativos', + 'placeholder' => 'Todos', + ], + 'is_bot' => 'Bot', + 'is_pending' => 'Verificação pendente', + 'roles' => 'Cargos', + ], + 'sections' => [ + 'profile' => 'Perfil', + 'status' => 'Status', + 'roles' => 'Cargos', + ], + ], + + 'roles' => [ + 'label' => 'Cargo', + 'plural' => 'Cargos', + 'fields' => [ + 'color' => 'Cor', + 'name' => 'Nome', + 'position' => 'Posição', + 'members_count' => 'Membros', + 'is_hoisted' => 'Exibido separadamente', + 'is_mentionable' => 'Mencionável', + 'is_managed' => 'Gerenciado por integração', + 'discord_role_id' => 'ID do cargo', + 'permissions' => 'Permissões', + 'permissions_helper' => 'Bitfield de permissões do Discord', + 'guild' => 'Guild', + ], + 'filters' => [ + 'is_managed' => 'Gerenciado por integração', + 'is_hoisted' => 'Exibido separadamente', + ], + 'sections' => [ + 'role' => 'Cargo', + ], + ], + + 'event_logs' => [ + 'label' => 'Log de evento', + 'plural' => 'Logs de eventos', + 'fields' => [ + 'event_type' => 'Tipo de evento', + 'user_id' => 'ID do usuário', + 'channel_id' => 'ID do canal', + 'guild_id' => 'ID da guild', + 'created_at' => 'Ocorrido em', + 'payload' => 'Payload', + ], + 'filters' => [ + 'event_type' => 'Tipo de evento', + 'period' => [ + 'label' => 'Período', + 'from' => 'De', + 'until' => 'Até', + ], + ], + 'sections' => [ + 'event' => 'Evento', + 'payload' => 'Payload', + ], + ], + + 'dashboard' => [ + 'heading' => 'Visão geral do Discord', + 'stats' => [ + 'active_members' => 'Membros ativos', + 'active_members_desc' => 'atualmente no servidor', + 'joins_7d' => 'Entradas (7d)', + 'joins_7d_desc' => 'últimos 7 dias', + 'leaves_7d' => 'Saídas (7d)', + 'leaves_7d_desc' => 'últimos 7 dias', + 'events_24h' => 'Eventos (24h)', + 'events_24h_desc' => 'últimas 24 horas', + 'boosters' => 'Boosters', + 'boosters_desc' => 'boosts ativos', + 'channels' => 'Canais', + 'channels_desc' => 'excluindo categorias', + ], + 'events_per_day' => 'Eventos por dia', + 'events_per_day_label' => 'Eventos', + 'member_growth' => [ + 'heading' => 'Crescimento de membros', + 'joins' => 'Entradas', + 'leaves' => 'Saídas', + ], + ], +]; diff --git a/app-modules/panel-admin/resources/views/discord/dashboard.blade.php b/app-modules/panel-admin/resources/views/discord/dashboard.blade.php new file mode 100644 index 000000000..c53d377bc --- /dev/null +++ b/app-modules/panel-admin/resources/views/discord/dashboard.blade.php @@ -0,0 +1 @@ + diff --git a/app-modules/panel-admin/src/Discord/DiscordCluster.php b/app-modules/panel-admin/src/Discord/DiscordCluster.php new file mode 100644 index 000000000..9533cce38 --- /dev/null +++ b/app-modules/panel-admin/src/Discord/DiscordCluster.php @@ -0,0 +1,30 @@ + + */ + public static function getPages(): array + { + return [ + 'index' => ListDiscordChannels::route('/'), + 'view' => ViewDiscordChannel::route('/{record}'), + ]; + } + + /** + * @return Builder + */ + public static function getGlobalSearchEloquentQuery(): Builder + { + /** @var Builder $query */ + $query = parent::getGlobalSearchEloquentQuery()->with(['guild', 'parent']); + + return $query; + } + + public static function getGloballySearchableAttributes(): array + { + return ['name', 'guild.name', 'parent.name']; + } + + /** + * @param DiscordChannel $record + * @return array + */ + public static function getGlobalSearchResultDetails(Model $record): array + { + $details = [ + 'Guild' => $record->guild->name, + ]; + + if ($record->parent !== null) { + $details['Parent'] = $record->parent->name; + } + + return $details; + } +} diff --git a/app-modules/panel-admin/src/Discord/Resources/DiscordChannels/Pages/ListDiscordChannels.php b/app-modules/panel-admin/src/Discord/Resources/DiscordChannels/Pages/ListDiscordChannels.php new file mode 100644 index 000000000..88f4d3501 --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Resources/DiscordChannels/Pages/ListDiscordChannels.php @@ -0,0 +1,13 @@ +columns(1) + ->components([ + Section::make(__('panel-admin::discord.channels.sections.channel')) + ->columns(2) + ->schema([ + TextEntry::make('name') + ->label(__('panel-admin::discord.channels.fields.name')) + ->weight(FontWeight::Bold), + + TextEntry::make('type') + ->label(__('panel-admin::discord.channels.fields.type')) + ->badge(), + + TextEntry::make('topic') + ->label(__('panel-admin::discord.channels.fields.topic')) + ->columnSpanFull() + ->placeholder('—'), + + TextEntry::make('parent.name') + ->label(__('panel-admin::discord.channels.fields.category')) + ->placeholder('—'), + + TextEntry::make('guild.name') + ->label(__('panel-admin::discord.channels.fields.guild')) + ->url(fn (DiscordChannel $record): string => DiscordGuildResource::getUrl('view', ['record' => $record->guild])) + ->color('primary'), + + TextEntry::make('discord_channel_id') + ->label(__('panel-admin::discord.channels.fields.discord_channel_id')) + ->copyable(), + ]), + + Section::make(__('panel-admin::discord.channels.sections.settings')) + ->columns(2) + ->collapsed() + ->schema([ + TextEntry::make('position') + ->label(__('panel-admin::discord.channels.fields.position')) + ->numeric(), + + IconEntry::make('nsfw') + ->label(__('panel-admin::discord.channels.fields.nsfw')) + ->boolean(), + + TextEntry::make('bitrate') + ->label(__('panel-admin::discord.channels.fields.bitrate')) + ->formatStateUsing(fn (?int $state): ?string => $state ? ($state / 1_000).' kbps' : null) + ->placeholder('—'), + + TextEntry::make('user_limit') + ->label(__('panel-admin::discord.channels.fields.user_limit')) + ->placeholder('—'), + + TextEntry::make('created_at') + ->label(__('panel-admin::discord.channels.fields.created_at')) + ->dateTime('d/m/Y H:i') + ->timezone(config('app.display_timezone')), + + TextEntry::make('updated_at') + ->label(__('panel-admin::discord.channels.fields.updated_at')) + ->dateTime('d/m/Y H:i') + ->timezone(config('app.display_timezone')), + ]), + ]); + } +} diff --git a/app-modules/panel-admin/src/Discord/Resources/DiscordChannels/Tables/DiscordChannelsTable.php b/app-modules/panel-admin/src/Discord/Resources/DiscordChannels/Tables/DiscordChannelsTable.php new file mode 100644 index 000000000..390d6a6be --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Resources/DiscordChannels/Tables/DiscordChannelsTable.php @@ -0,0 +1,111 @@ +modifyQueryUsing(fn (Builder $query): Builder => $query + ->where('type', '!=', DiscordChannelType::GuildCategory) + ->with('parent')) + // Cursor pagination (padrão global do painel) não suporta ORDER BY por + // expressão, e o agrupamento por parent.name ordena via subquery. + ->paginationMode(PaginationMode::Default) + ->defaultGroup( + Group::make('parent.name') + ->label(__('panel-admin::discord.channels.fields.category')) + ->getTitleFromRecordUsing(function (DiscordChannel $record): string { + $parent = $record->parent; + + return $parent === null + ? __('panel-admin::discord.channels.groups.uncategorized') + : $parent->name; + }) + // O relacionamento parent é self-referential; a ordenação padrão do + // Group gera subquery sem alias e colide com a tabela externa. + ->orderQueryUsing(fn (Builder $query, string $direction): Builder => $query->orderBy( + DiscordChannel::query() + ->from('discord_channels as parent_channels') + ->select('parent_channels.name') + ->whereColumn('parent_channels.id', 'discord_channels.parent_id'), + $direction === 'desc' ? 'desc' : 'asc', + )) + ->collapsible() + ) + ->groupingSettingsHidden() + ->defaultSort('position') + ->columns([ + TextColumn::make('name') + ->label(__('panel-admin::discord.channels.fields.name')) + ->searchable() + ->sortable() + ->weight(FontWeight::Medium) + ->description(fn (DiscordChannel $record): ?string => $record->topic ? Str::limit($record->topic, 80) : null), + + TextColumn::make('type') + ->label(__('panel-admin::discord.channels.fields.type')) + ->badge(), + + TextColumn::make('position') + ->label(__('panel-admin::discord.channels.fields.position')) + ->numeric() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + + IconColumn::make('nsfw') + ->label(__('panel-admin::discord.channels.fields.nsfw')) + ->boolean() + ->toggleable(isToggledHiddenByDefault: true), + + TextColumn::make('bitrate') + ->label(__('panel-admin::discord.channels.fields.bitrate')) + ->formatStateUsing(fn (?int $state): ?string => $state ? ($state / 1_000).' kbps' : null) + ->placeholder('—') + ->toggleable(isToggledHiddenByDefault: true), + + TextColumn::make('user_limit') + ->label(__('panel-admin::discord.channels.fields.user_limit')) + ->numeric() + ->placeholder('—') + ->toggleable(isToggledHiddenByDefault: true), + + TextColumn::make('discord_channel_id') + ->label(__('panel-admin::discord.channels.fields.discord_channel_id')) + ->copyable() + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([ + SelectFilter::make('type') + ->label(__('panel-admin::discord.channels.filters.type')) + ->options(collect(DiscordChannelType::cases()) + ->reject(fn (DiscordChannelType $type): bool => $type === DiscordChannelType::GuildCategory) + ->mapWithKeys(fn (DiscordChannelType $type): array => [$type->value => $type->getLabel()]) + ->all()) + ->multiple(), + + TernaryFilter::make('nsfw') + ->label(__('panel-admin::discord.channels.filters.nsfw')), + ]) + ->recordActions([ + ViewAction::make(), + ]); + } +} diff --git a/app-modules/panel-admin/src/Discord/Resources/DiscordEventLogs/DiscordEventLogResource.php b/app-modules/panel-admin/src/Discord/Resources/DiscordEventLogs/DiscordEventLogResource.php new file mode 100644 index 000000000..eb760befd --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Resources/DiscordEventLogs/DiscordEventLogResource.php @@ -0,0 +1,79 @@ + + */ + public static function getPages(): array + { + return [ + 'index' => ListDiscordEventLogs::route('/'), + 'view' => ViewDiscordEventLog::route('/{record}'), + ]; + } + + public static function getGloballySearchableAttributes(): array + { + return []; + } +} diff --git a/app-modules/panel-admin/src/Discord/Resources/DiscordEventLogs/Pages/ListDiscordEventLogs.php b/app-modules/panel-admin/src/Discord/Resources/DiscordEventLogs/Pages/ListDiscordEventLogs.php new file mode 100644 index 000000000..4a910fce2 --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Resources/DiscordEventLogs/Pages/ListDiscordEventLogs.php @@ -0,0 +1,13 @@ +columns(1) + ->components([ + Section::make(__('panel-admin::discord.event_logs.sections.event')) + ->columns(2) + ->schema([ + TextEntry::make('event_type') + ->label(__('panel-admin::discord.event_logs.fields.event_type')) + ->badge() + ->formatStateUsing(fn (string $state): string => DiscordEventType::tryFrom($state)?->getLabel() ?? $state) + ->color(fn (string $state): string => DiscordEventType::tryFrom($state)?->getColor() ?? 'gray') + ->icon(fn (string $state) => DiscordEventType::tryFrom($state)?->getIcon()) + ->tooltip(fn (string $state): string => $state), + + TextEntry::make('created_at') + ->label(__('panel-admin::discord.event_logs.fields.created_at')) + ->dateTime('d/m/Y H:i:s') + ->timezone(config('app.display_timezone')), + + TextEntry::make('guild_id') + ->label(__('panel-admin::discord.event_logs.fields.guild_id')) + ->copyable() + ->placeholder('—'), + + TextEntry::make('channel_id') + ->label(__('panel-admin::discord.event_logs.fields.channel_id')) + ->copyable() + ->placeholder('—'), + + TextEntry::make('user_id') + ->label(__('panel-admin::discord.event_logs.fields.user_id')) + ->copyable() + ->placeholder('—') + ->url(fn (DiscordEventLog $record): ?string => filled($record->user_id) && ($member = DiscordMember::query()->where('discord_user_id', $record->user_id)->first()) + ? DiscordMemberResource::getUrl('view', ['record' => $member]) + : null) + ->color(fn (DiscordEventLog $record): string => filled($record->user_id) ? 'primary' : 'gray'), + ]), + + Section::make(__('panel-admin::discord.event_logs.sections.payload')) + ->schema([ + CodeEntry::make('payload') + ->label(__('panel-admin::discord.event_logs.fields.payload')) + ->jsonFlags(JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) + ->extraAttributes(['class' => 'overflow-auto max-h-128']) + ->columnSpanFull(), + ]), + ]); + } +} diff --git a/app-modules/panel-admin/src/Discord/Resources/DiscordEventLogs/Tables/DiscordEventLogsTable.php b/app-modules/panel-admin/src/Discord/Resources/DiscordEventLogs/Tables/DiscordEventLogsTable.php new file mode 100644 index 000000000..3c3a442c4 --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Resources/DiscordEventLogs/Tables/DiscordEventLogsTable.php @@ -0,0 +1,99 @@ +deferLoading() + ->defaultSort('created_at', 'desc') + ->paginated([25, 50, 100]) + ->columns([ + TextColumn::make('event_type') + ->label(__('panel-admin::discord.event_logs.fields.event_type')) + ->badge() + ->formatStateUsing(fn (string $state): string => DiscordEventType::tryFrom($state)?->getLabel() ?? $state) + ->color(fn (string $state): string => DiscordEventType::tryFrom($state)?->getColor() ?? 'gray') + ->icon(fn (string $state) => DiscordEventType::tryFrom($state)?->getIcon()) + ->tooltip(fn (string $state): string => $state) + ->searchable() + ->sortable(), + + TextColumn::make('user_id') + ->label(__('panel-admin::discord.event_logs.fields.user_id')) + ->copyable() + ->placeholder('—') + ->formatStateUsing(fn (?string $state): ?string => $state !== '' ? $state : null), + + TextColumn::make('channel_id') + ->label(__('panel-admin::discord.event_logs.fields.channel_id')) + ->copyable() + ->placeholder('—') + ->toggleable(isToggledHiddenByDefault: true), + + TextColumn::make('guild_id') + ->label(__('panel-admin::discord.event_logs.fields.guild_id')) + ->copyable() + ->toggleable(isToggledHiddenByDefault: true), + + TextColumn::make('created_at') + ->label(__('panel-admin::discord.event_logs.fields.created_at')) + ->dateTime('d/m/Y H:i:s') + ->timezone(config('app.display_timezone')) + ->sortable(), + ]) + ->filters([ + SelectFilter::make('event_type') + ->label(__('panel-admin::discord.event_logs.filters.event_type')) + ->options(fn (): array => DiscordEventLog::query() + ->select('event_type') + ->distinct() + ->orderBy('event_type') + ->pluck('event_type') + ->mapWithKeys(fn (string $type): array => [$type => DiscordEventType::tryFrom($type)?->getLabel() ?? $type]) + ->all()) + ->multiple() + ->searchable(), + + Filter::make('created_at') + ->label(__('panel-admin::discord.event_logs.filters.period.label')) + ->schema([ + DatePicker::make('from') + ->label(__('panel-admin::discord.event_logs.filters.period.from')), + DatePicker::make('until') + ->label(__('panel-admin::discord.event_logs.filters.period.until')), + ]) + ->query(function (Builder $query, array $data): Builder { + $from = $data['from'] ?? null; + $until = $data['until'] ?? null; + + if (is_string($from) && filled($from)) { + $query->where('created_at', '>=', $from); + } + + if (is_string($until) && filled($until)) { + $query->where('created_at', '<=', $until.' 23:59:59'); + } + + return $query; + }), + ]) + ->recordActions([ + ViewAction::make(), + ]); + } +} diff --git a/app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/DiscordGuildResource.php b/app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/DiscordGuildResource.php new file mode 100644 index 000000000..dd3969abd --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/DiscordGuildResource.php @@ -0,0 +1,94 @@ + + */ + public static function getPages(): array + { + return [ + 'index' => ListDiscordGuilds::route('/'), + 'view' => ViewDiscordGuild::route('/{record}'), + ]; + } + + public static function getGloballySearchableAttributes(): array + { + return ['name']; + } + + /** + * @return array + */ + public static function getRelations(): array + { + return [ + ChannelsRelationManager::class, + RolesRelationManager::class, + MembersRelationManager::class, + ]; + } +} diff --git a/app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/Pages/ListDiscordGuilds.php b/app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/Pages/ListDiscordGuilds.php new file mode 100644 index 000000000..cc9bea42b --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/Pages/ListDiscordGuilds.php @@ -0,0 +1,13 @@ +recordTitleAttribute('name') + ->defaultSort('position') + ->columns([ + TextColumn::make('name') + ->label(__('panel-admin::discord.channels.fields.name')), + + TextColumn::make('type') + ->label(__('panel-admin::discord.channels.fields.type')) + ->badge(), + + TextColumn::make('position') + ->label(__('panel-admin::discord.channels.fields.position')) + ->numeric() + ->sortable(), + + IconColumn::make('nsfw') + ->label(__('panel-admin::discord.channels.fields.nsfw')) + ->boolean(), + ]) + ->recordActions([ + ViewAction::make() + ->url(fn (DiscordChannel $record): string => DiscordChannelResource::getUrl('view', ['record' => $record])), + ]); + } +} diff --git a/app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/RelationManagers/MembersRelationManager.php b/app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/RelationManagers/MembersRelationManager.php new file mode 100644 index 000000000..ed0640f3f --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/RelationManagers/MembersRelationManager.php @@ -0,0 +1,51 @@ +recordTitleAttribute('username') + ->deferLoading() + ->defaultSort('joined_at', 'desc') + ->modifyQueryUsing(fn (Builder $query): Builder => $query->whereNull('left_at')) + ->columns([ + ImageColumn::make('avatar') + ->label(__('panel-admin::discord.members.fields.avatar')) + ->circular() + ->state(fn (DiscordMember $record): ?string => $record->avatar + ? sprintf('https://cdn.discordapp.com/avatars/%s/%s.png?size=64', $record->discord_user_id, $record->avatar) + : null) + ->defaultImageUrl(fn (DiscordMember $record): string => sprintf('https://cdn.discordapp.com/embed/avatars/%d.png', ((int) $record->discord_user_id >> 22) % 6)), + + TextColumn::make('username') + ->label(__('panel-admin::discord.members.fields.username')) + ->searchable(), + + TextColumn::make('joined_at') + ->label(__('panel-admin::discord.members.fields.joined_at')) + ->dateTime('d/m/Y H:i') + ->timezone(config('app.display_timezone')) + ->sortable(), + ]) + ->recordActions([ + ViewAction::make() + ->url(fn (DiscordMember $record): string => DiscordMemberResource::getUrl('view', ['record' => $record])), + ]); + } +} diff --git a/app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/RelationManagers/RolesRelationManager.php b/app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/RelationManagers/RolesRelationManager.php new file mode 100644 index 000000000..100a636af --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/RelationManagers/RolesRelationManager.php @@ -0,0 +1,48 @@ +recordTitleAttribute('name') + ->defaultSort('position', 'desc') + ->columns([ + ColorColumn::make('color') + ->label(__('panel-admin::discord.roles.fields.color')) + ->state(fn (DiscordRole $record): ?string => $record->color > 0 + ? sprintf('#%06X', $record->color) + : null), + + TextColumn::make('name') + ->label(__('panel-admin::discord.roles.fields.name')), + + TextColumn::make('position') + ->label(__('panel-admin::discord.roles.fields.position')) + ->sortable(), + + IconColumn::make('is_managed') + ->label(__('panel-admin::discord.roles.fields.is_managed')) + ->boolean(), + ]) + ->recordActions([ + ViewAction::make() + ->url(fn (DiscordRole $record): string => DiscordRoleResource::getUrl('view', ['record' => $record])), + ]); + } +} diff --git a/app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/Schemas/DiscordGuildInfolist.php b/app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/Schemas/DiscordGuildInfolist.php new file mode 100644 index 000000000..ce7acc75d --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/Schemas/DiscordGuildInfolist.php @@ -0,0 +1,75 @@ +columns(1) + ->components([ + Section::make(__('panel-admin::discord.guilds.sections.overview')) + ->columns(2) + ->schema([ + ImageEntry::make('icon') + ->label(__('panel-admin::discord.guilds.fields.icon')) + ->circular() + ->state(fn (DiscordGuild $record): ?string => $record->icon + ? sprintf('https://cdn.discordapp.com/icons/%s/%s.png?size=128', $record->discord_guild_id, $record->icon) + : null), + + TextEntry::make('name') + ->label(__('panel-admin::discord.guilds.fields.name')) + ->weight(FontWeight::Bold), + + TextEntry::make('discord_guild_id') + ->label(__('panel-admin::discord.guilds.fields.discord_guild_id')) + ->copyable(), + + TextEntry::make('description') + ->label(__('panel-admin::discord.guilds.fields.description')) + ->columnSpanFull() + ->placeholder('—'), + + TextEntry::make('member_count') + ->label(__('panel-admin::discord.guilds.fields.member_count')) + ->numeric(), + + TextEntry::make('premium_tier') + ->label(__('panel-admin::discord.guilds.fields.premium_tier')) + ->badge() + ->formatStateUsing(fn (int $state): string => 'Tier '.$state) + ->color(fn (int $state): string => match (true) { + $state >= 3 => 'success', + $state >= 1 => 'warning', + default => 'gray', + }), + + TextEntry::make('synced_at') + ->label(__('panel-admin::discord.guilds.fields.synced_at')) + ->dateTime('d/m/Y H:i') + ->timezone(config('app.display_timezone')) + ->placeholder('—'), + ]), + + Section::make(__('panel-admin::discord.guilds.sections.features')) + ->collapsed() + ->schema([ + TextEntry::make('features') + ->label(__('panel-admin::discord.guilds.fields.features')) + ->badge() + ->columnSpanFull(), + ]), + ]); + } +} diff --git a/app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/Tables/DiscordGuildsTable.php b/app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/Tables/DiscordGuildsTable.php new file mode 100644 index 000000000..db11e349d --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Resources/DiscordGuilds/Tables/DiscordGuildsTable.php @@ -0,0 +1,79 @@ +defaultSort('name') + ->columns([ + ImageColumn::make('icon') + ->label(__('panel-admin::discord.guilds.fields.icon')) + ->circular() + ->state(fn (DiscordGuild $record): ?string => $record->icon + ? sprintf('https://cdn.discordapp.com/icons/%s/%s.png?size=64', $record->discord_guild_id, $record->icon) + : null), + + TextColumn::make('name') + ->label(__('panel-admin::discord.guilds.fields.name')) + ->searchable() + ->sortable() + ->weight(FontWeight::Bold) + ->description(fn (DiscordGuild $record): ?string => $record->description), + + TextColumn::make('member_count') + ->label(__('panel-admin::discord.guilds.fields.member_count')) + ->numeric() + ->sortable(), + + TextColumn::make('premium_tier') + ->label(__('panel-admin::discord.guilds.fields.premium_tier')) + ->badge() + ->formatStateUsing(fn (int $state): string => 'Tier '.$state) + ->color(fn (int $state): string => match (true) { + $state >= 3 => 'success', + $state >= 1 => 'warning', + default => 'gray', + }), + + TextColumn::make('channels_count') + ->label(__('panel-admin::discord.guilds.fields.channels_count')) + ->counts('channels') + ->numeric(), + + TextColumn::make('roles_count') + ->label(__('panel-admin::discord.guilds.fields.roles_count')) + ->counts('roles') + ->numeric(), + + TextColumn::make('synced_at') + ->label(__('panel-admin::discord.guilds.fields.synced_at')) + ->dateTime('d/m/Y H:i') + ->timezone(config('app.display_timezone')) + ->sortable() + ->placeholder('—'), + + TextColumn::make('discord_guild_id') + ->label(__('panel-admin::discord.guilds.fields.discord_guild_id')) + ->copyable() + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([ + + ]) + ->recordActions([ + ViewAction::make(), + ]); + } +} diff --git a/app-modules/panel-admin/src/Discord/Resources/DiscordMembers/DiscordMemberResource.php b/app-modules/panel-admin/src/Discord/Resources/DiscordMembers/DiscordMemberResource.php new file mode 100644 index 000000000..d233b4175 --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Resources/DiscordMembers/DiscordMemberResource.php @@ -0,0 +1,98 @@ + + */ + public static function getPages(): array + { + return [ + 'index' => ListDiscordMembers::route('/'), + 'view' => ViewDiscordMember::route('/{record}'), + ]; + } + + public static function getGloballySearchableAttributes(): array + { + return ['username', 'global_name', 'nickname']; + } + + /** + * @param DiscordMember $record + */ + public static function getGlobalSearchResultDetails(Model $record): array + { + $details = []; + + if ($record->global_name) { + $details[__('panel-admin::discord.members.fields.global_name')] = $record->global_name; + } + + if ($record->nickname) { + $details[__('panel-admin::discord.members.fields.nickname')] = $record->nickname; + } + + return $details; + } +} diff --git a/app-modules/panel-admin/src/Discord/Resources/DiscordMembers/Pages/ListDiscordMembers.php b/app-modules/panel-admin/src/Discord/Resources/DiscordMembers/Pages/ListDiscordMembers.php new file mode 100644 index 000000000..d52a68b37 --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Resources/DiscordMembers/Pages/ListDiscordMembers.php @@ -0,0 +1,13 @@ +columns(1) + ->components([ + Section::make(__('panel-admin::discord.members.sections.profile')) + ->columns(2) + ->schema([ + ImageEntry::make('avatar') + ->label(__('panel-admin::discord.members.fields.avatar')) + ->circular() + ->state(fn (DiscordMember $record): ?string => $record->avatar + ? sprintf('https://cdn.discordapp.com/avatars/%s/%s.png?size=128', $record->discord_user_id, $record->avatar) + : null) + ->defaultImageUrl(fn (DiscordMember $record): string => sprintf('https://cdn.discordapp.com/embed/avatars/%d.png', ((int) $record->discord_user_id >> 22) % 6)), + + TextEntry::make('username') + ->label(__('panel-admin::discord.members.fields.username')) + ->weight(FontWeight::Bold), + + TextEntry::make('global_name') + ->label(__('panel-admin::discord.members.fields.global_name')) + ->placeholder('—'), + + TextEntry::make('nickname') + ->label(__('panel-admin::discord.members.fields.nickname')) + ->placeholder('—'), + + TextEntry::make('discord_user_id') + ->label(__('panel-admin::discord.members.fields.discord_user_id')) + ->copyable(), + + TextEntry::make('guild.name') + ->label(__('panel-admin::discord.members.fields.guild')) + ->url(fn (DiscordMember $record): string => DiscordGuildResource::getUrl('view', ['record' => $record->guild])) + ->color('primary'), + ]), + + Section::make(__('panel-admin::discord.members.sections.status')) + ->columns(2) + ->schema([ + IconEntry::make('is_bot') + ->label(__('panel-admin::discord.members.fields.is_bot')) + ->boolean(), + + IconEntry::make('is_pending') + ->label(__('panel-admin::discord.members.fields.is_pending')) + ->boolean(), + + TextEntry::make('joined_at') + ->label(__('panel-admin::discord.members.fields.joined_at')) + ->dateTime('d/m/Y H:i') + ->timezone(config('app.display_timezone')), + + TextEntry::make('premium_since') + ->label(__('panel-admin::discord.members.fields.premium_since')) + ->dateTime('d/m/Y H:i') + ->timezone(config('app.display_timezone')) + ->placeholder('—'), + + TextEntry::make('communication_disabled_until') + ->label(__('panel-admin::discord.members.fields.communication_disabled_until')) + ->dateTime('d/m/Y H:i') + ->timezone(config('app.display_timezone')) + ->placeholder('—'), + + TextEntry::make('left_at') + ->label(__('panel-admin::discord.members.fields.left_at')) + ->dateTime('d/m/Y H:i') + ->timezone(config('app.display_timezone')) + ->placeholder('—'), + ]), + + Section::make(__('panel-admin::discord.members.sections.roles')) + ->schema([ + TextEntry::make('roles.name') + ->label(__('panel-admin::discord.members.fields.roles')) + ->badge() + ->columnSpanFull() + ->placeholder('—'), + ]), + ]); + } +} diff --git a/app-modules/panel-admin/src/Discord/Resources/DiscordMembers/Tables/DiscordMembersTable.php b/app-modules/panel-admin/src/Discord/Resources/DiscordMembers/Tables/DiscordMembersTable.php new file mode 100644 index 000000000..f1ad84c5d --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Resources/DiscordMembers/Tables/DiscordMembersTable.php @@ -0,0 +1,109 @@ +deferLoading() + ->defaultSort('joined_at', 'desc') + // Cursor pagination (padrão global) quebra ao ordenar pelo agregado + // roles_count na página seguinte; length-aware suporta. + ->paginationMode(PaginationMode::Default) + ->paginated([25, 50, 100]) + ->columns([ + ImageColumn::make('avatar') + ->label(__('panel-admin::discord.members.fields.avatar')) + ->circular() + ->state(fn (DiscordMember $record): ?string => $record->avatar + ? sprintf('https://cdn.discordapp.com/avatars/%s/%s.png?size=64', $record->discord_user_id, $record->avatar) + : null) + ->defaultImageUrl(fn (DiscordMember $record): string => sprintf('https://cdn.discordapp.com/embed/avatars/%d.png', ((int) $record->discord_user_id >> 22) % 6)), + + TextColumn::make('username') + ->label(__('panel-admin::discord.members.fields.username')) + ->searchable() + ->sortable() + ->weight(FontWeight::Medium) + ->description(fn (DiscordMember $record): ?string => $record->nickname ?? $record->global_name), + + TextColumn::make('joined_at') + ->label(__('panel-admin::discord.members.fields.joined_at')) + ->dateTime('d/m/Y H:i') + ->timezone(config('app.display_timezone')) + ->sortable(), + + TextColumn::make('roles_count') + ->label(__('panel-admin::discord.members.fields.roles_count')) + ->counts('roles') + ->numeric() + ->sortable(), + + IconColumn::make('is_bot') + ->label(__('panel-admin::discord.members.fields.is_bot')) + ->boolean() + ->toggleable(isToggledHiddenByDefault: true), + + TextColumn::make('premium_since') + ->label(__('panel-admin::discord.members.fields.premium_since')) + ->dateTime('d/m/Y H:i') + ->timezone(config('app.display_timezone')) + ->sortable() + ->placeholder('—') + ->toggleable(isToggledHiddenByDefault: true), + + TextColumn::make('left_at') + ->label(__('panel-admin::discord.members.fields.left_at')) + ->dateTime('d/m/Y H:i') + ->timezone(config('app.display_timezone')) + ->sortable() + ->placeholder('—') + ->toggleable(isToggledHiddenByDefault: true), + + TextColumn::make('discord_user_id') + ->label(__('panel-admin::discord.members.fields.discord_user_id')) + ->copyable() + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([ + TernaryFilter::make('left_at') + ->label(__('panel-admin::discord.members.filters.left.label')) + ->nullable() + ->default(state: false) + ->trueLabel(__('panel-admin::discord.members.filters.left.true')) + ->falseLabel(__('panel-admin::discord.members.filters.left.false')) + ->placeholder(__('panel-admin::discord.members.filters.left.placeholder')), + + TernaryFilter::make('is_bot') + ->label(__('panel-admin::discord.members.filters.is_bot')), + + TernaryFilter::make('is_pending') + ->label(__('panel-admin::discord.members.filters.is_pending')), + + SelectFilter::make('roles') + ->label(__('panel-admin::discord.members.filters.roles')) + ->relationship('roles', 'name') + ->multiple() + ->preload() + ->searchable(), + ]) + ->recordActions([ + ViewAction::make(), + ]); + } +} diff --git a/app-modules/panel-admin/src/Discord/Resources/DiscordRoles/DiscordRoleResource.php b/app-modules/panel-admin/src/Discord/Resources/DiscordRoles/DiscordRoleResource.php new file mode 100644 index 000000000..1afc5d376 --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Resources/DiscordRoles/DiscordRoleResource.php @@ -0,0 +1,103 @@ + + */ + public static function getPages(): array + { + return [ + 'index' => ListDiscordRoles::route('/'), + 'view' => ViewDiscordRole::route('/{record}'), + ]; + } + + /** + * @return Builder + */ + public static function getGlobalSearchEloquentQuery(): Builder + { + /** @var Builder $query */ + $query = parent::getGlobalSearchEloquentQuery()->with(['guild']); + + return $query; + } + + public static function getGloballySearchableAttributes(): array + { + return ['name', 'guild.name']; + } + + /** + * @param DiscordRole $record + * @return array + */ + public static function getGlobalSearchResultDetails(Model $record): array + { + return [ + 'Guild' => $record->guild->name, + ]; + } +} diff --git a/app-modules/panel-admin/src/Discord/Resources/DiscordRoles/Pages/ListDiscordRoles.php b/app-modules/panel-admin/src/Discord/Resources/DiscordRoles/Pages/ListDiscordRoles.php new file mode 100644 index 000000000..54c71100d --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Resources/DiscordRoles/Pages/ListDiscordRoles.php @@ -0,0 +1,13 @@ +columns(1) + ->components([ + Section::make(__('panel-admin::discord.roles.sections.role')) + ->columns(2) + ->schema([ + ColorEntry::make('color') + ->label(__('panel-admin::discord.roles.fields.color')) + ->state(fn (DiscordRole $record): ?string => $record->color > 0 + ? sprintf('#%06X', $record->color) + : null) + ->placeholder('—'), + + TextEntry::make('name') + ->label(__('panel-admin::discord.roles.fields.name')) + ->weight(FontWeight::Bold), + + TextEntry::make('position') + ->label(__('panel-admin::discord.roles.fields.position')) + ->numeric(), + + TextEntry::make('members_count') + ->label(__('panel-admin::discord.roles.fields.members_count')) + ->state(fn (DiscordRole $record): int => $record->members()->count()), + + TextEntry::make('permissions') + ->label(__('panel-admin::discord.roles.fields.permissions')) + ->copyable() + ->helperText(__('panel-admin::discord.roles.fields.permissions_helper')), + + TextEntry::make('discord_role_id') + ->label(__('panel-admin::discord.roles.fields.discord_role_id')) + ->copyable(), + + IconEntry::make('is_hoisted') + ->label(__('panel-admin::discord.roles.fields.is_hoisted')) + ->boolean(), + + IconEntry::make('is_mentionable') + ->label(__('panel-admin::discord.roles.fields.is_mentionable')) + ->boolean(), + + IconEntry::make('is_managed') + ->label(__('panel-admin::discord.roles.fields.is_managed')) + ->boolean(), + + TextEntry::make('guild.name') + ->label(__('panel-admin::discord.roles.fields.guild')) + ->url(fn (DiscordRole $record): string => DiscordGuildResource::getUrl('view', ['record' => $record->guild])) + ->color('primary'), + ]), + ]); + } +} diff --git a/app-modules/panel-admin/src/Discord/Resources/DiscordRoles/Tables/DiscordRolesTable.php b/app-modules/panel-admin/src/Discord/Resources/DiscordRoles/Tables/DiscordRolesTable.php new file mode 100644 index 000000000..0dd5f338b --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Resources/DiscordRoles/Tables/DiscordRolesTable.php @@ -0,0 +1,80 @@ +paginationMode(PaginationMode::Default) + ->columns([ + ColorColumn::make('color') + ->label(__('panel-admin::discord.roles.fields.color')) + ->state(fn (DiscordRole $record): ?string => $record->color > 0 + ? sprintf('#%06X', $record->color) + : null), + + TextColumn::make('name') + ->label(__('panel-admin::discord.roles.fields.name')) + ->searchable() + ->sortable() + ->weight(FontWeight::Medium), + + TextColumn::make('position') + ->label(__('panel-admin::discord.roles.fields.position')) + ->numeric() + ->sortable(), + + TextColumn::make('members_count') + ->label(__('panel-admin::discord.roles.fields.members_count')) + ->counts('members') + ->numeric() + ->sortable(), + + IconColumn::make('is_hoisted') + ->label(__('panel-admin::discord.roles.fields.is_hoisted')) + ->boolean() + ->toggleable(isToggledHiddenByDefault: true), + + IconColumn::make('is_mentionable') + ->label(__('panel-admin::discord.roles.fields.is_mentionable')) + ->boolean() + ->toggleable(isToggledHiddenByDefault: true), + + IconColumn::make('is_managed') + ->label(__('panel-admin::discord.roles.fields.is_managed')) + ->boolean(), + + TextColumn::make('discord_role_id') + ->label(__('panel-admin::discord.roles.fields.discord_role_id')) + ->copyable() + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([ + TernaryFilter::make('is_managed') + ->label(__('panel-admin::discord.roles.filters.is_managed')), + + TernaryFilter::make('is_hoisted') + ->label(__('panel-admin::discord.roles.filters.is_hoisted')), + ]) + ->defaultSort('position', 'desc') + ->recordActions([ + ViewAction::make(), + ]); + } +} diff --git a/app-modules/panel-admin/src/Discord/Widgets/DiscordStatsWidget.php b/app-modules/panel-admin/src/Discord/Widgets/DiscordStatsWidget.php new file mode 100644 index 000000000..9986fafd9 --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Widgets/DiscordStatsWidget.php @@ -0,0 +1,80 @@ +whereNull('left_at') + ->where('is_bot', operator: false) + ->count(); + + $joins7d = DiscordMember::query() + ->where('joined_at', '>=', now()->subDays(7)) + ->count(); + + $leaves7d = DiscordMember::query() + ->where('left_at', '>=', now()->subDays(7)) + ->count(); + + $events24h = DiscordEventLog::query() + ->where('created_at', '>=', now()->subDay()) + ->count(); + + $boosters = DiscordMember::query() + ->whereNotNull('premium_since') + ->whereNull('left_at') + ->count(); + + $channels = DiscordChannel::query() + ->where('type', '!=', DiscordChannelType::GuildCategory) + ->count(); + + return [ + Stat::make(__('panel-admin::discord.dashboard.stats.active_members'), $activeMembers) + ->description(__('panel-admin::discord.dashboard.stats.active_members_desc')) + ->icon(Heroicon::OutlinedUsers) + ->color(Color::Blue), + Stat::make(__('panel-admin::discord.dashboard.stats.joins_7d'), $joins7d) + ->description(__('panel-admin::discord.dashboard.stats.joins_7d_desc')) + ->icon(Heroicon::OutlinedArrowRightEndOnRectangle) + ->color(Color::Green), + Stat::make(__('panel-admin::discord.dashboard.stats.leaves_7d'), $leaves7d) + ->description(__('panel-admin::discord.dashboard.stats.leaves_7d_desc')) + ->icon(Heroicon::OutlinedArrowLeftStartOnRectangle) + ->color(Color::Red), + Stat::make(__('panel-admin::discord.dashboard.stats.events_24h'), $events24h) + ->description(__('panel-admin::discord.dashboard.stats.events_24h_desc')) + ->icon(Heroicon::OutlinedBolt) + ->color(Color::Amber), + Stat::make(__('panel-admin::discord.dashboard.stats.boosters'), $boosters) + ->description(__('panel-admin::discord.dashboard.stats.boosters_desc')) + ->icon(Heroicon::OutlinedSparkles) + ->color(Color::Fuchsia), + Stat::make(__('panel-admin::discord.dashboard.stats.channels'), $channels) + ->description(__('panel-admin::discord.dashboard.stats.channels_desc')) + ->icon(Heroicon::OutlinedHashtag) + ->color(Color::Gray), + ]; + } +} diff --git a/app-modules/panel-admin/src/Discord/Widgets/EventsPerDayChartWidget.php b/app-modules/panel-admin/src/Discord/Widgets/EventsPerDayChartWidget.php new file mode 100644 index 000000000..33c9d8737 --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Widgets/EventsPerDayChartWidget.php @@ -0,0 +1,61 @@ +subDays(29)->startOfDay(); + + $events = DiscordEventLog::query() + ->where('created_at', '>=', $start) + ->selectRaw('DATE(created_at) as date, COUNT(*) as total') + ->groupBy('date') + ->orderBy('date') + ->pluck('total', 'date'); + + $labels = []; + $data = []; + + for ($day = 0; $day < 30; $day++) { + $date = $start->copy()->addDays($day); + $key = $date->toDateString(); + $labels[] = $date->format('M d'); + $data[] = $events->get($key, 0); + } + + return [ + 'datasets' => [ + [ + 'label' => __('panel-admin::discord.dashboard.events_per_day_label'), + 'data' => $data, + 'borderColor' => '#782bf1', + 'backgroundColor' => 'rgba(120, 43, 241, 0.1)', + 'fill' => true, + 'tension' => 0.3, + ], + ], + 'labels' => $labels, + ]; + } +} diff --git a/app-modules/panel-admin/src/Discord/Widgets/MemberGrowthChartWidget.php b/app-modules/panel-admin/src/Discord/Widgets/MemberGrowthChartWidget.php new file mode 100644 index 000000000..353e9550c --- /dev/null +++ b/app-modules/panel-admin/src/Discord/Widgets/MemberGrowthChartWidget.php @@ -0,0 +1,85 @@ +subDays(29)->startOfDay(); + + $joins = DiscordMember::query() + ->where('joined_at', '>=', $start) + ->selectRaw('DATE(joined_at) as date, COUNT(*) as total') + ->groupBy('date') + ->pluck('total', 'date'); + + $leaves = DiscordMember::query() + ->where('left_at', '>=', $start) + ->selectRaw('DATE(left_at) as date, COUNT(*) as total') + ->groupBy('date') + ->pluck('total', 'date'); + + $labels = []; + $joinsData = []; + $leavesData = []; + + for ($day = 0; $day < 30; $day++) { + $date = $start->copy()->addDays($day); + $key = $date->toDateString(); + $labels[] = $date->format('M d'); + $joinsData[] = $joins->get($key, 0); + $leavesData[] = $leaves->get($key, 0) * -1; + } + + return [ + 'datasets' => [ + [ + 'label' => __('panel-admin::discord.dashboard.member_growth.joins'), + 'data' => $joinsData, + 'backgroundColor' => 'rgba(34, 197, 94, 0.7)', + ], + [ + 'label' => __('panel-admin::discord.dashboard.member_growth.leaves'), + 'data' => $leavesData, + 'backgroundColor' => 'rgba(239, 68, 68, 0.7)', + ], + ], + 'labels' => $labels, + ]; + } + + protected function getOptions(): array|RawJs|null + { + return [ + 'scales' => [ + 'x' => [ + 'stacked' => true, + ], + 'y' => [ + 'stacked' => true, + ], + ], + ]; + } +} diff --git a/app-modules/panel-admin/src/PanelAdminServiceProvider.php b/app-modules/panel-admin/src/PanelAdminServiceProvider.php index 99eb308ea..c379aa647 100644 --- a/app-modules/panel-admin/src/PanelAdminServiceProvider.php +++ b/app-modules/panel-admin/src/PanelAdminServiceProvider.php @@ -7,6 +7,7 @@ use Filament\Navigation\NavigationBuilder; use Filament\Navigation\NavigationItem; use Filament\Panel; +use He4rt\PanelAdmin\Discord\DiscordCluster; use He4rt\PanelAdmin\Filament\Resources\ExternalIdentities\ExternalIdentityResource; use He4rt\PanelAdmin\Github\GithubCluster; use He4rt\PanelAdmin\Marketing\MarketingCluster; @@ -31,7 +32,13 @@ public function register(): void } $panel - ->pages([ModerationCluster::class, MarketingCluster::class, TwitchCluster::class, GithubCluster::class]) + ->pages([ + ModerationCluster::class, + MarketingCluster::class, + TwitchCluster::class, + GithubCluster::class, + DiscordCluster::class, + ]) ->navigation($this->buildNavigation(...)) ->resources([ ExternalIdentityResource::class, @@ -56,9 +63,17 @@ public function register(): void in: __DIR__.'/Twitch/Pages', for: 'He4rt\\PanelAdmin\\Twitch\\Pages', ) + ->discoverPages( + in: __DIR__.'/Discord/Pages', + for: 'He4rt\\PanelAdmin\\Discord\\Pages', + ) ->discoverResources( in: __DIR__.'/Github/Resources', for: 'He4rt\\PanelAdmin\\Github\\Resources', + ) + ->discoverResources( + in: __DIR__.'/Discord/Resources', + for: 'He4rt\\PanelAdmin\\Discord\\Resources', ); }); } @@ -75,7 +90,6 @@ public function boot(): void private function buildNavigation(NavigationBuilder $builder): NavigationBuilder { - request(); $requestPath = str(request()->path()); // Livewire update requests go to /livewire/update, so the @@ -96,6 +110,7 @@ private function buildNavigation(NavigationBuilder $builder): NavigationBuilder $requestPath->contains('mod/') => $this->moderationNavigation($builder), $requestPath->contains('marketing/') => $this->marketingNavigation($builder), $requestPath->contains('twitch/') => $this->twitchNavigation($builder), + $requestPath->contains('discord/') => $this->discordNavigation($builder), default => $this->defaultNavigation($builder), }; @@ -110,6 +125,7 @@ private function defaultNavigation(NavigationBuilder $builder): NavigationBuilde ...TwitchCluster::getNavigationItems(), ...GithubCluster::getNavigationItems(), ...ExternalIdentityResource::getNavigationItems(), + ...DiscordCluster::getNavigationItems(), ]); } @@ -124,6 +140,17 @@ private function moderationNavigation(NavigationBuilder $builder): NavigationBui ])->groups(resolve(ModerationCluster::class)->getCachedSubNavigation()); } + private function discordNavigation(NavigationBuilder $builder): NavigationBuilder + { + return $builder->items([ + NavigationItem::make(__('panel-admin::marketing.navigation.back_to_admin')) + ->sort(0) + ->icon('heroicon-o-arrow-left') + ->url(Dashboard::getUrl()), + + ])->groups(resolve(DiscordCluster::class)->getCachedSubNavigation()); + } + private function marketingNavigation(NavigationBuilder $builder): NavigationBuilder { return $builder->items([ diff --git a/app-modules/panel-admin/tests/Feature/Discord/DiscordClusterSmokeTest.php b/app-modules/panel-admin/tests/Feature/Discord/DiscordClusterSmokeTest.php new file mode 100644 index 000000000..bb42ef818 --- /dev/null +++ b/app-modules/panel-admin/tests/Feature/Discord/DiscordClusterSmokeTest.php @@ -0,0 +1,211 @@ +create(['username' => 'danielhe4rt']); + + config(['he4rt.admins' => 'danielhe4rt']); + + $this->actingAs($user); + + Filament::setCurrentPanel(Filament::getPanel('admin')); +}); + +test('lista as guilds', function (): void { + $guild = DiscordGuild::factory()->create(); + + livewire(ListDiscordGuilds::class) + ->loadTable() + ->assertCanSeeTableRecords([$guild]); +}); + +test('exibe a view da guild', function (): void { + $guild = DiscordGuild::factory()->create(); + + livewire(ViewDiscordGuild::class, ['record' => $guild->id]) + ->assertOk(); +}); + +test('lista canais agrupados sem categorias', function (): void { + $guild = DiscordGuild::factory()->create(); + + $category = DiscordChannel::factory() + ->category() + ->recycle($guild) + ->create(); + + $channels = DiscordChannel::factory() + ->count(2) + ->recycle($guild) + ->create(['parent_id' => $category->id]); + + livewire(ListDiscordChannels::class) + ->loadTable() + ->assertCanSeeTableRecords($channels) + ->assertCanNotSeeTableRecords([$category]); +}); + +test('pagina canais agrupados com mais de uma página', function (): void { + // Regressão: com PaginationMode::Cursor (padrão global do painel), renderizar + // o link da próxima página de uma tabela agrupada por relacionamento estoura + // em array_flip() — só reproduz com mais registros que o page size (10). + $guild = DiscordGuild::factory()->create(); + + $categories = DiscordChannel::factory() + ->count(2) + ->category() + ->recycle($guild) + ->create(); + + foreach ($categories as $category) { + DiscordChannel::factory() + ->count(8) + ->recycle($guild) + ->create(['parent_id' => $category->id]); + } + + livewire(ListDiscordChannels::class) + ->loadTable() + ->assertOk(); +}); + +test('exibe a view do canal', function (): void { + $guild = DiscordGuild::factory()->create(); + $channel = DiscordChannel::factory()->recycle($guild)->create(); + + livewire(ViewDiscordChannel::class, ['record' => $channel->id]) + ->assertOk(); +}); + +test('lista membros ativos por padrão', function (): void { + $guild = DiscordGuild::factory()->create(); + + $active = DiscordMember::factory()->recycle($guild)->create(); + $left = DiscordMember::factory()->recycle($guild)->left()->create(); + + livewire(ListDiscordMembers::class) + ->loadTable() + ->assertCanSeeTableRecords([$active]) + ->assertCanNotSeeTableRecords([$left]) + ->filterTable('left_at', true) + ->assertCanSeeTableRecords([$left]) + ->assertCanNotSeeTableRecords([$active]); +}); + +test('exibe a view do membro', function (): void { + $guild = DiscordGuild::factory()->create(); + $member = DiscordMember::factory()->recycle($guild)->create(); + + livewire(ViewDiscordMember::class, ['record' => $member->id]) + ->assertOk(); +}); + +test('lista roles ordenadas por position desc', function (): void { + $guild = DiscordGuild::factory()->create(); + + $lower = DiscordRole::factory()->recycle($guild)->create(['position' => 1]); + $higher = DiscordRole::factory()->recycle($guild)->create(['position' => 10]); + + livewire(ListDiscordRoles::class) + ->loadTable() + ->assertCanSeeTableRecords([$higher, $lower], inOrder: true); +}); + +test('exibe a view do role', function (): void { + $guild = DiscordGuild::factory()->create(); + $role = DiscordRole::factory()->recycle($guild)->create(['color' => 0]); + + livewire(ViewDiscordRole::class, ['record' => $role->id]) + ->assertOk(); +}); + +test('lista event logs', function (): void { + $logs = DiscordEventLog::factory()->count(2)->create(); + + livewire(ListDiscordEventLogs::class) + ->loadTable() + ->assertCanSeeTableRecords($logs); +}); + +test('filtra event logs por tipo', function (): void { + $banEvent = DiscordEventLog::factory()->create(['event_type' => 'GUILD_BAN_ADD']); + $messageEvent = DiscordEventLog::factory()->create(['event_type' => 'MESSAGE_CREATE']); + + livewire(ListDiscordEventLogs::class) + ->loadTable() + ->filterTable('event_type', ['GUILD_BAN_ADD']) + ->assertCanSeeTableRecords([$banEvent]) + ->assertCanNotSeeTableRecords([$messageEvent]); +}); + +test('exibe a view do event log com payload', function (): void { + $log = DiscordEventLog::factory()->create(); + + livewire(ViewDiscordEventLog::class, ['record' => $log->id]) + ->assertOk(); +}); + +test('dashboard renderiza', function (): void { + livewire(DiscordDashboard::class) + ->assertOk(); + + livewire(DiscordStatsWidget::class) + ->assertOk(); + + livewire(EventsPerDayChartWidget::class) + ->assertOk(); + + livewire(MemberGrowthChartWidget::class) + ->assertOk(); +}); + +test('relation managers da guild renderizam', function (): void { + $guild = DiscordGuild::factory()->create(); + + DiscordChannel::factory()->recycle($guild)->create(); + DiscordRole::factory()->recycle($guild)->create(); + DiscordMember::factory()->recycle($guild)->create(); + + livewire(ChannelsRelationManager::class, [ + 'ownerRecord' => $guild, + 'pageClass' => ViewDiscordGuild::class, + ])->assertOk(); + + livewire(RolesRelationManager::class, [ + 'ownerRecord' => $guild, + 'pageClass' => ViewDiscordGuild::class, + ])->assertOk(); + + livewire(MembersRelationManager::class, [ + 'ownerRecord' => $guild, + 'pageClass' => ViewDiscordGuild::class, + ])->assertOk(); +}); diff --git a/tests/.pest/shards.json b/tests/.pest/shards.json index 79d7704bd..d236796df 100644 --- a/tests/.pest/shards.json +++ b/tests/.pest/shards.json @@ -1,143 +1,145 @@ { "timings": { - "Appmodules\\activity\\tests\\Unit\\Actions\\NewMessageTest": 3.7573, - "Appmodules\\activity\\tests\\Unit\\Actions\\NewVoiceMessageTest": 3.8189, - "Appmodules\\activity\\tests\\Unit\\Actions\\RecordVoicePresenceTest": 4.0348, - "Appmodules\\activity\\tests\\Unit\\Queries\\GetCurrentVoiceChannelTest": 3.8966, - "Appmodules\\activity\\tests\\Unit\\Timeline\\CreatePostTest": 3.7311, - "Appmodules\\activity\\tests\\Unit\\Timeline\\CreateReplyTest": 3.712, - "Appmodules\\activity\\tests\\Unit\\Timeline\\DeleteReplyTest": 3.5725, - "Appmodules\\activity\\tests\\Unit\\Timeline\\PublishModerationEntryTest": 3.8582, - "Appmodules\\activity\\tests\\Unit\\Timeline\\TimelineFeedQueryTest": 3.7426, - "Appmodules\\activity\\tests\\Unit\\Timeline\\TimelineModelTest": 3.6, - "Appmodules\\activity\\tests\\Unit\\Timeline\\TogglePinPostTest": 3.684, - "Appmodules\\activity\\tests\\Unit\\Tracking\\ApproveInteractionTest": 3.4666, - "Appmodules\\activity\\tests\\Unit\\Tracking\\CalculateRewardTest": 3.6858, - "Appmodules\\activity\\tests\\Unit\\Tracking\\ClassifyActivityTest": 0.3356, - "Appmodules\\activity\\tests\\Unit\\Tracking\\RejectInteractionTest": 3.5351, - "Appmodules\\activity\\tests\\Unit\\Tracking\\TrackActivityTest": 3.6102, - "Appmodules\\botdiscord\\tests\\Feature\\Actions\\VoiceChannel\\HandleStateChannelActionTest": 0.2035, - "Appmodules\\botdiscord\\tests\\Feature\\Events\\RawGatewayEventTest": 3.3034, - "Appmodules\\botdiscord\\tests\\Feature\\Listeners\\AutoExecuteActionTest": 3.3348, - "Appmodules\\botdiscord\\tests\\Feature\\Listeners\\NotifyModerationChannelTest": 3.7325, - "Appmodules\\botdiscord\\tests\\Feature\\Moderation\\DiscordModerationAdapterTest": 4.7711, - "Appmodules\\botdiscord\\tests\\Feature\\SlashCommands\\EditProfileCommandTest": 0.278, - "Appmodules\\botdiscord\\tests\\Feature\\SlashCommands\\IntroductionCommandTest": 0.198, - "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceChannel\\JoiningChannelActionTest": 0.2297, - "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceChannel\\LeftChannelActionTest": 0.335, - "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceTransitionResolverTest": 0.4612, - "Appmodules\\botdiscord\\tests\\Unit\\Moderation\\ModerationEmbedBuilderTest": 3.8299, - "Appmodules\\botdiscord\\tests\\Unit\\SlashCommands\\EditProfileModalValidationTest": 0.7054, - "Appmodules\\docs\\tests\\Feature\\Discovery\\CacheDocsCommandTest": 1.2439, - "Appmodules\\docs\\tests\\Feature\\Discovery\\DocsRoutingTest": 1.1609, - "Appmodules\\docs\\tests\\Unit\\Discovery\\BuildTreeTest": 0.6126, - "Appmodules\\docs\\tests\\Unit\\Discovery\\DiscoveryIntegrationTest": 0.4496, - "Appmodules\\docs\\tests\\Unit\\Discovery\\DocumentTierTest": 0.743, - "Appmodules\\docs\\tests\\Unit\\Discovery\\FoundationsTest": 1.033, - "Appmodules\\docs\\tests\\Unit\\Discovery\\ParsingTest": 0.5068, - "Appmodules\\docs\\tests\\Unit\\Discovery\\StrategiesTest": 0.5767, - "Appmodules\\economy\\tests\\Feature\\EconomyFlowTest": 0.2069, - "Appmodules\\economy\\tests\\Unit\\CreditTest": 3.4252, - "Appmodules\\economy\\tests\\Unit\\DebitTest": 3.5332, - "Appmodules\\economy\\tests\\Unit\\TransferTest": 3.5988, - "Appmodules\\gamification\\tests\\Unit\\Character\\GenerateTextExperienceTest": 0.8215, - "Appmodules\\gamification\\tests\\Unit\\Character\\LevelCalculationTest": 4.4844, - "Appmodules\\gamification\\tests\\Unit\\Character\\VoiceExperienceTest": 3.5438, - "Appmodules\\identity\\tests\\Feature\\Auth\\DetectMergeConflictTest": 0.2506, - "Appmodules\\identity\\tests\\Feature\\Auth\\EnrichUserOnFirstLoginTest": 0.3803, - "Appmodules\\identity\\tests\\Feature\\Auth\\FindOrCreateUserByProviderTest": 0.4864, - "Appmodules\\identity\\tests\\Feature\\Auth\\HandleOAuthCallbackActionTest": 0.1842, - "Appmodules\\identity\\tests\\Feature\\Auth\\MergeAccountsActionTest": 0.7768, - "Appmodules\\identity\\tests\\Unit\\ExternalIdentity\\FindExternalIdentityTest": 3.1953, - "Appmodules\\integrationdevto\\tests\\Feature\\DevToOAuthTest": 0.1982, - "Appmodules\\integrationdevto\\tests\\Feature\\SyncDevToArticlesTest": 0.1918, - "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\ImportDiscordMessageTest": 3.9343, - "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\ImportDiscordProfileTest": 1.5178, - "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\MergeDuplicateDiscordProfilesTest": 1.2103, - "Appmodules\\integrationdiscord\\tests\\Feature\\Models\\DiscordEventLogTest": 0.1331, - "Appmodules\\integrationdiscord\\tests\\Feature\\OAuth\\DiscordOAuthClientTest": 0.1947, - "Appmodules\\integrationdiscord\\tests\\Unit\\DiscordMessageAdapterTest": 1.8244, - "Appmodules\\integrationdiscord\\tests\\Unit\\Sync\\PurgeUnusedInvitesActionTest": 14.5984, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\DiscordConnectorTest": 0.1365, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\DiscordRoleResolverTest": 0.2313, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateBanTest": 0.1483, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateDmChannelTest": 0.1539, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateMessageTest": 0.145, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\DeleteInviteTest": 0.0784, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\DeleteMessageTest": 0.0909, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ExchangeCodeForTokenTest": 0.1197, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\GetCurrentUserTest": 0.1119, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\GetMemberTest": 0.0789, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ListGuildInvitesTest": 0.0764, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ModifyMemberTest": 0.1244, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\RemoveMemberTest": 0.0745, - "Appmodules\\integrationgithub\\tests\\Feature\\BackfillGithubCommandTest": 0.3534, - "Appmodules\\integrationgithub\\tests\\Feature\\BackfillGithubRepositoryJobTest": 0.1661, - "Appmodules\\integrationgithub\\tests\\Feature\\BackfillRepositoryTest": 1.4666, - "Appmodules\\integrationgithub\\tests\\Feature\\GitHubOAuthClientTest": 0.3223, - "Appmodules\\integrationgithub\\tests\\Feature\\GithubContributionTest": 0.231, - "Appmodules\\integrationgithub\\tests\\Feature\\GithubRepositoryTest": 0.3085, - "Appmodules\\integrationgithub\\tests\\Feature\\GithubWebhookTest": 0.9738, - "Appmodules\\integrationtwitch\\tests\\Feature\\LinkTwitchChannelCommandTest": 0.2239, - "Appmodules\\integrationtwitch\\tests\\Feature\\SubscribeTwitchEventsCommandTest": 0.5563, - "Appmodules\\integrationtwitch\\tests\\Feature\\TwitchWebhookTest": 0.7514, - "Appmodules\\integrationwhatsapp\\tests\\Feature\\Ingest\\StoreWhatsAppEventActionTest": 0.529, - "Appmodules\\integrationwhatsapp\\tests\\Feature\\Ingest\\WebhookIngestTest": 1.0186, - "Appmodules\\moderation\\tests\\Feature\\AppealWorkflowTest": 0.4746, - "Appmodules\\moderation\\tests\\Feature\\Appeals\\FileAppealTest": 0.6982, - "Appmodules\\moderation\\tests\\Feature\\Appeals\\ReviewAppealTest": 0.51, - "Appmodules\\moderation\\tests\\Feature\\Audit\\AuditLogTest": 0.3365, - "Appmodules\\moderation\\tests\\Feature\\CaseWorkflowTest": 0.4372, - "Appmodules\\moderation\\tests\\Feature\\Cases\\SubmitReportTest": 1.2173, - "Appmodules\\moderation\\tests\\Feature\\Classification\\RouteDecisionTest": 2.3092, - "Appmodules\\moderation\\tests\\Feature\\Classification\\RuleBasedClassifierTest": 0.7566, - "Appmodules\\moderation\\tests\\Feature\\Enforcement\\ExecuteActionTest": 0.7095, - "Appmodules\\moderation\\tests\\Feature\\ModelRelationshipTest": 0.9224, - "Appmodules\\moderation\\tests\\Feature\\PipelineTest": 0.9194, - "Appmodules\\moderation\\tests\\Feature\\Pipeline\\ClassifyAndRouteTest": 0.2631, - "Appmodules\\moderation\\tests\\Feature\\Pipeline\\ScreenContentTest": 0.2976, - "Appmodules\\moderation\\tests\\Feature\\Pipeline\\SubmitForModerationTest": 0.2794, - "Appmodules\\moderation\\tests\\Feature\\Platform\\WebAdapterTest": 1.1295, - "Appmodules\\moderation\\tests\\Unit\\ClassifierTest": 3.4102, - "Appmodules\\moderation\\tests\\Unit\\DTOTest": 0.3031, - "Appmodules\\moderation\\tests\\Unit\\EnumTest": 0.2429, - "Appmodules\\moderation\\tests\\Unit\\ModerationRuleMatchTest": 3.2761, - "Appmodules\\moderation\\tests\\Unit\\PenaltyAdvisorTest": 4.1179, - "Appmodules\\moderation\\tests\\Unit\\PlatformRegistryTest": 0.1506, - "Appmodules\\moderation\\tests\\Unit\\RouteCaseActionTest": 3.4258, - "Appmodules\\paneladmin\\tests\\Feature\\AdminPanelAccessTest": 0.7685, - "Appmodules\\paneladmin\\tests\\Feature\\Github\\GithubRepositoryResourceTest": 0.9748, - "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\CommunityActivityStatsTest": 0.1937, - "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\LocationDashboardTest": 0.2461, - "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\MembersByStateTest": 0.3018, - "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\PeriodStatsTest": 0.1105, - "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\AppealQueueTest": 1.2312, - "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\ModerationDashboardTest": 1.431, - "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\ModerationQueueTest": 1.2165, - "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\TestRuleActionTest": 0.8808, - "Appmodules\\panelapp\\tests\\Feature\\ProfilePageTest": 3.4779, - "Appmodules\\panelapp\\tests\\Feature\\Timeline\\ThreadPageTest": 0.7574, - "Appmodules\\portal\\tests\\Feature\\CommunityRetrospectivePageTest": 0.8736, - "Appmodules\\portal\\tests\\Feature\\CommunityRetrospectiveTest": 1.0532, - "Appmodules\\portal\\tests\\Feature\\HomepageTest": 0.3921, - "Appmodules\\portal\\tests\\Feature\\RetrospectiveFiltersTest": 0.15, - "Appmodules\\portal\\tests\\Feature\\SocialLinksPageTest": 0.6395, - "Appmodules\\profile\\tests\\Feature\\ProfileCreationTest": 0.3303, - "Appmodules\\profile\\tests\\Feature\\ProfilePreferencesTest": 0.3196, - "Appmodules\\profile\\tests\\Feature\\ProfileWorkExperiencesTest": 0.2122, - "Appmodules\\profile\\tests\\Feature\\SkillSearchTest": 0.2211, - "Appmodules\\profile\\tests\\Feature\\SyncProfileSkillsTest": 0.6547, - "Appmodules\\profile\\tests\\Feature\\ToggleAvailabilityTest": 0.4451, - "Appmodules\\profile\\tests\\Feature\\UpsertProfileTest": 0.8094, - "Appmodules\\profile\\tests\\Feature\\WorkExperienceFactoryTest": 0.4866, - "Appmodules\\profile\\tests\\Unit\\ProfileEnumTest": 0.1977, - "Appmodules\\profile\\tests\\Unit\\ProfileSocialLinksTest": 0.0394, - "Appmodules\\profile\\tests\\Unit\\SkillEnumTest": 0.089, - "Appmodules\\profile\\tests\\Unit\\WorkExperienceTest": 0.1381, - "Appmodules\\profile\\tests\\Unit\\WorkPreferencesTest": 0.2479, - "Tests\\Feature\\AddressTest": 3.2802, - "Tests\\Feature\\Geo\\GeoLocationTest": 0.3838 + "Appmodules\\activity\\tests\\Unit\\Actions\\NewMessageTest": 3.9043, + "Appmodules\\activity\\tests\\Unit\\Actions\\NewVoiceMessageTest": 3.8752, + "Appmodules\\activity\\tests\\Unit\\Actions\\RecordVoicePresenceTest": 4.2547, + "Appmodules\\activity\\tests\\Unit\\Queries\\GetCurrentVoiceChannelTest": 4.0627, + "Appmodules\\activity\\tests\\Unit\\Timeline\\CreatePostTest": 3.948, + "Appmodules\\activity\\tests\\Unit\\Timeline\\CreateReplyTest": 3.8226, + "Appmodules\\activity\\tests\\Unit\\Timeline\\DeleteReplyTest": 3.9267, + "Appmodules\\activity\\tests\\Unit\\Timeline\\PublishModerationEntryTest": 3.9842, + "Appmodules\\activity\\tests\\Unit\\Timeline\\TimelineFeedQueryTest": 3.9709, + "Appmodules\\activity\\tests\\Unit\\Timeline\\TimelineModelTest": 3.7927, + "Appmodules\\activity\\tests\\Unit\\Timeline\\TogglePinPostTest": 3.9422, + "Appmodules\\activity\\tests\\Unit\\Tracking\\ApproveInteractionTest": 3.6076, + "Appmodules\\activity\\tests\\Unit\\Tracking\\CalculateRewardTest": 3.797, + "Appmodules\\activity\\tests\\Unit\\Tracking\\ClassifyActivityTest": 0.403, + "Appmodules\\activity\\tests\\Unit\\Tracking\\RejectInteractionTest": 3.6361, + "Appmodules\\activity\\tests\\Unit\\Tracking\\TrackActivityTest": 3.7589, + "Appmodules\\botdiscord\\tests\\Feature\\Actions\\VoiceChannel\\HandleStateChannelActionTest": 0.2152, + "Appmodules\\botdiscord\\tests\\Feature\\Events\\RawGatewayEventTest": 3.3814, + "Appmodules\\botdiscord\\tests\\Feature\\Listeners\\AutoExecuteActionTest": 3.4091, + "Appmodules\\botdiscord\\tests\\Feature\\Listeners\\NotifyModerationChannelTest": 3.5494, + "Appmodules\\botdiscord\\tests\\Feature\\Moderation\\DiscordModerationAdapterTest": 4.6603, + "Appmodules\\botdiscord\\tests\\Feature\\SlashCommands\\EditProfileCommandTest": 0.2537, + "Appmodules\\botdiscord\\tests\\Feature\\SlashCommands\\IntroductionCommandTest": 0.2022, + "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceChannel\\JoiningChannelActionTest": 0.3009, + "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceChannel\\LeftChannelActionTest": 0.3513, + "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceTransitionResolverTest": 0.5496, + "Appmodules\\botdiscord\\tests\\Unit\\Moderation\\ModerationEmbedBuilderTest": 3.9503, + "Appmodules\\botdiscord\\tests\\Unit\\SlashCommands\\EditProfileModalValidationTest": 0.7093, + "Appmodules\\docs\\tests\\Feature\\Discovery\\CacheDocsCommandTest": 1.2652, + "Appmodules\\docs\\tests\\Feature\\Discovery\\DocsRoutingTest": 1.1655, + "Appmodules\\docs\\tests\\Unit\\Discovery\\BuildTreeTest": 0.7031, + "Appmodules\\docs\\tests\\Unit\\Discovery\\DiscoveryIntegrationTest": 0.4487, + "Appmodules\\docs\\tests\\Unit\\Discovery\\DocumentTierTest": 0.7343, + "Appmodules\\docs\\tests\\Unit\\Discovery\\FoundationsTest": 1.1644, + "Appmodules\\docs\\tests\\Unit\\Discovery\\ParsingTest": 0.5828, + "Appmodules\\docs\\tests\\Unit\\Discovery\\StrategiesTest": 0.6144, + "Appmodules\\economy\\tests\\Feature\\EconomyFlowTest": 0.1799, + "Appmodules\\economy\\tests\\Unit\\CreditTest": 3.7002, + "Appmodules\\economy\\tests\\Unit\\DebitTest": 3.6779, + "Appmodules\\economy\\tests\\Unit\\TransferTest": 3.6386, + "Appmodules\\gamification\\tests\\Unit\\Character\\GenerateTextExperienceTest": 0.9166, + "Appmodules\\gamification\\tests\\Unit\\Character\\LevelCalculationTest": 4.6872, + "Appmodules\\gamification\\tests\\Unit\\Character\\VoiceExperienceTest": 3.6324, + "Appmodules\\identity\\tests\\Feature\\Auth\\DetectMergeConflictTest": 0.2577, + "Appmodules\\identity\\tests\\Feature\\Auth\\EnrichUserOnFirstLoginTest": 0.4119, + "Appmodules\\identity\\tests\\Feature\\Auth\\FindOrCreateUserByProviderTest": 0.5467, + "Appmodules\\identity\\tests\\Feature\\Auth\\HandleOAuthCallbackActionTest": 0.2127, + "Appmodules\\identity\\tests\\Feature\\Auth\\MergeAccountsActionTest": 0.8937, + "Appmodules\\identity\\tests\\Unit\\ExternalIdentity\\FindExternalIdentityTest": 3.3506, + "Appmodules\\integrationdevto\\tests\\Feature\\DevToOAuthTest": 0.1914, + "Appmodules\\integrationdevto\\tests\\Feature\\SyncDevToArticlesTest": 0.2153, + "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\ImportDiscordMessageTest": 4.1618, + "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\ImportDiscordProfileTest": 1.5793, + "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\MergeDuplicateDiscordProfilesTest": 1.2966, + "Appmodules\\integrationdiscord\\tests\\Feature\\Models\\DiscordEventLogTest": 0.165, + "Appmodules\\integrationdiscord\\tests\\Feature\\OAuth\\DiscordOAuthClientTest": 0.1935, + "Appmodules\\integrationdiscord\\tests\\Unit\\DiscordMessageAdapterTest": 1.9435, + "Appmodules\\integrationdiscord\\tests\\Unit\\Enums\\DiscordEventTypeTest": 0.1252, + "Appmodules\\integrationdiscord\\tests\\Unit\\Sync\\PurgeUnusedInvitesActionTest": 15.0809, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\DiscordConnectorTest": 0.1302, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\DiscordRoleResolverTest": 0.2888, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateBanTest": 0.15, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateDmChannelTest": 0.2045, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateMessageTest": 0.1873, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\DeleteInviteTest": 0.1355, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\DeleteMessageTest": 0.1302, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ExchangeCodeForTokenTest": 0.138, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\GetCurrentUserTest": 0.1363, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\GetMemberTest": 0.0803, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ListGuildInvitesTest": 0.0895, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ModifyMemberTest": 0.12, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\RemoveMemberTest": 0.0858, + "Appmodules\\integrationgithub\\tests\\Feature\\BackfillGithubCommandTest": 0.366, + "Appmodules\\integrationgithub\\tests\\Feature\\BackfillGithubRepositoryJobTest": 0.1667, + "Appmodules\\integrationgithub\\tests\\Feature\\BackfillRepositoryTest": 1.4162, + "Appmodules\\integrationgithub\\tests\\Feature\\GitHubOAuthClientTest": 0.3698, + "Appmodules\\integrationgithub\\tests\\Feature\\GithubContributionTest": 0.2144, + "Appmodules\\integrationgithub\\tests\\Feature\\GithubRepositoryTest": 0.3746, + "Appmodules\\integrationgithub\\tests\\Feature\\GithubWebhookTest": 0.8879, + "Appmodules\\integrationtwitch\\tests\\Feature\\LinkTwitchChannelCommandTest": 0.2097, + "Appmodules\\integrationtwitch\\tests\\Feature\\SubscribeTwitchEventsCommandTest": 0.5968, + "Appmodules\\integrationtwitch\\tests\\Feature\\TwitchWebhookTest": 0.7296, + "Appmodules\\integrationwhatsapp\\tests\\Feature\\Ingest\\StoreWhatsAppEventActionTest": 0.563, + "Appmodules\\integrationwhatsapp\\tests\\Feature\\Ingest\\WebhookIngestTest": 1.0307, + "Appmodules\\moderation\\tests\\Feature\\AppealWorkflowTest": 0.5448, + "Appmodules\\moderation\\tests\\Feature\\Appeals\\FileAppealTest": 0.6838, + "Appmodules\\moderation\\tests\\Feature\\Appeals\\ReviewAppealTest": 0.5577, + "Appmodules\\moderation\\tests\\Feature\\Audit\\AuditLogTest": 0.3476, + "Appmodules\\moderation\\tests\\Feature\\CaseWorkflowTest": 0.4533, + "Appmodules\\moderation\\tests\\Feature\\Cases\\SubmitReportTest": 1.2618, + "Appmodules\\moderation\\tests\\Feature\\Classification\\RouteDecisionTest": 2.3194, + "Appmodules\\moderation\\tests\\Feature\\Classification\\RuleBasedClassifierTest": 0.7837, + "Appmodules\\moderation\\tests\\Feature\\Enforcement\\ExecuteActionTest": 0.6521, + "Appmodules\\moderation\\tests\\Feature\\ModelRelationshipTest": 0.8576, + "Appmodules\\moderation\\tests\\Feature\\PipelineTest": 0.8989, + "Appmodules\\moderation\\tests\\Feature\\Pipeline\\ClassifyAndRouteTest": 0.2658, + "Appmodules\\moderation\\tests\\Feature\\Pipeline\\ScreenContentTest": 0.2824, + "Appmodules\\moderation\\tests\\Feature\\Pipeline\\SubmitForModerationTest": 0.2613, + "Appmodules\\moderation\\tests\\Feature\\Platform\\WebAdapterTest": 1.1279, + "Appmodules\\moderation\\tests\\Unit\\ClassifierTest": 3.5423, + "Appmodules\\moderation\\tests\\Unit\\DTOTest": 0.3059, + "Appmodules\\moderation\\tests\\Unit\\EnumTest": 0.2715, + "Appmodules\\moderation\\tests\\Unit\\ModerationRuleMatchTest": 3.3568, + "Appmodules\\moderation\\tests\\Unit\\PenaltyAdvisorTest": 3.9867, + "Appmodules\\moderation\\tests\\Unit\\PlatformRegistryTest": 0.1637, + "Appmodules\\moderation\\tests\\Unit\\RouteCaseActionTest": 3.4342, + "Appmodules\\paneladmin\\tests\\Feature\\AdminPanelAccessTest": 0.707, + "Appmodules\\paneladmin\\tests\\Feature\\Discord\\DiscordClusterSmokeTest": 1.8994, + "Appmodules\\paneladmin\\tests\\Feature\\Github\\GithubRepositoryResourceTest": 0.9664, + "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\CommunityActivityStatsTest": 0.1369, + "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\LocationDashboardTest": 0.1817, + "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\MembersByStateTest": 0.2887, + "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\PeriodStatsTest": 0.1406, + "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\AppealQueueTest": 1.2258, + "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\ModerationDashboardTest": 1.5421, + "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\ModerationQueueTest": 1.3104, + "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\TestRuleActionTest": 0.9155, + "Appmodules\\panelapp\\tests\\Feature\\ProfilePageTest": 3.6607, + "Appmodules\\panelapp\\tests\\Feature\\Timeline\\ThreadPageTest": 0.831, + "Appmodules\\portal\\tests\\Feature\\CommunityRetrospectivePageTest": 0.9096, + "Appmodules\\portal\\tests\\Feature\\CommunityRetrospectiveTest": 1.1354, + "Appmodules\\portal\\tests\\Feature\\HomepageTest": 0.4371, + "Appmodules\\portal\\tests\\Feature\\RetrospectiveFiltersTest": 0.2177, + "Appmodules\\portal\\tests\\Feature\\SocialLinksPageTest": 0.6846, + "Appmodules\\profile\\tests\\Feature\\ProfileCreationTest": 0.3282, + "Appmodules\\profile\\tests\\Feature\\ProfilePreferencesTest": 0.3067, + "Appmodules\\profile\\tests\\Feature\\ProfileWorkExperiencesTest": 0.2303, + "Appmodules\\profile\\tests\\Feature\\SkillSearchTest": 0.1811, + "Appmodules\\profile\\tests\\Feature\\SyncProfileSkillsTest": 0.623, + "Appmodules\\profile\\tests\\Feature\\ToggleAvailabilityTest": 0.3915, + "Appmodules\\profile\\tests\\Feature\\UpsertProfileTest": 0.8321, + "Appmodules\\profile\\tests\\Feature\\WorkExperienceFactoryTest": 0.4544, + "Appmodules\\profile\\tests\\Unit\\ProfileEnumTest": 0.256, + "Appmodules\\profile\\tests\\Unit\\ProfileSocialLinksTest": 0.0505, + "Appmodules\\profile\\tests\\Unit\\SkillEnumTest": 0.12, + "Appmodules\\profile\\tests\\Unit\\WorkExperienceTest": 0.1613, + "Appmodules\\profile\\tests\\Unit\\WorkPreferencesTest": 0.2874, + "Tests\\Feature\\AddressTest": 3.4927, + "Tests\\Feature\\Geo\\GeoLocationTest": 0.3964 }, - "checksum": "13d511df0f18d203d84c88c82954b4d3", - "updated_at": "2026-07-12T20:09:53+00:00" + "checksum": "f89272e74ccc3eb727377ca567c67828", + "updated_at": "2026-07-12T21:38:59+00:00" } From ddface9ee18a2b779a1c58e28d6bb0c5900c417a Mon Sep 17 00:00:00 2001 From: Daniel Reis Date: Mon, 13 Jul 2026 21:22:33 -0300 Subject: [PATCH 12/46] fix(integration-twitch): harden Twitch OAuth setup & one-click connect (#415) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Contexto Ao dar setup da Twitch em produção (foco: EventSub pra detectar lives), o fluxo de conectar/registrar esbarrou em bugs latentes do módulo `integration-twitch` — o módulo nunca tinha sido exercido com env incompleta. Esta branch adiciona um botão de conexão em um clique, corrige os crashes e remove a necessidade do `TWITCH_BROADCASTER_ID`. ## Commits ### `feat(panel-admin)` — botão "Connect Twitch" (1 clique) Header action na página **Twitch → Subscriptions** que inicia o OAuth link flow apontando pra `route('oauth.redirect', panel: admin, provider: twitch)`. Como o admin já está logado, vincula a Twitch ao usuário atual (intent `Link`) com o scope set de admin. Rótulo dinâmico: **Connect** / **Reconnect (login)**. ### `fix(integration-twitch)` — hardening contra env incompleta Três crashes pré-existentes: - **`TypeError` no redirect** — `TwitchHelixConnector` buscava o app token no construtor; só montar a URL de redirect já forçava o fetch. Agora o token é resolvido **lazy** no `defaultAuth()`. - **`getToken()` retornava `null`** — closure tipada `: string`. Passa a lançar `OAuthFlowException` (capturada pelo `OAuthController`) + protege `expires_in`. - **`config()->string()` estourava em `null`** — `TWITCH_EVENTSUB_CALLBACK` unset. Defaults `''` no config + leitura null-safe. ### `feat(integration-twitch)` — broadcaster vem do OAuth do admin Remove a dependência de `TWITCH_BROADCASTER_ID`. O broadcaster passa a ser a conta Twitch conectada ao admin autenticado (via `ExternalIdentity`), eliminando a divergência entre o que o modal exibia (ExternalIdentity) e o que de fato registrava (config). - `RegisterTwitchSubscriptionsAction` recebe o broadcaster id como argumento; a presentation resolve o "quem". - `RegisterSubscriptionsAction` resolve a Twitch do admin logado e bloqueia com aviso quando não há nenhuma. - `twitch:link-channel` passa a imprimir o comando `twitch:subscribe` em vez do env removido. ## Testes Suíte Twitch verde (integration-twitch + panel-admin). Testes de regressão de UI do modal `RegisterSubscriptions` com o broadcaster do usuário autenticado ficaram de fora por ora (issue de resolução de componente Livewire em teste) — a lógica de domínio está coberta em `RegisterTwitchSubscriptionsActionTest`. ## Setup de produção pendente (fora do código) - `TWITCH_OAUTH_CLIENT_SECRET` válido (a Twitch retornou `403 invalid client secret` em dev). - Registrar o redirect `https:///auth/oauth/twitch` no dev console da Twitch. - Conectar a Twitch pelo novo botão → `twitch:subscribe --type=stream.online` (o id agora vem do OAuth). --- .../RegisterTwitchSubscriptionsAction.php | 20 +---- .../src/Console/LinkTwitchChannelCommand.php | 7 +- .../src/IntegrationTwitchServiceProvider.php | 2 +- .../src/OAuth/TwitchAppTokenService.php | 12 ++- .../src/Transport/TwitchHelixConnector.php | 5 +- .../Feature/LinkTwitchChannelCommandTest.php | 33 ++++--- .../RegisterTwitchSubscriptionsActionTest.php | 88 +++++++++++++++++++ .../SubscribeTwitchEventsCommandTest.php | 14 ++- .../Feature/TwitchAppTokenServiceTest.php | 50 +++++++++++ app-modules/panel-admin/lang/en/twitch.php | 7 ++ .../register-subscriptions-modal.blade.php | 4 +- .../Twitch/Actions/ConnectTwitchAction.php | 64 ++++++++++++++ .../Actions/RegisterSubscriptionsAction.php | 54 +++++++++--- .../Pages/ListTwitchSubscriptions.php | 2 + .../Twitch/ConnectTwitchActionTest.php | 48 ++++++++++ .../RegisterSubscriptionsActionTest.php | 31 +++++++ config/services.php | 7 +- 17 files changed, 390 insertions(+), 58 deletions(-) create mode 100644 app-modules/integration-twitch/tests/Feature/RegisterTwitchSubscriptionsActionTest.php create mode 100644 app-modules/integration-twitch/tests/Feature/TwitchAppTokenServiceTest.php create mode 100644 app-modules/panel-admin/src/Twitch/Actions/ConnectTwitchAction.php create mode 100644 app-modules/panel-admin/tests/Feature/Twitch/ConnectTwitchActionTest.php create mode 100644 app-modules/panel-admin/tests/Feature/Twitch/RegisterSubscriptionsActionTest.php diff --git a/app-modules/integration-twitch/src/Actions/RegisterTwitchSubscriptionsAction.php b/app-modules/integration-twitch/src/Actions/RegisterTwitchSubscriptionsAction.php index d7dc97c78..0a52181f0 100644 --- a/app-modules/integration-twitch/src/Actions/RegisterTwitchSubscriptionsAction.php +++ b/app-modules/integration-twitch/src/Actions/RegisterTwitchSubscriptionsAction.php @@ -20,19 +20,8 @@ public function __construct( * @param array $types * @return array{created: int, skipped: int, failed: int, errors: array} */ - public function __invoke(array $types = []): array + public function __invoke(string $broadcasterId, array $types = []): array { - $broadcasterId = $this->resolveBroadcasterId(); - - if ($broadcasterId === null) { - return [ - 'created' => 0, - 'skipped' => 0, - 'failed' => 0, - 'errors' => ['broadcaster' => 'No Twitch broadcaster configured (set TWITCH_BROADCASTER_ID).'], - ]; - } - if ($types === []) { $types = TwitchEventSubType::cases(); } @@ -113,13 +102,6 @@ public function __invoke(array $types = []): array return ['created' => $created, 'skipped' => $skipped, 'failed' => $failed, 'errors' => $errors]; } - private function resolveBroadcasterId(): ?string - { - $broadcasterId = config()->string('services.twitch.broadcaster_id', ''); - - return $broadcasterId === '' ? null : $broadcasterId; - } - private function resolveCallbackUrl(): string { $configured = config()->string('services.twitch.eventsub_callback', ''); diff --git a/app-modules/integration-twitch/src/Console/LinkTwitchChannelCommand.php b/app-modules/integration-twitch/src/Console/LinkTwitchChannelCommand.php index 4d9dfaf24..fcb311a26 100644 --- a/app-modules/integration-twitch/src/Console/LinkTwitchChannelCommand.php +++ b/app-modules/integration-twitch/src/Console/LinkTwitchChannelCommand.php @@ -10,7 +10,7 @@ use Illuminate\Console\Attributes\Signature; use Illuminate\Console\Command; -#[Description(description: 'Resolve a Twitch channel broadcaster id for the fixed config-based integration')] +#[Description(description: 'Resolve a Twitch channel broadcaster id for use with twitch:subscribe')] #[Signature(signature: 'twitch:link-channel {login? : Twitch channel login name (defaults to config broadcaster login)}')] final class LinkTwitchChannelCommand extends Command { @@ -40,9 +40,8 @@ public function handle(TwitchHelixConnector $helix): int $this->info(sprintf("Resolved Twitch channel '%s' (login: %s).", $displayName, $login)); $this->line(sprintf('Broadcaster ID: %s', $broadcasterId)); $this->newLine(); - $this->comment('Set the following in your .env to activate the integration:'); - $this->line(sprintf(' TWITCH_BROADCASTER_LOGIN=%s', $login)); - $this->line(sprintf(' TWITCH_BROADCASTER_ID=%s', $broadcasterId)); + $this->comment('Register EventSub subscriptions for this channel with:'); + $this->line(sprintf(' php artisan twitch:subscribe %s --all', $broadcasterId)); return self::SUCCESS; } diff --git a/app-modules/integration-twitch/src/IntegrationTwitchServiceProvider.php b/app-modules/integration-twitch/src/IntegrationTwitchServiceProvider.php index d53955232..63047a25b 100644 --- a/app-modules/integration-twitch/src/IntegrationTwitchServiceProvider.php +++ b/app-modules/integration-twitch/src/IntegrationTwitchServiceProvider.php @@ -24,7 +24,7 @@ public function register(): void $this->app->singleton(TwitchAppTokenService::class); $this->app->singleton(TwitchHelixConnector::class, fn (): TwitchHelixConnector => new TwitchHelixConnector( - appToken: $this->app->make(TwitchAppTokenService::class)->getToken(), + tokenService: $this->app->make(TwitchAppTokenService::class), clientId: config()->string('services.twitch.client_id'), )); diff --git a/app-modules/integration-twitch/src/OAuth/TwitchAppTokenService.php b/app-modules/integration-twitch/src/OAuth/TwitchAppTokenService.php index ea6d0b10b..cdd4689b0 100644 --- a/app-modules/integration-twitch/src/OAuth/TwitchAppTokenService.php +++ b/app-modules/integration-twitch/src/OAuth/TwitchAppTokenService.php @@ -4,6 +4,7 @@ namespace He4rt\IntegrationTwitch\OAuth; +use He4rt\Identity\Auth\Exceptions\OAuthFlowException; use He4rt\IntegrationTwitch\Transport\Requests\OAuth\GetAppAccessToken; use He4rt\IntegrationTwitch\Transport\TwitchOAuthConnector; use Illuminate\Support\Facades\Cache; @@ -23,7 +24,16 @@ public function getToken(): string )); $accessToken = $response->json('access_token'); - $expiresIn = $response->json('expires_in'); + + $tokenRequestFailed = !is_string($accessToken) || $accessToken === ''; + + if ($tokenRequestFailed) { + $reason = $response->json('message') ?? sprintf('unexpected response (HTTP %d)', $response->status()); + + throw OAuthFlowException::tokenExchangeFailed('twitch', (string) $reason); + } + + $expiresIn = (int) ($response->json('expires_in') ?? 3_600); Cache::put('twitch_app_token_expires_in', $expiresIn, $expiresIn); diff --git a/app-modules/integration-twitch/src/Transport/TwitchHelixConnector.php b/app-modules/integration-twitch/src/Transport/TwitchHelixConnector.php index 2f0aac03c..c4db254db 100644 --- a/app-modules/integration-twitch/src/Transport/TwitchHelixConnector.php +++ b/app-modules/integration-twitch/src/Transport/TwitchHelixConnector.php @@ -4,6 +4,7 @@ namespace He4rt\IntegrationTwitch\Transport; +use He4rt\IntegrationTwitch\OAuth\TwitchAppTokenService; use Saloon\Http\Auth\TokenAuthenticator; use Saloon\Http\Connector; use Saloon\Traits\Plugins\HasTimeout; @@ -17,7 +18,7 @@ final class TwitchHelixConnector extends Connector protected int $requestTimeout = 10; public function __construct( - private readonly string $appToken, + private readonly TwitchAppTokenService $tokenService, private readonly string $clientId, ) {} @@ -28,7 +29,7 @@ public function resolveBaseUrl(): string protected function defaultAuth(): TokenAuthenticator { - return new TokenAuthenticator($this->appToken); + return new TokenAuthenticator($this->tokenService->getToken()); } /** diff --git a/app-modules/integration-twitch/tests/Feature/LinkTwitchChannelCommandTest.php b/app-modules/integration-twitch/tests/Feature/LinkTwitchChannelCommandTest.php index 6d6dc0bd5..a56ab8596 100644 --- a/app-modules/integration-twitch/tests/Feature/LinkTwitchChannelCommandTest.php +++ b/app-modules/integration-twitch/tests/Feature/LinkTwitchChannelCommandTest.php @@ -2,10 +2,30 @@ declare(strict_types=1); +use He4rt\IntegrationTwitch\OAuth\TwitchAppTokenService; use He4rt\IntegrationTwitch\Transport\TwitchHelixConnector; +use He4rt\IntegrationTwitch\Transport\TwitchOAuthConnector; +use Illuminate\Support\Facades\Cache; use Saloon\Http\Faking\MockClient; use Saloon\Http\Faking\MockResponse; +function fakeTwitchHelixConnector(MockClient $mock): TwitchHelixConnector +{ + // The app token is resolved lazily by the connector; seed the cache so + // getToken() short-circuits without hitting the real Twitch OAuth endpoint. + Cache::put('twitch_app_access_token', 'fake-token', 3_600); + + return tap( + new TwitchHelixConnector( + tokenService: new TwitchAppTokenService( + new TwitchOAuthConnector(clientId: 'fake-client-id', clientSecret: 'fake-secret'), + ), + clientId: 'fake-client-id', + ), + fn (TwitchHelixConnector $connector) => $connector->withMockClient($mock), + ); +} + function mockHelixUsersResponse(string $id = '12345', string $login = 'danielhe4rt', string $displayName = 'danielhe4rt'): MockClient { $mock = new MockClient([ @@ -20,10 +40,7 @@ function mockHelixUsersResponse(string $id = '12345', string $login = 'danielhe4 ]), ]); - app()->instance(TwitchHelixConnector::class, tap( - new TwitchHelixConnector(appToken: 'fake-token', clientId: 'fake-client-id'), - fn (TwitchHelixConnector $connector) => $connector->withMockClient($mock), - )); + app()->instance(TwitchHelixConnector::class, fakeTwitchHelixConnector($mock)); return $mock; } @@ -33,8 +50,7 @@ function mockHelixUsersResponse(string $id = '12345', string $login = 'danielhe4 $this->artisan('twitch:link-channel', ['login' => 'danielhe4rt']) ->expectsOutputToContain('Broadcaster ID: 12345') - ->expectsOutputToContain('TWITCH_BROADCASTER_LOGIN=danielhe4rt') - ->expectsOutputToContain('TWITCH_BROADCASTER_ID=12345') + ->expectsOutputToContain('php artisan twitch:subscribe 12345 --all') ->assertSuccessful(); }); @@ -43,10 +59,7 @@ function mockHelixUsersResponse(string $id = '12345', string $login = 'danielhe4 '*' => MockResponse::make(['data' => []]), ]); - app()->instance(TwitchHelixConnector::class, tap( - new TwitchHelixConnector(appToken: 'fake-token', clientId: 'fake-client-id'), - fn (TwitchHelixConnector $connector) => $connector->withMockClient($mock), - )); + app()->instance(TwitchHelixConnector::class, fakeTwitchHelixConnector($mock)); $this->artisan('twitch:link-channel', ['login' => 'nonexistent']) ->assertFailed(); diff --git a/app-modules/integration-twitch/tests/Feature/RegisterTwitchSubscriptionsActionTest.php b/app-modules/integration-twitch/tests/Feature/RegisterTwitchSubscriptionsActionTest.php new file mode 100644 index 000000000..cf77788e8 --- /dev/null +++ b/app-modules/integration-twitch/tests/Feature/RegisterTwitchSubscriptionsActionTest.php @@ -0,0 +1,88 @@ +instance(TwitchHelixConnector::class, tap( + new TwitchHelixConnector( + tokenService: new TwitchAppTokenService( + new TwitchOAuthConnector(clientId: 'fake-client-id', clientSecret: 'fake-secret'), + ), + clientId: 'fake-client-id', + ), + fn (TwitchHelixConnector $connector) => $connector->withMockClient($mock), + )); +} + +beforeEach(function (): void { + config()->set('services.twitch.eventsub_callback', 'https://example.com/api/webhooks/twitch/eventsub'); + config()->set('services.twitch.eventsub_secret', 'test-secret-at-least-ten-chars'); +}); + +test('registra a subscription usando o broadcaster id informado, sem tocar em config', function (): void { + bindMockedHelix(new MockClient([ + CreateSubscription::class => MockResponse::make([ + 'data' => [[ + 'id' => 'sub-abc', + 'type' => 'stream.online', + 'status' => 'enabled', + 'condition' => ['broadcaster_user_id' => '999888'], + 'transport' => ['method' => 'webhook', 'callback' => 'https://example.com/api/webhooks/twitch/eventsub'], + 'cost' => 0, + 'version' => '1', + ]], + ], 202), + ])); + + $result = resolve(RegisterTwitchSubscriptionsAction::class)('999888', [TwitchEventSubType::StreamOnline]); + + expect($result['created'])->toBe(1) + ->and($result['failed'])->toBe(0); + + assertDatabaseHas(TwitchSubscription::class, [ + 'subscription_id' => 'sub-abc', + 'broadcaster_user_id' => '999888', + 'type' => 'stream.online', + ]); +}); + +test('pula subscriptions já existentes para o mesmo broadcaster', function (): void { + TwitchSubscription::query()->create([ + 'subscription_id' => 'existing-1', + 'type' => 'stream.online', + 'status' => 'enabled', + 'broadcaster_user_id' => '999888', + 'condition' => ['broadcaster_user_id' => '999888'], + 'transport' => 'webhook', + 'callback_url' => 'https://example.com/api/webhooks/twitch/eventsub', + 'cost' => 0, + 'version' => '1', + ]); + + bindMockedHelix(new MockClient([ + CreateSubscription::class => MockResponse::make(['data' => [['id' => 'should-not-be-used']]], 202), + ])); + + $result = resolve(RegisterTwitchSubscriptionsAction::class)('999888', [TwitchEventSubType::StreamOnline]); + + expect($result['created'])->toBe(0) + ->and($result['skipped'])->toBe(1); +}); diff --git a/app-modules/integration-twitch/tests/Feature/SubscribeTwitchEventsCommandTest.php b/app-modules/integration-twitch/tests/Feature/SubscribeTwitchEventsCommandTest.php index ed4f28533..fd17890c7 100644 --- a/app-modules/integration-twitch/tests/Feature/SubscribeTwitchEventsCommandTest.php +++ b/app-modules/integration-twitch/tests/Feature/SubscribeTwitchEventsCommandTest.php @@ -3,10 +3,13 @@ declare(strict_types=1); use He4rt\IntegrationTwitch\Enums\TwitchEventSubType; +use He4rt\IntegrationTwitch\OAuth\TwitchAppTokenService; use He4rt\IntegrationTwitch\Transport\Requests\EventSub\CreateSubscription; use He4rt\IntegrationTwitch\Transport\Requests\EventSub\DeleteSubscription; use He4rt\IntegrationTwitch\Transport\Requests\EventSub\ListSubscriptions; use He4rt\IntegrationTwitch\Transport\TwitchHelixConnector; +use He4rt\IntegrationTwitch\Transport\TwitchOAuthConnector; +use Illuminate\Support\Facades\Cache; use Saloon\Http\Faking\MockClient; use Saloon\Http\Faking\MockResponse; @@ -24,8 +27,17 @@ function mockEventSubResponses(array $existingSubscriptions = []): MockClient DeleteSubscription::class => MockResponse::make([], 204), ]); + // The app token is resolved lazily by the connector; seed the cache so + // getToken() short-circuits without hitting the real Twitch OAuth endpoint. + Cache::put('twitch_app_access_token', 'fake-token', 3_600); + app()->instance(TwitchHelixConnector::class, tap( - new TwitchHelixConnector(appToken: 'fake-token', clientId: 'fake-client-id'), + new TwitchHelixConnector( + tokenService: new TwitchAppTokenService( + new TwitchOAuthConnector(clientId: 'fake-client-id', clientSecret: 'fake-secret'), + ), + clientId: 'fake-client-id', + ), fn (TwitchHelixConnector $connector) => $connector->withMockClient($mock), )); diff --git a/app-modules/integration-twitch/tests/Feature/TwitchAppTokenServiceTest.php b/app-modules/integration-twitch/tests/Feature/TwitchAppTokenServiceTest.php new file mode 100644 index 000000000..d78f20b68 --- /dev/null +++ b/app-modules/integration-twitch/tests/Feature/TwitchAppTokenServiceTest.php @@ -0,0 +1,50 @@ +withMockClient($mock); + + return new TwitchAppTokenService($connector); +} + +beforeEach(function (): void { + Cache::flush(); +}); + +test('retorna e cacheia o app token quando a twitch responde com sucesso', function (): void { + $service = makeAppTokenService(new MockClient([ + GetAppAccessToken::class => MockResponse::make([ + 'access_token' => 'app-token-123', + 'expires_in' => 5_000, + 'token_type' => 'bearer', + ]), + ])); + + expect($service->getToken())->toBe('app-token-123'); + expect(Cache::get('twitch_app_access_token'))->toBe('app-token-123'); +}); + +test('lança OAuthFlowException quando a twitch nega o client secret', function (): void { + $service = makeAppTokenService(new MockClient([ + GetAppAccessToken::class => MockResponse::make([ + 'status' => 403, + 'message' => 'invalid client secret', + ], 403), + ])); + + expect(fn (): string => $service->getToken()) + ->toThrow(OAuthFlowException::class, 'invalid client secret'); + + expect(Cache::has('twitch_app_access_token'))->toBeFalse(); +}); diff --git a/app-modules/panel-admin/lang/en/twitch.php b/app-modules/panel-admin/lang/en/twitch.php index 65224e856..cbc33f730 100644 --- a/app-modules/panel-admin/lang/en/twitch.php +++ b/app-modules/panel-admin/lang/en/twitch.php @@ -19,6 +19,11 @@ 'plural' => 'Event Logs', ], + 'connect' => [ + 'connect' => 'Connect Twitch', + 'reconnect' => 'Reconnect Twitch (:login)', + ], + 'subscriptions' => [ 'label' => 'Subscription', 'plural' => 'Subscriptions', @@ -26,7 +31,9 @@ 'register' => 'Register Subscriptions', 'register_confirm_button' => 'Register All', 'registered' => 'Subscriptions registered successfully.', + 'register_partial' => 'Some subscriptions failed to register.', 'register_failed' => 'Failed to register subscriptions.', + 'no_broadcaster' => 'Connect your Twitch account first — use the "Connect Twitch" button above.', 'sync' => 'Sync from Twitch', 'synced' => 'Subscriptions synced successfully.', 'sync_failed' => 'Failed to sync subscriptions from Twitch.', diff --git a/app-modules/panel-admin/resources/views/twitch/register-subscriptions-modal.blade.php b/app-modules/panel-admin/resources/views/twitch/register-subscriptions-modal.blade.php index fb2651596..8368de7f7 100644 --- a/app-modules/panel-admin/resources/views/twitch/register-subscriptions-modal.blade.php +++ b/app-modules/panel-admin/resources/views/twitch/register-subscriptions-modal.blade.php @@ -15,8 +15,8 @@
-

No Twitch channel linked

-

Connect a Twitch channel to this tenant before registering subscriptions. Use the Tenant Settings page or run twitch:link-channel.

+

No Twitch account connected

+

Connect your Twitch account with the “Connect Twitch” button on this page before registering subscriptions.

@else diff --git a/app-modules/panel-admin/src/Twitch/Actions/ConnectTwitchAction.php b/app-modules/panel-admin/src/Twitch/Actions/ConnectTwitchAction.php new file mode 100644 index 000000000..25f39e104 --- /dev/null +++ b/app-modules/panel-admin/src/Twitch/Actions/ConnectTwitchAction.php @@ -0,0 +1,64 @@ +resolveConnectedIdentity(); + $isConnected = $connectedIdentity instanceof ExternalIdentity; + + $this + ->label($isConnected + ? __('panel-admin::twitch.connect.reconnect', ['login' => $this->resolveLogin($connectedIdentity)]) + : __('panel-admin::twitch.connect.connect')) + ->icon($isConnected ? 'heroicon-o-check-badge' : 'heroicon-o-link') + ->color($isConnected ? 'gray' : 'primary') + ->url(route('oauth.redirect', ['panel' => 'admin', 'provider' => 'twitch'])); + } + + public static function getDefaultName(): ?string + { + return 'connect-twitch'; + } + + private function resolveConnectedIdentity(): ?ExternalIdentity + { + $user = filament()->auth()->user(); + + if (!$user instanceof User) { + return null; + } + + $identity = $user->providers() + ->where('provider', IdentityProvider::Twitch) + ->whereNotNull('connected_at') + ->whereNull('disconnected_at') + ->first(); + + return $identity instanceof ExternalIdentity ? $identity : null; + } + + private function resolveLogin(ExternalIdentity $identity): string + { + $metadata = $identity->metadata ?? []; + + /** @var string $login */ + $login = $metadata['login'] + ?? $metadata['username'] + ?? $identity->external_account_id + ?? 'twitch'; + + return $login; + } +} diff --git a/app-modules/panel-admin/src/Twitch/Actions/RegisterSubscriptionsAction.php b/app-modules/panel-admin/src/Twitch/Actions/RegisterSubscriptionsAction.php index 3b1d16115..472c014b3 100644 --- a/app-modules/panel-admin/src/Twitch/Actions/RegisterSubscriptionsAction.php +++ b/app-modules/panel-admin/src/Twitch/Actions/RegisterSubscriptionsAction.php @@ -9,6 +9,7 @@ use Filament\Support\Enums\Width; use He4rt\Identity\ExternalIdentity\Enums\IdentityProvider; use He4rt\Identity\ExternalIdentity\Models\ExternalIdentity; +use He4rt\Identity\User\Models\User; use He4rt\IntegrationTwitch\Actions\RegisterTwitchSubscriptionsAction; use He4rt\IntegrationTwitch\Enums\TwitchEventSubType; use He4rt\IntegrationTwitch\Models\TwitchSubscription; @@ -33,30 +34,37 @@ protected function setUp(): void 'groups' => $this->buildEventTypeGroups(), 'secret' => $this->maskSecret(), ])) - ->action(static function (): void { - $action = resolve(RegisterTwitchSubscriptionsAction::class); - $result = $action(); + ->action(function (): void { + $broadcaster = $this->resolveBroadcaster(); - if ($result['errors']['broadcaster'] ?? null) { + if ($broadcaster === null) { Notification::make() ->danger() ->title(__('panel-admin::twitch.subscriptions.actions.register_failed')) - ->body($result['errors']['broadcaster']) + ->body(__('panel-admin::twitch.subscriptions.actions.no_broadcaster')) ->send(); return; } - Notification::make() - ->success() - ->title(__('panel-admin::twitch.subscriptions.actions.registered')) + $result = resolve(RegisterTwitchSubscriptionsAction::class)($broadcaster['id']); + + $hasFailures = $result['failed'] > 0; + + $notification = Notification::make() + ->title(__($hasFailures + ? 'panel-admin::twitch.subscriptions.actions.register_partial' + : 'panel-admin::twitch.subscriptions.actions.registered')) ->body(sprintf( '%d created, %d skipped, %d failed.', $result['created'], $result['skipped'], $result['failed'], - )) - ->send(); + )); + + $hasFailures ? $notification->warning() : $notification->success(); + + $notification->send(); }); } @@ -66,17 +74,27 @@ public static function getDefaultName(): ?string } /** + * The broadcaster is the Twitch account connected to the authenticated + * admin — no config/env fallback. The admin connects it via the + * "Connect Twitch" action on this page. + * * @return array{id: string, login: string}|null */ private function resolveBroadcaster(): ?array { - $identity = ExternalIdentity::query() + $user = filament()->auth()->user(); + + if (!$user instanceof User) { + return null; + } + + $identity = $user->providers() ->where('provider', IdentityProvider::Twitch) ->whereNotNull('connected_at') ->whereNull('disconnected_at') ->first(); - if (!$identity) { + if (!$identity instanceof ExternalIdentity) { return null; } @@ -88,7 +106,9 @@ private function resolveBroadcaster(): ?array private function resolveCallbackUrl(): string { - $configured = config()->string('services.twitch.eventsub_callback', ''); + // Cast instead of config()->string(): the key may be present-but-null when + // TWITCH_EVENTSUB_CALLBACK is unset, and config()->string() throws on null. + $configured = (string) config('services.twitch.eventsub_callback', ''); if ($configured !== '') { return $configured; @@ -99,7 +119,13 @@ private function resolveCallbackUrl(): string private function maskSecret(): string { - $secret = config()->string('services.twitch.eventsub_secret'); + // Read defensively: TWITCH_EVENTSUB_SECRET has no config default (it must + // fail loud on the security paths), so the display must tolerate it being unset. + $secret = config('services.twitch.eventsub_secret'); + + if (!is_string($secret) || $secret === '') { + return '—'; + } return mb_substr($secret, 0, 4).str_repeat('*', max(mb_strlen($secret) - 4, 0)); } diff --git a/app-modules/panel-admin/src/Twitch/Resources/TwitchSubscriptionResource/Pages/ListTwitchSubscriptions.php b/app-modules/panel-admin/src/Twitch/Resources/TwitchSubscriptionResource/Pages/ListTwitchSubscriptions.php index d84d8d0e6..1438af817 100644 --- a/app-modules/panel-admin/src/Twitch/Resources/TwitchSubscriptionResource/Pages/ListTwitchSubscriptions.php +++ b/app-modules/panel-admin/src/Twitch/Resources/TwitchSubscriptionResource/Pages/ListTwitchSubscriptions.php @@ -10,6 +10,7 @@ use He4rt\IntegrationTwitch\Models\TwitchSubscription; use He4rt\IntegrationTwitch\Transport\Requests\EventSub\ListSubscriptions; use He4rt\IntegrationTwitch\Transport\TwitchHelixConnector; +use He4rt\PanelAdmin\Twitch\Actions\ConnectTwitchAction; use He4rt\PanelAdmin\Twitch\Actions\RegisterSubscriptionsAction; use He4rt\PanelAdmin\Twitch\Resources\TwitchSubscriptionResource; use Saloon\Exceptions\Request\RequestException; @@ -21,6 +22,7 @@ class ListTwitchSubscriptions extends ListRecords protected function getHeaderActions(): array { return [ + ConnectTwitchAction::make(), RegisterSubscriptionsAction::make(), Action::make('sync') ->label(__('panel-admin::twitch.subscriptions.actions.sync')) diff --git a/app-modules/panel-admin/tests/Feature/Twitch/ConnectTwitchActionTest.php b/app-modules/panel-admin/tests/Feature/Twitch/ConnectTwitchActionTest.php new file mode 100644 index 000000000..7d9039f92 --- /dev/null +++ b/app-modules/panel-admin/tests/Feature/Twitch/ConnectTwitchActionTest.php @@ -0,0 +1,48 @@ +user = User::factory()->create(['username' => 'danielhe4rt']); + + config(['he4rt.admins' => 'danielhe4rt']); + + $this->actingAs($this->user); + + Filament::setCurrentPanel(Filament::getPanel('admin')); +}); + +test('botão de conectar aponta para o fluxo OAuth da twitch no painel admin', function (): void { + $expectedUrl = route('oauth.redirect', ['panel' => 'admin', 'provider' => 'twitch']); + + livewire(ListTwitchSubscriptions::class) + ->assertActionExists('connect-twitch') + ->assertActionHasUrl('connect-twitch', $expectedUrl) + ->assertActionHasLabel('connect-twitch', __('panel-admin::twitch.connect.connect')); +}); + +test('quando já existe identidade twitch conectada, o botão mostra reconectar com o login', function (): void { + ExternalIdentity::factory()->create([ + 'model_type' => (new User)->getMorphClass(), + 'model_id' => $this->user->id, + 'provider' => IdentityProvider::Twitch, + 'connected_at' => now(), + 'disconnected_at' => null, + 'metadata' => ['login' => 'he4rtdevs'], + ]); + + livewire(ListTwitchSubscriptions::class) + ->assertActionExists('connect-twitch') + ->assertActionHasLabel( + 'connect-twitch', + __('panel-admin::twitch.connect.reconnect', ['login' => 'he4rtdevs']), + ); +}); diff --git a/app-modules/panel-admin/tests/Feature/Twitch/RegisterSubscriptionsActionTest.php b/app-modules/panel-admin/tests/Feature/Twitch/RegisterSubscriptionsActionTest.php new file mode 100644 index 000000000..695d269ad --- /dev/null +++ b/app-modules/panel-admin/tests/Feature/Twitch/RegisterSubscriptionsActionTest.php @@ -0,0 +1,31 @@ +create(['username' => 'danielhe4rt']); + + config(['he4rt.admins' => 'danielhe4rt']); + + $this->actingAs($user); + + Filament::setCurrentPanel(Filament::getPanel('admin')); +}); + +test('o modal de registrar subscriptions monta mesmo sem eventsub_callback configurado', function (): void { + // Reproduz o gatilho exato do crash: a chave presente-porém-nula quando + // TWITCH_EVENTSUB_CALLBACK está unset. O callback deve derivar de app.url + // em vez de estourar em config()->string() com valor nulo. + config()->set('services.twitch.eventsub_callback'); + + livewire(ListTwitchSubscriptions::class) + ->mountAction('register-subscriptions') + ->assertActionMounted('register-subscriptions') + ->assertHasNoErrors(); +}); diff --git a/config/services.php b/config/services.php index 8a5fa40e6..b56da8e11 100644 --- a/config/services.php +++ b/config/services.php @@ -49,10 +49,9 @@ 'app' => env('TWITCH_OAUTH_SCOPES_APP', 'user:read:email'), ], 'enabled' => env('TWITCH_OAUTH_ENABLED', default: true), - 'eventsub_secret' => env('TWITCH_EVENTSUB_SECRET', 'h34rt-tw1tch-3v3ntsub-s3cr3t-k3y'), - 'eventsub_callback' => env('TWITCH_EVENTSUB_CALLBACK'), - 'broadcaster_login' => env('TWITCH_BROADCASTER_LOGIN'), - 'broadcaster_id' => env('TWITCH_BROADCASTER_ID'), + 'eventsub_secret' => env('TWITCH_EVENTSUB_SECRET'), + 'eventsub_callback' => env('TWITCH_EVENTSUB_CALLBACK', ''), + 'broadcaster_login' => env('TWITCH_BROADCASTER_LOGIN', ''), ], 'devto' => [ From a46028720395090f844be90839c1750021744316 Mon Sep 17 00:00:00 2001 From: Gabriel Vieira <48625433+gvieira18@users.noreply.github.com> Date: Tue, 14 Jul 2026 21:48:32 -0300 Subject: [PATCH 13/46] feat(portal): refine retrospective repo slides (#419) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - Esconde da retrospectiva os repos sem PR no recorte (só review/issue/comentário): o card some, mas as contribuições seguem contando em `meta`/`people`/`highlights`. - Remove o empty-state morto "Sem PRs nesse recorte…" do card de repo. - Panorama passa a mostrar "em N repositório(s)" (repos com PR = cards exibidos) no lugar de "N arquivos tocados"; plural via `@choice`. ## Test plan - [x] `php artisan test --compact --filter=CommunityRetrospective` (30 passed) - [x] Abrir `/comunidade/retrospectiva` num recorte com repo só de review/issue/comentário (ex.: `gvieira18/sycorax`) → card sumiu, stats gerais iguais - [x] Panorama: contagem de repositórios bate com o nº de cards e pluraliza (1 → "repositório", N → "repositórios") --- .../retro/slides/panorama.blade.php | 2 +- .../components/retro/slides/repo.blade.php | 6 ++--- .../Retrospective/CommunityRetrospective.php | 10 ++++++++- .../Feature/CommunityRetrospectiveTest.php | 22 +++++++++++++++++++ 4 files changed, 34 insertions(+), 6 deletions(-) diff --git a/app-modules/portal/resources/views/components/retro/slides/panorama.blade.php b/app-modules/portal/resources/views/components/retro/slides/panorama.blade.php index a49cdd2c4..bb92585b7 100644 --- a/app-modules/portal/resources/views/components/retro/slides/panorama.blade.php +++ b/app-modules/portal/resources/views/components/retro/slides/panorama.blade.php @@ -6,7 +6,7 @@

{{ $meta['people'] }} pessoas somaram {{ $meta['total'] }} interações - em {{ number_format($meta['changed_files'], 0, ',', '.') }} arquivos tocados. + em {{ $meta['repos'] }} @choice('repositório|repositórios', $meta['repos']).

diff --git a/app-modules/portal/resources/views/components/retro/slides/repo.blade.php b/app-modules/portal/resources/views/components/retro/slides/repo.blade.php index 305543d87..9eedb7d46 100644 --- a/app-modules/portal/resources/views/components/retro/slides/repo.blade.php +++ b/app-modules/portal/resources/views/components/retro/slides/repo.blade.php @@ -44,11 +44,9 @@ class="mini" @endif
- @forelse ($repo['prs'] as $pr) + @foreach ($repo['prs'] as $pr)
- @empty -

Sem PRs nesse recorte — a atividade veio de reviews, issues e comentários.

- @endforelse + @endforeach
diff --git a/app-modules/portal/src/Retrospective/CommunityRetrospective.php b/app-modules/portal/src/Retrospective/CommunityRetrospective.php index 41b83bba9..683eb2604 100644 --- a/app-modules/portal/src/Retrospective/CommunityRetrospective.php +++ b/app-modules/portal/src/Retrospective/CommunityRetrospective.php @@ -63,6 +63,8 @@ public function build(): array ->values() ->all(); + $repos = $this->repos($contributions); + return [ 'period' => ['since' => $this->filters->since->toDateString(), 'until' => $this->filters->until->toDateString()], 'meta' => [ @@ -78,10 +80,12 @@ public function build(): array 'additions' => $this->sumMeta($contributions, 'additions'), 'deletions' => $this->sumMeta($contributions, 'deletions'), 'changed_files' => $this->sumMeta($contributions, 'changed_files'), + // Repos exibidos = só os com PR no recorte (mesmo universo dos cards). + 'repos' => count($repos), 'total' => $contributions->count(), ], 'people' => $people, - 'repos' => $this->repos($contributions), + 'repos' => $repos, 'highlights' => $this->highlights($contributions), ]; } @@ -269,6 +273,10 @@ private function repos(Collection $contributions): array ], ]; }) + // Só entram na retrospectiva repos com ao menos 1 PR no recorte; + // atividade só de review/issue/comentário some do card (mas segue + // contando em meta/people/highlights). + ->filter(fn (array $repo): bool => $repo['metrics']['prs'] > 0) ->values() ->all()); } diff --git a/app-modules/portal/tests/Feature/CommunityRetrospectiveTest.php b/app-modules/portal/tests/Feature/CommunityRetrospectiveTest.php index 75c22ab7d..83018a4c3 100644 --- a/app-modules/portal/tests/Feature/CommunityRetrospectiveTest.php +++ b/app-modules/portal/tests/Feature/CommunityRetrospectiveTest.php @@ -192,6 +192,28 @@ function contribution(array $attributes): GithubContribution ->and($data['highlights'][0]['repo'])->toBe('he4rt/heartdevs.com'); }); +it('esconde da lista repos sem PR no recorte mas mantém suas contribuições nas stats', function (): void { + contribution(['actor_login' => 'maria', 'repo' => 'he4rt/com-pr', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'merged', 'merged' => true, 'title' => 't', 'url' => 'u', 'additions' => 5, 'deletions' => 1, 'changed_files' => 1]]); + contribution(['actor_login' => 'joao', 'repo' => 'he4rt/so-review', 'type' => ContributionType::Review, 'external_ref' => 'review:1', 'occurred_at' => '2026-06-02']); + + $data = ($this->build)(); + + expect(collect($data['repos'])->pluck('full_name')->all())->toBe(['he4rt/com-pr']) + ->and($data['meta']['reviews'])->toBe(1) // review segue contando nas stats gerais + ->and($data['meta']['repos'])->toBe(1); // panorama conta só repos com PR +}); + +it('o panorama pluraliza repositórios conforme a contagem', function (int $repos, string $expected): void { + $meta = ['people' => 1, 'total' => 1, 'prs' => 1, 'prs_merged' => 1, 'prs_unmerged' => 0, 'reviews' => 0, 'issues' => 0, 'comments' => 0, 'review_comments' => 0, 'commits' => 0, 'additions' => 1, 'deletions' => 0, 'changed_files' => 1, 'repos' => $repos]; + + $html = Blade::render('', ['meta' => $meta]); + + expect($html)->toContain($expected); +})->with([ + 'singular' => [1, 'em 1 repositório.'], + 'plural' => [3, 'em 3 repositórios.'], +]); + it('aplica filtros de tipo, repo, desfecho e pessoa', function (): void { contribution(['actor_login' => 'maria', 'repo' => 'he4rt/a', 'type' => ContributionType::Pr, 'external_ref' => 'pr:1', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'merged', 'merged' => true]]); contribution(['actor_login' => 'maria', 'repo' => 'he4rt/a', 'type' => ContributionType::Pr, 'external_ref' => 'pr:2', 'occurred_at' => '2026-06-02', 'metadata' => ['state' => 'open', 'merged' => false]]); From 1fb560db06c883f370c17bda2cbf6b7373d4f134 Mon Sep 17 00:00:00 2001 From: Gabriel Vieira <48625433+gvieira18@users.noreply.github.com> Date: Tue, 14 Jul 2026 22:25:28 -0300 Subject: [PATCH 14/46] fix: restore secondary indexes dropped by tenancy removal (#422) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Contexto O `drop_multi_tenancy` (#413) colapsou corretamente os índices **únicos** tenant-scoped, mas dropou ~17 índices **secundários** (de performance) sob o comentário _"no collapsed replacement needed"_ — sem nunca recriar o equivalente sem `tenant_id`. Resultado: as páginas de **Marketing** do painel admin rodam 7+ agregações por load como *sequential scans* sobre as maiores tabelas do banco (`messages`, `voice_messages`, `activity_timeline`). Dois achados extras da investigação: 1. **Bug no drop**: `idx_github_contributions_type_time (type, occurred_at)` nunca teve `tenant_id` (a integração GitHub nunca teve tenancy), mas foi dropado mesmo assim — o comentário na migration o rotula errado como índice de tenant. 2. **Colunas quentes nunca indexadas**: `voice_messages (occurred_at, state)` e `addresses (state)` nunca tiveram índice, mas os dashboards de marketing filtram por elas em todo load. ## O que muda Quatro migrations puramente aditivas (uma por módulo dono da tabela): | Módulo | Tabela | Índice novo | |---|---|---| | activity | messages | `(sent_at)`, `(channel_id, sent_at)`, `(kind)` | | activity | voice_messages | parcial `(occurred_at) WHERE state = 'joined'` | | activity | activity_timeline | `(created_at)`, `(parent_id, is_ignored, created_at)` | | activity | activity_reactions | `(emoji_key, created_at)` | | activity | message_mentions | `(mentioned_identity_id)`, `(mentioned_provider_account_id)` | | activity | message_embeds | `(source_domain)`, `(kind)` | | activity | membership_events | `(kind, occurred_at)` | | activity | moderation_events | `(type, occurred_at)` | | activity | interactions | `(occurred_at)` | | moderation | moderation_cases | `(status, priority, created_at)` | | moderation | moderation_rules | `(is_active)` | | moderation | moderation_audit_log | `(created_at)` | | integration-github | github_contributions | `(type, occurred_at)` — restaura o drop indevido | | (app root) | addresses | `(addressable_type, state)` | Não recriados: `twitch_subscriptions_tenant_id_index` (só tenant, nada sobra) e o composto de `external_identities` (já coberto pelo standalone `(model_type, model_id)`). ## Verificação - `php artisan migrate` local: 19 índices criados, confirmados em `pg_indexes`; re-run é no-op (`IF NOT EXISTS`). - `EXPLAIN` em `github_contributions` (única tabela local com volume): `Index Only Scan using idx_github_contributions_type_time`. - Pint, PHPStan e Rector limpos na raiz; suíte `--filter=Marketing` verde (5 testes, 35 assertions). --- ...recreate_activity_post_tenancy_indexes.php | 35 +++++++++++++++++++ ...e_github_contributions_type_time_index.php | 16 +++++++++ ...create_moderation_post_tenancy_indexes.php | 24 +++++++++++++ ...15_001020_add_state_index_to_addresses.php | 16 +++++++++ 4 files changed, 91 insertions(+) create mode 100644 app-modules/activity/database/migrations/2026_07_15_001258_recreate_activity_post_tenancy_indexes.php create mode 100644 app-modules/integration-github/database/migrations/2026_07_15_001019_restore_github_contributions_type_time_index.php create mode 100644 app-modules/moderation/database/migrations/2026_07_15_001259_recreate_moderation_post_tenancy_indexes.php create mode 100644 database/migrations/2026_07_15_001020_add_state_index_to_addresses.php diff --git a/app-modules/activity/database/migrations/2026_07_15_001258_recreate_activity_post_tenancy_indexes.php b/app-modules/activity/database/migrations/2026_07_15_001258_recreate_activity_post_tenancy_indexes.php new file mode 100644 index 000000000..9cfe19fcf --- /dev/null +++ b/app-modules/activity/database/migrations/2026_07_15_001258_recreate_activity_post_tenancy_indexes.php @@ -0,0 +1,35 @@ + Date: Sat, 18 Jul 2026 12:14:55 -0300 Subject: [PATCH 15/46] feat(skills): adicionar seed de skills para QA (#433) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Contexto Este PR implementa a solução da issue #430. Atualmente, a seção **Skills** da página de Perfil (`/profile`) não disponibiliza frameworks e ferramentas de automação de testes entre as opções cadastráveis. Isso dificulta que profissionais de Quality Assurance (QA) representem corretamente suas competências técnicas na plataforma. Para resolver esse problema, este PR adiciona ao seed de skills as principais ferramentas utilizadas pelo mercado de QA, permitindo que elas passem a ser selecionáveis no perfil dos usuários. ## Alterações Adiciona novas skills relacionadas à área de Quality Assurance, incluindo ferramentas de: - **Testes Web (E2E/UI)** - Selenium - Cypress - Playwright - WebdriverIO - TestCafe - Puppeteer - **Testes Mobile** - Appium - Espresso - XCUITest - Detox - **Testes de API** - Rest Assured - Postman - Newman - Karate - Supertest - **BDD** - Cucumber - SpecFlow - Behave - Robot Framework - **Testes Unitários e de Integração** - JUnit - TestNG - PyTest - Jest - Mocha - Chai - NUnit - xUnit - **Testes de Performance** - JMeter - K6 - Gatling - Locust ## Motivação - Permite que profissionais de QA representem melhor seu stack técnico. - Amplia o catálogo de skills disponíveis na plataforma. - Facilita a busca por profissionais com conhecimentos específicos em ferramentas de testes. - Mantém o catálogo de skills centralizado e versionado por meio dos seeds, facilitando futuras atualizações. ## Test Plan - Executar os seeders da aplicação. - Verificar que as novas skills foram inseridas corretamente no banco de dados. - Confirmar que as ferramentas aparecem como opções na seção **Skills** da página de Perfil (`/profile`). - Validar que o seeder pode ser executado novamente sem criar registros duplicados (quando aplicável). --- ..._07_18_095900_add_qa_skills_to_catalog.php | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 app-modules/profile/database/migrations/2026_07_18_095900_add_qa_skills_to_catalog.php diff --git a/app-modules/profile/database/migrations/2026_07_18_095900_add_qa_skills_to_catalog.php b/app-modules/profile/database/migrations/2026_07_18_095900_add_qa_skills_to_catalog.php new file mode 100644 index 000000000..291c32190 --- /dev/null +++ b/app-modules/profile/database/migrations/2026_07_18_095900_add_qa_skills_to_catalog.php @@ -0,0 +1,85 @@ +> + */ + private const array CATALOG = [ + 'framework' => [ + 'selenium' => 'Selenium', + 'cypress' => 'Cypress', + 'playwright' => 'Playwright', + 'webdriverio' => 'WebdriverIO', + 'testcafe' => 'TestCafe', + 'puppeteer' => 'Puppeteer', + 'appium' => 'Appium', + 'espresso' => 'Espresso', + 'xcuitest' => 'XCUITest', + 'detox' => 'Detox', + 'rest-assured' => 'RestAssured', + 'karate' => 'Karate', + 'supertest' => 'Supertest', + 'cucumber' => 'Cucumber', + 'specflow' => 'SpecFlow', + 'behave' => 'Behave', + 'robot-framework' => 'Robot Framework', + 'junit' => 'JUnit', + 'testng' => 'TestNG', + 'pytest' => 'PyTest', + 'jest' => 'Jest', + 'mocha-chai' => 'Mocha / Chai', + 'nunit' => 'NUnit', + 'xunit' => 'xUnit', + ], + 'tool' => [ + 'postman-newman' => 'Postman / Newman', + 'jmeter' => 'JMeter', + 'k6' => 'K6', + 'gatling' => 'Gatling', + 'locust' => 'Locust', + ], + ]; + + public function up(): void + { + $now = now(); + $rows = []; + + foreach (self::CATALOG as $category => $skills) { + foreach ($skills as $slug => $name) { + $rows[] = [ + 'id' => Str::uuid7()->toString(), + 'slug' => $slug, + 'name' => $name, + 'category' => $category, + 'created_at' => $now, + 'updated_at' => $now, + ]; + } + } + + DB::table('skills')->upsert( + $rows, + ['slug'], + ['name', 'category', 'updated_at'], + ); + } + + public function down(): void + { + DB::table('skills') + ->whereIn('slug', array_keys(self::CATALOG['framework'])) + ->orWhereIn('slug', array_keys(self::CATALOG['tool'])) + ->delete(); + } +}; From 2209dcde27e7742cbbd8c1587daf9ff2991b840f Mon Sep 17 00:00:00 2001 From: Daniel Reis Date: Sat, 18 Jul 2026 17:17:45 -0300 Subject: [PATCH 16/46] =?UTF-8?q?feat(bot-discord):=20DM=20de=20boas-vinda?= =?UTF-8?q?s=20com=20CTA=20de=20apresenta=C3=A7=C3=A3o=20(#434)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Contexto Melhora a interação com quem entra na comunidade. A mensagem pública no canal `auto-report` **continua igual** — a mudança toca só a **DM enviada ao novo membro**, que antes era uma cópia byte-a-byte do post do canal. > Sugestão da @kalanedev ## O que muda DM com a marca He4rt e um **CTA único** pra ativar o `/apresentar`: - Embed roxo He4rt (`#782bf1`), thumbnail = ícone do servidor, footer `© He4rt Developers` + timestamp. - Descrição de acolhimento **personalizada com o nome** do membro + o que é a He4rt. - `field` dedicado **🙋 Comece se apresentando** com o passo-a-passo do `/apresentar`. - 3 botões: **✍️ Me apresentar** (deep-link pro canal de apresentações) · **🌐 Portal** · **🔗 Nossas redes**. ## Resiliência (DM fechada) Muitos usuários bloqueiam DM de membros do servidor → a promise do `sendTo()` **rejeita**. Agora tratamos com `->catch()`: - Loga `warning` no canal de log `bot-discord`. - Posta um **follow-up público no `#geral`** com o mesmo embed + botões e uma menção que **notifica** a pessoa (via `body()`, acima do embed). - Se `HE4RT_GERAL_CHANNEL_ID` não estiver setado, degrada silenciosamente pra só-logar. ## Detalhes técnicos - Corrige a semântica `content()` (dentro do embed) × `body()` (texto acima, onde menção pinga) da API do Laracord. - Extrai `WelcomeMember::guildIconUrl()` (puro) pra montar a URL do ícone do servidor no CDN do Discord (trata `a_…` → `.gif`), com teste unitário. ## ⚠️ Config necessária Adicionar ao `.env` de produção: \`\`\` HE4RT_GERAL_CHANNEL_ID= \`\`\` ## Testes - `WelcomeMemberGuildIconTest` (4 casos: png, gif animado, sem ícone, sem guild) — verdes. - Pint + PHPStan passam nos arquivos tocados. - Camada de transporte (envio Discord) não é testada — segue a convenção do módulo (o `IntroductionCommandTest` também só testa o lado de domínio). ## Como testar manualmente 1. Setar `HE4RT_GERAL_CHANNEL_ID`. 2. Entrar no servidor com DM aberta → recebe a DM rica. 3. Entrar com DM fechada → recebe o follow-up no `#geral` com menção. --- .../bot-discord/config/bot-discord.php | 1 + .../bot-discord/src/Events/WelcomeMember.php | 118 +++++++ .../src/SlashCommands/DontAskCommand.php | 2 +- .../Events/WelcomeMemberGuildIconTest.php | 23 ++ public/images/3pontos/3pontos-ball.svg | 310 ------------------ public/images/3pontos/3pontos-map.png | Bin 364738 -> 0 bytes public/images/3pontos/donut.svg | 60 ---- public/images/3pontos/grids-horizontal.svg | 149 --------- public/images/3pontos/logo-chain.png | Bin 1807286 -> 0 bytes public/images/3pontos/logo-creation.png | Bin 452376 -> 0 bytes public/images/3pontos/logo-rounded.svg | 34 -- public/images/3pontos/logo.svg | 9 - public/images/3pontos/partners/betel-logo.png | Bin 3045 -> 0 bytes .../images/3pontos/partners/firece-logo.svg | 12 - .../images/3pontos/partners/flamma-logo.svg | 12 - public/images/3pontos/partners/ipe-logo.svg | 19 -- public/images/3pontos/wave.svg | 24 -- .../images/assets/linus-dont-ask-to-ask.webp | Bin 0 -> 96480 bytes 18 files changed, 143 insertions(+), 630 deletions(-) create mode 100644 app-modules/bot-discord/tests/Unit/Events/WelcomeMemberGuildIconTest.php delete mode 100644 public/images/3pontos/3pontos-ball.svg delete mode 100644 public/images/3pontos/3pontos-map.png delete mode 100644 public/images/3pontos/donut.svg delete mode 100644 public/images/3pontos/grids-horizontal.svg delete mode 100644 public/images/3pontos/logo-chain.png delete mode 100644 public/images/3pontos/logo-creation.png delete mode 100644 public/images/3pontos/logo-rounded.svg delete mode 100644 public/images/3pontos/logo.svg delete mode 100644 public/images/3pontos/partners/betel-logo.png delete mode 100644 public/images/3pontos/partners/firece-logo.svg delete mode 100644 public/images/3pontos/partners/flamma-logo.svg delete mode 100644 public/images/3pontos/partners/ipe-logo.svg delete mode 100644 public/images/3pontos/wave.svg create mode 100644 public/images/assets/linus-dont-ask-to-ask.webp diff --git a/app-modules/bot-discord/config/bot-discord.php b/app-modules/bot-discord/config/bot-discord.php index 356734bae..df1fd3429 100644 --- a/app-modules/bot-discord/config/bot-discord.php +++ b/app-modules/bot-discord/config/bot-discord.php @@ -7,6 +7,7 @@ 'channels' => [ 'auto-report' => env('HE4RT_AUTO_REPORT_CHANNEL_ID', '1045804587195576451'), 'presentations' => env('HE4RT_PRESENTATIONS_CHANNEL_ID', '540993663468306433'), + 'general' => env('HE4RT_GERAL_CHANNEL_ID', '541443469642563585'), 'he4rt_delas' => env('HE4RT_DELAS_CHANNEL_ID', '1450492362416586845'), ], 'roles' => [ diff --git a/app-modules/bot-discord/src/Events/WelcomeMember.php b/app-modules/bot-discord/src/Events/WelcomeMember.php index 938622f17..9514be585 100644 --- a/app-modules/bot-discord/src/Events/WelcomeMember.php +++ b/app-modules/bot-discord/src/Events/WelcomeMember.php @@ -23,6 +23,26 @@ class WelcomeMember extends Event { protected $handler = Events::GUILD_MEMBER_ADD; + /** + * Build the Discord CDN URL for a guild icon hash. Returns null when the + * guild has no icon; animated hashes (`a_…`) resolve to `.gif`. + */ + public static function guildIconUrl(string $guildId, ?string $iconHash): ?string + { + if (blank($guildId) || blank($iconHash)) { + return null; + } + + $extension = str_starts_with($iconHash, 'a_') ? 'gif' : 'png'; + + return sprintf( + 'https://cdn.discordapp.com/icons/%s/%s.%s', + $guildId, + $iconHash, + $extension + ); + } + public function handle(Member $member, Discord $discord): void { $channelId = config('bot-discord.channels.auto-report'); @@ -71,5 +91,103 @@ public function handle(Member $member, Discord $discord): void )) ->color('#5865F2') ->send($channelId); + + $this->sendWelcomeDm($member); + } + + /** + * Send the branded welcome DM to the new member, falling back to a public + * message in the `geral` channel when the user's DMs are closed. + */ + private function sendWelcomeDm(Member $member): void + { + $userId = (string) $member->user->id; + $guildId = (string) $member->guild_id; + $username = (string) $member->user->username; + $serverIconUrl = $this->resolveServerIconUrl($member); + + $dmDescription = sprintf( + <<<'MD' + Que bom ter você por aqui, **%s**! 💜 + + A He4rt é uma das maiores comunidades de desenvolvedores do Brasil — um lugar pra aprender junto, trocar ideia, participar de eventos e evoluir com gente que curte código. 💻 + MD, + $username, + ); + + $fallbackDescription = <<<'MD' + Tentei te dar as boas-vindas na sua DM, mas parece que ela está fechada 👀 + + Sem problema — dá pra começar por aqui mesmo! + MD; + + $this + ->buildWelcomeMessage($dmDescription, $guildId, $serverIconUrl) + ->sendTo($member->user) + ?->catch(function (Throwable $throwable) use ($userId, $guildId, $serverIconUrl, $fallbackDescription): void { + Log::channel('bot-discord')->warning('WelcomeMember: failed to deliver welcome DM', [ + 'external_account_id' => $userId, + 'exception' => $throwable, + ]); + + $geralChannelId = config('bot-discord.channels.geral'); + + if (blank($geralChannelId)) { + return; + } + + $this + ->buildWelcomeMessage($fallbackDescription, $guildId, $serverIconUrl) + ->body(sprintf('<@%s> 👋', $userId)) + ->send($geralChannelId); + }); + } + + /** + * Build the shared welcome embed (DM and channel fallback use the same + * layout, color, thumbnail, call-to-action field and buttons). The + * description sits inside the embed via `content()`; callers add a pinging + * mention via `body()` when the message is posted to a public channel. + */ + private function buildWelcomeMessage(string $description, string $guildId, ?string $serverIconUrl): Message + { + $presentationsChannelId = config()->string('bot-discord.channels.general'); + + $presentationDeepLink = sprintf( + 'https://discord.com/channels/%s/%s', + $guildId, + $presentationsChannelId + ); + + $callToAction = <<<'MD' + Toca em **Me apresentar** aqui embaixo (te levo direto pro canal certo) e manda `/apresentar`. Leva menos de um minuto — nome, nickname e um pouco sobre você. É assim que a comunidade te conhece e você desbloqueia o resto do servidor. 🚀 + MD; + + return $this + ->message() + ->title('Bem-vindo(a) à He4rt! 💜') + ->content($description) + ->thumbnailUrl($serverIconUrl) + ->field('🙋 Comece se apresentando', $callToAction, inline: false) + ->button('Me apresentar', $presentationDeepLink, '✍️') + ->button('Portal', 'https://heartdevs.com', '🌐') + ->button('Nossas redes', 'https://heartdevs.com/redes', '🔗') + ->footerText(now()->format('Y').' © He4rt Developers') + ->timestamp(now()) + ->color('#782bf1'); + } + + /** + * Resolve the guild icon as a Discord CDN URL, or null when the guild has + * no icon (the embed simply renders without a thumbnail). + */ + private function resolveServerIconUrl(Member $member): ?string + { + $iconHash = $member->guild?->icon; + + return self::guildIconUrl( + (string) $member->guild_id, + is_string($iconHash) ? $iconHash : null, + ); } } diff --git a/app-modules/bot-discord/src/SlashCommands/DontAskCommand.php b/app-modules/bot-discord/src/SlashCommands/DontAskCommand.php index dc4b81805..bc8ee1b15 100644 --- a/app-modules/bot-discord/src/SlashCommands/DontAskCommand.php +++ b/app-modules/bot-discord/src/SlashCommands/DontAskCommand.php @@ -67,7 +67,7 @@ public function handle(Interaction $interaction): void ->footerIcon($interaction->guild->icon) ->thumbnailUrl($targetUser->avatar) ->footerText(Date::now()->format('Y').' © He4rt Developers') - ->imageUrl('https://media.discordapp.net/attachments/546151895010508827/1046092564513701909/Frame_1282_1.png') + ->imageUrl(asset('images/assets/linus-dont-ask-to-ask.webp')) ->timestamp(now()) ->content("Ei <@{$this->value('user')}> Explique a ideia diff --git a/app-modules/bot-discord/tests/Unit/Events/WelcomeMemberGuildIconTest.php b/app-modules/bot-discord/tests/Unit/Events/WelcomeMemberGuildIconTest.php new file mode 100644 index 000000000..07d79ffe0 --- /dev/null +++ b/app-modules/bot-discord/tests/Unit/Events/WelcomeMemberGuildIconTest.php @@ -0,0 +1,23 @@ +toBe('https://cdn.discordapp.com/icons/540000000000000000/abc123.png'); +}); + +test('builds a gif cdn url for an animated guild icon', function (): void { + expect(WelcomeMember::guildIconUrl('540000000000000000', 'a_abc123')) + ->toBe('https://cdn.discordapp.com/icons/540000000000000000/a_abc123.gif'); +}); + +test('returns null when the guild has no icon', function (): void { + expect(WelcomeMember::guildIconUrl('540000000000000000', iconHash: null))->toBeNull(); +}); + +test('returns null when the guild id is missing', function (): void { + expect(WelcomeMember::guildIconUrl('', 'abc123'))->toBeNull(); +}); diff --git a/public/images/3pontos/3pontos-ball.svg b/public/images/3pontos/3pontos-ball.svg deleted file mode 100644 index 5c76b802c..000000000 --- a/public/images/3pontos/3pontos-ball.svg +++ /dev/null @@ -1,310 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/images/3pontos/3pontos-map.png b/public/images/3pontos/3pontos-map.png deleted file mode 100644 index 296d0fa4f1d97fca402e2ccc49272bda9e089f99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364738 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%0Dcm1$4kvEB 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/images/3pontos/grids-horizontal.svg b/public/images/3pontos/grids-horizontal.svg deleted file mode 100644 index 453b54849..000000000 --- a/public/images/3pontos/grids-horizontal.svg +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/images/3pontos/logo-chain.png b/public/images/3pontos/logo-chain.png deleted file mode 100644 index cbb53b85de7be160e9acab0415da4279f33e06b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1807286 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�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

    QdR(bA|we0)?v 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

    $v)=CSt+DP3= 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 z zy*5vAvMj;ZSx-e=Yt9w-$Dq#LjoHknqcT7nB=7U?@^ggeJ-SQM7yCj8H((H>V|Y3f zhN&GIz_D87KKwkh_U!%V?GfL{bmIjLa1YaFyAk!u`Nj$1uz4L(1w6j!zBBAAoAyTI>;+V19HGJ6?^xfNdJV>+WWh0@2B$vOl7Omb&xa4GRf}TE zDC}&?YW2miyQP->Nx|%|Gb+%Q>kACh)uqb&6g>wP+=$92l18P8%8q(i-&5!74$E9A zoRvxjLA@FR5T|zf30YBkmxdiyvq3+$*%}^<_c}C6QFG}4>+CZh1G?3_C@#EbWUf*N zf$rD6V5&(K-GL)W08X6Br|lpbD%ir&IO ztE)7}e*>@)pELeBznZ#HIi=1-DX*dqVxlNeJvpIlV{Ia#{9M&e{uWkj&jT0cT0%Pc z!ln2ZsX{)1&~f-GcPNprfKR<z~DTIqHu*MOEk7<2E~IDUPuA;2t(S zG~Fgkd^+Sy3pihO_kZMDw zLLMtlrWTcSQBRElq^{WGLV%@83NlLIlbRvI99|5|2mMp3 zETDHUo56e#VEcsX266xQIlm)r{p6IKV;X(anE`6ttO!|~$0~wCF5oKC%#RUkP#u5j z`+voIc`w>%gN;}}&z-K0eJNe0?Mkx%7pAn6QF~9%t&M@I2`*5}q`k`CRb6=!P10f>udZD~_<8A{f+M-Lad#!w7L6o@z0>?(xDAB<$0~uW z4;X~1u)AfwpYXc#^nj`CG#vdrA#?79-m`@D;I-1OgEM+cdi>;a`fXU7b8VFmTCmc6 zpzKmlLa67aBj^vcq$r-^*H8sNDiA=-WWFs^zO0t?2hZkpVqMPwME^s;;3(=!vxusWM66G)d*RoLzuOEK*hPFL|+0?C|UP05e6^y zcxJJ_WZI-qzncIoFt(|z*#+o|h~_a&)Hu$SG`kfmNVx2b8{slm*#1(%&-JZ)+VBbb zv&$!YDwDZTAoO^a+joa!wQezv3|h0Uh~up)<)m#mt85m-CLf9KBb$ebKUNt<9b0iD zLKL(lhhdkvQz@4$J8e03q?6ABrKnq#?)!3l-Ay14!-b=3^U5g@nUGLROW;MRYR03s zXCyU>kj=Dx>P7&pMmX{1lNJATIUB+GQE$nWeRJVL*`0c@P6*5=U(USyk`rZGA_}4r z4QoX33utZnxbC1RArkwM8993!CSqCY-#4O5GS>A`o|QR2UOg-nmtJ&2y-#Z5!Bok) z;^HSnAO=6rozX&x_|5ZjH(l{$+)766E|=I`Bc3~#n_c!9knksdCjaL_$Ar5@fNK7q za{+*RdkzYNE0+A(!?SS6S=x!c3>NyFDxo8I?8;+DB0b3K5N3l`7=&xv-X95T%>GgR$2R8DYn5Qg{dzE=X zqg-K#8bUoilqX7=P0g<-OHa@FOneU~MX^Wz4-bD301nTrL1C?cRpN<7jLd~36G#Uy zaL4k65->@u#gygx%nwHKhVq$)_qtp~x$(d7j>_urM(R@4aYq!KPO-gi+4pja`rGx< zTqWQ$noZ9Wg`M#8r*qd734-PpZr?6jg@I-@`O!Z=yemi6X1OlVM%h^|{wbPWcFvkM zaPcV0S!exIR+(p$P<0eQoO8Ef`7fFJx=g!w0vOIiT4NGbE{CaCg)Mg~M%NEnkw4k$ zlLeX;qG9bWF7lrr7&VOgRX4zdfaVMCzScttY*nn3y;fo{mm5RRo%F4^p=j^t=J1MH zGQ3U|-O7^pytgTbSn{A?l?Z}QhG(BID8H44V@bQEljOrXDI+kE1pcwNT!UHLG$(Bq z`F;8fBVdEzX-1=6mA-M~d>@?|m&fQ0Mvw)FE&R;%zMul|dGWAF>-ey^J{Nc4YYazd z=j5y`=D5i<&F>e6ia-D3Y+m%6IpG1qFawTP~|O ze|rLw8CH6&++I$hq8Q6HCRm$ewGdsx?440jsFu<$Bxv7iy?z0G-rbStc$E+(3}u3C zL2_BD+g;l+bfSc!_AryHjnt@Am^q<9-n;DD1RdEl4iYb0D~q$Xny*?mVWinO^P}TU zM3fErIN5pEY@7&o^Ztlf^?VaBH!@cZKxFSzjwy_kXQzD+he?c8E~#@p`%^GXE+BYA zWI07z>}u?3Z*A#SE)gp^zuYOY*E4k|7Jq&6OiyeXoQw9$0JovGq2DYRqWAdPy=-B_v8& zQ9RKy0e4Gs8z$ox6$_jrF+QvI*W>(xlRofM-mhTi&<4mn_jf!jv$*{GVxppuw9V^g z(b^2w1}~mTGmuaJ0hSWll^Jp&{XBGVqMt>`pqb~@PFbd zmtR&B2_oVq#eeX>NNO9?{Y+3+$jCf_%MAVzu3N=G{pk#wj}{5F{i0K}7*+QNt%|al z{S%v4vS0jx3|G2)0O-r1Ap_WdaD6|~?VR`=s+v*A+Q6ya<^%dO0wvR#v-618VbQeA zPIDoe%H; zZJ^!7IW}Owmwn##4Fhso1@-&jP156N@{JYnGSR=_I{(!AQu^+lh9Q94aiv*yn zkVT*MqOa4+ZIvc}AyVIP*SUoH;g>1tgSO zL&PsWW{QHenA{{ZrAar8219N3r&(%Bu$)MyQ-1lcT9xOuNe&;ET^9ho5;Jp?*psw)3?JV(=ijwpIqx$3xW0f19VrnWwQ-=bmRH8JVnbS zqzaE!fb33viXz=rikqT1JG(E&`hg;|p*eq`>iA3^hAlHH!GvKym2S~MS6yM%5VEE^ zmx@1=Il4+3&me89iSmoHdX3o1UDe93yk4ciy!h-*j5R^)q)hS$igK8WW@gl!7gdmG zT4?@WOHK)LnDjTKQmB1GD`nJUnAq|&6T)=e{nhFI8lJ4>Dud#M8WCLvOJD9^LCjVU zq^9b}R^%R^a>OL!iZcZ%1*TE|@3{MbiY0`~%F{4MK&@z$lRQ}JPoI8rzU15b9E>miiZ^l|Zf`ekLrHNI*aqBMXWC z#-dmh{6$xDC@W9#s3{XJLq{}&MChmB6Fb4^@zkoMNz*}pAfpmySr8L^Yjwk^(kGj; z-Yjx1Mwms%Y77?qm*H}Ro9<+3g3mkP9AIh!N20X2W`iX!RXD@QLQylw81cuaVfY`H z3pqu%ncq_`zz=4GHZN*v*wmja5i`{4qfLl6964gi+EEk^>AyJ6gC0pw-NRwK`>jS$ zswyq*9Jca*{4DNZI^~Bjr#0RWiWwlA#Fhs$(yuJ;{;vdx3Z~hxdgK-qWI986Ro|-S zymw{8tYgzJsjaofsObn~Kr|}~RH}eeUhcW&#+}NaAp^}j(`TzHq@?3>YYm3+MRk(?I4Wbim znrG;IPn|seMTby-f*iJOCaGD@QXH14hH`sH7=p2Rx-na(2sc)2h*Tg0tQe`cu>Y>n zyqu3XbI*vEJMLc|YrUt8w$yDFVLj@Yw9?9lZE|+q^tFXEb+K;yYIGd%lUbpE zw-BRe4CpZLiQlxju}<80QM-EpWR76~?Fbza*bo*9S~2{;`^Rjd{oj*#dqdAeFX7T& zb4yzgHzI&2xbX0B=ICwvW?8Ufak}2oktSW3xxbIy$d^rrh<+eK@bqtO2jg2k0*I?k zm!DjnzwpCuT1aVmZw~6{%4+HIB%S8@_}P{FM|M{;6&9l~;UpW%QyVB@m^4Ubk6DX+ z6_F16WRYku!K?R2Ocb{_@t^wUDuD6jCn`@h>)1IiXaUQ$x4f;yBukZEm#J<+P-pNj zBXvetKI-|(v=A!w)daSpQ7BxWv4(@c9I|lsr|~oJ7z3`;`a8YZXU=g~P4M#Nx)1+J zpuHTsJmu=6XRHa`daE|kO=?W2E^rAc@%fCaM43>aj_KDifv^#rhq z+Xu0Zj%o2D>>mRFsa-L+%sKZVesrl~XAYi!yeUF>gwjC9B^wnts#-aPPj7CMNdgA% z#*c@(q}SByWJu#nIq!#L@f=LON>SR>=6B@Mq)jL@Z? zFcrLZ$11}?gV|O$0pWRGgNxXD>kjacy2mFCow7MRr6v2wsu9pk%bR3cn;2_{r!J}a zE8QH=DAk*p`Wla3psa4^cHB?stZxvScI|_E^{je^_6BF=M8|{$Y4A~^+QtT+p7P#D zh|fJQoAN&RO;@|VT|sSt(UOkm*3Mh0;q^QXsybgqK$AZ!;Q$ONYcoKZHG?I4bN^2L zuLLQJS~!Y+;(SG~Hd0cwL0Mg*di=4E(EG9=nv0OJ;#^o>v5k?F|kr!e4T;v0BFrhnn5Ir<~zq%N@MRg1QB>@Js8c z3~fa@2NPP1#NBYJ(_6R;w1j8Akt%*jiOcqW+JIo_%K7|*o*sW~m33U|j+MiVBAcq* zdQsmTge|v~4| z)qE5x4RVH+qVp^R|3IN%RYH1*bVH+g3>TkU!Rj3bA1)RqE?U2CWF(zmUmtV=x-eW5 z{45)i88w=v^v-oZwYCXm@k0ql0q<>EMehuOB$~xT(Q}p*H&U)(RG$()kuzkUq~4P5 zgAJFVs@GX>T%RI58|J-Mz{~lCC!P=01ti$!bpi;`6RTJuE2L_Nl-s-EH@G*o01&1Q zA$7MAx=POi%qkONWu;>hx?1}5m>f{T#XXVbcc7u6=L<2;ylel`I+CC&_Q;zP*SEbT z)$z!N#G?(rdWFwrC+j1oOB*tsj=pBtzeM1c2YO_M6L0Z2rcg-ASh{&u5?y$yN0uv* z%6bMkmE@&`i^~fqh+ra$9^niirM~l(&>CsaP**>-fZ}mkEBpwbWO2;xj|L=A%3?WY z8c*ckK;LX=UZFe`yvx!g?+RYO)}Gq1$Lv*UHZ`3mf_3Bf=EuXU zQpss6TtFS8?8XTlEhf_HR!y$S$^~%Co)zd)uc?|Cgok>lZq}D^e^$*doXrfsjjvOdREB8rPkG z`EMsq=5YN@q8Khy7H3lH7h|kKH4+EcGY2Yd6m2w01f^EX9_%;*dYZJ@RNscaTq0Cb zL0XT+4mF%|Qg`!q-XHHG-;Jrbrwq97!GfN*x z*_qA?^uj}DurrA~Fl5@|3wZVv);lShp)7WwF{2YT3#u$L6^gAN(jJG?igAMQ-vqSSuGYRfg^mhC-BFFN5l&Ra%Aoo^5^V3A zeQZkQP0PJ`A%=~?^K?Zls`(cqdHu+<5(N@T%<1%p*+rMTw1~4HP^S@;rADpDn%XIcMbC;N~eVDB@18yOMlP7ardF) zSrH(d(8@ar(Q*1wk|(Vt+mV4z#2s!$oVjslpL}@A4QSO_5;2S0H&6B(Kpimm+c~@+ zYqdTsGik877KJ1>6T^q}gsr>8gS_mCmI5I`j%{eA_}VV@XWK zxkym;TvJ7%X82O(L%P|Xc(tWs4ztLm=epn4e!jgOJx8`ateV|!Wgwtx3wwnk%H7cM zp&5dTI9U}z+7h=mG^e?Y$%Q8-C&h7{v#=D{G7l{&9}VP^CSC*sxNpOD9P)+XIrTqU zPOUF#D;)m?Ho+B^A#JZ^wlEnvJ0V=!IxYNR*3m6)`9UnB9V_@T>Sn37O)f}{#gs&hpkmKEa zCmfs9dClTR)9pefA_}novbHHILj}qqvW&Z={b;*_2!o z_7BZ&n)@=awR6td?kSu`pzPCGSG;c=x`H74TA%}v} zQJOzAiAu+?+p*N2eM$wtfruvO?o1mZ+3KhA#y^SKX4Qf&ofuO4(Drfa@A*g3vW$sv z`^8TmOO$X>WCD@K1m5V1urNZ9GcaVC{RzvyX5hJkY0T(P#M+g=NF$&h4`VNT>*cX@4LW;UxQn2csf-@@zsULr|?fSD7=fboh>BzdI3vmb8~ zqbdBKfs26sGwnu|`l?ksD{y0wwSK?(2C~-#=w;W-l1G=3v2uw zE9S|=a9roT$8kp-I#+H_&`nCMciCTFo!~+|oY?^or6p2uG zA5KCaf)Y_O?U1E2ZY@ZS&}=<0MknX)>7@^fb)UOnB+{vI|fTSpda1$5xmTLb|nzX5_n#}oV z!9>146Z|B{&56y8YQ~fH8L!IzD5&9H-n=}j|~;ejqg=4!Qn0DUNN>;gcv1 zO&||GGn-3I_pi{@)RZd&V(`D~UpD*5`}5n?S1ude@t(if4wK_9b_jrQLNe%;Eo;&g z&eyfwT!>Lh7?a7llAcqolPgaCwdf&fPg-}anio#DJ;Qe&3ifSfJVbrEuxs&ASVt)y ze~#%EH6b!a`mZFVECCBUIs=ra?|OkY@;oj+2wYc$%Fdz$o3`F5< z#ffFH7UtJ%lucTw0I$~uW;e@qR1YLT;S_Ixch106hoLl#A@ zutoK4I{3urU}5In8PeNhrK#zxXNz~A@DPg_1#mnJfOgd4Eq=Kgv?A5!WwH;#QT!fC z7xDLB90Ml=%gPR;I3|%oMQc(l6YFlu{R1dxpzpN6H%2Kzm)+#rL%M9T@MKHvJg$aw zl*+>M$M;ZczaI+Fx-vkXDR$RoVa{C0js&HAU;I~oLI>IOokj-*kPb1_x=H2d)F1+I z$)-r?r+U&w+y5jEqj;bCnXA_y`W{}rHW31Z4UmLjr0d5O@JUluvnX4F#~OH>eX(Mv zt z3rAz{bFh~cotGD`|LMi{s%04EhUTqo>D;xh4lzLreGx^%So9kfr5)Hwvh>D_IW4npkk{QW}MA_RF5 zDjW?20(3whDw5%rR$>PoIXh-?uIR)JC2QIKwzp`Op5rpU0z05jYZqFA8sdHb#&@4+ z+6FZ#X3T4{?4X&_pZ0LTI@wNl$Jg; zA6!pQw?-u?d0)I{thN40ZE;>`>S(a2u+UqeJ2U}Lw1pLeWi4m%JrE+^QP?gxN08o9 zeF%CioY|hAfnjcm-HFRIaCzQUEYyQXk@%UbIyypdSRB&zD{bro@(XK0wZxivL?A1NX3 z8BMDPw1U&-Q>$Rj2d2K@__ML#nlkO0NNMXZEt4_{r|<%*G3py+B}R6k!2?7_{rE>7 z(|!Re9oJt#=_j5T22llj*@&M+*oVH4(yLYLb^F1g2vj}FLT)-sAU(v-uObkXQc(iC z#y5V~qO3rk1xrK5gHVh!vZ@4>cN|b8%L73CihZKRZ2cBe0UEqM$ty~!9LkGO4ug@K zR?1s4RUxl|i?_8(HCHlSSE?=x+dCctt1nujQe>lR@ zGH1uxR@ASkGF0``5FDr53VwTOWGeZ_^r&T5OzDl!M$$hb1y?MMM15{RJvAF8m9)ri9!12T#&L}<`clTD-gz7r2VegZk z#S2$Ei;HbeuhEOm-E$(qM8|C_R5I5#fio0lWbitk$K~B1z~doFU^fkT73cI~2@KKl zg6&!=n*@AbxoDpRA)N^O91y?f|KyLZ0&905eZ-F!S75w#=*_H`JO~efSSR8IWTW=_ zw(b3>dl?3NWd)oz0@3tf-X@-}zs|!gYMvB+w@5OV(GJ68nl%a)V$t*#y6PjLxzn0f za*Q$9fEQ99BPL&V&gN0J3PqtAyCrDdpFLffyJN)q*6k2oD;V%88^O1hj%sE^*Cm|& z&)G*L;~POt>hJP-9G*@47!j;}CYFUF-ig;3g*PhNr5+O}96y?=bK}jDnOfVFgpE}8 z<>JyxG~SRL9l0>u$M^5T=hcEz3f0qJNh@CZJCyRxb(-@m0+qe7ON^CcT7H*Z{-j7= zBT)-bV6;h@#U+{V7eiA%iiNqW&lQ!+P&SV|y_q7#4}o)^u&AxOzmawqI9U&M)p7Km zhRUILOD$rjRa*I_Dcza={RH@~Dqpk@m4BT&b1A zp!oRw2eJRkh7KLT0`j#(UVMh1BGo{c78LWNtPzj6kNw}ezO zls!R5v&bOMEI$06tKp$W2bAZjq8T}tQu4^-`MZ;3@rhk^imMC-s&aWELU&I_d}Vtc z6`HDx9Z~!4XRB4rr;wfl$S%1m?HL|nWu|4mcITJ{)S5f>QttZ z>L?X(CTghW{d`~{W0X~v7+==4^bBS}aXUWg#K-Dn4xB}PZx%`HBxJoCo|M(vrKv!F ztdiHR2Kp!w0gO^%03s+$nRX|K5vEebtJI2I9|9U&FB9IP^is3pq4MgpIxb8^(mshji(HOjK(f3E z*)7~SlY@Y|oaNeex~g}kGLlZjUK4a#7;9s)y*H9EfG6B0TbwQE139h?=J&ouBS^nKj@u zmCn2SNr03~sT?+Rfg_e}790|mY$v`}D;NHa;>P-4=!bJE=%sY8P)j>zCsZ}=t-Lk6 zc&l{xpxzMFQVSTo+Dqp>Q(Ud>>$QNsORV|{+*}rSjLJNGM#o$ z&P-b0(*6V%aay28UP03d&ar`G##vQz6GoO9alI`|x0kFS{m;FW#)r5C80olQ2Z^RK zpmk=wq{h)#Es%dZqhzO0n#%nB6@R6^3Iy+X+g;-6jQ`reK$0J_{ihO-p;0eo={tT3R2(XYENG!g&Q4S)H1)iV5X}|v z=is~FXFkTSL>HBWfy|VZi>HgTKV>IAsVWaq2vrZX5Uu)fz~2>?W27NUMu-oogOiuBWu z_<4_ulxRU}ISn3HbkEiRTMOs0o98uq_v4jku9r8=fTwlS7XkpeSnnTZu~$z3TfUg& zdZxJP!-uizsqxU`XX*M&IN;c#5xGDe`PGhu!?{g&`oa|gMl;%L6>m%rqTRzgwI&?o z=_Z0RNF?#(TGxAhkacKd;Q6fFoGr%j>d|(_2V0%}DjoS%Xg-%Ri`;ME@h50&OKJyg z@inxL<29mjiWVXWq8UP!; z9P@{5v?U$$4H)eosuX1Pe~7gQDrGfgrA1Ul2Q%^(7gY!hu{#-9?P9wHY8li;+(#yB0A&uigIv=x?w0xBJbd>Q0m@8s`&{(9NQ8$5L`l zrp%X>3UwVWieCh*@{xX2mZ3KKZ^L8b00nKO=3XU3#Ygnrtw^R=iMPQ=4?>#!D!C=toC3A) z7DVbCmSK?3W;J%6`z5oQT_R}`;k$BIC)!BhkAN-^aSWM+xckt_>0yp}EQcB(j2G@~ zT#dF#xhWB!Q z2PRPg>$?`F{zkyi$G9|nVsP$ak<`{)CgQ#pGi&NQHG`KwWOd=u>|t=ofwXrecSS2` zEK>H7_PBDxhVG@l;-Z2rC{>FU`V)lvS*fy_k}SI0mkDjE>*Kl4w*P(OULlP*evOr7Ky5#E;mS5^hAz3Mnj= zM`BhknTj~t>)C`j$#27kOgsi<9W%gaEl@{$vcMth>-Ii2U=AsfY?UXmR>#QH&_H)F za+EPrye8qsY3(nA*GP;cUy|_3_P5cuNsJ%B^$YG&5pb`fo+ zZC*Js3rBrnFRQMM$j0c(hN8rn2AvncKNIu0>A`tK*2{l??-X2S$WLlQ zAt7%*V-2L;G3GNsU%~PE!QD2$+x7(Xs%I~M;JtktOyB7#`s}g*p!YB8+i1$*=u~^q z6JE%wx6tRdoybnef@q-DfYmkmEwc@N=E5O%A7j?PX(` z>YL!QxOlD;n{;^IMZ(kuq5iEXPa$mhLA8{2vH>svfV`B17OMmjP_Vp#VB2OPKsRkM zq!sVkEo+uU02(MgMdQU6(j2iQ{|)BoqXyt+kr2iyfQ773L`jq9?-?S=X05J>x67&! z^alhFDl1XYdg6-HAe+?VXLTk;o6^N@hJ-i8{wap3`u+P8p97h3i*G@7(y#Sr%Q+hj zCvBzCv_icyG}^^0Z}Gfix%kJ`!40QV<1B<~3m1@e4uIw_;W)2J&mIdVlyD(*B-jo7 zY>cfaMAI!Qi(r5uI?bZ@Kyqs>e1m`S7^6PDYKnjo`CrlZh0-CnoXm1FE*6;yKiQZv zy-_^f2$WFW+d9Ico7#`;rcz5>IveN|xc_>7EW?83ftj4tb74{;#GAES+*P}KH?Qv- zky(DJ5m;r%*6j3=`HDsP5w81paf{AmdG24mBlzKv37kBl*T%-f1nL#c&dsc}Y zR~;a?5u#FpG5Tup>fG=%X1BFG7yqrJbzAP}+G^7H@^&8~j`eU&8V^_zpnL6n+u1i-`w;Mqh#)a;##LZOJ6`N+$dUgKS4H=NId@vL-eN4NG%{o@wg6 zEjQMi_Wc@M;~vkgnh6pTtLvuR%-n2iW~})C2x_9CJupZ?{$!9?{ zxIc(zYPBLYfht={=(JQyi;EryHUmBoQFO9OCR}T6S_(I;usiMqIwmG{ocb-~f(4Xg zP8O~f`*Xj0t$?L;m$1k};!B!NlMzS5sfudXyC=`%8@FB20+Ha6x#PC}IWO)!M>@}X z=&7jmd17ZPOSvLf-|$WZ)+Y7PCJs#(iRY6f;U9Df-tS0Z9+u;FEi(as1=wjqRuzI{(?8Lj}xE1VK%o$e*wQJ%3OApDKb+ zf>HXwhkCQNISYI99Qe<3C#^K%U&?lT z^DArK>nwmMk#eVaytrfb20V`_3_Qy|_e>98r?tPpal@3d91+g(04x^O9~%9%k?dyp zQoWu-=`3%@39j#4gH_;_7U8JsO-#9)+k1+?tL3BOw+6#kq_toyw!BT{b4|)gkj={+ z*JjQs_oRNMsQk^jhwM7Up_@l8N+eow35vE6zvz(&!%WAeCBT@#HTOy70@3UUBe`Ui(#6MwWO1%Cf z1R<=P7jzWR9AJICS>tIvx$cokiHeb=t2MSg)=>4R;fUY*gdK)Hh{btyy*dPL9C z@l{L>{075KMIg-$2>b_odDM-NFz+Sx+)!F90e-4gaS8@W35{&4LQn*tvAr28NbphC zIsGiiWha{@KG+6!n2jP`T$AD3hEAZp=Z~)32B{9WxrizPVw!mSl?29<2K1i+^Bw=; zRNuBBc)5J`01WyyO^?w2wnv{jDB+meoSjxP;K@aJ*m3?3 z#D-1b0L@GQ4IxER4n$b;KQaoJ(eA?#dda4pm|r{+8xWV}k#IF8?Eb-ozWs(S-S}9@ zz?I?-oju_)4^yd)v8+uUFgwLX7O*GTy{8Z;3tWlOFOYf7wmb~~FHCmPTbhUfa995L z7dN{A$}QY8Jkhm7>#7>=ClTlwTzcq{;D-QhWw10y@y&FEaxwr6?3{sPV4EHp) z-I?xw)Q&;k3Wu@}LD!L3gR3Zf;YW=7XFr#y*gB5>DYZ}gVUNS#k&&sX?mIW{BCYKj z{`*~?LMU%~Yi}|ti3X&xZbA+?F%19Sf5I0SCU{f@cIbk0!#czMb8CBhMgaR8Mc0#f z0P9OMFkJceoR0ga+LwXL%Iw;N$JJU&w~Otd=vVM*qAkVKcJbMlT0R%uvziw=0Mve1 zWC99iA0ZF3OJ)~)NxxS9KLi5$u2E!ekJDNScqF_C zqlH*Ib8x1F1F>%lfT3NjyptUB3`VC{gjhq=OE&nimVb6x8L2#&R}Vp*fM0~egY^{c zAM~_=Rb-x+<=Eqb@oDmBLN4<)#kiMPHZzv%jr#H82tvI~@=@t_cBfQqiZ+B*oFpp; z=T8ZNH6U5CORNz3#GbK~+unD5rCY z5GffhhYz+HF>he_y5x?SaEb#K3y?sn(63koW6IgI)z;JL>F|Dxu>E2h!6gyo+qzgq z7DyN}nX+2vxe?@w1_+GGA?{t+QM{V}jY9^LH26-C1b6o{Vr~kUd3Ch>XRd2S0Nd6~ z$G|wh=6KyY$)aJc>1epK>(%u5VsVZSckGUc)a{qf?lWO#7vJ*DcN8_B&}Poj+}@-d5EZ9?F4eYjt&|mO{&OA6dMmAPv23E#Fl3@HOtv;Og$j z(Zgh+-IwQ4EiS!#`3dO@L0$Xf-7sRkhrVBv!7D2n&#WFz9=$hj(F)oTorA`!L2MsR zSf2UlJNE?{&Nq|+c}AxfDbJ1Y2ST>BWiiI%1QrX?4{tj#X#IS_@XY~(!=d&Id``s| z@;#V?Y$O+s_%nF$BhZgIB|%z%)Pj!!M`EC)vw)zlcq}66CKZXnxaC%shRa8|kHp($ z2J?n3;2QM|mZDykw+vu(jNsihiMV-j&J)_5SfPo*15g%zW0630?vr~D=dC}y=y-oZ zcuNT=+UUMZnifwO8Tr4ar8RM}Qm8%>huR*y0I)26nl5*`@#uLYe)(h4TMVxwtJCxG zgLWXLb5#IS=nO(?oX^^@RDCiYs$4QKot?%D+SwM zjBt33bXvHUn*}Fb4~TDZKEf@Eitc+{-lgls*Oeh#CN~~Ci3rQWnrs!ek(vZYU zlarPhiVi*D>4*O-ZWApx=Ug;@gGyF``g5|aa(>+E7RzPK-}HTlUvR4>v*}Ei2Z2OY zn-n2-nEUtC5)spv56nC^vy?V7T?TNi#+P8g_|Z#{hgnP z6RKQ36-DO&e>;#ORd81VUyJ$i{#l(Ot^AUBd`H$gD~_VVv2eVpJCn&p-@zJGFKx;S|{P2@0FCHdXfb;=go0Q1D`IqLN3)U zb6v4+Q?{bAN#{^ggHvYjYpG2za;?*s(fm2nxjLlae)BeKf_R zSx)h6I;GuPyEY~YQ6YHwzhm*~tGEVD#R$s^M4~wFIEhTWJ$TS(VA7=Rc?lHk`I_U| z;<_A#8H^@$8G8=tLGEMTd_eeoGeQz%_zDP--Tu)l(5~YflzrfSvgxM6MZ35EKmg#V zRfjMo1_X4a#6Y?eG0PO+<@5FU`)$^=9}zW_^d?87+L_Pc0<5%39jSjY`wjW7m-Awr z&PEvN=RG!6Kk*?h%6|$m^Su$66<9nIAx9tBwKpNH{o%J`D@&H9NXzv({xx?b&(b#J zz8%sox_=nctUn$ujSLs<4bUSM*=pwNwd))hYVwEg^KrI!z!XY+_xwdkuH~ZJYjvay zQdagb%r1geU`npc0fDGrXR*nlgsvf-{O6D~Ge>=;EfCzDNG|er8?UuXXSbX6=Dw`? zZi+eXNZiWz{Qw)QmOi^FMG5JKDe|ZC>)%B?ayn2^H`L|j0PcZ{gz)uOMi5?z1RUS( zf>^*UbMMf#dv=B*z1QUON%qr**hLh;2a>k>q57ozWvjRrHtCj7_~nie;Iq@ZY3BZx z72q>MDs%Swa#{=M)9pF`7JU19!37Y0fW8tuCcX*IdpgbYnYW)> zmO0})P0i1exx}8nYWsl^H+t;Pp2Y6ipXE1#psawG``6{SHfU|Y)i<$6-1L{=yR#RU zy9f3sDnO?qbI1ho7cR62&R$<@bO!7{X3hj7%wYz-jjqaCQrNADaihk$BN~ewfTjak z`=8~Jd|l*d#0SFFOXP-ML)rq1N^GrTT(z4i1ehK;Xcl`p+kqmptDvfZg+@Nl$w%kK z&^G~@7ONXF;&RhrDNS{J(C z#ez9*!KVW9`)Brq3=)%6bMF98$rBG5*%x(^aYbA+i|dye%El=If=u|Bz8`pfs- zZOu2_ofEq^+5X0jw~sp4(4@n)eT&v!I$!>EiV@Y5%tm(}vj(%dt@V!Ft!9 z7;_Xk#~`nk@aG=Qe}AhSCbBl;*`=c}x4wR$T3%e7#{6ZrGur(-g*qukovG4$sY=(mo>KKmz+xC&Y4O6?E%{!1X*|1cD0yOWJblGc(ADOr|N6A+Upxk63<(ixM4;7L5kP z(T*bw`3GhDZCAH$v@mEX!1L-~vp}8%sa$L(O>w}jYJr;CE>WqUEkvQb1=w>#RL;k` z&J|Dp$0y&#e*;J%&mtycxF6EuP5uAN2kXm{*rUI+Hf^PszNZ>1*%{#z-KTf+x@E{q zOgu2^Qsa^h|6CjHB(`%~d$F*PV{fvq`O5;>nO%P7^yHLY?Ik_lazmNzdXy(fv=V>R zni+e5|MLT7^y(*k1o>Zz!ifKCFS|$EVOi6T6Jtrp0KnEtEnAl;Z;c<*;Y;zdUx1-1 z#BG%S-dNtci(%FccaPCT(?r(noFd46=RH*9#>$XdRZ6Fp3TpQvly8-|MgA>;Uo6Oy zG|1ZHd=XCDN7nTEce;H8SFHH2?Xm|u=zW^*D()h|HSN>j{ZN8iEB37SIb@#u?06v` z*p7wuIok8XlJS=>d#{k7p(5R~Bu5ch3(d01v{GTRW|Q)AWZTi*=iHOjKJZ>)E%dcM z)3LEPI%P|k@V80UuafKoTQf(vO|<-E*C^UFdWJ(3Qi-J*P+zsd!V3Fj09af5s|rgX zwjrXZ*aw<9f9`fltA{@@RX%#_%>Ci*wBUW#RvY%z_8NxJKjs4SszE7}1(q(#mzF`iAE+K>0B=rE{>xEtgtcGa?@HN^<8) z(5Y{BbRB#j!TaX7Y5s2m>O1?SHHz6Xk)ZKeV-bXcGgy+~9+#XA%fEIyy;zfuEpC$= z-SvzHW$5Alq_|_A3LGPSTfMb7{p=8>D_hPHxhq>98F5PZ$pZN?+>aLF-v&#K{*MC) zuu(%&q2k_MFaP$KREF0O>72o+Dd>M)t|VYZmuS|zIk-_AI%FqI1&NuV=Jv)RTH`w8 z&O}`hj<3pLcIL5glqkGJ>VI$U5!9||c}?LTa3sviWJ{vRoa4gsjq}S%j(t9k5BF3I zK6Oj(T)Xj{aihK%+!l@Lmm?$JZm!xYd-g4R={J+HDP3lWIS1A0q-XOfGRTuHw``Of z+~U`=$|VpSU=1~K4ZZwMr%-tIe1i;_1DsD>9Jxpjb%Se!9j>O4`9xqBcDgLDuJRE& z=@tG68)kd##Ewzx9_KBD0*Y;c_Tq2dZSo+rz7&&tL_QOktpg_9l=w6gRLc7onlLChahNW9zFPj{bzE zN;jEJmciD6V_@#2Cxq01fJ8bP-&c;fk3rW%8}@Vj7f%(}m<@q4=UwZ2oIO#*=KlGW zd{==Nx7kd~wfeG0cef+x{;wlgdj48019I>CYlWDDu?lY;wX%y(P!p}v@M?@rW3mpO zz7;zLlhR=&Zt*9mUax+ee|*d|}7b`MR}CsJtOj-iV9**1x8frFQaA84!ko7pR*`bF)7~6gGmT ztRN1x2dVGo!BX_DoBC@3zKwRpV22KqtL-x{|H&!QhW4UUk2t5}=X=@U(K7@yJ?FN-Ak2`f zE9g)9Qp2FXC#JAwfp|W9sOd|~F83l;pff-LeJ{9XJKFIS?yu>~M8cV9^X*IURqz8U zz(}lpzc~K|1K?d++h8Dqu$6f$mc_NG>a3L4Cf@yeZ!Gq9<1zKQHGaA3y(t5tWtb$Rhme~~2*7*c&nd!uX+H}8lK#~%_e&93V(K(im*EiOP#C^f-M(W_<1q@S?W zs^!(OhfdD+&GCw%%tZ<;S>@b;R)3M=DdBZ$#HO8rfqKGj%2I_6&YWsj*)wxfO*@&> z9+`nNEbv?lMIyo>bor)Q4*BG^WlGB{^nhH{h>k3Whwe+f$xN0O=Nr$Bcc00lnCdlR z)@p7A%(bhrC8bkze-QMOF{C6+?kCbwz~Kd{JHoCj;WC%CEQAs(;5w8~$!Y z86Qu{>RNu)vs1T} zu0YrQyiz4UvwTtko--)(y~Z4eAYkRvZ{>?)<9>=BqGAEf-KNlbfJF<=x=6!6K3ryM zXRQM_e^+H*z@Z!ai~1-l&Cx(^b|#{CRpYC{TOe~S<%(YM84hzRzPZPXaC}5V zkPN*J2o+q)F$R^oU=L)kS_Gk~=4d&UKXKUG4KWJ7rYpHM@Fqcz{mfN)gX$dx-S#}K zRlGs6ZYuG-LcQwRQpRE>zH$tfu!m+B?Ljo^Bbe68sUFGGhWd>PJj`kkBcNovuvOo0 z1EK~wn=jAY5RphHuqR8=5C{j!l?Jcj2-fPz|3)-u#h#%O5>peSkQFUTcd|5leCl zAR_4#5;E?b%ehwN~ zt~K^hQl5Ff`aL|b2Q`%|wy^bJg26}T9C8?)azw!^4RZ;#uOd968Gnl}2A2##DH{!W z#nyPU<(tP|^Loy5j4vweocDvp?eVakZ=Hf(4NAM_iCgzsCgLrA&s>kci~Q6}mF6y8 zVR2&x7f%s-utBg8s7s#`hPmAUf1%`*uiZzv!FF??#o8?#4D`&0uYm0VtAT5$7;p!W zI3wK#|ED@+)WQd|Wbu^SP?pJ0BTphvN}p64y_rn6iF*ZQHYObnbPQ0VT5^qO{IFt^ zY}z0Hy&tzR4&NmwzW#$Er5uzR0FPfhi*KvbUGUjQ2p^768yHSY-1`}(Q!vbZLnRIL z8-I;~X;;cvJW_{O4{~3uWf_h|Rmh@K^~91Cz{25Rakh81X0OM7gE$?-VJ39?u8pZ` zP0yQ1T&HEd`lP7mj7VjTNRF#bPc*^ClLmP88EsC!%DI2zhH2MvubYLgL??q|0hxy0CFX;$CaetXIwrlh)RK}y>xtN3kbMR|% z{A7s7VoW#o4%^*w>7i~*uO+k-Rm-Eki z5BiTFg^yf&A`Ihk{N>-*DON=p`aVR(1UC5YM-I=i*iOtGJylwkijk+cSePt+{r*y= z(zrIxgLpqBf)s!`k$)enZ*kq$ZHlj!$bj-jHD=6^G~JFtJ~s3(Sp$)lP{JL zq}LGD(O6Rop>VDmDYvespyst%FH_7jT{=GrnhN4(!&PAk#X`7@!6=PcX>(vwS#F&E z5XU&Yr1|?!v-}C6WHMW56&W_1umw|ta5V!e-CRok6kwAtsi2mldy!hL@t-mB#?Wt>$L`yH z##dAFEvn=)VN&a+lsin{>AtmsP@4WJcbm3d=MUM^El5COd}Hf9DIT#OZb6#vFNH)p zrW$*{kpq>rUCQgI%4>I%%8x7@N)=e0VQLq=3!~?6AI?V}GPO6|{VXoo%SL6dWO)~N z*YOyw@|0T`UaF>2ujw&Azhz8A-z5arUo=)aj+`R{R+%4)MaqFAG9eYsnW&eBImwsKqmIEgF+Ze(Zul`c5^_vyxDJcuFj_^bNg7pzUa?_b63m3I}~vaMAqmegy0A2pBJSKC+CjilH#4OABffSM1%F zpZo4MBW%kX>R#?|&~*Pv$eXP_9jeT5?*8eggZiEXnk4uk=51axQ`D5XTA|%YAydoo zk-}bwaFYj`4|zDMD#wo+Rebrt#O>L*tKahp86JM#FIH}jBGOOa_1>pI^=oM)*lFk$ zfL`KRz*0wuodvg~^J0MM+Fr30`S9B*zwG1c2(h)78?&jrtxiRI2;_%isU-6vWzT5O z@}+(Y+#XaN})13pgIuN5p`sn^TIq4=_sP2{Jq_Xj( z&)hI|$~X5ZN&s?5MH4DdL!-Yt@_#FN5n+ZwcDkzD#@N=Xnkqb2CJhfT$uliD+>0{^ zfcAHswSiziHX;q?mB?>Pa3r7#@UGe>JP%_9~GGc%y^2F$^sSW0AQqM0*j5jHTItC8L6Hg1jP32A11F8?K zUEW7!h1WH-n(K705ODrh3<$uMtn(C7z#>;-fLGQxikQs*KK!49{cXD<{L{qEPhw#b z_*!6@dOo;z)*BdVLW@lYtLqyHyZVwdRvemFj{Hn7@MZtFWD_xreZu~y!Wh{$9?tNf zrg0OEWMSS&UyekY+_gS4Gwvi9)%m=G>F2VQpX_-Hk1qo+SR6tI?^b}aGn`iT3>{4& z7`;{k!=KOID%j?Z_nSrOE1lm>=|YbaC}d2VT<|24b}eJj=D^Z>1x&t^EyzH+NM8?Xgpg7lqy zT$7oc7m9B_{8l@tXbB0rRe=^x9UgE%TH(R7L@L0NTFxc#T2@mv)=Ui_tK(lL+n6&nrqt0*w-f4!IdXU zfaU^myeHN701iLWF!?Bt5nrLme&k*G?ba+k{FfAWPDsgA++iw=j8DE)Go3! zE^riw-;PnaMiZ-51WfC*dz@FF$=3Q5i&*_g%h0D(P61!;k11VU5)d|o8h03tT-_Y( zjZeKj>%qhB%&%VAnG7>MS#V*T$una^pkiPtf5B zm0b0+e=dJteJ-oL;r&BzfPS!UirSkR;MT@{c5Cn=+&$0MJ0OI?QDRZQq*%o^Yr2Ry z>DVDeWAwYd%UJ})_!fqV%31zwd*tD|?k2*-wE9~wRCohr*)z0qjCyyP17VSyX5su& zYva&fvX)hHzNz;oKS^6p0EV~s*>Z(!0}jn2A)*MIpzy3g0ywf9HEEFflrPiBX~{{uq;Ed?`PZ_U4kW zSTejuJMCp_`R!rB7Kk(1Mn(S_65V7-93|*lzA?q1aPH4mH2JYQnyws~I%MKBm^IFT zc<*=I1G-vsof9(AIBhvCT6v5_pD_7wQGh#z&_u3DdXMnlLQkWnp}J%4{&bcteyqvR z)8AtPt$Bs1kBUdr2Y*wpE4z0U$Dh8l=MUZT8*vc!efSgnb zT6;USIy>wATuDj?s$rBt*LW>FYF)6Qef0|XJZThXB;DSESwM_RJ|7$uK7O7aU>;G> ztZd?SUnYWs&N_3yo${*9SnE3dHE+X7J4eKcBhT}E14zYgv>T*`tC_Zt z-iW5qZIInegH6f*dP+0>cx~xRUzXhPLwO9(rE6Fsvq)|m;z>!$gHttJ)d(H62PRuq zs&~CB%CFRi-ch6?87q0_%LNjID?~Fui?TSSoF|syz z#CXpNqBl%O2^Sd$YWL}1v!U1v=o5nZRbX8uxRYT$QCwuLOw*~J9S*k`EbaI8g(#$$ z=pgW=V{qj46W^Br$k!05hcv6hcWKiV)(giG|6CTf$gyjCZ@xxjqF_sD3u(R67E#}0 zDfV^;)!N>{fdY*(%)<}A@yLwRjb`IaB8bsF47he{p0Dm{1c3-1z#e&ep18#l; ze*GMZPqWXbej95APaXS!KD0k?oZSWXrewFe0RB!rZwHfw%w>Du-#aqDzA69iGw!Ez zk)JL$ALRix>})Vl$4{FNxoIc5K8wSIU9SFBJRJq;@Kn2*L*b;Qo+5^DyUPCj2HVc))bK{sc7XM%Y4@{c%c7 z+{;J1qwI{#8c{J?2Z%Y$H)R;9)>n8YcD!azz)y$Z6$*>strOVtt>jN95m}BrTd4-U zRVVjAG58X}KuJSXc@8btV5Leo-g~1N5cCDkg8Az=->iKcV4#d2G8dIj24k9&oaQEX@ukVbF zBFc47gjw$b7Oe52{9*}P^w-kLe>+w|NmxlL?#CJ%SB&{+IK0qlPs{OL#?Yn$@k#*S zL~0}v-MmQj=~|GR7)o2U;ykk;{j&7t9AnB_=3aT`jIaLL`ysZ1&!+OA=t~U0Mghu% zXvYM3c+Vh~+(cikXlpi8;%<8>9Lepl@>dB|Ea}|1R#vf%1MR)nQj>@Cfr=8>XNvrs ze1gJseQ6+@;g3=(&l(-~cZ-7IQ^;|<%U!(-VfeDBlBFyQgrR?auw`VBUQT`A>2FsA96WY(sYs=4 zM+oxq^Rt6-7yu+1+e_kOOa{*OK)(lpPx_(SZ@KqBr3)HyR? zZA(cYQC1h#`mVDeNIivmE${08p*8;1`Z2 z+4nh$x%`gWoZ*-GshY+UDT~(X_U?d>jM~1rId~&gX}!2SY~pXWH$kd`_3k?rmvu;UW+!EY*hamoZw?u7pL$^Wm^MSL_JW?0-+zg>xAK4f z5E3BVAEWxt=e`urw@n1W%;yDWdj+knrFNMIr$#`a-kn@zg+s-wmOXD-WLY&-z52=S zlA`Ohnp6t6vw|PMPu02oW*6&7XO98sm{gE#!f#4p9ntDj-aF3u2k`Lv>{NS8IsFiz za4QA2N^EHPpdy=&XKnoYn}xzBJ{2kvhC$;;vCmQj9+jVwNX1cRnD`px>w;@VDY?1a zetWuZ>+ZBO*LfBM6OtMMWqv#t>j|3hy66#~D91fi=SvT(A?{N?{UucvGe!zHuE|TH zTkY+>LLkU8>w*snitjk(xJS9mX=X!Fc2Yls>M)aN*6M^Bww^ruLZ5iMZ+TkhY5@yp z2^;pMAJqu#gu6Tt0RorD;~VXoS=VBV&fkm(%2hR~+G^@H2?Smpg^oZ zl>(mA7KjGX1NBS8D(Lf^-2qrtxUfGBwVzoYMerv*Lt8yBTZ|tBv?}o|YR?-sO%Ei& zMoM;dJJwXXLxO<1qWPUm`Bej`-tR%m=kVxbCVM zQw@TGMb&;;xA@r{7#90cR?A~1wEFAdjeuxq0RvTmz=eb0kIcASh!vbd8$l>fz%&`V z#yzfi$++ij-}K)K_tNFKca4MB5BELylR@VKgK^uPkY&PX(038LXt(6E!Qa*-sdkkE z!mIi(jgT^0A?Ds!8{j!-^EmtbVF40Gg+b*5c@v9v#MaEI9|r>I*7##6W4zU(Fm{Q+ zpxv$2XFS8J!-jG(M=n9KxuMTjFD1mDi0(GA#)di7(RZjC7RF968kgfpv0Ya)`v3NL zRSH#f@WP6^qZ6zevJKP8#F&q7M<~3g;ma^HPVp|OYJHA1HZT7{MI+j$?JvAlx>qxV zj|V6XLI)n7%wlls`2k4IFMg&Us$)N<)ssoGU5;8Sl~SAn%nq7dd7RyQ?)2&mQ3G>t zS%ts8k$&=3JBtUS_!T><+562W$AYJ8_JF2~se@qmg49NQA_qaMUp+)$*x(3MYAyJX z%v$F%8#%}u-wI9$+ee>Esb-GgP0SCQJr%JuF@afbOR54&2C@vOp@wg-^ZM%Z+`I^n zl>`t7lhP*D(yws)&a){m(94Lkp|PD?bv-iI3!!< zO|!fH@^WIid-aQZ%>Nc7;DtDSOZEdq++q0;F91k7`PAkXcqPOejJLoHB6~|YzHZ&z zzIs9n*}h-|%njq_z0PjJnBnH*bZz?mje21OJQ&v2-(QHqg#7K4UxVLDt`)mKiXy)V zex3??7t;Hh^2(?x`W8M}cqx5fXseeG_wkfUK>xnXG5ZxN#ed^{MgDNUIoxR)Ko}zS zB6j~K)mou@S!iW#6no8h;S{^|ejx+sPQCJe1=KJ_^wh?w2aM10_w5?kE&zMqo#7TE zF}KDTMAkT{6K;sb!q$*uGN!gkRO#lG^=$=i*c?>Cg`|;ZVD()m68Vo0VCxD4)Xo}5 z(WECCawq`OV!!o)&pD|GH?U)muX386z)2FVz=gHe$M=om5-E;jF!Sg>U{FwB$u zgneE={IsW&VO22UYOBxvs@ERjlU)#-VDiGkwO%nHrglAgBn(qdsR38c?geY`j574v z=TchSR2(AsibU+tKTNt7KHoC`KDaV8z2L}{s-80^U<+V|(J7jasAZ4|QBill;)ap| zPsq4I(n#0$nW_ySQUKnYk5TnmR)@H$;UnnxEP)7PB&%XUi#aj{&D#)`LMiqq-G`xs zrCv{+!j@MFgik^nrwrHkBK+Q^z3C~D%g_0Zy-cy78dnCbM>uVp+m5wY3{S)Lg4rj! zJ6H~yF?hgxY|LT6=Bmpr%sA$=aga8>$ z)mvTHuvuY7x*|$5MjSxrKajrQgf!ZAr;ME0% zWvXH98G;G%n1l&=R~}RnOASEh0hFD05`LuqP_)vfQK-bN!-zDgUw(!<&!LLNK%F#z zOe;s4l4)N+?($v>(T-QN<>dID!Ff_wN7|T=6$22)t?co+fQA;UstMr%=O+OR;j^X_ zn5d5?xqg1?J~y(QbupXR!Sq;Ibuy7T(vsluT|rBQozz-Q^HPyB0YPF64|_YCh}${${p}p0X@TVS_eR z-MkDtvdR@djB8U(SZ`P+OK9fEw^9m0v+4V6<_qte`HkFO&a+NlrNLN^G{t4WGfuz8 z-^S;;3+H^5cL-|>b+P-rdzx~j%0E13fxAbP^LW4XDeEuZ#6#snJvrJKq{lhVJq*!& zgX*0ZTjkNpdK2C=MFXTc#?YT7a`3NkOpJ?F*PM?G_pMXkpSoBTg&351TUdTCH+tEj zc!(GXI~TGy^~1RGaerpHZdCu)9I$kOpUVz9$(IpYGso(yPBr|_7?>R73o&S%+Lu4$-4aWQ7_ zKl2^9AAM!|l%Xs6c52+*>YQpKDFkGn3Rq&bkmn;GhZ&@tD^NowTH-=O9cpqIEa_;( zClO)$qZE(+(DjWMb5>bcoD|(%ic*ne;W(1h=o|H{=KRqxqMtcEJl9?2O2Z{%7P?6do@oUWkbb@}&ZW4@U* zRIj77xV^NQyiAaz{kB}qQUM&|lv7&jk5?=RoFDwbWvwq6^QF9KSTyaME@HX2IR89h zK(My5RxZhsuVI0gmyYKoN{jRB+0A7{)$wuh}E^Bv_ah){~$ z3u`a-T-z;7Tj`SwMIq2?6)Ag$|L?ngotN)Ghfa8#jH%fwUFg%QlkJ;^Wd;=jgE$JU zS-wWZckNQ^bK8VU9tvPIu0X`G8{MV`k2!? zMJc-HGgfJHe{qF*WTcYpb>Fpc3E9Dok~ZMxX{2a5xp_Y3Yzk(p8BKI#f@&{4Gp64NZ?R$VbKd09?xi4C&87>1q>(Z` ziiq@izq+n;BdZO|TZ{oXhd9Xsj1332-*p%ns5O*tYk2kmoA++x%eSEi`R{iQBxjCz zt4G>qc*9Gz%`78j8=ZaahW=BM+#7lA&Miou3{X-bf}?AHytt)kCN#Nxw(H4i5*{8V zVc2CGpm)OE$p@`t?-EgmNEa~0axYk-4g_0WiBMqE|Jnfe;%ZCm+z&U81Vl-m+nG8I zak<%dvtg(g^M>+?@F5hg)bO^u|N6GiGBZEn|M=GvE^(C3O<2h_;QTF9L95=H&rBU( zXMzhxkc@uSgn7Wxc>q4l+H(72eiuwEV$q>Gv{w_;nNOU<3cwKWZge?|kd>SF;aY#g z8!L!s;|2cC$eT2%;B`+1An4~YAo8^21b^{#DbXlU@|K1kQ#_WSE|tKMMd{Qol+hxf z={kTH)y)FV%X<5DLO@Nm>^i3rj$h??I69>84XboLv}Mua;z0#o!#I@kFDaFjqBg$E zp?Z#=68&}43ko*Z!WDi1ZqUSJCIjWEpl0)qRL%yN32v_Z+{9)v0IJdKFezEzAzI=7 zFlZJtzqPOX;vr5u>uLx0S)=5)9`}(qNZj2|fN%|cKiid2&xk{xS)^WVNq^5%45VZ^ zG1e9*QDq?n{A2qJPFHcMo)-*GSFb~{m2bMisXY}LJ=}em91+=YTx#{fQ?@RkdG_cU z&$3=pXH#2tGS#Zm>jU8;9CRT%Y;>vG_OMK6kk$KIE?}r(%~tPj>MPj2JoUU`8Aadj z@L-$UV2f#Xwd_rkKYX54Da-}hGpc6_U4QP!#tXxiH2ow4ph}iNGyEU>BbW+VeAW-o zRX8DQ+x?A%sCgMZqb^1Ln#8W2i8?93IvU(}z|>s9yeSrsSY>D9v(G@xHI!u%%(2#> zoz?rMfsY1*f7-_Rs}V9lkIya<*#4Cn=d7tq!??yqeD3w_AeQSNHG0Z4t#Mw}6#~n{ zc@DX84Vy!PiCT_P&Hk6dd7HO5mESPsrA=+RqLO=SUl>zFud%~LU)#n+>352O7x zNeJWaha=OwcR$c@V#57KfJ7b_9{Ik7Qf4ec^WpZjPp&sj+b}tYdPPpr%cC+F*@b5I zhuS+VD1~8sU&WNHmoB|%e)JF9Ce*2SnpMbk*DmXA-Y7vOGb9F`i@9JF<2NnJ+|%y; zz>f#{j*YP zf|>U`A1%ha{~bFsFe(NVvd0XPRi?Jm%`V2> zN-Bd0+{p_lX}YbQe>VHe6G~#ufjt-J%_-*bYhh(5eNV1!&(Z5m-^?{;CrK+{@ip0* zK$=o{(8dM*zC->374HjB%Wm{~k7D&QN%w0}*JLo5&7;fIG{JYT*Fw64U%AvI7u31< zk<7ugyOjfFZN`d8L3o|xZMqY`2U(`cImXGPx(s^=ALOxYTT~cU`yb}7HE5dnZaDU% zAI!EHyjm+57aPV2TTTa`my-bAsEg*d77Wq>Y9hw+NIcja*9~UKNwj_4j#&X;P##FM zUY=7K1)z@u5&*3)JIYoDkcX5C10y}C;By_Zj?y1zoSIt4H4-8}Kj*D&>@*FbS>cX1 z1}C+(6`wyZXN#NInbEf6F1*?M!Wh4jP)}(;fc%ci^|%O@(4RhT!3!aFzA3b$DBocNrbWrL)i>#jGE;8BvG_}se|z0{+R6dc zBxnhGopJ+wquu>p=gx&26`IX*Ru`}5St5QsmNnlxTaN75`HC1C34XajoyeFxc`oHk z@~{+rPt1@su<*I0mqU0XVTAzG=tPL`jZo{vBwU*>G&gPkb)>oiU_Ehim%g78YX|Z5 z)wVOf$?7|J>`$@MJ~4>(c5}$qP}^PZZmf9DH*m{1=5Qf+4VB~IGIAHZ{3U*cn&jLf z&Xrmz*YsN{tN94SpYbtb9u+9jT8EqCfAyjQqK=T)o{1e0Qznpa9&(hA5(xO6ax6ms z<2IIlejQLHY5k6}z8X zZ#O>+E@)wcu&=mY)bcufFK6H*dSabDCA?+Bw%Z9&(ITv;5Uef1KB54tVa5gC%0Ha}OoR?Wg~9}5XvwbKMag-* zPIT>sBrS~W&*6cuuLi^axANx4c-DKB9o5}f40>xzt7NCa1M(@?buz!|&b`g=KNHjH zP6*SM_;BW#1Wnm<)g%=SvoDUs7I(|ZO{}Xn)b!ltFZp?(H(xGL_f~Dg$K&SjByl?|r zm60d>zd#%sIO4sxena#Df*V-wU&frEr0J6h&j$&Yf%mO1cYywsg+%M;p9S|DFLVIE z8>Wq&-WP>e9Kgv2N^7j1Z^3)<^4M~61Dse5)zd;CWqaft=H4m6rq`!nrWg*%PP%3A z0Kt%eKz&AEv`n=KmP5mH)udbmy&KbLHAyzYDUcL^dXz0LzXA%x8&{KB^nJ}9GPt{& zqh(L*3QSN1^>BK>en_(w=3RJ7K9-2ls=z#Yg+p`_K`MXuhISC-2Gd$1tFq8)-~_0( zBh#DCPkDk-tHyBEX^3aEx_8i9y1%?L7$P zBydF24Qxx3O*h@l4TlBlbE)BaL=LwZ({(sDATy0gc)eLoOFe?W+P2>x*a;$3rHI5mVa}cs&>4yPkqOutjcCw#2n?J#ECXn3++}y_#RQ<2Y_( zpCKu?dXPS~{i26gNCKqZBwNT~QXz<%He(*F@r=tSqF%O$RV$8x%-@Cp&x3+k7=BfH zr4rq6B_Q4`B8tBM5s1uNbWZ<+acg3T^WDW!mb%ttA!5f#X(=LULplZ0wzuri`f+a# zyukhz-6HR2YpOPXl}w}yS>bZ^X8x2kA_g*SY2%_Y)RYR5z12ars>|0A^6em>PVl8V z26i$15-$C*CkJ{pex;4O5AMmAJt1D_xJ7`9C4o)iL-$$eC!Y&sYIKlPn@ znKHj|hzcW}f%ZH#cMYXB)aN|QQ;j5UktsjK9szE2j8z|F2_s!Bq;3Dp6duA^dYMHr zFyF5K_dXk_Q#IBTAuYEW-`)0le<#9e;`mK#PrQ?pyb>e&KRF!U{%36?rfSxYAk{Q5 z$Pqa4*++W9Q*ELZHU~GKgJ$0bgVx_lwAF%m#5XnIW%}OFXpIV3O{@Puy6q_NF_I{Z z6;;*58ScMn`-#5@YZz5R!;sF6Wh5x!bT-|Kus|I)bIHfn1Xpx;Q&bBz{d+xQ1OgPm zhDsFQAZGD94Ko$==QDZjm`+L!GS3ge=#~~cOD9ASsk&kE53V8B56o-{$e)>V4G?v$UvlT2``B@(N zqn`&gx{YqvA}aTEZO@^SxQde}3dKGX8{Vbv8by-v$H*PlNym^9-|n?LMc9({hb{KT z#>e(oMygqB1$OD;MfV1;JWRFjvKZi@iMuGqTy>h%SMcdkwE|fBJCC|-=M-sFmJ`Dr zat=hl{GD#kPRXX23~}0#x4UEbU**X0p2-K3MJy%GClW5&6@xGL@Z3I@RK;K-k4 z0H|6%&4G%Vw_w-Xl=E&oyXkW*C^0!167YIrsUT`P%+5$z%mA{*_T94d{Q9p^n3S)Knj=3>9j#TDoo0tH_zUx0(U6%8pfM>g8LT*uyKw&HM}ED3(PB3e9WW>LKkW&&;ICLPDwcYp7e z(mB)ib##!wwRKcT9nm%i{BjZQlys{+N$FIAs7AiaUA0Y zc8wjFRlj=RK0rdX;o96iB+qe7*1MsxfDh+vUi;J90G(cTY-QLb7ahM=amlb#a8Cos zUk~zkg7P?Zp@?SC^&G3#{*powPQTxL#)4b?-6u1>Y`#*jL$2HYy16`|9vw$kd;DBM zx-b#g%S78k$%DMTPmuip_2m{HTJ+!Yf|vLgoD)*+A>tab!`Lt zJ_Hq)zYr@9H0tBy2xl2)9D4mlYPH55BXN*=EUP-jtbT-S`7nGBMj`VUfa^U%EjfPC zh$|fEMT?WJY{aZG^typ)-~>_!V#Ly_xW_{>tm77lZn!c(b9l*9TEd_VQVu@b_Zq z@|+-EyP-{^O9bo~0>05+!J(L0+V6YdXV>3#k~Fe%)hN&J(6Fqt$v^vlopfq$CeU+QB)|3#+Hec#dCj|8{(Mp9Vg679uyy?UpQmjQN z0L`nPapW~ZJ~6pX`@w~5*yWWOpZ88RZ|Oc*f~y}gWQ_n`i0ze0B_EGJKZ?$k$tyX-#Y{NCq2I^=i@_~tm*_?sdlr}pi6*kj-&It6!qhRx_XY^8#W7_Nu#y9T=(~7 zE2j*q#84ugTgWDZg;-XUP#B7*)4$;73#T294*F9@!CvJ4)OLFrYPtKfeO5x%0DYIS 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

    aqE_pc4A%kO7cAHB6{7LPV7(Figj6k9{6Hqps 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%0D!pDsAD5 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 z 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%0An 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 o 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∾*acD4b=`hNWQxRV;wlp2&~+t(10CTbk2 za37-lBzGzCf8d4x{|ZZ(dfa&YqTVr;J${V8;|$w`OWt33iul;@Zq>C{D{n?=X68;H z==MCnj@*hwSP~+*NKsq@Ce!SVZikwg236C31Rw31Vepweb8Tf_Mxy07K?SPd9U1wB8w*tPX z8y!)iwV{PqtYa%^>>oQFLBjmJ5582s|foc0C9{#=hUNWbqS}k#UjIMYj z!AQ}Bc6*K19w`k1drQ)s_zm7dX@5<{9T~heC&3d1pXZ} z*n%67dT+dx%cOBZxPILuBlS%sYz<3-vCK_t^ocLfw9@w@Rlhw}+t=qvy`vtkSxe$v zBDeXm3_FhEQe8D*&3BwRD7}lZHu*b_HJ-1@d!nw|L1%!8l4)2bV5S=p0S46{)D+=4 zy1V&;`V!@Xp2jkv2zj&P>(hx!!2HCRc9kxWijFc0Bl+sK)M^WKPo1ym` z!(l7PIAG8zF->vC??JZ^Ol`*`jp=BwD^YY3smXe8tuoW|6RN@EZY919A?d-|xz`&l zd@bqJOo6Zkh7hv*`@~9-O0Eo-p;C)SAdM4*oR>vl0AZ4#?1plG0oUL+q=umzmTY`| zm+A^$T|C2$PJ+h(V=_xn8^cAP)W5-q3#UI9YR2|3ywP1cl1+)mbDjfk;35Z!|2m;a z;>s49u-Mzv$F#%4Hm+6_fEz%Ir;)&WB^i_|Gh!6=ZXg-5yMnc9`?uoE24W~LK(W>2 z(N(uGuh+c5$H2}I8Kw|UCxO>5YwY=*Vw+-YT6Fey9d_gMG*Ld{dlSc4v4PUm{D%k| zXV_8ZR^L!FJvlj9ml9gieJ`R~>EDSL)(k=KUAUzSL7)OPV$767W+b7}f$6tJwjm@E;tt(mZGtEVNB!aU4Lat1_SW42;s% zjCu~?{8j4MhQ9?pv<_y>%OVp=J|{VT;GJdctnGEEn`(2s*!4w5sM~p z<#hCY$rEJqQt)>u{QrfA&D_{TaK>;(nCL7s<;0mu#l2p=O2kMGFMC|R-4utMQ}t(8A!0mDGn{KgTcyuACMmk`EY+#Rn3yK zPxqr8Uri}8c3Cf0g!QL>d{Zaep;EXhYMs#LEY6ifj2{pksI*E+?V{KdXcQrudh+lw zAvi!_acc;EBOBOwK)!|GusZ*myQ$U|pJGj}oeaP|EPaa&tf1adQgEt?vwU-!RGbWe zIMiK$k~f)}ShL?*1q9?L1f!wfAR$AH&BOg*KUWx8{4CM14SH+`k?c{5-kh&w@Aq%1 z8*1vRrSK6AnLfT#(I70qd@mhWj-EQGH)JM_HbzeV?6y8rYz#D%At#4RzU(I2S0+Q^ z(qxwtx0Q>j$YRJ-Bt?R%NjcL~)tZ=kZ_n3dw`*7wE8JmxbN&5lnFOwc=t)Qot%Z-L zBc;t&Jo8cB?Ff4_!XMA3*fUDr7Vjj6bjeR4)UChj#pKVch3$Uzv5bku6nscBeE!8q z)8$VxXr_`2b$Z;B1&V8o3c9{lUc%jMpXmgOXRqonk%`_C@iGu;;7WPFn^xk_J7?~7 zbXCmM`G$72mSa}Ssnl0ujAnaGueEs6MlJ6D7O~&GI0{A?D3A*c`|DcsGG!__T_nIy zJ~HCUReEC@?Xl9_xylPkE`2B$c&3{Gd2G9Dlm^`5drb#u{Z}mHf?z8(0d)S89s!ny zgacgy-^hacOFspN{{2=~V{J>dDBDn`8aA5E@YUMDOs@zGej_i;-(7bWB-qqzPtm+X zHRAR-zdX+9I?d&1*lNzm=W=>Vg}iykpSv~Y{AR5sK_p?k-U1q%-QixC|B0<~2PvPu zicE<)|F|w$-L_;9(QxI1bkmAU1>L#0tTo=O^&AOFZ@DrJzg*T^qLt8%;{|7luuT}k zo1eyzV}V$gDQ<34^QH5De=aw+4BNH5a3pw($yLv>m&lQ_QzuGtRYkKAxF!(W8)0q= zInvr&gU!85alT-2%0xGGH|jifpYC~v2ZTe>fQ{M95(R9AuxUX~i7k?L98^i&^cFou zT29(i9=b&NNeX+;e>8wD2X0^emJ{1S{>5u4k!XNPs zlPCO-Q56%!iajmO4eFu?jEQ?O3kQmBgZjN*g-e#&)=i@AqU~ceQwe|5!8H@0_(3m^ z{ZXR|y4KO!Bfh1UbP=MfE~4F6s$&SQs$4e^DeH6#AD$!n;v3R9Tu1 zyMc3Md(dCF=uaY?wabHlKP>YjoKYLWClOlPaQtB_e8BU+R^_M`Dhb`|sM?4h zr+E&Qq))PYQFpNs2_=R~`nJ@(*eU$<^Zj^n1f2*w4kR!a+)z|i9%>N%&R${NNIK#S z+Jb#Q(_o*!wd5TE`j4QWS_I7FiKsoRKmZCfKLagw!h4(0Nb4mGM#z~GV4!vc3O zyN|;V*wm%IYT@4R84chR#ZG)B9RO{q%2^(B+1(ZbqJ&ohBoflcb*bqJ2z`k39hNPP ze5{OjSr_Y#R?g-28mF5p>aIbmF@pC81%MrukYX|&FXwF)eG25~DlrF8+rt0r^Wb_D z;UiOXb6q|om5&G_r0x&vukt6vQjqu7Q+4@9I;RCO6lw=@n&>j%OeN0dtd=QR-LxP> z>q#SqTbln@_#qwdP(Oc0&Vc%YJ8os$v}{~EZaucmx~+mZEiL1y{Idl-bdCmwn_Lji zuBkXyp!>m+Jf(7B#dhbPYz%^&4MXpU!W18}0~)`a=osnslC3UT#*oE9RR{*DVWK-s ziP^IT&;MS?Q(s4CbDCYi_v^|CTpdnv`1{p}PCH+ut&bhc9Cd`BNZgfdM~zz%gUz^v z&2LrN5Xn6%ZRDo06&58g{z17G@DW z45enPvY^CV!WkR~2&jERh9*C;f4`X~TXY^Uw@G}N)J_=HE&PbG^U=mdQlfnB-L#n8 zuGI(9-FzvV27!T+n~&}O8tsKQttjor73SzpIDuCRuV)Qat1s}%SmC|Tn!I@gN@m+2QMC10`i>kaA82Eqy>oIvg_C;FtgE%Pn3IPI z9~5aHF@2=4-LRmq*1j`>rFbr`m(A4LKZCHCM(AEVdxNeF3|FuGdc9T%H1e$JGg@s{ zV*pGA8<*voU%py4toSB<`Fu!s8rZlBZ_ZE$<%>vEs;Ch+`;TL}3|e+3JHZ>$1?PMv z)ZJKt;APV~dr0?1h$X_(DtPxu$^G=i+{&ZsX+5c_W&nTYa{3!ugt_*iwA`!Ax4?KU z^>gAJHZ7X7!!9Zk`1Uyg|0dg!W>Bbklrm5SbMd#9pkClf z!RRUtKb<#ZFXotEf}_R0l`tfe&S5oTRnr`I`sP;byw0K3;=i`CxjC$DzQ*qgAA-7Z zOZonqqyJY;vW<4(@;QgyWRoGEGjzK2e97*c`9X>)wu*o$6|ORYDQzms_m3m*dYtb@e>AA6|CtZ}-k_3GNV#23fvT^H7l2R|VL4ksrK zOHCmaLX8*Paz|$SR0LG1zV=}#w+Lut=_RjtE(ek}Pg;v**jZHG7B^)LiB%uipl_lj zY(>Hzz+)+{QIJ1$P0~N;UKsmw0*<}~pFi=_DWJ0)=F88t(cWLmP<-At-S9Cm5#_1( zmgy_Gm>!}!?yL}Fib9$a))+GIS93?&bRb?u9 zp!?1^K{vO&S}?Fl@{jt^iQ(n2ZAkKmjxV0SH>k&J%`Lw|Q&;PZGkp7Y`j?eZ4nn;| ziRHhjj|u^ki+cg=wv&7N5SaJ<4b>$9+vYawjenXl()mxnis{3w3F2sQ^jF};uYwVbnkAfkG9F|*~DdhD}g91wqorWhW@bm-<&FOHz z?xrJlJYCo?sPz4tyraEV+MeItS)=xa5M0`R_AAbpX%hB-6M3b$+b#g;>IOtVT!Zd4 zk$#NL22pJy>3w;T6fc#>4&e#-KTTGa;9=Kgc;i)yYuF=%t52>ic14XG?{PBf_S~8)Qdru3XRDdk1YPCnFVZ^|c`9ChAz8l)MQMP*)+iUz)O%N%n@bE1mb=R1&NDP_R_|hDhyKPm0SSnBqkGVUQ~8 zHFtXCcx*kR%t@RC0 z33>AX05d3NLdX)*tCq%56MHhzDlP7?_Uj*Jg9g0TPXMi`>nK;sDW_i&P6Eew^1Ehg zYL0Zh4(Y(EOXcUwqs{LK`F|@rM9}*Hrl>@~(_MGg7ND>g0Xk}iv>-@B=hA1{jtGJH z;+?}S-(;mt@mllV4U=>UK*KtKlYk|L2?EKtv_15pP<3?$Ev`&|;__J{Ci;Il^U8zTK zpL(|;#Z7}S;bvrnoc%bRQ0d97Pf*_94=l3`>%VVyBe}`LNW@+I!J{_XH}Z4br_^lpb#P&|)80jDb?CGG~$<1O)^ z*9zf~gI;CN`4YOrfX?W{-+ofY568FoNtMz)5&@6Zqyw%bI)%0iY7#t`?WTje=ui@S zJy50QDgkq?q@Ig%oyObr1(QIby5@JzDVrkp#J%bxIn*iZQq~8=6;TVWQ6X;WX=S@P zh_QxVy+wpeNBX|orUi4@{o&rnF8i-$U>>B+8X*MWB*aC=R%%x{p@AKv;$p>a1Av$4GGo8U3e;6xu1h$)gbH;&Jjm9ZSt3~x1)C^-y6%-0Ig zNMn3|D+y;Pl`lFRc-iNd6NjVqESjfKZVT1#?JPhYU z=2-d+NzL!CTDknnd(w7S?tb~^Cu6QT1@27isxnNP2`#26pp_@D((XB(v1)uL`R8mL zNsm2|Qa-8ipNf4B842VF)nI&?xGHL!(fqYI+Ktl8F5*=jP&x6aOT+zBGdhP+0=KtK;i!uJNom@NcGXzW(hRlvsmfb$ML;Pjco2=v#$EGFi8(Sex80+;E zk^<9fmq*y+jLoLjg?Ns`4Cl4<_kuy?<^|NG*Bzp5{$zpVx9@!KS|$;=SdG4#?}!0C zSGllNV9oCud+SCVVN+YIZgK+hkJabmb?@B@4}%{|*APQ>Q!*mZD49@H_tSz~^bG8E z8MlQlGRR4M8SMJuGy2=ZY#zl@k7{67YF74UxNF*`PuyhNZ)&SDI3KfyYfE zfQ0pQS7gaYqYe|(a8A5i1q8IWGHYWxnpbuEQ7g#o$-{Z8i*xa{AS%^PI>Ufj$x9jpXbr`B)0R4mTRVu?*r43rA{{A^&%qUnw?V+4ck$P`MHIdn156SQsE+kKRMaQF2eX@++^p0Ujq*8N@`>CY%lp-30u;Es;E& z4GuvJ&xR9Ao}A3tnGW9UJDxTt2;bhM?i+QtUrGt;!AzL=CLT?k{N^ZX#D1U ze&F1{&v}84|94zl7B^yWv$7t?sZ-x4$H~#aH$k4yjZA*}DYC)MkK79ldc;jKq_Xy? zMH8W=F6~jdsA84g^Lwl8>Nj->oeL zzZ}(oo0K2Bn~@HOf+5GJ;5O81+euQ2jIrpw^rmmtpT)PEKvysNoPX_4)ZYmb(z-AA z=iiW4&csV-IR7O$GU;V#a3FR|o65K5_DB0344`UBM&ooK!yk;PJ@i*N&%}p0-JPBh z?;0tod;#k$q^|FLa&e(^;`SaU5yi$R)#=wL3%Jb(0dMiOvd5G0D@JU1?sEK&1OWZ8 zkYoaTx3=al?`t92r%S>+6FE-Tk@iq<=JAuqu4>z_qlLuQ=&uYD*bt(<+rsgti9W7>Ynx%NFe@IW+m0&>e}Xg%X~~ zL?;gmP>5dRY0nw?f?A4 zdJYtWmw{hHA8$N9Q5sOciSgjcwsV|pBs(R_;kU!mijAyQ#TXJ@m?`2$$}dnLJzy8^ zf}wXSROA$}*y~lU@-bxG#Q6Yo+jTEpbwjT4U+3ieNIdWTouDhP6n9WPz;@Mhf1Q$> z7@GkdKiZkJ<*25R^C(%Icj~ralZ6}7e5nM7Lc9evu0IwvedO>w1vxI_khG)720XkL zU5@BKjT^JFG*xH)r`>9KKsZ4tKeIk$u{PC^Mu{LbC<4V<)Z;j1o>dV$&m?a@bsce= zDgG{vPpTzDtPtZL9`;zLQWD)fAs*ul3HDtuJBz0V-M*R3GuVIul)r`t14FSsXjmHTJkxO1(yB_Im@qV#kXzTBSL&F_P zQKIHLjMDX%Lu22>hqaENc>+6gTho3T(ns(=J`X;x?~Qt{xACCa|2RAQ!4CPwuFLKWq4&++ z;U}-ZP|EIvSK;V84ZIBEn~GGIOaJahjo)-;PP3$B#EJ1a;TvRjrU@k|efOxr+RR@^H*1v&`?3eb*I_tQ{c*nOcZIJ;G_=W0FSurCm0t~%6bevz$ z5|nxeY;z&kx{gXD2bn*h_#UNk;I{^HYtfMPBGI^xv6UZ-gfwksqH8#1;q!%;u+kesR%g#x@W-JMSadv8J{E#cMivLEclg+*=e=67Q)lv;^Mtjh6 zKDCNE!nn7YPMuo55JPhI1qhnPMAeEdiQF`598aE`k}C0}vgJ2EW1 zK+X34vh!sri0IL@js~Cjn{+zn^mGo0bgW0h$O;+%AbFv>V3)am!S@n2bb_nXi7%sO z-HWdrjJm{qUevD0W7|I(8SbY++ zOV@>n!{fl{y|(Tw@C9|PJ@Dgd?$+f#2xZgpSvvqbu!PDdya%56%mGNl99y0Lu3UtG z?svfZ z67RR)Gv-;owZ8AN?q%FJMjuhcrT7#7spcrcPpIsRRA!zhTclV+f^r^-d~OUn^w7Ba z_|q@CD*NBW+@#ST#GFLfkKD`SKm7u+BiY9)q+=BKU8fFtpcw3jzrJa!FLV)* zVzVA*I6uHiK$`YHIk1d{9~gkR`|=#@Yn<^(B+6Is|r5NAUl7(sr^e% zP2a8FR$RI;d$o(Nf8(V6(`|`Dz@ytgg!gtlO_AH`Du}8BPsudaS%Tkru8)379CTME zxj!carOXkJqv+{(L|v(0(@0(9bq6U?$5Z|JRAP!+GTV{`^?KlC`*UxK}6S-B=b(pJTz zp;MZ<8Fuh16VM0_t&$dYKh1+6$)9Mf0y5$j+ya=r>T&+>D|Vy-5!WR|f-z#H>a|*{ zN`51+^!xrJu#)cilT+_fefq$A<*cubJXnFJyX@Xo6m)^(;)bA?op`w|46`E3;!zvPc}mXz{0`AU8(}v5PQeTy=jP*CM1Sh z_*#xRQeJ+dO6%GcaN3XJ6b?L4l0!0mO{nyiovk}LZB}jT%ZMVihlSO)oP3-Zdf*^p zT)H0fDK6fvzHl9OuM>BelGa{}m@Cyf@98}R{QM5kQm#Jx*K>~nbZF;Tu9Dv}8+BVe zTEs%MtDeT|=_<+I2wHmv+5GbwFK4gqy14kU-0d83m}4lu5PSdG7WAGJclP(15EY69 z3gHaNs9?8{Sv-%cBjv}Z%Gc58roZ4DKjRS@*;*3&K2we+eb4?T^9i=oj@*y6!gCG6 zpP}=rAeJzhelLjm$DjMLQ8BAA`bYoT9&40X=KN-O_I{Gs0Yai^+y zNw|wudr&JSg@C|8YBMKj{kJCcMBaBPzr>S;D7C-yaaRQI-izQU@NO?50%ZSw$Wt{7VQLZ*3 zl|AS23#6LQyX+?af?dh>S60lW z+Vi-ce@0SPz1nqZH3`YGEt|=5 z(YuX;b$oIz_m2Ni&GGv0CsA9xIRezb1VXO62#eLTcL|}{ZFPgixHBpy_PgQPi$ufz zJTIf0CL`}W^!X9O2g2_o&;KUNcgK9Q+s(QEBHZoVxQPkn4nD${2bs7zVF$8;o^XIf zVV4QN3myP;FS^w9hpk%g8I9pLH&9F-rc3ZQFC&f5==I;L9#u5MwS9D=q8fi<_{2_3LmnCTM=hu8glT<;KL(8lu ztBvpB#(D>5#UOEi2dnCi{dZ=?if}mGQfztr;J-l3m)ja2zmwVAX{hI9M2ngS0?(A_|U7Q|VaVelszB5PyoR+t6JSE4?|_^Ro19GigL!pt?L2 z;-*v6Z)~wk5`g+)#IntO0Qduf#X*tI78Y}MpJ4%alL!K$Ps-^aZ-l^}dvE|U0IF88 z&q9`Pe)X|(kQzCVu9k<#pVY&W&Bm15hw`$3W+B4uUfSw{$H8=}raUm|q=>|GDj5GRiol zsN|4N;vL3zQ(ub*0?Cl(TZY+m<*NMls#dqYk&eVL60EAtzl_n$O$`iGmnGxS`PP2R zW3Ql`4g8REgZ5RLO zhi)cz{{xE$J!t!H`qiUtBW`ErRk+2E%Z{d-S3uVmXT@7x;p}zE(-&AxQqyY~!)sEu zSsJG8##PwH;uJLd($-Hx&!wuC;KcV&`B&u^ofS*MMWX}W`k{= zx^QR2>d&5~rtr)@gN4V8u(eLTn=4Y_3-#x#pMY9mOV@5Az((Y=)_I9n&hy;G+2iTc zv&8_a^83nf=R2W2P@$L9Qd<78P)CNLRPpH=e8-qx^j|F%zj3Bz&-(g$_}i;rpeHxv zyDjSbjbgU7oM_kp-(9a(>i&Lb6qNKCsK5KHhS%>X+i|XRsq$y7qt83j51)uBI81M#tV*{tEX+vzLZ_ zn8FNCs*~KblUl!Pxp~WC>Ly>Ht@5ZESfyzIKh6z3dLrrmj{sXe{42?wzwNwT)nnwL z6ljaRbvbuH@h3{I)mfrqNk)jUINV|@ybik15MItOkZO)Qo#BGczDklmentqIm z6aQvM{mW~28**Yg`d~U6=Xd5)7_seP!+fMQWIt6kQ136Z^}#+IJU6%(Gdd$$BsI|I z3G?;}gH5+3NmawKnRZ?Axx35De51L6x(H`A`IfF|cn}7k5&Out?9v?V#Z{2BL0HU&YCyMK(9Cv!O2li^sdpyD}F5BWG!#O7GwAo_mnakGVa#p}W{4 z8vufHe!YDW=U<0Y0q-hICq!+gEdpHb@H`Ag?5-zzFnc>Dd7m!g^yd1TCZE7er=72Q zXP-}B{C;K`+a9ICsJ)=ajh^8|Mz)Nd)aUZ~0DHXqp?x+oJHH2cG*=Es5*26Gu`CzAn z@R>O&a)xfVoaOV#pk}G->*6V)E)&g&GLFtFca-pTR-IRBT1<1-%bilSo3-1ow2OCg z;NymO1Wm+!MT)^mRzkF{a630EQ+tL7syM-R47mgjshZt=#oN?xxDiZr%qmr{cqy@y z=b0y@)9GBXv<}r|=A)9nqRSUBuXd5=MZB-BT1{hCGPfUpC?Okv#4vaJIwZ}M{)Nx3 z1ItPg;lnA<@X)Z6^>T{A`!Isfp52W;kw<0Zwjg{g9)60ACqW~O} z+8tSyx1xFGsq>$W<8uZ&e>4Y(rC2LA6*?^1?Vr4DTu6~FL@OLy{yhlIMDrU}7Y>z@{nx21f6{*qvQvT~NRlzLL8`iB=G?T!b9>8Nq08n!C9&Oq zQ+LnLvr`9w$Jw?3cu@r~0Yxq3CQ_sNAa>}i!CWy1ll`2{BQU@&{ADYgHHB~Q?36>( z-e7+&h8#HXRdAWF*M%LOeO_}K47wYoezkd6q6kk6m^|`+!hgnPZHfK>&xNm40H0QI zYfiEeH|M9V-%aR@)GdOLjhmcAx@~-IY`c}xb=I%TH^&|Fx8$^S5?6Z(LImls|5h;PLpDO|W; z@OqYxZcz670yB5=V!s__kakDUFcQpCcU9%(Y&`4r_I$SV@Z%eq+@lLrU;*=_WNUS< zTk7z|6>({>i~!l+%ygp46Dd@Jshz-rD%8D3H8KaRm~bjC^Ls9B)68hL`3A6P=$BvZ z^<8{WTV)`Fc=Av5lHMX)z2Vh^9YOBHIgPDMy*kylX75O9mP7?>G?;^7c^U@oJtQ%l z-bu7Kfq(pE$c4o!@B?BJ21H`8*Cpn3%+u2vE0Vs=j>x~W%J>SI8U)!5jp(AdgDzXYW(s>8Jn$)xp`f;kcgMT=zT4n)k4T;(k1sQxbN2z*p$T_0-&@R($c#0lZ&STAF@WQ*s*S^$i_a9GRZ< zrJcUV8?Z^@`7?(7s7xmHkau#LH2yd0)JhFZ|D6R{S>J5xZ#+^FXQ*%-ySua*i1Fo4 zg6j;}HuSunlLkHW?T`LEcHE-ob?WIuCY|JCw`5)ll!&y_tODA@Wl8$A9o(=D1_AeC*W8gq1Cf&tLO1i3og|*p%G2J z=6?WsWvntL$jcM3yiA^JD$;}9Yv~akAxB)QbgA83@H35Pjkt`eZzuRXYFaCVwPPn@ zXF<_#sCo4$uamm?GCX?z?iVk9_@IXn7Q@6&Bm&Un7!fg$9Na(W`#rXDl1TWC)J08Q z>VtMNj-Bw`&$PSIMsBfJgigcFe6e&z>!S&d9T>edd=%;W&uytKU%{;_?m^v{v5;3J z$J6m?cWLk59XlmOSXU(>1_Y)I_N5le0sJ2L0 zf!dOg5X@klvpo;N&{QEIZB*@vVDfPjXS0=l#$w40?%Saa)hM6!iJQGGZ(Yqmv8xOB zUo6#T%oS@Wo0z9W$0XD+cu6yYj_BT+DYU6h%zFo~$KewC`|G9a7v68(O@c1>Q;B1W zrhjj>K&ZVxF&z$Pfwk^ylBkgJU7uXu?)B5g6WFiup1mgy=bx?D_7#cWs24!5BqEnC zuamD}d3iAvI{H-QDbZO?j)pJ%{FpcIMl%5s-*U604JBy6>WlKJmbUBlv^=oA?z5=F zwl`WjCVu`1YJ(U!7ul~zT_ST5?H-7zt@kJ2YDSiA@2UD-DvLcNh*6cOm5N6J@%{F&Gt1>gB3dFK!9pwbP_MCE)REiP8`}%&NvOVZC`g1-y zKk{j{=WsahGk-yTk2TICmS)$%KwOF?uM!wjLd5N`e7wNQ)Hfit^_LTIE z_cc+&?`qshfB&B%?myS=;%l1H|9t7{Q$1(&U`E=0x;e;5zV*Z>izxo_y-`O)W*E5? zT3mE+^+R4oVCT*w_!wcqZN7_JuNe}z?v=7SD*U1$@_IDh#ctpn-as^204qwJwoU2V z!-i7>T&&uy?e`=A@q%`GiuDap#YA7f zL2~9v3kn=6$I|c#Oq_8d-J;_42Sa04@)w%ttVX6bHkv9$tFzTlL8!*=w=7?+6Z9v$ zY*cCYV|E^LWHZ;M5!|*7JES`-WnWXiNyNhyKCO7Ey$0N@cT6!49}F=FHUC3B#gG4y zVleXKM^GVtK1E=O*qwfsU$%paK1XI7T~ zs9Y}(Q}vzRpV6FECnX=PLq-22nDW7?;a^9+o4WF!`U>1RbGsk7JS-P#Kup{Om`^%BXPlNwIx4FQCpY6C`*;4%L*b)u^2bpsDDRc(t|^> z%Qsu}D!Pq(_vOjfQllHc^Xoz(C{<8FCnH-&Vo%H4J-{<3s>nN9Eve0vi1iQoRexA4n7{MD5q_}U>%O%5~j?!sr!;G^RP-*H^=Ju@6kj|4R8mEA}+IhkBXDoFYf!Xt^RedU(1*5`j;nD+(rb8 z6t}{a`IJH<#O(?(b_O~vAV+?HzuSf3niZzX7b-Xn5H?BFd09hJaR>IFwelDjZvffn9`8pvv`V7%fFao zzOG2R;!No8i3aqvBZef4f9tQ-B}hmnG_@ul$YQA*?5jTiJN3%qHU zxtGqA?=r9GXeCiZ?m*yMxE5p(=~VC|#Yb9(HwB;-jDC*9PV~=G_S`}5q{yV&u~8dX z&WGOJJWVpZi%^(U47LKn1E(aV9Aw;J{);b;zzU=%+2Wf$<|F;Fft>AiC*JVG#gqH+ z)*M29BcCTdZ}LPIsmzB?N&>5q_~u*z-B;}#6{+9jA6Pi-N}3h3^d667r9WL37_KPK zE9iR|^#{9c$ZnU?-1YObYH!WL4j)1(-C|i{;v|<}MrpQ?E*sdY;8F+oXKdzvGbGl* zl<jJ=;aQoE*|1$l^P~Aq-a}VCdjDSgj))AK?21jbGBS>WLe8JMu^{;g&%S{p@>_Aj@+sU-xO^jfJT?dSx!{bY5N6;|UFk<*iAMF${(pu0y1l@m!{$y%pnm{#Q zDkq;L7ZtKbsaXakfqCrzRV}8>+XmH3s#j|G?4Z@QLz}ob%YBV+1cCB$H+ih(+qlK9 zJ+b2oJ}A{a)@8|vP?BS#M_*SyK3YXRHA?uVh@#|Aq!wUxHG-~u= z?QtaBoAW+c+;L1}zqg5Zj`6*f{f1rRLb0TC*q@4A6dEmr>l?&`k-Z*8z>=*w1KFUq zol4XM-`UMzB++sKK>+R~`{5gcagE-aKn{!Xr-dfi>utx4)f&g`60a`Txh&SB6E|t>L~j(jC&E(%m4PN_P$*h;&Iy4Jy(l-Q6WHbhmU#H%JH!Au+%Z zXTEdJb?tBO_2*sh|8=cr-OqE!A1fv5OC-ROPfc9UGy?}BaHG3~iIRCls~&xvZbL`w zetC%wP}S6ng8Zz5-g|;llTABZcDYS?fD!qv;)c0X^cQI%p%)SWo3QoTiYfQPb^K+p zox3fanmkr!({-q|T!z@ITNtIt0mJ zQR@EaD!Ed7Lvu9-AZ-7*)L63dG4(oiuFG@m zMvFN2JA^`{f5Lq5A%q5>);KDS_B&GHz#5$yI5_H(l;h#({kQlWN7Si!WHmfgCw=XSH$cd&< z)FQX_dN_Q+NBFbFwn#Ex8|7Mw;P4}|Iwo0ThX*}GppQ8a9QVA`wOg(2S}xRpvs7Bl zGTiOr_Y=CI2s=Z_~}}!U)XRLb(*!v-}Z0 zr*{H1c_5w#FxRyV<_)Hyd8|CnyEBE}v`}Puj>}-*lsigH)^a)58JkVEZyyq?%D*Gn z`YGqOWks<_n4`ll02#e6F3aGbj+(UTMHrBJ6UYCt3A)&^ z+x%|^iS@(e9G(B&>|L^puQyZYGACO{Da4FHQLCLq9yf_S*`Zd@c=rIuQnEEsS}_^- z>nmgqdlVY2uMbmbf+QEsNH*Gx6iMht%a*I7+-6Edk#RdgNZ_{^)Zz&@GM&az zWF&e5F>X3E#eO`V@6xBk7rGr?2*!`y*i>pHcc{c@9SV4+$w+X<4|nb+icy)3Zslcq z`?o898bHbwGQ7aNgSAjw`948G>;xMzGWAwVRA`@CLT18HpUb`t_kf+wi6%B9Z)1}y zyo`CFP3WQaRg0vBZTp12&gU-zN3IS~qtYKqOFcfErU*rBxPXi>=98eM_aQQ9iyIL>3v2KxBzF$DkH+mUeC$y=l5V!K|;PDiXBaz=$bhU(6bClM&`Z34FOYnCiG zx3_dM!w^xdepl=OhZl-D#|iS;UX`39wa{YQ-vIPz&!OqSM4@7avBII!VEOvF5*-0~f2WM)yzL9!`W1l-~GB6wSANTc`J6=z?g9OdNj6Q>hT|w)>sWjbCw{5bMF*6sg z+!@k$@@qE6NxuDhnTMKd^eWW(?B;#>wdVoSyGrP--D~h8uBO;33xY2|s1emDf%Ou!xv$r7YfxUts{h2Kl;n2z<1EJJ z_)%YY@b&p+AFvuUYqGSmh`Je>f@`s!p%4gGOYt@bL6Y4^+-26vY z8#~_-MupCO-wEaH{-@OPJH#Dj(t?sN0W6J1CSjrR;u0LiB zKzhdeqZgB&R?-udc`te6^+y4)V*dQ-fMpr)NxT2f-CCm^*E7@1lhbVOh`*mjTEsXi z+CHmJFWw((Jbe+6`&ZNJA8h(4a79H2=X~gfcQts%NN~3wPTkE6M9M_UNFZ{nkHeMJ zBZ<2LE!hgLB#>4oe!m8)df(gOLCQ7?-}Iof3l?h8I!C3%=hTN*Kf zeo^1~FG7~|fK{iVwT;?ssawF*@vT6j=9dFgYz2T;m_>o3vqPE+oAmJ+^|Yj7JR;3jXAB7kS8uQ zOFg%_f$(w|-jLMC9js_tEn1qJ1V17)$}TK#z7g8J{W) zD~EAP z$+eZR;9(u*7$$mbHqk6f5^BT`{?-`BF@R;jOw$~m3^)=iol%y z{2Vj1h=Gm!zIP+Gd>$@T%T>8VcM%7P}5U zdl5Vfj};P>Fw34G4njNZ4^le(KMF^UO<0+{~TWIdVlVKqwlzyZR|@3{x0euJ}3*TcC6>G-x5BNL?gb_*Rje) zJ5fkKhR%!7)y$a9TMD_Sp-o1X2JHIYlOK>_8eKf(U~8(`XbmdD{lryjnmUm_8nKGQ z*2LtTkFXQPM>L-PYdwYB-MdItXmstYMPJkr%U#sb^XE@sH`QV0y|X@`Ew)7);Jju= z0SNayys>`ft`_{o#^6~Jlq~=9-KZ9?JKC-1p&wU$f>Zk-aRw23i4LS(pYW>$Gdvvy z{j~-f(Qzl+cZUFvk`k|=Ez{}gVRK`f(ZMuSz(k#%?&u{}I*Ng6vvDC5r`E04A z0@O2rXhS|Co7*#!EHM??QEVeb0#)sqE5Si!B9ey9-ti4HZ@#_iEBS$LjgFt zo|e`uAc$7ZO=f@C(d&!`YM{JdwE!y&4J>ePW6HMrhS~*lwton{0!7;&Z95NAtNBgk zC_zLE@%O?o12M|4ou6YpY^| zYh+8zXSeyZp|}}sfbZC)F4u?%p2gb}t=TTS+PVM)Vo3_=CmD}qil=ZN=I$QED#OLfytBK^cTu>~#$ z_!Cd&jyCxBdBm*^#;26J+P~GHDY!fK1%&Knln!!LRbPf~NQab0W}{G&0wuHcF3I-w zxG|F(ZIbx@^)(mvqjB3Whk7s9ao%Q<0dt)Q@$x_^wn&O+<-GUH%#z<*?EhVGO=y~j z{<-LMuVMoqneI}a3^o>SWIuDS3K}$V9R6U7#(PnUpC|Ef$ez+6>jwK-U6C!q0TvJ3 zgHqGEApL-^v;iCypiZABKA`5dM~7O>`a|P61~)L(J~Ja}Gi{-vq0Xxwxiw^x0yIN} ze@B`(<{~4C?uUbl5Bl)qluLL zN=nzy57ricdQTr{fmXi=c%%++6D_RyZe^FX!ltNY=&skohwx-8;oMcwS^-OvPovnd z3?&`Y5hL9xxYbDrMI#}qtdbe!Jre>txKkEQX8xk|RX}}Hyav9G92QK|cOytx60rQH zl&ex0Vx3-h*MYD6cQfQY7KHS=k@F7R*I>djiB#VRMQzq`Q{JQsC0|JkHeq{oHNuD=@yi8vc%_ulv$+iwDwAw@m zH)21}t37?= z%n?O5Ir6$k33`VDh_(j%!7_lGnVYI(pNx$lSdQ`2@rJ(HJ?;wLJ~arLUASHhl&Ujc z4g4rJVCf$#cR0Fcu(cNacwc*oWaGIEgLhO2;iK?q^ze-Ig~kW3EsSg_@jT;2`;dBk zGVMWUHFNI~61$`KWnf4>>pc&jji=zcwBY=e$EVZBaR*^boc+erbzj0c@{ziBLlN&j zY+@OET_)ax$%nDY*F41k6x)BTN66Jt*SQH6gzkQ`=~Pdhi)#-)mfoRQ&TB&#P(k)( zi|J?xrr5fAC7s%NPl~T-^9tLFuUl(h~ z+WJ`{q9eb9pICqbYb7=Rt2z#Q|84aO81AKf^q7eiubN|6xB{n6@tG#6h>idI!%&i< zhAtCK4uwd%=LxL32X%R|$%B(`qXQa!NR?JNEi@vl3B7@e@4n>SFCUA)H`7bo*3#!r z9UJ)?fW0VxcWl2E7k>3YPbBn+Y}23<-+wvnTAry|{ocL(fZT_?uRm0GdhkSJAK$bB zC29H^rT=+rb7dKv0K+bz)Avcc_I+Uk+6m1OHT9*!kUZhSg~|vbS9Y9*S7x7u-6~j} z?ck1?*CvyhWEjUZ`d}tNFnmMIjb!oMx=>hLgV-ET>y5*N5eJp*r%ov2xrUx{kLpV6 zt71INGRDxU9VJ|kAB*0ZCaW@lfw@sAQlQ0!bmn%zLRn|f<3P8_JBAn;KE2q8=Q%ee zh3CYAd>UgeEnnk46RN^=3No1sb7`5(uXe1a(CBk}l>EBgtL)kw9fuF9Y73p9tGD+& zc@17e%c-^|IG7*%CnW07tf+7@Hm;w;TUguo#sOE$D>k_xa&W>xJZQq_Q%?UNDRXVOWqWZ zZC)Suj#i>!z~}uHohS#OC08--Sb}7{a3XALQs8QPR9Zgpty!w9g))6_0NRnoEhN)* zVCwr)eo4<(*UpOMp>N~P=eh6yc6rnDIUkqGGiBogDYD57I^GYirz$CF zYTm%j3f&zM;PUAZ=k$?E3ccH8A|TDRcSHh~&v|EF_j_WMZ1$vKW2`p^-NL8$&;uTP z?!-Pjk@Tvz)N(-Nn@remI^v-2NwJ_p47JKiF%ebeG0fnTU-RSv$a!yxY~snH(SPQ% zEu+!1M7Ml$Vr>KR)TbfRi?Ku(5%l2$w=9J>N%B!HqFVCDj{#fLBtUM96Rwj|?~9jl z<@y+j;hy@e060Sly}tjDjDR@B!PrW6T68bmuA%lIASXRFSIks^h3t!n2^XmE^s?kl3uG{kkPtIEL#W~zP35B zUa>YSUe#$0n<92`%9JV^?Mcm`!umN_r5_nixW4cg3rtlz#A=2dHd$F&mu3iCF>|K^ zTjDBSvwj_3$rE*45vDapvDnjZ)_slB9a%42x8RKA>I*EqxLkwfa7PN}Ha#q;vcjTG281V)Ola~toSsoL`) z$LF4co&9?4gU4SH>C7g`0_;U8U&kk_)+WPm4kEt0*RTJ%>WqG^#kfJB>6TQU@Q5)| zr=Z;eI&~KWhxb2AYNKu=6>Co7NKX8h6~^32rY_6uTxUSAaWSn&450SMg6EMON4aEA2Wg(v)D zPK}!D#Tn^w^7q8a(*9}N6~hTTxu~bu`e;fr{g4(2mR_+=NFmG7t{*}L>16~?2a+)K z=nGgoX`>k|3wDst7`u*J^6zia~MPKh&OB-`XZPAxe97dr}gWpBofvyN%C=t3>Ase zY1N)DDD@WDx5Al(I_UzlYy$Wju1d$3b`Qn8nf3Pu+W1c}*qgkUB;&?T#mfDLk)+Dv zTdr1evynGFMt-iC8qtigv~Af(P<^8v3A@O@nA~1>f`x zGT?tmy$m<9H6d=BTel15C>OCAV=6ECV&sIyW~4Hp8l{03nOw&w>02itDSDCpFmE_` zX^i6FRh2Omi!y~r)i~jZ%+uMNoBe#Dbejv{`W5xuigUb<2Oa&GdDf9MB{4k7*IcUz zT3&aA8q&)9xYJOCqWk^xTl)%#Q+Zdog!wUY5*B#zL1kzdK&S>85riDl=YPm1m~+@E z@*q`s5lA3ZaRrT zew9_uJGG3S|YqNxn=l$!X&Kl2N!Q z$w+=h%Kw@egIMyvS!YMFph+oM+RdF!r`5^mc6xvDJd1mriI#7q{e=&&u|!$9l^)0r zrLmvBa;l?f-YLAaLDcll4q+lfj zjk-_sH~m)l0hHh@-{05c{md!EZw0ydRPGted5ndFmi@&P61v>eUVG>l&=di|v$pXo+X# z&IecP$!J>{qo_@USGW8s%Xee>DHd;4ewQ!e{cPX)i)zkmzjm}sL^~IA^T_Dw==2FJ z&s-gnuk|fb$PwCfUJIYS6?ay88Z+ZCH&7B?=P)w(oHFp85lztSSruJzZD3s;W)=Iu zS0#fe>+ILH76FNp7O#`{Ru^kkd!(Fy;sX|OAV`D0v_4NaVLe-)z@An0D z@;Z|Z&#Nd~9V!=#fLEQ*bbI#trI|W+mXjLZ(4AqZG{nAm`h@c*i{knjD+?mzyZN$q z^DMce{+rxTJeQ%;R@k4_j^TDKLv@Fxj;_JElQqi2V~g&k!%ODR#HWN z#kBIy>pqe@V3?I{V=#=VB9yutKQmAYNa!$Wzq|(lfsg!?^`XzK`1{L3?}&C^9v|v_-4yC@Lf1?ADxGk+9bK<3+*}|2ij}0iCor@ z5l%R<2&;xH(B|pA(-%>xTXMRc=_V6Uip!#)x7YsaUGF~7JWim!`FVQF8|eq1p_S|J zH^ArBJbNdki@~g#MM-m>H%q;Z{&H#E_B39{K8~edl8i`Xv&O2euc7^lYE;2%K^?!*YGx2UNSQAc=bQ zi`t^p6~iLjfUldsxnGuhJcAhC71uOz;k-yk5|WT|nZ$N9MJgSXWKW4y*m#^cI5cKS z`O|Em47lsyw2E<-YD0GFmKC%Q>s$hUA-~HMYe9?*rv_oQFlQbS`-O-5Z*%U}$WI5> z4o5>l7g$Xvi}&032!gl;-{#pZ!jbOR0?X&C0p7^72s%{?8Ziv%s{_;~OHWc8?XTMe zOW7+65slwc@4T&dae!UdpL=cqQYiEIpmd{$e zc!XJ?%+-w?RpteO!N?SIiKiqPL7%d-6Vj4T6)X{1P9k9&cjl^>ss^<749TrRe$XMeh3H75(jljzt-$~w`wzmD8T3WIz5 z>GM-$l&MA_h48;JOkuLJ?RMsg;dOuM`A+rx>S)2RCQ8Ns?9mgbhE$lY2H=1Vg8sZ) zy>WCm`c~t+V`YXdFeGLpFL;d_LT(G)Qwyh3S#DuyFjE zF0ny3g(*(+MR{YX2;(nM8U@~sWx4iQM_O{JVVsH~7xZqsP|jFDWy5{gUc!2lEySzu zdanGY|2alc5=@;Ek64O>O+G3JccE&MI-Vk0%C6M!ORWaAcCNX!`I|T7(uvlGKUoql zJgP|ypM?#V9{mm$zwETBwH|^IER!71;VT7Lpl}lDkc1XnkWA=ZUNP@ck{&MGXN@_e zUjo-&&=T~bv=uM@3}O>MvVd;_dX}>ikV_2La7wZG^$OF7(1~}elrL#C3;&+eBdmOs zVi~_mmf9eJetbzx8W+#2blmt!-oXo37K>4ob*lVf#_=qCcYS3EBPwWeMgo6S(Dbmv zZA5oJ^R&K!bb#m$_V2ZT3>ym^B58~vO`8jMzm+}zxbH3XNX0wMnmK#MS7gAw+vL2r zaaxJlsUZjh9ID}u1P(s_Xo#S8=ecIH8Mb9`gU~Es$vfCx&Q5`UMy;;BtGKyZn*eFO zZiWmMYhDHI%|$mKLV%gGXakLYUUCVRx76Upn9a3#vU$MZVc`_;S8&juo!c=AmHuvz zj0lD@b+`5)${1;{DQIGn5iN`D;1pK30@)h5P2uvVJnf>+_iK5!N*Mo;J5&Dle$^$Q zooerYux3#2-H3ZmR1Lh?#XKxgxMMa%@dSrX@Wy!m_6Z|Mb`~#D#w5t`4*paX1Y{jac+HQO<`^^6!}$hMZ^!GLFRb_ zNk`R1?md!mQUEVWP!D-=m(!}w6AUe@ZND{>SvwzfL-q(M=~<@h&l?6C`OyXE6AZGG zsm&V5HEH)ZKl`YCc%54Q^j6nQvl*|B9o;|&<9$HKpCQQ`BqR9|f(HBZBTvjBn`sG8 zm*%U94mDUO^fr%~%t??0viG+ido!hqYE4M;)yqdJ+Q3ga z_G^RtRi|~lMsPxJrR#}i!`A}>XciA0;n7bIw_x&WggEjfq=2JD|74zd78TU!derG; z-i)MUHH?DuOJBfoSxX3AC4xlNv)0aOrmoni0|o5hEDLFA%{0v76)XM&a{Fl2ZErV? zob9{39^0qIz^ook-Mza;^FeKmMLQ>G_fB$RBRll)Z`Q!sckT!SGL;s#33Jl;mC}_M zwu{od7{Z4G#LzYE-#y@kqGRE51bC3rdANLnrCbdmaQO1bu;c_thg8e-$X3Ur{{x3| z-lgP(yog_k1)_UAp95*F5l4DaZeKBF8#OBiNg(KhPBjW!&6-XTaK)ha8K|7re2UNb ztPbAWf83H9i~Ap)-ekPw{V3fW{$n@XVZYhL&fl)ca&=;F;G-DsuB(p_+Ys6}5B75Y z8U&C0ZcxW&F{Y7I@Q3bubiSq=EVr_e*Y>GGRqMv{P+!jha=kTnnU*r1*thV|$w0n~ z+5bjFQYal~EgB&u>-X6#H}LHWW4--}qnRESHo4%p@@&|vi$$dxS|Vyem)>_18);Wp zRT#cEKv?M~Ei8qhuRJ7k@ho^OS>7px*XDlLH?r|JGXohx9;@#kL}z0IPvI{y^FKQz zSvEy~X$_}}6rr7c_8YjFQf1FNW7Xi!&Y_1OCK^5OQ=)Kg;4Lu@DhQ<_^1SxKW- z62Y%iMNgR9?k>x2(Lp(ONKJJF$wI_uzw+bKk)Zwwu8U^?V_0EcmM|wlY4q+!XWEx*73=nb1xC){y!1~p-5_R|C z$g5bXzhr>qLoai4y*Cwjh^|gKW++y#{i(wQScNwPjr{#)Js}3G&j1{qoX*Bf)`9N1 zweCt@+P}hGm!yC`KHXNhcOX0Pv`-f#Q6rwfDE`>{gaN+bUfX)Q3VI*`a)P$2jw_v! z&xob|cA;3f?K3V&p6dXwy`isRHpIZH6~a@!ZwKG~vh7g;h{37R6dfJAG=3leI?E_l zo33j}i6auGAAj`W)q|q_mTaeDFFnmC>Iu z0F+%PC8tdCB5@8Gi+v-i)rCGLZpKJ&l#r;>OzO=f zH`g;2>}e|5S*4q~maEqC8FVV*;N->g-WkT|&vH7)IB80@RVasBUmg;cwWAOCY-yJ2 zy>JNdO8g`Tg-|NjPxgICX#;V9PN))FOlG4y{?p9{V6ipdvWF0foCX$euG5G=#s-ZH zo_=iEoS?}_aL%7HgioBTyk-fne5a*{?;gq)-8iJN;>L>X>}Yj6(Q1_@3pYI@vo!XU zUNJ;nh@MMGw0nxEmmw7V;aGWJ`g}8U4OTl#MVQO+c3xi}srP5}m%j0W!^^*O>$N5=bbI}7iEiB~k*#WW3U zh8IzFIMGHT)KhI67iyi)sl6|=1F@aB;1ct$-%=0wm18%; zL0Cci$iUOMxuCijZboK~6fQ8d$HSxV>3b^*^oyHX8inf9=D$swG$87VfF|BPvIAo^ z(hi2-vVPm>7-$->_9f8~5IdNFHjs16v4n)7K7Ysq&^>XJNr#lI4XG-OI4pD29Q3J% z>bav?p<<*F`K$Oa)=iz`REHMUQ{#- z^u!GN0=*xHFN>`al;D(C$H#_U*-xb%N@SkH4dPzhd9P!N1KIIkc5-sEd2yS06E@gD z$=d+=5Z}W`0--4na|flWyuO||t56NV^*4)d64D_lT$kW$ar_T*u$Ogv-Pt;)p4~iN zG&AqvdmER)tC0pj?wts3uA{TMn{6?+`drBK>5ZpL<{9~a6iWYEcg9o1H9;x;Q+O+0 zZf~c(A$h*u1OaXOyKgK+mO5qHGI6yci05Xg)>y-PZbsJb2u5uOr9|!g-)ZWe9M}?r z%hQ>Ln;Lvq{4L;~<0{^bNFrDBE;h}+Bw+K0fhQa=^dhMH^daR53oyT%!#-Z;nLo#- zazVCe-}bqwto=@`)I@>f2*;j$d=4;RUWD`JL{F0`Y}e2B2Y*K2tD0+h{x+f?|K%}Y))@^TP(=j@J#u~VQhPcNf7py@ggxigC zEjk9jhS^)zjKr`f{ohy4)WqZ}W1xp$E|T8C4HKDHkDj-n#iM4e=pvr< zdZnm8a(kPCTnTE~$jZpbORHxxX(~f!$A^HuM@MgHE^xpqQVtd|KW7>n^sUMC$km8X zIFDQd_?*lfjeQwPJ69E3)P60w=iI&*D*f;KJRth;-XKtk&JQZg9bxGzVSmpt!71Oz z7v>k4U!w4yLqr$S?_+C>8xxwD2&K{uN({%=%r&Mb$yavVQBF)^spE>lo@iMS@glLy z{&e}iqI;Cw`Td7W!OEQbZhU2Swub(E2D}foYv~Q6R&eOw<4yna`D(f#HI|43 ztS^J)a`fe4k@i~FdRkDX%}4&7y(3WiV}#-JCb4q$<)5IWZ7_w#cS2n}L;A zvv(QgRaN!X&uR6nd3;&)fr=xlli`IfByhqbPhaBJ2N=6Ka;~w1$Ym=HFc`axZ9wyS)XnZ%DB!aKqu!Z%R`EpF{znhkOL1|7 z+DKt_cU@r|`JZ$u_(^!|aU;1p3Ty>1nK^*hwZATX za@oLB3e$f%t)P4Sn32ee)vaXZB-3`U%A>Imj@eM}!=~Uz(4*g88$c?PaN06JQ(3Ma zk8pY1`7;CPO45+OB+<9AWm>k5`%YpiFK{rdn>0`qM(EA)8PoZ`;(jB0qf6b4hynO<%&*LO_Y_QxB;J(D z&I+(Ni(9WTYL-;O)Y_zVo`@W&Bg-WWz>AjQDd5C#L=1<6&dQ99bOPHzH=)8zDhz*W zju@MY#A@HC^vC(dx4!J?;I&bV&Qni7mrAZNTk=Clc6Q&lhEutP%CYgah}gh^{MwUF zkK_*v5mNbO%I>p^)W5Lj$+=@m{I_hk5hQ?w|MkQQO8&rZ>s}js0gy zvDeo>`KzcpJgr~*>~;jbYV`W`r~cZz6X%uwCr-q-OS(c=)Jq&KKo>8 z{7$(;1WnrWQs<_}35ZCPQG^LkUAQ1`-X$&Y=TIK`+&;6C4b6Uj7Sr|aewTUj)fTFdD~a9_Y053HRNJbPv(bON z>%XxK>&;iAtc-{_Ai{RH0{o45%<5b96<;cB2NvX6k1#aa@;vs{g(T($Ouu+V5n}BG zb&-`(MRlMQ3uG2?gv;6;bgykMf zX4X+fzW|#52)aJWXO+sjx8uZGZ*4rqWG6TF>@!CdSY|pD8^qMEsV$>^^<>+vp;}__ zAL+hg8yz&XxB%#^-@!_zo7tqpF#PpQDsnKNiLP{b$LU9DHf!YsEU9Z9ogNQ2DSxdz zHVkbbb-UJY_6sj{yuKXFh!TprqLuh74pa_GWZNQQtRc2%J=H-wyC%T#nt|C(=GE=K zIYoWFO+c;pDGs3Z)%e(m+(Eo~CVRAY3s=0FQ*C=;{4r|L7&My3yJo2SwYEbFU1{MA zrQ+##ZHx=MH6>E-A0KACGLztDzEb13W%2>XcCqZTx~7h<)rt(C4!wzuwX8s+0drfF zrsbb6*i=H!1~vk&d+h$Zsw7^}d*ZfiNdLn=p;Q_VkfP|^{-s@-TPdN=*ONf1CKX>#Wj_du^*EW?1 zg+qV;U!n00GOgrc6~hT*)1evdV!wgB@H9p5%^VM!QR29mXOf$79QjFFC12|*sT=dH@~O%x0d3{S)wJ=5csN7zhp6mZjM~rZhzlU-m$VOG=DRHjc(E!21vDjT0p9# zHv4#;wMR$O+0gB>bmR9&93N>ak^Q(j3vIL4u^`nsaTn2Wx+T1P?=*K5NR9l}#F-#@dyfTfaE-sA;OSRu>$19%ZN{D1wa7uX z(Bay*b&}_1z~~-b`^x_Qj5$zrGV)(d7#HQM#{$HE4b8*Y23!HH*Zi)wi^mXO1_?iBz}NC8lIyj`duqIZM5bG3v3EVg|x zM#JP}UC5B%*Z{9+U`oTW5`_T9etklv`{`DHoCWFdu*0i8eR5I63Vr6>onRl`xf&#V zU`pd`7&I~=(QeGEjINVKr5oXvH4qH~$Yups7tPe*S$5hD!n+E{SyVclyrK+>>8MGE z`i8{~o1^aw-0?YpCeq{LMYJiB14D>dk=!p3Junn(rx(0fMSn_`A6a0c$F=rGx~bf( zpT6Y{9PJ=)!-jxL`xYYQ=7F+l$LkkGhD_4U+KigAfH3Rt5AP9)nW`6$O~B!bYu6)>z$S1!=;2%$%Mc29N^_h+lu4WccSj9=bU zn|TW{TM-&orX#h}YCJ>O^#96bfygN%0qKT>f|NSe{0|&%i*C$Jh1fX3qTmjZK{@zA zeJ7u#rfxZboUN>G)>ol*r^7ul*J`Kb6mZSvYSKHsHN`Z$uxPQlpnG>Icb?q;;oNs} zUDd`0iUqLf%Paz$NdjBYYo19SRa zM1GP>S9ZUY*9!NEk$JCbCfasJ_|k&qh~WUzcVt1JgY~=z06MY1f;VT?M7jS22VPx3 zKgVFj2Lc{4Z|LIO22YSYNojt)aS1w^tb067%_8YAYCZUZEK*K_^9vqUxPRChIHhc> z!!uW`IE#FzkZ>|7I@15WBEQ%B3XjNK7dqOch44+@Y3dn7lMZ{y>%^^$?nP4@2Ko^x zSZIinyIhx3z=URkpJDg#v+w1OXWP83E%yD;xFq|^2UnUh=7E%=rTPmp@!o4h{ND9A zFAV0y!Ck<)OwJvb>Li*<&x#nKq{@g70>hOw+eB&`&t+Ev_$hKHmW`tp&Y1j`a2B+6 zO=P1~KTDroSVMQ((ZVI|r3=r0oMx>!7nr#$`}j@|?yq!XE1#DiKE-xO;m^Nl!xOLF zXc6Y`+J)9!mscNlOxt>(L`MV9;z`h|8PT*86{%R?GB!jN{ur_frQxTIg`Rz78Z;3Z z3^LRov)w@^LVfm~{uu#kID?EUQZ33_v{`xE^;O5Gqoxmg9YaBx85`^)1=fRwVY`ov zVx5(yF6-^L1UI`a`#&E`0%1FL-S7F*R9__w|G&?z{dNPnR2jb1ZA{C}wlf2tL3pTq zR&q!V+POygM@MI3x0TPE`J$uwmV2$pO7$(_$@&=B2KA=W%KZBkGq0v1MD!Da+9lKD zd%17NM*RTYSWfr7X+&(2c*9s-ND}V>5zSkRbRv<73{gqnEUO9!ghR6bM^A=BMxzgD zmSkB8173t=fo_D%tV+D$+cA&@MuJ$TlGHJ6W0!qh#tTR_x3d-p>-YtR#7C{~j;42^ zTPN;z6AY0T#!BIh%5Uk}oJ=7VlqL@SG7b%mn0m2X2n+e{XP$B2%k)FyAe;GgOw!7M z^=`HcNFXFeW?O^fGEK_}MLoBdnh^`K`8b4kM20%i75R>XKg+|~7$%&;4-74^W+ZQa zrh)Uh_vC?~^83Ei2c&28?rzmu5yj8?#0HCuX0ydI)y<@+Msm^y_MDs;V!zcj+ zf8%Lt9;5K)up z;Npf;_WDH=f9xsS{I0VYT$@MO@rc{}0te;b@Qw~@>iqMPHnobM9_tYJ&cR9f$UG$6 zTkHBmv~$Ds25J20M3Qjk&tx4Mhr~UDz=wV9q5qtSu?22XBv^U*~@0(8=*1B1*N06qaZmaj@F29Gd0MS@x1JKQf<1x^_H3 zDuXX=^#}CImeA0sICrBpJZeTlZEpm^+aqSIyrn#iHa@6KE@RAr>|~@X5y1jNt4d^< z_tK~^J$}JonEEDP(Gu&f(z4&1_%}IH>ZT=gr1%344CBU&>pn2J3Zz;2qf~Qa*xF=` z(wS@q^reaTsMgoDB&N!K3A*cg`2xxOhpwQv#XFx9@@=SIyL zYu9j6L~ZRy(Gnkx9fMNLk>S3g*r^1)m*&#`rb!q_atwvMk%35Ky(gVhn183&ar#YL ziZL?xT@7tYc6Z&P-!|zt)^49SiHupB(He_4W}u^sUsMywXWhj3oaGJBj>juN)zx&P z79Z8Tvw29y3Htb(9Quf-xXD%G*HMq_?sqDb`Ro^x;HZQjxxQc1AHS7#^LmUa{kI99 zTQaQ#qBImw}gr#Hqtp`%sc4)^2W51lt-gB#)7FY-Dks!*;HZT}!N(T57&6D7LB*J8Lz_(s6ujx%Y9LV+ zLfcopRz+wiM9L_|+!_7G#nisbc&4+^7UhEK-p9|KJvSQA?b>Al79 z0g4X91`de>n=?W#{s?|dv({v)I<$E>MvdONfX@*6>Vb~vS2Dh$9b>I~B7X+`F#^A- zh2q%E$23Mm_%DQsRulkR)o@h$xIF{@jL)#WfIG>T(gYfy7bQDujI|%qGUL$Weq#wL zTK-LE5LFu>6r(CtGW(%S`eVv#>vtww)=lDXZkagSqtEiKfT6b37I=PsF2C6$MCfHX z3E_+3{+3AW2NBQ#R)SY`F59@m^(QngngxwOy+VcW>`wbS5EZhO;_DD){?oyTl8Xsv+x^Q4 ztzuv=|B!QHqc~S>PFi)}Wv}k1HN#agr@T_7Q|0`2cv(&Q)|-_Y>M4_Y7eZ!Qv*M=r zaLJqEHsCVZSRM2O1~c>w&t7hmtgKnO_Eod0SZt*&O*ncwCWk(}e$CS2;eZQv6H#E% zLH=dEV%FT9o1?x-rM%vxLO^X&I%}wJBsbIkc*Vcx4>HoKtU>P2Ul5DGe0YbjwA+*z z|54+fYi4F%%`R-KWhrh$9sf`~&)(#6Y!>}<;9S5IXS=#|L>+TX^0tlc)a>(r3LE0^ znTMEuI#0NpO4yiUbf%k&++^gP;Gosmm@+r#*3A5x{y~hpTifrBBzJH0_jzG(np&|F zT=4t$$@O;(-0f6@Vc%r50A3dXzsD|&&G{`Xy8G0YfXZ7~malrown-1Bc#QC;Q zB62BnHRSxK>C|TCElm=G4V^Cqn5qU;K$8IuFLsQ}&rMnVc%OjnkY2c`A3VFix<$jj=kn^%Y}@C9%3lGx8@RUFXQ3jopTctg=22 zOg7so=A&HS?(_IK`TD4TcB^6atp@HKc-Xh%@f}8ut?nB&m4SkPGyzmVqflHMzk9sEP+e-2DgiHGO|HiieWc|;b zwFL*H46AK3ux1BBNm!k%6e8AVHYMWWR;Y~ND|Ax;lx@SSXdyU5gGw%_2=H!^FvL0Z7 z&GYz*IVMo&*5Kc1*fawnuRU8}ZCCqeKP#+KOn;=sm*-66X`baQ04SvY;5_XF`W#RX0QrjECpRO@6|V4yWJ$v4qM*b1B&MlY6b@7^S@)7|&!7&Jb||Wiv?0$Yfi9 zN^Z~}K}h?l0Y#{QH6Ahm7of?RmCrx#EEsL5DHLg;uM05Cq~-EFdmqmU9Mc-Uf`o(e z9%b>BDAfM0-%i%JTiIO(ZVf!ufq@{Byt6Fq&1aa1F zN#ASy#(QYV{*VYbI+;&yuhqXi%z}c}HajpEnvGyCZz`O8LCbvbbY!c6@gwek7d#h} zLbg{)fwDA2GzP)S4#P)o7B=~@D(j?_$Y;gdMpIDbMhKs+b*y0qi*`2~HBc<0p`cGW zE8F~tYC4umK15T)VmbOue^KULacAJ{DNJ zw-xBKaVPb&eRh!rl!Sd_d41j-Fo|^n+#SO6-UyA2G6dym(};zhfg51D+FN?p@M zu#Ah?NX1!037Q543(AmVG)q7G=e;Ojs+FG5bErNq$T!CoiQuq`Np@j zEWynLca^dN3^jHox0@E1`V2}%(wD)ayj`mW&ZV($mLgc1auev%)AXqL^V$V)-#Oe+cw+r)8e19i zr0D*XDTmE1e{mrz_|$>^P5-*GI|T*BV$(SZk)p0mv}5oFFb-(=C4&X1`JCHhgcR*Q zqmnz1Dy!XiwF$~738tOGX5VJ{3RBg&u=@NsEwYf1lIGrdlZ{!V`rr2&y8k;<_QW4+ zwN6QR*HSgtcK;qI$f}-vGx5~&iV{D5){;R6mUYbfT*lNZ=@47qtn8k1;p;~WVQp6H zPVud;fj`xNb%Xga)6>s{D}~WQ=8yAj!@qH&nWyRJTbSlzyI0e$r(9lgFPN;+03E>< zls_3WFtrXmnUQSA3GE9g1FBVD=|A8W( z*M?e=k^gDs<#sHChFD*6gzuUgAf?1%jp{<|eIJG}jP|O^MRNX?jur)a)Tw8eo9&n4 zyoAbT_D^(A)0{ON!gAerwc&JEj80LBXvD*}Z9Uv%y?y|AU1#st%pLh(?|jcmh<%p> z_&ct%UQmF!TOyVfjwJVen-Mx{(NB8kPaa?N$E$4@dsh?jodcHs?s5V1R1z8tdC^^bb73xn;U*CvDP+%zShAz~$ z7L!Mx#Nk%@vP^J@Hl^qkfwk2F%I|_Ml;zPi`{v2f=Op6(9HY~quZ-bY(m< zZqgjUXZDqALPlpLRZ$zfkTn`fv~+!u@nQ3NMcJ_h`MgxMsqoTnCj7|FX)BxBOljt> zE5?gF=K6oSsHPZWe2%wj$RP3peNKlNfj)WqQsbCRBznL15;<9O5=a?UU!u8E5?VUF zPKViaA&l%B-m6UIB5k7gv4;2C|AJJ3oV+?13Dj-UPg%hF*;h%Zux)l_N-H08e`2c^ z!AED|zKRoBT&RT-C0sPY)_(2ni;v0-&vH%YMX$w9P@JRDb^SWTHEJBAO$wtVz1H&^ zd3^pPPgOf}xyCY48HwE_0gd@1eBo%}%~FVHTupn(KV|rGst5^qmGSak&BYrQ7)7wX za#Yi7=)yxx_?!U(9(gD+4kq6fKlLjv?#u&2s)@^nUy*%GJoCigTEME)`}1 z^kPw#8Gy=iyaB9lN!A@TXZGeFfVyAwqXLyAF+b`VY75^ZZvOqj__eLo)6R}Q=#F8q zzJ|#*;$JicB8)Q{q41fbi1RBj_#amc&872b)$^oex2w;qE1AbG>l9Cgt)czniSQ+z zDwL5-qXeO-XCNC|^*oT^1Gju7itkgU;8T3#pF)LCAWP+*0fQ>wOlK`~ws1IxkKGcg z`e@y%q-dpbb~ECKHcU;L$!ez7Fa-{K$I>#86kMdsHt>%zbt%e1~ZY`&gs8cbA8x)`-9 zA`wB_bp95&sM9im{PZh7WODdw+Q`w*mRI<=&CCu26>Ja!Z40^)29;c-^Vex9yK9~8 zxJM+3#L-9J<+U%f9FOz7)5=c~82M~ZD_Gx*9+FvpqudFI%NUFshKCqo7>+HHl{)J@ zJWf)HC=$hL68Vp#Z5K@>&5MM=Rc25+&$s?plp_MHvj83D&M_-r%P4W=Sbj8$3f{ zCQVWTSd@Gc{kefq(hcE}IoomQgLR}(B44F}WsRcztCpkv7HPVz)6`-zfG5&`+tgy? zvpF5NBeK}i-88iGqh>6h^%=W#!X@8@TQu{>>2bQLj}#OmmjF=62_ZJ^^O zVa0#7-bXXtO;IMtl`S=ODvk4Tu+XY&{N7xINiz*(MPuT642awSNhf8}9i0dUc_8#2W;;!e|~J$*Tk=)O%Z&kXm3kf9+hyWQL1AU6k=- zc9QYFF6ck&nS=Ae=ggzL%AT7LT_LpNrssvDiN78%a+@BC!$yw=W^?LXH;iEB!G|rS z1RsJWL!n9mzfh+n>Z50GH+Lex7mKy&eM0ie%#bd2BDt1+Yp-Yo|48XG=<4;bO3ly1 zq>;a*q#iVLOo{bP$KjzoFG<>-zB#>--dA=Ufoj7;6)S&&9b_~X;ImnRlVNOkC-iX0 zU>B+Ltl`Oy;oS|)sAmxp?0g0muax#RS*Tztr*(&fLBMpwPF7iwN1c zaGgc|4=dryr^BY}nO|)r8+Y?Rk*nmfKTTFWi<8d%4>)~kn?1$()L zc_QM@)N0F;G^Bh~EotcA9B;H0zTd+}FR5`d_tITTLCzm1A(9+1^h(`$2~ zqHdcqE!?hmHlAknXtjtzc&QSXL6uFyl>l$15I~D7Xqa01HJr~YBDeskge?J!(fU_UrdDU=Kq_eXRgvPxAnO6JGjPfPyWH#PjSvw*gzewAq)YJE5Vu} z(js;}@#F*Y9nQ3zvzmWdnE}n}dMVd}PY(3^BKS_cSQRo}Q}N4b#UcJd?D7h+pGc3e6aU%w-goqcgU z73f-vzvdP(RB>wkv^!~}kFaKHtGBgLNpd@Z?o)Q$(D7d1qc5@J3D(Yz*iZGg9j;Tr z)jcr=#_naSh~UbK=`>>j(Lk?zmI3%#F!uf6Z=v@GKc5eF9v*mp;;b0C-ghbWF|Zik z2CKEMISoABV4g(%*J5Oi-N0``jP~3aCzBBQvcandi8e$BPk}1d)g>}-_whp^S}|77 zT?mQIhPSe0lvv&Y>l>k5v--#XT7-~o&H3)nU9CWGGdL+43T)cl?iX*Kf(7$hjII@* z&v-MvOOL?l<+n*sc`>?fTvZ&qJM?=NgXfDJ6^M7bnav5pw3xYyZuCFUlwXzrjiL9 zwU$;7oKg?FF`xR1dH%YA(e*3b+_%AY!uc}Y=KW#Rew^oH=&3uQT6xl`%i0Lh#}eVPt2*qO03aRYu88uC2&m+R%H{EpZ_)L_XnG zHN^KzO;4o=8bu!jCVQ?S^~Yhf( zh?#z4QmK3Ts`%Hi;Q7RHVd`QaL2T6|T81$Vv(~;4Cp7GCmSIWXf(x>xxpMa(taY)Q z+tZf-9I#HtNsLA8e9ko^WJSHPD}+R~oT-wC!BbHjjjR4z;+MCV!@9LMtkjBa%cNz9 z)Wxea;U%}_Pj^DU5!BOsojue@bS)d^!#VH9lPs^dTm?tu4OXF0o5wxeZp zL&@_zAYjQRH}f+0k6&Kh)hZ!TCqdbl<5=Q2?RP2Ak@wvHZz1=8z=JApE!rAZiYmV& z%j8qDFjtZXx!3uFJW*ROMct`sy1PH+pgXa2dyfYOpaFe0MPZ~vN5_*E08f}2Ej;y4 z#o=qnW53!CcL1I1vwktpiB0J-LXYa}A@>B&W5XrOFBdH95b3c%R`ez>gUW-+vK_0$ zS-mN3Z2fjO&X!^knwP`d=hBz4mprmx7(HWLH$@-I$5QVXDsp|MTx_3i zGW0HQN)mUqjf0nH!KRj^Yr`k1Kshjm1w=u|hSJvo(CXEhq;+dQ71>CK1iKeu^kgzD%=83M|l2=oLO`X1d7veTrKG=+KIwD0!t ztVUHBtRo`t!c@NXMAf6L+1(XmH&7ifpX#^c3GaTs4!-}QPec-JD@YHKFbNveF+%%t zg)j2t|0(*dg8tua?+#RqgXOKBmid#t(()kRR=ot0RXzr;Ch|RhK7C$ar?M$SJuT1k zlrg|Qg8{urE#$m{nw16~|8j7?jezv@9P`~J+$JhY)Mix0DxtF^kf^0uazUBafzEh7I)N9uher1^zqAkrT+zf9EMrqi&Tm7z0Rl6=tXEVRAM4~Dmx<@lUJ6ux>tY01zvsc5Jm0+E0I->73(Y(8`b)&1+0rq-ya6@S}}8$` z?rbQ6_=<6zZ)5`VRlt(wOh;r6zPJ^y)lQpiCfSXw!a7|X3#1>-eYD}kL-ie*=u86vwcm~f11fU zT}=27$k7-5<=-p+(A)Y$_h}9K{Cy4~!UJ#iJ$j)cwCT@t($%zfdt5>-I>UymM4PCF zHp)dIDmLKy{S+SIS{M+qA1l2fwxxba@kU%Djc#EoF`;~>4b%rj=NJx5c|dnVyX{Gi z&zwN(Mcx>!9V>z`djrbW`s>qiPZ2ZGvF{7%&@U~0ukei5omZI7Ro0)ywi-Nh>i0H4 z-{E2FO`oZi=Og=p8@}H)s|LLD7S)6|5zs&OIe}w{v@QuivK}&f1^njG@Dd6J)vi&B zdMX2^vk`1x%#OzyqQa5%RJe;&@O%k&O)lgP#%C`Ia1ta{a7z>7x$$5kGRi7jgbcvOzH;b}A6>gumAB|vOBjxGM8axWDM3CSq92vPM_H~zm`m#3H54~VT}9fZP) zTKvbieKC**j>AO;ktYTPfK@TpYh)W4-k4?2Lsg}^vIux5-0Fkrj)$>CB{jmbUbe`{V7j)O!9;#b^{@m_+;{tSBfAF5a zA!)sEe_Ce&h8(pQjQZGZV5=uyu?lK$%iKB%Hy+;gmIwje2Y~$8L7&+>zi$u3|IC;4 zgv6a@JG+oQcLy;vND5GNFPC}@jE%&vmYTK@Ce`9FLKdaR6tMTe{8`S3fdo%}R zeO@QTmYDm3C6T9nyTtY}QSz);#_QNsqJIgtbLHV#AI}dnrdhpP1ZHi3vtvx=l@u_| z@`Cp>7hF5YxsRKun5t7P6TR$#xEB^Iu%NG2TYyiAGS^ERjul@-e6ai^6}X?CZF!5P zUgll}HzLPCXD_}cqz+I)VG*{X`rETN8jvEOwEV&a$c_Ysx>UljRViZRhL0%wwGOc1B5%ia5-s!HK* z3}tK)FG&g3l6#4=VP|H=VV=&fLEzj z6&C)jI`{4Uh{3JL>p4|N1Rqz^@R}EXsdS#S(nk1z?~QSg>@x?eRR(sbVrAW_5X=3- zcaeM3BB=z1V*cn+kw4F^fj$R`0^fS3JDhnx`KiT6O)hnS0<@^UN;MfQd76O==6*q2Q1p-hm$qM*Fp&C8i}NkKnM>(t41im6D~!6FX;jc$|t zi@_(NVB}o~s<`gmUi@_UiRBNsH-_K-32a@x?(5AdOlMH4>^wg@4R-46Lj&>rvw2Wo z2yfdyQW7M_*5^IYk3&`kTMbz*qC0vC-9Pno4BmIW8&=8|G4Gk5d2VML=M6A zRUgyUqGCcIK9&ocn(Aj%xwI!ME841cqID|fARTUz=%B3(V_bk4WzocuhL)6QQkz55 z$!=R>$yPwJYUR)I$H~YYYhmY!{DCZb$X!8KKhSu8`=Tf(^8BXK>rVr!r$oBQ(x1Ko z9;ZHxCtCu*X#^RFTnGB&>E%t{Rkm!9s-w;{LU8ZUZLs~D`H`fv2Q2s}yB#CsXA%0m z09lyf@u6#f&+o3~6K5?2^Il_hzD$_=X>2V={=nu=cus?|(4FwMK)s0V^icXY4oRH% z604N)@5Lap>;c&unjOg;NwgiWqG#s-S(bBo^rf8~+Vt8NUxWLG4{n!z{j6G#W#-1u zS^}>wK}{>rV=Crdie>qs9H(z>h)4q>0?cRM3H6-PM~OxYFHg8m) zAKv~r57(}Lti63e_xc;OAV%H^C11nhg!{ zx|~m4`JBr_$OPSd$o!(Zgk;num3$7DCQ(lkyF@^1AN2iZTN#!ZF|*T2_YP+81CY+W zE{Ovht0>NP`M==!ZhW|~K2<`LYD3dd>NbAe| z0U)cynT|- z@9ItZIy|!fwDNeBmGQ0=8>ETFoV(Fh>;kSOo&dKqe-raU_mXCU@4>|EW#(vqNyA8Y zS+IK580WINg6^J%qY%QwJ+kDP6G-o3YNOAKeiF~^Eo|26f&XMuj?gx*{ncM;ermy~ zNNCxUd3YDU|8fU1yi!>l?fZc5^8%e={Ers({+5as_-EXXaCh%}vw2?iG!I>dE))Ae z(vN8E1MMH2SPi9(EZ4mGca^l;nupmW#1y0;~}OCEo4R0w!dluPqQSY&<8r87X1bEG)f5QUqRn@s(c#AgFf7X z=r*c2p*2=@Sx>(TD$r~aW-2}d-$Fm1CAMU1w!?So2x*^R0@H#KvdtE~nu11VXV)O0 zlKvx@FIUQUL(RTRCn*huzKfC4R1++Lqn>~KaeSoAWgrF_)K$~RQ^Df2P^mGi8T*?8 zY;C(Dd{ChqM**&wl=`6YO+jBWt@PbpN=008W^2v|f%bb}l3JZ1kiIe{}81#Y_&r8rl|+bAA$imMP*%( z!PIBgm4k4#goC@qUx?7VcaWzL*Xp_-n;lZP+3#IZ+t2ukP_tepEssvLO`2LduD=6L z2wfo*$6G8cT02|V{l^*m3I1Cz1;uVRc3iywVjKbTb z6%L0XIA_&g`pq4)wc%03{ela;PuY1tQjb&|!J~@IJ-A+=enQM8-x%z0dD50Kmwq`X z(L}mfy`2H2pZHUpW|oaS{xbRK%MdyH|0b;e8gqO(!pbu295wosg`iC?$Jk_#%jL+> ztMSi8&_5PLXG8+|I6^mNrJR7{5r*xfDYmW3ErAqI3x5Oxo}zKiayP(|9j7 zlYs1W-L~3Ny!(mC!U0(m)6Hy1UpRMPntK-GfA<%dc>o&_}dsFfLG5dF6Sc6Y}khy3Ia4$mysY;6LBrZ0XFkT?RF6N_XsS>V$ zZ;`m1NsiO1_=Wz|sHO)}7ncGQwNkK>>y?TWMVjSLa?bvf3D<6s=#e<6CH=RCHa^up z-RfrtcMtuoTql-E)IXOoB`Uahg2~_RgR|m$Y3VeV%Qp5#$+%WRMH9r)B%)LIS{`vE zn&-`$#-KFH<)xAT_IW}iT4tzsOEFr!l@BpG`O6MWy5}Ag)15~0wC=!SlVZVcI?Wkj&r5Uq?&QTb4e?!$q3e$!6_J21jtiTEtMm__m+4z(FDTa%kME3ZA&%b|nbXjh z1n=$YdsGPJ9L%8TsUI3um)hCU$c5$v9R+vG?Ux1WHeGK|CZ}&Ik8UTECG0H54Cna_ zvG!E71sBqU{#VyfN7jv0#39mP?R zGX!A6>Z>*}tbxlROvFjI<9#Dr|K9Vbq6r352kA)qUZaA4}8$f^ee8v!FA?0eX+I3$|V@Jkbl=IEr4bQV#TzG4X7ffQr3^YoefE>5FKJ zQk4!m^U>m+__LEUd&=j9nPVUuT8=WAJ{gt-rBBPEWQzS7Sr1IfP>yi*291uSWGA zZvy`&xDHs|?P+O$E2<=2#i$dS^3p?GHwed2SM2p5C}^ONceirWcyoVS%Usf~`NQ|Z z`36q&@+NouUF|rQ9OKYupSvHl+)+foO)PFVV4ph7YKw-}_t#u6B!R{Yx9yBK9S=@F zdK2AFm0otdtJFbUv*GTcJr!#8TI<|UjCmyS``~&ieo-p0@*em+cQO8e(<$V=IV=Ttn-BwZ$#WytjyT$AC8rLEyNY=q(?R|Zd zq~E+{*jnK1tz9%#QS5*p6&3aJAE)feenLXuP~9V`07P zIXcpAyL!j__-!sVWuVWcsmdBF?Jt$gqeA#-E|`cHUQX$OM;-y4O}gg7fayv`(8kV% z#4nR{qk40D=lzjJHFT93Ti#|o&-DZoD0Q?nvnBIuYCxWrl4W0l9Jg_X)gDH-O0Rs) zF+ulJDwD8+8KO7CvW~@>X8fqtE+dK$s$VqPso4~qODtrQ=5}-`fp%1!1SFPvbYG{JUN|4jMHXOIuo;+^ zpaFtd_Wj)yX*;*uff;xemX|i9MR=8`Gi3@;wk{Q^OAk)nJ{WJJyS-jG_UcWCs)Ynu zEfBTF6)=tVXdx9{fk*L_q?@eo2DqLTRi);7CKTsRLDV!#sB#ek=n}7;5d2^5tmA?v zWF!x?2x!o1kmz+^Ki!;M`Ct!>ZW@iuEYz&pqhG>a)=I1&6vYA7fGBP1)4q>7yXyVP5VRuy{k`J$=3^>D8R1mnAkP z{GI6?FD{b2RpI01gnyr#C69F_x3l9!c&pZi-p%NW(?-J#E~ms_)~8`brz^RCb-qY=|O%7x^QkTaXXlr zRPfYaxfUQi_q?2CWn?L7SbKObEm6nC1x{e%wvW6S>pWl62gGb(ZlT z3^;+^gDol9Rdsy2!jP3LQBl0gb2>4<=R!y4ek3Q8-_6xZyctAAocsDoqjXrMk)y#SbRyuQ@UPu;!I6QXimOIEDPK&v$ zneLIBqP8F*ijNr0v{b-ScNxXHaY4@AU0_!N^A=030b}8H%ho&paQQzjfw$d*FRi-X z%TJh*;C`rA7^6j~0{D8|U7gXsk}&JrJ6iu-=X#eH8I>FwJ1LYk%iUvf^lOAN;EVc4 z*&Xp+2?@#_*83|{P_gN56SoH{U`i(R?(?Mx{VRp_O0|IOi?e4`q09i?qvcJ@#<(gi z=ojOA8u~wG%eDH)ITJeOjDZq0V>GyS7j^LiGae!uZ$@nJ4ncVG?7qeNjeRx=pXu=b z1Tj4s>1v7aNBv4ySCq$u!Kri%c%PIWPtoHPFiwqyTfhjwzgxVo4exEmqO>uNitWqm zS|m|tYFBE_(}X1VSxDoZ7xjwG34bgR)gqRswQmU#V24MBdnb7wNH0A5@rz^hXi0wo zFhBSRQVM6Y%e5pwe7BxnDoma`XVz4%XA|!F_S50gQu;To5e47v(2jl;6}i0_QRwm3 zz36zF5MhneLJZB@86N#7Qt!M6g$V8t2o;mk2cYRvPLj>Q(gqoMv}mAc5A`%UF^wV? zCkEzTgV_6i{KVAgp5*_mBjK5=qKi)!G^PZT zKw*=U2JB^GC;pssg7imeA$-3E`;4`5r3lq~`J$xl?diRz#{YUdWhO3_0Zi(RBh=x= zgZoiN{hUfn|;3PMfY7h^eBHT694ze3}?apms*HBh!0ufV_w1cQ*itbHK_GY zo`)~#iuT{h@Hmv-@5CW^k)PVw8cqB6aio!T(3cvK(3sKX&eST58f_LFt zKSc_Fof514NeQC0dsV&=ml*$RkF$2edQ(t_>}WeFzcqF>*DaayK>vqx@2=z3N3C``X&5K z*>)u<#ivFrXvGEeR1sjdiw_blM5o$%B*3%e>wdg5A@1ZQ+}p2#b{y+vl-%T!6slY&n=0_H4-$zqo-HaNBRV0ev`~ z)A3nNbgew*%$P@vUiTvMQ;Dy~S!=H2DUu??BX#TSi($>_cn?UZ$^Hh8ib~Zhy7`34 zLRKke7X>}{iQfk>KVmf-V;3bRQHUxh3TSA)W#pLzajqO+4Bk0}qd%(5*Xys|#cyadKC6&#G;@>Do*F|dP9Nx=(Kz3%s z(eOwwn&;=}0)xTBTdT*dJ{DG=8x|mGw5q#L6L^zhpaCOMA^n-0B432Q$6IaK7-g2S z{5V3hYC19k6^WL|#aU8b=Q{?2pyoqcaA46#bNw00xx`PuSqkG_cgDg7L^h(+welvn zM|6mdBn!MzL-P@+OeEEG)xZr0NBjR+et)R{3L}<_tSCAK=WMX9)~3BTAu+=sTV*k% zd-kz9x%hoX?9s{C%S;95WP9$)Hh!5Jj(pcRA&f4JUp)3(mUq7N?MI&3{?1rjgx`n9 zSQ#+I#MGh*Cypt^LXj+V8ex)g2j=^5`xIT`I2w&Anp@7ygIhfrdDX}Vb?lSWnA2}1^bMB#Cr{khKJ!lpSmi$;qB2#E=7=v02)gMZX@ zj#o_0((yR+a~L>z98M7e5G4L;9_b1QFXSe{3_GVjRR$F11DlIeg*P!os7@Jk)Yr?S zWa8n4rWlE;!L?uQAMwcb$d0fNaRBYKBCti`W;An)cU`rscfAy{T6kl8yvsQ2^dkez z`c@Mvx0LpSVa+s|g3=8HUDD`%UyE3iGh1qF{++DYwpLiL(66>)fvIGUu>VE=8hDEN zk`VS!E`Ofoll;#=(I4dkAYV?Q#e34~((AbeaX)L-3=lsSO7D(*m#(uoBR(p+<2uz8 zuw^l2!cIuDM7Osxd%3*!y=8@AYi^c5Uwy-7y&-?O+>_>n z?>T@g*{!EM0L`|o@8WlcucgNbME0+j&78%vUF=<5@g&@a(iAQ!mNnkX=s;?PBeyU$ zTQN;^@&?xCbb6{KZprZVo{Dsmd#$bl_F3R0&BB6hssyNT)!{-4^TF}b$Qmv3u1(tE zYe)vPw=>sna`{0&fI>SIATDRLvAW&(4ZS@0U}dw|3@MOe@n|X|=XOO?;TSd~G*j_9 z{N!HqAxB=?77QcYG&r80tQwSz^_)V_|>ehXruj#kGkn1x&h^c4zjuY*oj~>5$^6^{JVvrr_* zhVJ7V^Uw)5bL1)qgx1Qoy7WP^d~T#44qaXxZC{yysYBI8)_iYWX(p=;*H`}rm^J6L z@7|bx=UrA4?Jk)#VV;uw)h4AbA3GQ0b7qj8SbnbUGhozDd@0B7H=K00iv$KL8Is`B zT{z_NBAwF$1V|zQ#a79-3}3CqEDiezMddQ^_Ai!s9tkrKFcmdmcZo!wW}C5rrtPW^ zp~Ee!4y5WhYzaJg#pC&O676YB7u3H z1R+P^HI>;3y4Yk2$4C})Ta+I75BGTn+w;7b;W)p3Q+Hz2m6b!@`%z9R;+98G)dYB> zxygE940*dy@_vkrMMU@niBja|#5osV@Z28{LB{rX?K^xzT^_#-a z^G%Y<@6RHQ_h7QMiC_paC+GT3oM)rk;kcXYdck4+Xvmq-rUl*x z?=Dw{kx3SSseRVG-8X#yFX`dGKSaEJE(1FVp>O+2Ze|i*BW=YWQwuM~933QNo^Po7 z>V>K-<6qQWMO;|SYu~d}^y_Ge>XkNAni8$(a#~u>PuyKaJ(>0^=?X&Oa<2cUD8>53 z#{Yv@XW_uMKM}|RcK7GtC;m&t-Bqh_8E3xr2{RV^S-Ay8pCdi%NB9&@1zeZt+qB-E zBR<(eCKT&ZyAvI%eAc(w&gUFss@xq}6a_7zauTR zb8^wF6Nz9N?FiHV^07&&EYpODi(mRncnNWGNOkhjs(g^ThS~^+NNQy|OabOz%{w|9 z`zjV{0E5`fp{ZKRk6}MG5$Nnoa^UiZ7NEgxWHX*qOQ1_rcb59U18Ac;uD4sw@di)~ z9R>->XJ_%Oz2{aSZaxsq;#egtAjN6Ug=y;GU*1CY{ zyKMhp(m@SJo%iQ;Jrdebi{?%Nwx8U)7LFx{ar`EPvU%|Ud4y5o(@A~^mleU>&e36^ z!74TI=I?;KS)GoRuRu7M(pGkEm-Zu-V{`NrwB~J4Vr$(^BKrOGRc0nXT5YB<3Z{8l z-?p^W3Ny7f<`bKG!8hm7oO3~IqAIJE)n=`^b?%-HfvlFHjVG3WI^e&izPFUO9l`&v zvHkD<_BF4`<=hcvFIX}wqm0$1Ro*$vVw_-=4DOxnd4Wh|h>0ItmKy+WICC8l6O%&5 zxxF0@M4JtsK^a0@KgAj;^GAg z%FbBXB)?Bn^tzx11}}>=-G|aZZg;bvnV3`XSK1s1{4fjz*nM%}xxxn=%pUopBUq%Z z_N{W_aEjFVp2l@lz=8tab3dEm08HsW@y$%Xu;L)zky(_))JWDVIMUwSM_9=a8P?Px zOYt6Rbw2xydNrj;cW1a3WO6Qgv4Stg4oIErrC48GRu3Bat8y8_(p*@^f+%`DY=)2S zaa6yX74^^f3zW3F4{j~y{!~%%+xtkxuH`Bik*CnG(YB%5V?yMCN!Mn^7mL(EXJCX&~7L+;7*qU~LrnUVM{mG7zQUR$+yCjExy?`QDKM zsRuD=;dTjj@xHHix_=gQr}n0ZSf0Xu(yP{(!54u=ECjEA#`7h-?H}&AqX5#D3uWM| zzqy0_3b7Wc1${ND#s~Y76i>q=Xv3mrW?9897I!CkV}FO3+yIT^wjUaiV4!Bc9CnsU z!bV0u9*dYBcpuu%qiiF9MG?~Lrv{HG*UE??_DE|4iBUQ#Aj*X1ee7y+s6%PH8D5Q}ma(EP3hQ-obpkrTCR6#|LSyuVfmxG(@J(pW|q%p-q-z?k1cj zM(((NGuwC>MQ{MUDpOqNQ6)SQ=`!kYGg`T9$-($R@<<$BX9JNIq5Oj3k}eR>E-QiJ z$3$VB(o=rVDB5zrPyU;NMXc0DMI>_If=~l4O+X%$KJjrM4$ByGZNcO>IQZA7w3L*FTfv`3C#^3 zxip|qWS3nW|7Y1PHK5TG@HMB!zmiN1cWxz~K{vp!SIt`p>q^h~kL})xYs$&scmHYClQy$W%?Kg4aWed&Ql?#6# z(+ZWHHuSbX4$(C$vThQFobxts6`w9>++q{y+w&CkBzn%^oLW7RE>)vr1Txq;Or4mU z&nsQ2b`-GBd^L#=a7p`%EDZipMr7%zq!|0#{BCknWzBv@@z}0AdlzKLZFVk<(23jr zbAB@=>izp7LTA%fkp+vx8x&El=)KG)_txP29qe-cXqK>SuT|EkwkoaeB6!Gw2mkzlT&ca zlcu`4@G)$*7=F>r785Sh0M-1~ox)N9eB0^M$39Bm#$?>8NN4t%#&##{?F#-8=^|4=aJH z#b5zuGLQ%tMHnV+IC9MWfCOram65_yy9kV#CramfHx}!r_o7a)#XP`S+Gi^GAGbV5 z58D$&d&lvL`nZ&0icYpXY4H@OkV$)eNaJ~bknxKA0;s5FT#D)`~XR6_YDEeaTpOPY<9;Fg_07=S{&?y zZYSl=e{%yd^gWZ61q_ilu0FC76I%|t_BdJl-VxCFFbMsN!|FKo2j_x&R*GWYA|lxa zx}#~HouBc3j8?jsu)jA55%-^pwW%nhl<_JdvdwE;Yc0mvjv(7xaLn)5W904eC+*|J z3AGQUdNsnx!YY-8mfV=84KfKAI?YJWG)>EP#`0-(ED_aV3pkogkYw_x;=^dH8S!B@ zbe(+!a!bMubC{UYDcZW3A*t4*^bUzD*DuTMQhb1VBuBqAU=BThxWpV+^trcW#q1P$ zSb|boE17FYK%&694UE^V3s#3e@~miOgPZln`E-8NVM@#;l~sGW)HAEmtE+p~sCi)6 z+1A0~oaYw_+l={E@eQe|gBm^NGNCrAwQa5>e&?3aO(Tz?f!2>Cr=XikZsGC!!)7fI z`J2U~(V#@bc=z`5s=LIVB#~Stno}?2+rzh#QV0L*cAznVS`n%ZU*Cm%+38bZVCR7Q zYh2JiLg`(g_T*axwb)Q;`S=p&;G~I>ywjpo2k|WhwZN7 z@{2w@x$OKaId%C(1+9XNR6c>3C0O#}&H2vqNm__jA!l4K+5J4eRmUb{>totm_}jZ% zo7!fhjr$qJXApom6|n2Gi30HMFxoA@T(v$ zKcQDuf$XXm$JJH{wt?Wm5-cHT65NA3 z1OmZra3{FCyF-8^KyV4p;5N7cN^RX-hA(^_3pjj59rmayU*#fcUA4GNTnUD z^Vc}UlRF`(IC73RUIQ}&_|=UjT&c74?66=vQ#q2xz4xCDiN2U$zmc{lc&nq7Fy)4; zK=kL!+~j*=KK6iklphI@71vhQ!eORrML{kW;xO#|vU(cniB_vFn!u@|dogNSZ59>c z9X7SV5|nrEU(&ZuprZA?!;#XKWcQ)mQylYt89L7Y=`-UQmUqq>)F@>(A{wBi^GzZ_ulF2Ue8b991Wt znRQz(JMp58e$V^udPI=%x#8>B-cgcv&vBoC7U#o~eR-+Z8Q2{cE~1%Pw*Tv7q3t+b zi)S43AN6V9soGDPob%iSwXt~UIg=}?-T!>dYBADc`25#WLM!kq&G#ke39A8E{xil>HtRv5_i~6 zSt^fFs;+{PXItzmcGj=ZfZ8?Agd`}^s*hoJ^7eaZ(e|%-4Sv!&?t^|;AcfZK*OS@w z;~7N4&^y(TDdK-fA^pHr~Zd1Dw^__ zyf41nyjXu{%_rGNBGs;4@26iqC5S6y8DjJLoDGGA#NXli(;4smpmOSg!08?Kg$DDn zqvuG*b{$COaZm2)qE=bk?9>B(PKmY}^a1aL~kv{j%NsI)S3c94-m*-G{%(jMlb?y8b@2Xx6Oc*f4(}rRl)Lc zpi-8j14V4==j|FbAg;@$(8-pWNogoyRvmf7jxWH$$AP!Ckmg_4Ka=%pzVN0SoGx}` zm3yhp;%Bn+o-F30Yh7Y_dHV7~px?Qn;7Eo=^}C@i0buP0Yiq0(G~R(B1{%dYm??TR zQ2368QLc{`sD&+eeWuTh%&Eoy>54JWWvZN4`X8(l6sw`O^#EC6Y{bzdbz>xJniL)Mf)i;+>}QH zaXn!95O~xc3uBwwX@t(U+$_h>g`^!WZtPP&WRRbSVO{;8YELyWaU0;gVx@eJ_6^G@ zR!ImqkVI)^?mA@4T%LoM&CoW00h#cZIXmQ3pGE4OAGYTb=6xK8mhb)cC6q?b^~-MSxiFror~OF}nDtBhr6#BIGZNABRLx}Y@}NIYivgoY zl(%xPd#;-xp4*b;At&BwW-e-_zLHuC>ti-ypjwmQDTZgm4nS>+mPTc>=)zm!k^ zS+RaE@&WIxx!9A<)?_@DARRla|I6c-8>o~Qon#0|J1?w^euY#^q1P zvK);Ss;y`}HZ=Bz)AiYRyQ3D#|4}7xi;^ZA-jyNW{XJOWaamp}2m8OQClA{#q;`(% zEfR}I;%UiDB>0eU>oI9&c8OsSid=`@9JlX8v=po0E7RKYYeXLu3vFv8TVEHZI~EHq z!T3O6)xNcd9vo?A06*HP@SDD?4S4Wqm(E~hMWd74iIPf$7=Eth@;Fc0-C;_ynE|D5 zaDuK=4UCz53tlQ`cDQoViaDR(r~Ucak3$wOP)9sWr5L} zhUdv+3#LUc2LQ4LXh6P-GZP{mkpr-Ao%!DcXI}nuw2~qC+YE+4y zrq&IYwBz=+t|7sDJJ=jQ0d>Ax`_xFscz7ZM4~ASxTFQCQ$Yf6<14*FzFjM3k5b41j zzZB8RtUD#j4@S#dYjZ)y(8No~mvGB@C@Uh;6p1eP2)EO}xoB6&ZQpSJhZH}%aJE0T z%&XwhQ1UzLRJTzV)If0p{ttDJK8JkFMQVO9-Z=+flgSe_Bv0ZylPuDnlWUxE0n@6M3och7w{gpc7h|T){iD7wK z7tw%6;T5JFGfOu=&P-8=_u;0XMqK8DOT}T^S}I+9wpe#O1g0?>@BjrKM#>4!H_v|Z zmhXENGZv;F0MGY@5hkHzY)42{O8q3cJ!8jh8!$D8w84k=r+W|Nld;3s0r$P5fa6WT zeGwO18t;Rs@3=EPrTUJi|AsJ7#sWtRRHGO|v-*RQIl)3L3{r2ZBMb&$*e!HBp*1r8D#)4Ct_cXc4rcHtRGgTN z^a}Mhj5KGa&>Ty!GHhxlYBs>gL~inQB2|K*c~l{@1=X?rJa6pPC!+X5Kfh*kSBazY zAY}J0F@}H)s1EUVVy2oexDbTP*sXo< zJ%}(#Wphkw5}_wKvM}FZ@9ng;_7l#AhB`j^g+#8ap)jE)&linklthoY`_X)OcL|!4 z8&yh5$@n6yPm4yDT#MrJ<2!eu5Q>f^ooFEW)Y}nU3`1q7H5Gtl?TLePARqz@cQ%iT6wxe26lmoF zw}%Ce+kW==qChUAH4i!h*Z+ye=dfYIZb>87v4U5mmx);4aN}zq}fQ4 zdeTipZ;d zx)*GZ#K5H-8$RAO(rlCUqpbn6i^UB)08c=Iet4>#H$cj9k~<`X_{~8H`wc6IB4%-M zj92D$;uFVGMxv~Dpf$M$%XLS6;oSqrK4z9qIU+-(UmZ}Yc-p1L6_LKpLu_29>d9U3 z(YX43c*Y-U!ew?J?4O*1Yaem!oPU~y>DEJT&}p8R`5h>|nQb>Nzl*fuNWJQ|7 z+oyU#ma|OniuE;r+>X|XY|}fXXF<{f#mU12v4L;&2|VZkd~5hy+LtS$t=%3d zg{DZv7pq_c=RCwB%TM-@MF!w;b(IqVMm$Ftm}situE*OQkx(R{H0Y!ie^%Dz>nhbon||J&O8 zs1gnv)~+mbIO!%^iI(7d+-+e zj{ZhQ_N~N}ZO-$c*gBt|ys1N!Yz*tyyDQ*l>P29uHzu<&)Q7#KFurk{u!LlC?*itS zQpH)CeSgCJZ1`UGUzquSI<-oEk&EAkpq$4z(WfOrP^GWRg7(tTr)uTQk)6v)Gwm#8 zb$lmFUQ=NyKE#1q`TmhRo)L+f>P6M_7xj#8FI^F)P39pTv&DLua&A&+Oq#iDm6jJR z9oN6Ebwlm`bEhFq{7S!DwY!sp<(cU7doyi)LORn7#b8K64u|BXxRhq~n`C`kkE@*2 z0J5jMn@F*s)u47heF^QCMd=c)z?lqLnjemHAHN67)G>{e({NM=jz83Ej>MQ%8Jjgw zQmkW#1y4%yqAR=Uf{3K!#^Y(k=iMiwqJ0&{`6|NnJIN2J!c^!!N+Z{Om2AC}MS30l zBs)h=l=Ww?<$!AcJK4f}3KNwj=cm^}QaX#QRuy$vFW%ZMbf5Ziwg^)y9Um^uHE}Ix zx6Z~Dvc>m3a;h|_Wad`GEntKFYX1zzY%^u%J-MVH#%s23u|+R5pE>1zHy~TTYqg>j z6e4Xa&x&vma5{5yh!h{m65-vwL^ngVd_lVoQ69Rv+5p z1K=Lz>v8D;k8D|08OZ*v!>ea>0O>OL^k>cwHU;K{tyZYTPCm#JCR`OxHh-5s>W3M) zH{`SdDd;NOpdgS7dJPu=qVZL^i%;|OakjbfRB1Jw-nU!4(n41}DbWKFxFb;woqi~F zoPxYGVI=2P1l7~T<@}_E+KAq&d`tXH{7fOKT=I1@pHxwQWeKwcNyr3IRq&KKNUGYl z)-y=mn6dF#NMiKIU2x1d#=x-Shc~HBBs-rWNiWFH^I#xHO~dC*%=$#;-E zcX5ieb!sj2g)NU3oU`JukM6R4+KpkIaZl@X*+35e$(vToSCI!cECTg5ZEKy3S~yFg z*jsJ@g-}PAqmiG}AsGuUSL5HZnk}3Afo>j`J)*&Hj5_OivDvjniepN4{O-HGWEx_Cm_(cJBq=9`YYmm;YR%8P0b+UYB;#}<}bSO|ED zQ%bEvCLaIXuUuE6cKoNv@Ao}AJ%&9h!ZM!cI#-l*sr9kG@hKucgNTFLkAF?qD-e{} z3q4t99LEcHCS{UOnuJM5Y+HcmFery~?MAKv(!L+1F6V-pypL~bLCz{q2b9lNzsG)j zTwX9hHiGj$RjPZ~-5NeP3^T-bF>2BxOgFd9hnYcDj9bKjf$rTn_;Co&+T<*{w&a$h z=Vj(C6EsGK5lNKt-BzCUWI7V%dalHSs#TT(kwp4W7>RHHX909j(=L|YS@v`{qe4mG z-6qYFiu`UJ&nTF0D)q_sqh!l@=`Ft$W(?ZE`rr?x`w}r3D3@(hOCqqeUCjJoMqLsh zsd8=+&~3OJAp7|#(tL5kdB;#ZulyxQ7fB1wbPx}&yQd_S`2KKkrh3+DP<+=P|Fh;> zc>>Q;KqxH;!zR6Im(n6u-1J=`$IhvYb+!_yi4c{0kDi1156AC2q1>sFxMbx8)S$x8 z@R!&r70B%IcrT~H3O!rA$YKtd{0LVQCOn~!9C|37ZRe~2d^u6AD1lPHV@Q>|dh1LI z@UC9_V*1!&otW=nY;yFK&zi%ch1Y4yiurh@nuqs;84N+aPn-c;yL~+9~=FA?&BWQAScsfyaeUwvGC)rV9EhTIb zUusmb20<;~J*-te%0qwu^H2YuQDwvLLJxNhp3}3Fq)J@B{A=tE9Nf)raa1<)3Tlpx zFmCo{rcmhDbKhxhLB}_z?^Z4Vp!C8^mie)!P2f|}_OOUE{2Wm4LwggjqYbn_Nw){N z;32X@<5q5Q0DFV>!ODlhc%&0Ozqk;~3Qz~U1t7gZ-cd?X16PVjXQW`;by$vA&3oIE zryVf-Brho`D^Gg~e&wu0@hrzFy6~p!@kf2_x4*KfdRrqR?~>nnTmcw-=F20ZhRamM z{iWo!H)9h_Hid?J4d|W<)hQ9YhrFLm1T2*C7}}kd=fycB_fze%q4D^6nNV(surlZM z_Rb$`yd%BCgze|>95YY*=bce&)NOw%I-1X;?Xv5i!{*&RJmQ9i3#J=>&|@Pr(0Z)P zO1!XKATE@-$nsj5&z*k3cd!~%n<9OQe>YR)-z1KuYe3$OQ4A%$qvjG@qN}5zEj|pZ zUIsjpRt+b6m+H|EO}EBX-J&NQ)>uZ37lxSbzI$|`8+ z*HYr9x?FbVYyWoAGv>7OGh3SR5|1XFdW9fczZGN3?+E!hsB(KtmqLVehRjGLXFQRuE4nL0` zya7khE)Rd0M=bUZTT}Z&CEfYbY9k$r@NTw#0GK{{vTLhc_H}yhlKn~y@M7w-DXY?f zjC>S}Y3c(gGBL9zb&5R`xheoEG$~H~rXnRzQ^X*=MjzL6!p`~s#(nYMVKN7n7?dzioCr`8LTZV}T+3VTWTCNtYL zCNFzNvuzj%W|p?5^nCd>L@PET)0}TJhag)ki1SC00%A zXY+|uzwG9FZk%JXkSCh|kTfQy{ALr-!qmS%Zh4YY8dM3^D$sWoTgpcw#Y##4U^hoq zWpYnk1UR-)`}YJxN=?bs@i2_r z6H2H5XbXQWVS41Cn!Dl+9>V=$C>-c+zR>r1Oj>1L{VSM0rl&>qiVJ!EfZ)ChSuA2u zcp%p{&|Mj~5B$~K&Cisxva+O6v#!kGTg@G(6wLkCaTU%B{~fsKoSWaLRsCPi%c=0rhDtc83O*&XwF)s zbG)XCM7DjU3ma{`I@1S^V}-jA!qYVb*1yelpLAQYZbZi0a31e5{EDcQ0?NCy`BP(j zvkh!;<~X5>7PEEkhQtu`rP_8UO43)BT|l~7^|MU0p*rkWc7~3_b1TEBZKvOBIxbD^ zyFm>fxax<$T^C4avh-PF3OJ;h7<>=BWBtkDeutmEt|Ud6`~v@`urNlBC6}D7v$g)n zN$*>8Halm4W^rEGQC3$C9pTJlVKVKJ+()g?&@?XPcWhd-!u+8$M2=YF4YhuEbCYlF1_-W zVGe9WP+`Jk9bcr3DV#JL^IF62gDAIPick}0cB{Xakax&e3q0Y|&4E`cP|6HOcnK6Q zFL08MXWUGVmP20vt@HPyi|J_AbZNud*-znv?J%y#Ua)$0SP?YSTJ4@0N@O~hNz zKVt&X6YDvq_zTtQCn+id-}-&Y&wgj$S;5;o9-$%9xad+|J=aUj;UP=r2C$>!(1zjt-yf*@%o;fX zSJv;!X{!QmkeqDVypAK(K_f5r^s~jOFHX!NdN5U zyV$zPXICBws-(H?w{73E6f)g0ldt%S^X(s_8o5$4zGEum5M<_m0R;4)^(uyZZs3{u zn((!J18Z5k%7pna>zTBQ9iV&__U8+~O`GsSrOI{$t(<9@3PkwC@ zTm~xyX#5;_;YKi|)14RuBC?AQ2DMnuRbf0M;xe-Xk!X|d5>kO@`2l?W?n!s?o}6!p zoN@QhNEwki42Tfm0K-+g>w`V8%IAYU8r#8lG;%m)w5h%l)bF#lE((t{FB2~>9!7*~ z`l+N84R5v^0III{$NHY6flypcE8L^o)(g~@$H(@QFgBg+6;IT{w`8I=npXgRtY(Gi82;EirSsV&7?^`vIOQXAox7Nj=>G z3Q^1iE{Tvz*1E;kBcU9c5eUgLYS?!>c$T=`Tzsj@QxqkhaED{>^N zAPFomXgbVaegwO1l+^lb%#~YG@gcr0F`e{63mK8Nd~|&CSd3PUisNgB=6rNLi%YCRl=gykH6>=_vpfSigtdb{!k!*yKDTLtyI7Q&2lhjwLz2-;e_=ocOt` zwaG?xyRYa&P51BnCf-7xa$| zwu$wDt1U%?N}sVQZ0N>bE@i>b&X5dcY-V6Bt~^~{Zk{#uI1RPYyYj+&h7N8VbUq_K zcyNH#J80GJ?aIWX%dB{DBYR{d~6v!g4S!1GJ{oCSa`n zyv@87YckM7H!`hNN?IplJ4`oBi|EW0h%) ziq~J7u>&C=nmY#)DW`<8L#LQXOGtJ0InIn+3+`ezLA;kwTe(Y+CTz2kmae86DvB*QSkb5d7 ziHn+w#fg+Dn18h&tY)S6^%NE`x-srmw4M>|vEQnep}FJN&Hrd9dRa2^ob5)*|6)O^ z+nCpQe<3Im{8xxi+(UQ6cK$aunBMppg3 z6JZ{H3CK4E#`>bpNMR=tUH+Dm=C55J_LYP>%Bh#r;cV7r#p@|P1?6lt=WjI=JQr4KRW@tAbj2Qq&A{?m@EtB65^XiOOSRI~z`GeUm z#Ox1`mj9@$AD!#es|y{zucBPZhzMn0nPJ0yg=u&utUQyKg9|VlH0DKrI1}Pb+t1q*0ZI5Q#eAg4)QI39YtTxD- zliU+n$(Lo#jH0Z1yMRrvIMyzzS-gd9pkdH#BqOa0KJM9PM&7Hb+%wQo!|KxynG8_- zxq2R@j2zii55w!iKBQd`ldXNq*A;8L6sZ4II?!j> z*ZWD|K9}tUdx~Ej`Cl!`7J|r5x@uWD&myPu zFH?aX9a1c()DK_HtHt|H&Znw5T$ni>>T#dZ8#nVh)uwNIGseou0**|eRR(%(MN9x~ zQdq*&-=aYd!2fwObkzl1u(l?cqAWblHl#dlCJEonngJr}qQ6_~U6OwL*8`tFzim4& z<{jRUbx~9aQl|!E`hRcy@Dq~F7x8Wf{Kq8tfw_K?|Cfx*?cjjN`S$mD2ugS2bFoar zXP(3iB}_Ek$2o=7pC81=z2vq2c9ZJsAlbFvdsb5caA>K)%g7q?*7{4cR$qew#Wv1P^-gs|Z7?`14$aT0&;(gAHB*ws9 zT7%PBQl-QeOC#h$g*M!|y05WO*?PPH^RQo{RW|$kQTNLhpFPd#(|L8X3Ibr(YGtv<) z-xXbd<;r2Cnomj_)Apt*q4@_vk?Wo_AL<1je1>0IwL7}nEGJ>~s|`vHK`&zP`^@Wfh!Fn=N26$c3^N?3%l2`I z@SqDjuf((`jB1eBbr9KR8Hn5@Xqi_sM&tu>vwJ$;jY;bsIhU3p>wb7Wi z-B=Zd*fQTJ%-z?Q00 zd>MVgY-bu=lOo-D462v4MvHfiLCze=CAF2)o5C|YK6+daHTiyPOOE|C`yNhL@HTD8 z)dg>zrE`7-gTk>OZ}y_BxJLVGJ|?rfNZEYt_(AKNAEvXkg*{ZTsWRvz$yR3+8NnjP zjyVQ%+SvQ&;=fW!8OzVUUl05|FD?c&Dsn^r?yCT212?`k2bHTB)StZdg}__#XJYvMYFpQhWlkiop8(m0$G0^7NzQ zK9GO7Hq(GK=8b}Lg&<50B?0J6;>-JM)0R}_@K+dRoFIZI-S>Aqg8Iv+^}4oMwaDG2 z0qcH|tF&8;ygb=dy`%w0^$Bxpk2l1%{iVGAYcbgeg4a@*Yu3f-!gT)c8125kHW@4a zeoPtg@Umb2-*_7yV-wS~EIDqFPK|KLNv7`**^(V?;$ISS;2gM4|Vh zlR%641bRaym#(AFfQMWYb7FJX?VMehiyTA6pp`;g#r;%blYmC-pKMaC^t*uL^WoT( z_F&tu;6SCAelK z$f4hv?h(jK+Y5dn-#8taC@b zA(ecgtflRP!Xf~`=H?(CPS*F#ZS7G{CfWcsXC}g=(AvB%#ssINH02WxfxtKI4-~O9 zH8K0gwp`7}YvJLJ^*f7pcplv(eFk6T^Hs)=^C)kXiOc>A&p+Y%-}U)3`wwQ{Ts67) zYmQqna5e>a1XPx{Y}9DBmtVjm@b{AaPHl>K06jkN_)MZ)rjU`kv`ooge-bJ;M}b$V z=TXw^%?^sTPZ!^`=59wb+A#tJnfG8o=Rm93`!pyciGFrq3b9>j9W(Lj#-yw@YIa6i zjFWcv2RH!wQoZ|TR05w>kiQ=VO2WlTGDb4kb3#CjeVA#;`Zazpm1vorwqx;1PPCX7 zbJBw3dZJEQq~?vPYRpwcRb$5wVhCFtvpX9rq0`Jo<_TIyljBcC6xLgX_pBo(Dtlro zW!QwChRiS!@zv0JXiYLiE^HIzclI|}i-avFh9yR2L@j6v|CjEN6e02BY{3BrRex%9 zf*DeHk8P`yptWz8k6%@FN^+Pk>d77=fGibz_Yc-Pm0FV`dmHj(jhp23 zw*a`l)2OR`a5|>|+R(Ik5&;m-bIA9wgJ+HF{i$hpD#R@l1}k;!N95`V8u&xKxQmo=PZOlL-laMw-o@UOFC{PRFvv z1G*K^mM{-=vv|{~X|QYd!*9HHr<#9(A&3&S-PZHyJXANR2vLh zFvV(L%?a0IcFvgY(CeNHvia`=fe@>dWl`k7;SW^XmBoj56EA(8#iy;&OHQnkh$RF= zX}C%EtrWiNtvadzpw9P23sEQ*74;0v0mao)num=DWy%jq`B6#<>15)`h`ndYSm~c^ zT;pR_yB~<`J41GT8L4uRKKB48e^gIE{VP&G6|yCD4~kK5)QbVsWX@6noWWj&OQ*B= zB;^ZLji1y~uanF2eZjCuGKK^`Tm;6JDg?>FtI6VEwKJ9BH&B;RQ5=jY+^DfMB0^Od z%@vU_R!X@OrB>9}X9%<`Dd0l`+NUOi4gU0R%O_3>7k_dvj=Xp0S)km4 zNjA{&#+nJJfzqGwP{@j#dl9&G9z|%`VS6%QY?D zkT0~39M9g{(2@&4{JO?e3t?cFZS~9p`qIQ~^5D`#cv74Av$5QFTBwG7%sgFxY{#`_QxOEUY0^DH`d0JY1Lz})gZ_?%c zoXm;XJ{^x9e|4EO-IZy7w^Oi7(rmD^rW2>`v~NYVMD&t4;h|R(hI6 zd;AOjcPub;v1WdISM6TvxV{-Mq7D094 z9j!o8#wX2yh{INz6f#F_q#jz^$@7;LiWn5FlHeocFFXAX%clH zT2cT8HUsk*%S5hrIZ)73O3!))3Dr%nXd6pVeRxx*#7x18e6_kX#W4 zEZMh11b|N^Xlmo#2wqv|$5&`&u`H{1DJy1Lvw8sv#vMkx4)qy6=|{R9&w4sP-Ncym z#TNw`wpovIHdl)a)_bjhvrvsp-C`>J4+N1K9U*-=7O?&KD8GPx$lCl831CtyLPe~B z=eaecjTEU*GT(nFLj%RFSn`*7%N-Er|&|HQQkC0zPn_zK8!qK+#L?70+bpK1b z^gp!RZpQmdblfhqx1q+hHL{UY#^J&c1^~QS!wvyml-{uW81VI`5x4q5IvD|h$4+gw zxw|VyXB*177`!4sBlUxTV7XI?*yiJ)AwvBx)Sc{q%n$4zMQERHQ$GE@e|iao?-*=O zusuBolpY2MYTq@+snOAw8)Y@uXi7zSy10oSHL96?6Csn_{Xu!K{->_TtikK3GN+`| zT+206wLq>f@0s4b=%KEqdUq{7Fa{#Z?>Vd8q?RHUhW(<)Ccc#ODH%focW;uELf#gd zJX<2e!r)?%KX8)knDtIKL?^Vekfth>I;KW_FFr=75&Qb5lp;yYnQ-%SK=4b6=(I!; z-wwTOdZ}@MTT@ksmQcq_U#t5%$}uj{G+Ke~zqa;PGpD|a>Ajqpg*i1s>^Wg~TMz1O zo9f@CXn*E7p`oC2MD(^cpE;balpUftQSOvfxkij-oJfV5#?W4@D$pdp=c`=Zo8D07$#4 zo&$&+_MLarZ;9Wp7t}O>yG|bjjFW6JVG@5-py45`;UC4*r!&j@Bxhg4Rw|q4A4ZL)_yP;<8cTmB z34*s9K`z2i{gd0HigwsLx`QzI`WF9n-*%D6BQHW~e9J2;aX*!fvMLH6m1F%hXy|`O z_CyS9`c3F{HC~_l;{$10UFXxW z%2`Y)QBOiTU~6~HAa|Zn#Fm=P)beU;j||w|$Fw)uNJwTb(vdXgYw!t=Lq|0siT!#) zIG)8n@iAerjE)CaR-5$-N`x9C%9*7DQZ}?M(-Z_cYD#V<{uGv`XG#}1kKn}A2*o;E z36I^$U~{pu6V;u{s!2uVWQJ&r^LIBn?6?r|;w9F8iXdl2+f$FU4w}m$a1zJYQ)dHD z%f9k4BYJ~wJEn3}mnLx9A9vbMl?l3U5xC}^ zNlix8CsXpj$?kAoa66tqHTH!M)ZZR_gm$dcdat-S%aip@^d`*is;7@VoQU35zq|ie zF>}7v8*-t7VD+PS`b4jO-Pi@(3GUa>A6J%Fv=)PeSZM4tcM}T2ha=1KE{MEo@<|P8 z&&>uUqFL9Q2$aQDU+a=3riOYdAw%Eo%C*&agRm<27Ar_RR*h)bKi1!`#rwXK`>%0q z>I&M^MW4tovFqWLtD_HW_6<-E#;^nP$fl`>GCeF%-h^JMPc!H~6qK{Jq^%Q_6p`7mRMa8Km%`s~lszfM&|E1%kWHWyGLc3-&D zzTJK4tqH1kS5)NcCHTv+t4qL-^Mg^B)z6al{3*2O+H&oZ*k7OE5+Y&16q<#>M;C4F zsEA_e$oNYcGxAe}WMYntn)PJP1gc41b+jb1-N_4+pvbXq#f)d-Q>Y+|V zQt=P?)3TCGlFAs-_~nb>;(0zP$3d*dj?*0&bI0C8k=Sd_NEt$cQd}lv8swa48vLX& zNHvbQ#RuqA-Yms%(OMRz6AO=C(sw=mz33(6HnyO*nBFwvMX&2_$Krh-c!dl9^@tC@ zH$8Tq))DG3(J@~Hv!5CKlEhTcs>R-dCtDQMvQM681?Ntt;D`ULzx=J8bA6aFGq`hc z2Y$Mc09rbI>vM~srh{=KIQ6dCyQvti#p43pv@w3b3 ztFcZKJ+HJ!apWxZJiQ|Z*kCxXrngDD5Xf4FNNq3FZ$k~R&1m~LE=R;CdaZG_0IW9$7iP$v(9C*pnUm?rgIxo_R}a?!TayP0TEjYG{_uf{+q@32CQC9Yaf^V) zKPu15_V@SBcZ%}3q zekYyn|8(E3F>p3tFiZr{hkW(>i2$x&N6MJKj+kRpJ zXu*5s2#bb$-~o>tgOEz^Bs!iaO#t#(OP2UF&^r0#e2)?MmQiF7G22G+rhJbsdJ1_U zBJTGEDbTcIZ2x#1rxQWv`%e9{<1N;^EtZ(6-=9&l^)|=?N;fpsiacRs?YGn7WvA9V z)9H{=hWtX+GVcPJquo+gw;!sGv3@z$M9BiP9{pB`Id~hzDFW@OL0et2qL1{sb`1(t zpUwmJe{>KcC8HhxoaSM$O>)Fi%%71j@PWM>6Z!hIyTR!!<`tdQ;S+Xkdvk&RB|Lkw#VM11yN15Eb4 zrjKZV%`^*EHF}4qiQ-I*GE0`1o`g+6;~nZfKZUe`&vbi0r5?X=qQKW9iuqCS&fIeK zwae+EHk$ClarrE^y5ZQRCer#$$z&pEx@6+cfFqjYn39sR!~cG!oCGX>`RaYE>eYZC z!ik`0f<{vPGB04KYcB7E*#`*foyw}Y;>E@4*xr{5U%finEFnD1X zKyV}(-4pS>U@;=)ebS-YSHIFZV;l|bX$;YQ14sV8?EesbOL=mqg+#n&qiHc zD>`(k^m{aWjDOmD!VXm55tk1XIZN(9548HQefP)&=n15LusmuN<>$8I*@|THMGL%L zd_&Q>B*-8=cR4FuZNFbT+_x(`n7N-W3pbf+ZQEw=?d`I8tvs7ihB?;)=&KEgcTncbO?p!hyH1W5DnRz^s1_u8m z!nIpik*+#NOXu0?5qp)P(8ZVUWo4@Ep7%Pt!kF_eG zpDwV)GF5ZSi?Cvnx}v|hvZ_u^c^cb;(P2~yDtgG^OmG}`?@OGu!f?-eLqax?qJjIa z8G%P7RhH${RS4z7T94O1_xQiX?+U8O?P>fcqpR|jTMO88O>CG%1Nrvw7`5bdZFI#i zdPt(sH@F$?c}stYEIK~uRcUV?elr<$ou>K%+w+K?!S+N=CxlkNmlD1}Ir86RIr;6C zuEA`$8R|T5$H75d+jXVobJJ6Q1zF}Y3M|Vy zS0}{hUXPJWnHdWgP(<+Oe?oK`{x}Z{Gn$YXdx>Bi$5I;DKOLWk?>sduU;Or^r`mP) zbRaFlh{gbi;@8L8rMOYgxM^k&6%NQK~ z%a+)1?Lqg6(h5PnGv8c^o@XNK^pegTH2X6b3mG=}F1aoXUw1=0wv5AmZ-1)1UT!$1 z4;FQEPB*Yg;txO+QJ9^WrLFH~B>W#YUAnnT3%wtWOXmf?VeUj90IhbW-QH$IoJEG7 zIDvEY&iA0ww7Y>Vmfn}8pYD77S`@3tEsl;X0ME_LKaSWy7DL5suVr|vZyy9kpN~~s zn|^&{!L%p<>AcCg!=HivlEPKsCPw( z{0RH6oMs3{v~rfY!m{s6Wa3d6by~i0dIKlP@|}d*W{8|8@-?&{r)7b|uXgR5o|r`6 z2im}5BkP;MHa(h1>>JN{xA2g1V4l3qO*oyDk8pqWo?mdSbzbLr#6I@1cO?8U$fV6Nz~0k5L&#lQNYE2q7qf6?CIV61SHD}i zD|^)}m;H@_J?}#Goeqi7-(Y%8vn=;e^H{%`9Csl}@Q}j<<5v8m@Y2VNCuy~0t0I0) zJ0~%Oo}r+phCMvJ7wH{75mHxyqD0m4S~T9wm_)*S35D48yb>#10Wt#(Hu+wltWE!e z!f&(1RFaG-Z}gjWz9LnfCC{%vGZwG_M) zf*m^)Clyf~J1Ky#^A-!dHuRl425C@opCa`{H0_#kxD0q&w{6BF-m9#GfJb&j}G9rTB`nc(S9ux08yfc4dOb7S85uXrdk0xFjbTnS5$!NP(KL|t{S0YN^=LBX z_Or1(3AE}vt5;d_+*v*GPOqq#1$SNXXK2xmSrjZEiW8cJ#|NGbt#wZh9!1!-4ttuc zwwD^Ut@nVVdqRw++ zyy4vS?3d$dPFWMH8FPQ5coEDc{?+T~GSbvS_1*f_s5lR1$3P+P_mf4lliiD2X~ixo z_dS5zwa3eW>*yYe#mc~nNy*SR<6d5otZ8t9JC#}M|0`4D8-XIJ2ZXi|t2AG;s(7FX1pjJQD8oX_k}HRUrX$9N z))psOLQkrWvG2_^jqya(7xAgUzI<^^qv&h-m3nostWxR6&X{yzTnSI@6!_8YcIJcn z#@nt0sa6Clzi>1IdFArMi%+3QbH&(=BQ-sx?W4Qj+Ml={N2<(0*5ftxpJ;wwq6Dmd zJ{Hkboc0w|q;Ji{yo!e1Yxt||*w@@iQJTyK&+@h=nUwtaxhvWv9sww)C$5b#mwsY0 zTm+AqJH3*T%{|k$KAey2>3qv}PgYjir0yg5+`ZoRJI(EcEZLCAzkV6As5$rj%_x5T zfHM>LXWaiJgDXUDJ*n1bPPr&bV%B%}evt~rVt1xKKt>{m{8h#q8l8yOrCTpks8A-N zcBQKyJjtlb=FOQ%P2KS?U!-Q5xtflZynn$kKY!vSHC>S(^=py?HL<glK&bSVzHdt$Cv@m_x-T8WsHOs>fFQB7z3zKdFCZ|!w&E(1XSiawwFK1u}GKrtb>ugx}5G&=bzOlA^QVp^B? ziJO`LZ9A@--dB*+{&e4$jF20h6~1l*-3CM0tHa&C2TPnwNZr%<_{ZZI^2FUCet{>Z z5}(;ge&{Air1XnNc~IF17s`56^!gGpyu!sp4t0~$J_rcbSwVeRfAJhAB)9{HJ51Uv zU|lWMRB&|1x{ekIT@Vmd-O`G6S|mFQ&Hc$)Q32;5TgzaoR-2%?U8eCpP5tlKY-4;s zYx3REAI?A1@h1~2D!0Dh>8On|Z}UZ1CgCKGg=r|$sLE*JZY-^OQQ?O&sTdWMo&*-} zVnBxHg^wK^eB5O?wGx3-Wn6xGkp_B)IH;1Ifh<#>piCI7n)Rifr%KCCr#ullP9ZX2 zW*u{|2R6!F^nh$58uO8TGEAW9?Uz3my(@feUVc_7{TrnPoj9VdwvdbP{POH`Ije0> zA)=o~d2U2$@!n)uP_NQ&5nhcK!AlAG`gyhl`)ZgGhj6q7QyZoDQNe~ zSxti1TQjV!Td;Mfq40xZL^kd`1&Px5)SE!o1St(QbZBeA;dkbNlC@?TH8iK;o3aQ^ z6m8-Jye=6VC+J;s+~2Y(cvH^md4NiauQ03ys!~|LeIT0l*v=Y#J8^aH^L!#BIM!cW zy9_VOr8QVHyxTjcTwM+PMYZtc@gTzA3U}SSe&tE_cWy%;u%%cukfT-@AB(nS`b12r zYJ#>ayS%AxQWji9BiK9E?2hh?fa2!hF0Eu;;=?~s%F@liJ@NOFtitlfb(G+#j;U!m z+tMup%)fZwOFwbtBHqv|^_o30ZZQL8*&3Z&{voXzSua?KF|R|f+qOt+c! z=P@Wq@$KR2+Nv${BBdeqXgw380QB2(>)>yVmzxX#NY5pXbU*7QAMWEY=-uRsov<># z5}-{PjZ`Q9VLNX_QJ^S;IX2Vt;d!f8d{F9h=fSHnl_zeIRSq~7K3yfDbQbN|y7hN> zPZ)kr%89>Dq2A)6ZC%aB$&pZ$!EIq020Mv=bK;S-+9Sh?eCo)Fp_viJBC4^@%mFiz zM={#_^!6=tbMtJGVn&4z89xe>f3+c7;FS3I$Z`{WNEWbei3>iw@|)+FSBxX?h|4se z>xK~mBaSk1Yb`CA=zdhXHWe&gmM449!i zQ4z<_Nn4jVNMFIm=gt~eL(Mq(e3;wf=GstMs`%5v7o|0ZTOEd7cuf{+fL?&lo?6`F_g|)R1a-{N9XXWiX$vuSBS(t2ROK-=>rDm0#J4m2!~j;b zMKyTm*599iWtKdN%z>-`hnUq5Kqmu90&7l&aVGu~YdEhlWMt%UAN9n9MT$+pEYGLB zt3zcrzYt4nX{DiMJJ($F8nG;yZksfHHd-4VNN{VC{a&)1Bo?aST3wMWo|Hg`a6YeW zZ&W-@yJ{D?I|TvSKHMCjm#9w8PF+=1C!+;}xoF8X@u(xm#*s+pFEQV3Ucho%kRP&m z(toitlND-^9Z9+9{lrPKl72u_&&j8;-Bu^z`0LNO_S56V7s9L-;B%= zGin@u>mtufI#nl@y5XA9_ZC|B`KM4a8LOS9%{$+~fxrGT&#Y#zc;hAb`R6Y*#Lu~b z^wq`u+a=^y_q2}qIFzwm_dxvNLIH5we(``r=nNjHAy&;JY23r#APsK?8V((&iWDu6 zS3=o=)QqnQIXBgR>+N2~Xw13Y3jyl*PPX{lUyJCX0^P{UCI`u<>FkY$3gGB9AI9awY4^CeCincXii_kMKj%^tn;VkHK6gu#rh_o-Q#H z6Z%xo?=t73)z;Vy9_9jssJO-I? zc&l!wPn-DdEvrr`e9YYM1BXaWOGnL)Drg-(VnAYgj`%i{Wa0)iin+#5=3qD7{S5$0 zDM*-Qp@Q+>_@2_L6|@~+2deDAyXv0p3f@4mDi zAeDB@TdFsiFd3*Br6Ol-%ZSSuuE$0srh9w?*CEpw7CgM&{504UunyK81|XF6bgloO zK|zix`H4XZYMF|S`i^xDyiFTvzLnN+m*eKor7)YQXGrnHeI*!aFuM;a^-B80XaHi@W|5Wi!3*T5$+Bz2-tJ1M$I#HFnGm zByWfp=x3Zz(pWf66l5HD;wysNbr>U}D4u*Ml!gP8w;Sh~EMR1dI|!60(HMz(kpuHF zb!Z0Vs~o~~?<*BiW|%Zf?0%xZDeT*gL~$hbT3*>(3LX4Dj0w!>6tc@`VY-t zbT(QoM2V~A`HBOdnu|LRi4UJY>3b{RN#4!glb$^&!9jMqJ^32z6-Fw3?mPCMvY!{9 zvC>9fUe-ZVq)8f|_SRhF!OYTs|Gkm^tmj25+JT`>riFoJ-2%>6)^lV7PCwjlp)%z| zOhOz4!Awx0(qEdi4VMhq-4VRtc6>GA^+=Ar`Nk{Ji1O(^Mp*5whcrJ5RtW$$IlJah zD?9FV&oY~C+e?XT1aw&`IG&A^7&GC&czxmz{neo%!}^rbV|wtAeKofE&v?Ks1>jE9 z-0HaZl8TI{gj;8oe^1!ZXlL_02B`AieQ7b?&s94R*>SOC0QII-zu}Nu(RnuCFMG$S zS>UI(Z~T1S7#_OjIX3#MZ};x;YJkk7_rHSk2?6KB5+}=q$U`)oT1zxVc27lU&#})V zpz`9DI_j2>Y$=00NGcy>6@|GkIiB${wTvRO#*URJ(d*Bpzel!JAk5M*|h{1*_ z^<>N?!HP2_PzH^RrWz)6>|EujH%gi1I~v_e=Nv}?fCQM>*aVlj9`_^T8XP0f%HBsR zgud5lV0S%e`R&wuuX|!Fv9~*ZaF-}0o$%v6E2~lNZ?N(-s*esKj;n13@i1y>!Gb7V z?!vv`diEfa*i2DS{feW7B@~CdMpY5%cTkz#0JCh7l?gKh_6V&5Q&Tr-`=5p_EL^t}%cb4B6r09YDhV1p z{d(=sO7hy`lYji*M)X~1rWy-TL)WL&T8;~W7kZYLO|aAEU#< zjY#Jel;;FXHIL>Nm;8W!d;=74F28I8?Aq`ODtEJ%G}1gIqPkw)%!cQ2b{T-qrp7wK z847bpmGiqzQ8E(Nz``3IGHE}o4b7}mbF27+r&6jaI9M5`-*rTl7ggshso%q zPpifvHCa<{*~(cCmTVQo-37{&-!Qj5Ip?Juc2-j_@?NY^Ivv|(f45quBA>!??EqQm zNHBg6)d!Qeya3^lhW-4htr>|Rpyhd<%fkCMCCbt_=-6ha)rjas_@Z$B%4hS^1?o0` zIV43$!MGH#(MvNN$NL}X!!BG<{4VF@5b@hHz;XXl$04!ZmUJ)PhH{{_nz`fnkLFE? zSEEv(RB6TYu4f+Q1SO85=XJ>~E{qp%Ip?Tp7DL0R>&uxu?+(jvHIUeHTJ2#&p}m;> z7|6G=&~`Ks^r5xz zqA+q8HOD~@kYJj+q>9M5W5>b9a>V-ZvFaVb;r@{xM}09_3oWt-Ew#VIi$`!$nF^VZ zp+%)^aQ8{}ntW@+YkB{-2st0xA2O=idepM^ZCx&znwRq#wO)`=SFMZplfW05u(CH4 zNdqK_xYuN!5h4pEw&yn+*7TzZ5mxWM43Pq{&w`E?JgQ|rqk-2NFcKa-@;&=I6b|h) zN=a~c9WF-1D?gg@j>>3x5|=D=o%!PyaOvP3FPv=~Xe<#42fS?vI}ozY6VwvdEjU>A ztT(K^(+Q@#fO(y6s8@&OGNI85NG{L05?;x=`zyTe*f+XY*XvJ;2(nXlBXc&7)qU(* zzpL*1H;4b9Hx!WMbyJ&lu=aNhu5^m9RJ&E1ObGk6>o7kf3&9%C@iEr&4Q&wvOFShd za68wFDg=Ml=Z-0*FK8~l49KD>I^UCjA_Sh<(6xP}y-Y;^D`LPl&>ru5=oGWa#wQM{~<2!{n< zyPLwiVX0_1+DAuD+P~T09yW^rVdy)~QLTnrEy=fz#-nV3tgZw4wo5y82D^4eh=pk3 zFw(309H)(=+jss&&g|}1=i(_bOzNLP)_!-aL$rtb8O${jxI~AcVRIze;!Im5VPS+5 zxG|Mq5!!_B-A=9rqzi1)1_vW6zvHEOd)|#*PG+19-hU7+tF*z=No81zQWAIyN+&eC zi&a6`UlsjpjCsTUzo-J&`XfA04h3;!f;etrdU)V9Ngvr8J^th5cQRCDd?&SS`)G8& zF_!hv5cU-?=+*K@_*Y1U4-D`xv~s%xo?>?@u%I-nWJVOWriu1-?L-lWy#Ym?chKFX4*az>|DB)DD>7yH*z-lxA90OvJTSt7r^ zuOwQ}(;b)iVi!Ev!?w|YLPjd1G}J`%_^%+?!ZLq~_ZH655W-f}KY$1k%4xgmzq6H`mx|e&srjg2J-%ZK&I4m`IQSYZZFJ? zs~=zkpRT-xjh}dYwalaOy$?@#c6T(VlQsjo?a8RUDmVEYY<|>^_zUsJ*B;=e?z9^Z z{QAtNAvueYbIH}~+fxB_r`kcf?QaF2%$rLje%g|2tC(O(EQn|Ff|jXq&iWr(=Z*Ih z5bl*eQj$$ZT79blbOXjKikiYG4;!-o%@a!zm%B#_^>(1bXdWU1cRI4OraS^%{kQ^P zsr_(Iy0*QNqO8uQjt&hL3b)?Bm81I$H=F@@;K@JXpIFkpcU zl33Ue3PZgdaGz{^nAVpclGBq}lJX}Yq&p#M+Q`Z>$oHD(V6@EG4~_xcOAS2jnCu8d zj(Du~%X)iXXy^KkHN_(%!<;r=1;6byaPK&GBRC$g<@Ebv6NHqFnVd4rC@%>8 zgWk|kp4_!mLM_9h>U6+FvhXxQ+1|w2?|c5(Wn)~JotEJKNatuvR6!&t?GMVALWMr# zcub6N8@iTT=Ft*6;JQI->ZXjlwbNSK_B_qqfFRCfWxak63u11lC+5*MmHZ0hIJ5Tb zvdyZf5wB~g)PQ4z^P}t3JL#6bJDPa~9sTiRract^h(lUwz1M`LT72JM=~plLaX{@f zc0n&w@KoV0Kp=zj!Mdn{PJJUn)4q=B$Hhun;ebs({ne3h?KoJ7=t9YUxH#oTe= za)U>I`P|W{aeL+qx027?6?#&tyFVmwVC*cDuldNsJuMmM#MbBW7js^`Z-f60FS$X- zRCMXT$yCf;K?{?)GxLM#^cRbYn za2%SZb2tvs>P<2{JRVRkGNLpvvu|Z^Ga_o4c=GUT9C3c6`mdh#+<<`$K<<}!f&xxY z{5nx@jRJSZ=O2u#eGg`CE1y!uSMxM}$OtSOOB-OmkM=RrC}31IyBU<>y7&USho2if z`0WnI_rW*#Yp#viqB+f)xPPSdBrhmwx$m0sJ5%6E_hw{zR>IQ_nWZ7EL3g391IoqX z7n?C0dARVhOxI2!GcCz4*z;Y z!)>z2c5jPWS9(T1>nnM!Uir6@IJAwW_rOJOFlx#b%yrk@d7k&kVU_kDLdEenM!UG3 zSHn1N<4EX+ajZ41<1}yK65_df&ueqo7*;&qN5JuI$cE6Tv~w&}@+v1~1T7>SphuB- zuZ8`-K4spBGM8_f-mR8gWmicA?-j(I+xyM;dt514`;oq9TJ*PuB^yd!kD;)@i+JzJ zf4kBlXwE1tl>ZrOHryO{{#^~lk+E-`g?{$1p}z3XlYh|a*vs@e7p4}9+#abF4qo#a z_XcO(XS;`s3q<=J;A$t-!WZT@v>T`-E_Xcvit$S0Sx4``G$_BD&$=#!&c_&Onr+3c zdLrj5mY^_&@pqICfYT*RyIa#pfe9Z)fWJewvwloPrF~WCr953YZ-$i{04f#nu|@jq zLe%WW#%y+zzIB&2e~pb2^oYLwRT{e1eEzyN#pr16OS5o6elJUTi!CtL-|4;-AVkA_ z3oT?_t&uEKNk9rnow1fk+VeiKnl)};curp{Va#8D=Sir%+feAw1F~uT zIk=+qMxW4t3;%5sCR9(MzO*FtuvS0)Nmm$k97|P8%BW4wms!ot#Cm_Ga?07z&8-`s zp9vX{69thMVcP8V3(a_4#U(de-5kJsOzRfJ(jPX!!g{OU9v>{mZCLuUwI!wh1f3m& z_Bu+5#AHnK1&rpG0V;oLONXDIi%WryR+3D!o_3%A$qIUb3@_>#5?+@ht@zI?Xi|7z z-FY$J*6(1!mnuSSb~e_)-kFm*;OU1Zt$PVYE7KKR>b!~`Hn&Q$_- z=!0b+Ujvwrz22$(dV4vKrSLK!J#&5c!84E;9QpWHC|L9`@nQ;|a=w%%6tEd_Gn_Un zq*1*zQmMI1*vjHkW20OV|228;Q{yYwuhp(R10@FSVKZLTjWssneVZDXw?Tq&`fugO zk2QW~c9)7OoVw=jkU`%BGAjR&;eHK^;|hM?vK##8mD_e=^1YeSvhy=Z;aV7l)ZbgZD6^qMwf;epE??KecC38+D1VyB zQT3;@1-{cx#0|uy!&d)vHnNci8YmvIrHpi>d1`U&0jR>JpB$=&iiDX3v^YCf8@1Ef zn*gSFDOy9kt;eqd_jQ2%1jck@q$4KdkdgMUd;5ns=at(JsX75r4uGE{COI0!#@~;` zhN<%Lbcz}{RTFkid}BI?1GGt&)A$M@8H9PGeb@V4(QqRH_l9r@jX9X6*$T#xl4A>wFxQV{5+ly1Odp@tyX)a?Nao$E3{f zvOoR}JljKAFl6>Vo)QAYPXiH3kai>hRp#%SY0=!fwB!qrC-EBnjX%C%0MxziBLwGb zg)!QPp01@e#t+(Ah2$9kZGWdg9~cwu{GcEH7Cp7O_yp_*$8Escx?c>_kZN_CPNy%< zDa)roI-6@xgFjNL2k`nBPDSwY1(4*_|7IN>;naM!>W3wv`6=;!&wh;{?%F;^qi_mi zX8C^5>nUg`FnR>7pLXQv?PwEyzMY`2k~B8Y0ypN*#s>H_g%Y{Vj$O#vr_yGDB(Gh z@mNTLsRFY~sI*rHYyjSVb@MgVxXNh?dk^PN-aSGZQg-=JN9 z)mz~o|CBvwevj+72)zA{y-Gy$TvBfXjhTkFL#M{-eDQdYTzE^#5Dw|GqW)PF>%?P) zw3eE;`7PIZg2b;5@<<6NWe4YvXlw!rRMj%Bx#CueX4ZWYvo^Z@Sz|pz&WzS$8N7_Q zcR4h-r=4)zr2on;e>WK)kJqu*Z<7!Q#S{=j?b!x}d-OTa3mTJ5&TG&6n3Ve*+iotBVAs;z3TOSsef(FR{-=eeIq#|T zV`+nxt@E@05Z+pO{qmw>;`T+{ftq+c`0r%^Nc{xs$x{^;YszIN{0L)l}GjE?8R zy(af|>+D$1waOqM{-WvKNgJ{?KdwyC#%e85qstw&*`~{e3>Yur5LAtEUYr}lsq(w_ z=aqt?0(^f;;Ly&qSHtl(Kj_voG6{B}GvAy95di0@4HuczLku}J_XIq&1uw?7$5FGz zo?~jm+zZ-O2rIY_m&f&VZe0XS&$pz2l`P={&74cbN{d;7@?yFA?DQ5%`a*j|FDI}; zf1%FJ>bYn1b{%!Ywb4Gxo9g4S3TR!8KRc@ATw8pWn@K`_o>6uM`fD7Q86l;O zrZi&G-+#7irSTgt(b-4{^fv(NE+L{^Wbj4DN1~TTZ`q_iT-Uy`EG!b6<+jpIqQW%r@cZx@Dj(5&(@HJ^8%bYUVWzX` zozqj+aSE^9)`FfgLzWXf-k1pZNC|VaQ?wa1GQnK8LUOC(bNQ@G2lN>5$))m@j5>QX zb)RNuriRVZ{_>7XJ)m{>n&OKx$x%Se+&z!I0BZInNSw#+D{O~zsjb!6EhP!-LC@It z=?!cUL@0Y?L*t8h*=A>895XZm`nZV6kL!@U(qGBDETnQ2fjNV<{Sx!}XYw@a8B1eE zAMdoo{|W%Hjk)#i%dK%i-jR~F1#^;}o4(3KkFE>&cd^AJ9(5%d)bNSxDZ^NJy zQFE=nJZe(%5$>bc+`6?DE07^v_pl*;|LsWgUr!17a1r3sqtnw$NX*~7O=EakAY*lya?JfBGSlh-Wr}2~QG}dilzQlGlndvtt3$=FY+Etl`M;~Ps12h%4>5zgY zRd^S{6=EGV=fgQLS9;mwEs|)-kkn=TYn>{dvfjIYY6i*Rq8$u8{L)U7khpQw z6ypC{^w7XI?GY9**gC#=of(Lb=WEbL>ned~IifH)Q$u)LYYA44i;PcJ$yFkC{C^CO z8vASIwa(Z3%+$XOeo0iKWe$%QkN5wFr2hZ;Gy#rs-^!60=q6+P4$%*1%??C#KH|Dh zy25oLY&GjvpLMrWNc!!5ewmr!2}>K6y^A5s1gXpmx4$58;%DSNcVGY?7Iw4JcSj1R zq?8|iEK1exuY@EMgYvlc3&4eAwD}l+-EqLAzd{dZm_mp*KHKgIV76O-T2vRI!|t)M zW7MMdvB~=B?}w9j`?{s?eQZx%nN}C3tFM%m_?sXFl;H_1&`<>*^TkJKwp<{UujvbI zrR^D1q4*_DLQ)K1r4(jI_p;EnP*e^BNM<0!*DWM6{Y{^({{{tC%>4FC+w)NRC||qP zD~x%r$yb1o?Gkarn~YZhRN@OLT_8vfv|Z60r{`mzvm%$DaaHohv(LvH3UW)AO zsT9qTm?F1TkBhPZWH3upGJkUk+ene3uY!()uw*NIkk@CA+IpZ*(krAd z*MF^wDqiC|VG9F$*9i`3FP_rhACrUz%U52cy#~ZM1Q<$Vnm;fx0QCY?LMIy?RU@(C zpbH)wVU8?=X^B7GuTY|Qps5T>#D+qQ51bF526OjIr0)byO=p4DS^I&>-wY91UH=+Vz9?9eiyHWo0rBQSc z9!?S6MsWF+2#5vPcu~#togiJb^Q)Y>42EP3I9`A#R({sCk-*{kpB;h~JDEW{2ur0_ z=(4-A70o?nmagCX|BPE)f#B<&%KIAB%|*{n&#iRFbhvrc>?nlYq_XAo3IfZF%<=t` z|72UB)7*c)~&(5*lk%{+0zC^feR^8gKK`RIOMHfD zfym6 zag~vso&}yogtdb(@#Gd=}1P*l?-FmfonbJDlz`9m@g}&~t z&pW+)9^_a2C;~f`sH$}ubJ37x*|b&yB@ywsetukxfKkY-u)wFxpz1L5_?Bv-)D-#2 zg?>!E<)1$8laqEDC?WLOkv*uQWnHBi844lyDi$LCLm z@bl#CsrxQW@l>hOf1fz=uuTSH9!4LHIv*+@>TR@K>Y2*&EZ5cqnq4mw7R!B$sIvmj zo!q>Yjuo`7N{@>* zM`hSqhLkeZ@=aynAZj%G&~EHatG~%qJ{Z=-6Epv9q7YBzxy52mhhZX?lXUeVCUYY0 zOqwQdSL8rKNtd-6-C$+Q>*skAiX2=G*^@t0Rd83Z30vGAArezP0pmD81X!ih;W^y& zT|o8q%Zt%*4zhVP?Q%du|8=OIxoNCQ{g|#UkoYICV0y<{PbBbjihh(MQUHTp|9xyf zR)MPz5HUIz8#2AWwXO{w%7zVOah7cgC{OU9 z`u6Ig-vUsMj!tHLe6yU`nGZIPN-zfcmRV z56v0;zbVgQH|a$8-=YeH30sE5CJNH?iE=)2R6l*jLBa$RqWrltdXR`r*eVT@E%!V0ABFFX3%%A!LRek-6jCy;#m>zS76T{~0?M zx42%vbuYAruoJt>4}_+UveG^?Qw9y`C2F0w_NZek zuj=$2h!z(3Sn4h0;Wo&7xK;4vi?>e^sGY4pqV^r@myM}=cYJi09kTQMr#>EtPz|dW znwGkq2h{^4rn(8$o%P>>5Vo*1FFTQAO%;g$I_K)M$<xRtfcW7>=43CCnm03P*|w2jN0_i?mTtJM>q4K4(X7g0?8?|9;b<||u}W+0!k zqJlY5C-#kkQoY*Tu26y6edk)uC~Ye4VfU%@WH8Lht(N%o2sIUlfDNrijXb}!$kl|6 zwY(+~9pq+h9@L2SEbe1(ix+ybIG)Xy4ucTeFQvNn^Hog1#ucGGB6Th^YawXi>UM)z z#=_P6>f#B&o|)%1e)Z>v{E}F6Jh~UT`q+`4Kj)U=3yhgda{?ai=eq6{Xd*1iQYah2 zo@%iZ3BlV7!tU9zt&H&wm4{7-A$Hqm_Xz=&p6#c7#&iJ(&h=RDHG43{PJ3;h|5t8L zc@)mNrVNz&0?oQTc|7!1Yszb|adcDf6cQ8)IQ&x_pt5{W8zTb0-X0tDvHwLTV~xV+ zk%l}rPnTK9ECjppYY_@lSr~c5O|LM1ij{#NRdXE(_cx76i4DFILBOrM0TZ>sz|n+c zd~l{!qEMsBvLcG^7pPf9;P$#IU|J2VP8Y(MEDrvnE8Rjf2FUmrm|t;_kZUQ)D}Jfk z?pQ$kTria@1}u0v3V zt>PsL>V{_*hB%|hAvC9WWvGuLB@8__^uNnsF@wvtChB@R@BEE3KTE(-3y!5f$hIH%H8N$)(cwI1@DrB8`@)}aRodLJlb$G4T$an%JFD= ze3t``ly;MREwW(G?gEs)W^!PpI~EM!R)6B-4m5B#H^jlKWQZ{kT8CUd;oT2VaFxa4 zBwOD|>-^=5lAF`}B0| zOK`1q2dpOKbqe7S+~kvx!!TU_Ls$U*k^257hhB7@qx>d4ygTrdxHgLp+f`#LbrP|Lsxk^&M;E9s2S49CVWODx!qZm2C zk8?&&(^A&`#V+_Cb5J)`9(C5aE1v`yYxc=IE_AN)!7QZ3X!QMey~KR?p> z5Q37bMATHu{>vP|u_T5X8;z5~wpm^$RDo7;)D$=7>oMelh2$_uwGH|hyHiEjo_CYE zf}4Z{a@itiC3P$I(YLxvD$8Gxxa#y1lypZy>R}G~P17Lwb^!X#mIpD8vq-5T6`hejHI#9GXkhu0LFe8lPdK%ZJ(L}g;n zDOTL%#yLS8gwa@zeoAWxz4)^3HjIOU?~w8V4;xHHkVk`S?~U}6f@Y2rA%b(0+Sr?VNO5v3SENi7E6i)*ZD0}8r@nLwD;=hJ z&?9o^Y@Q%ogHnT6Ym44QsCFBoQTj9GC&Z#!vfZeB!gKc&X!|`y(}0VAh;G7Q#U#pO zA-JbhT3VVt*)ZEzF!Fs6Ee|IHgo#5Ms${;zn2h#Bb*1LmhG~SmMUwfB&r%%gI&*aV zfOc_;Z)-|b+g7fqIu#Pb#BnoiCQG0(I}$e?&A~=#m@$HC6gTVZYm>PfJDFo)dFZT^ z6w#a*d82_MKTHzD@tVW27#$q`tZK#w8o^5MH2tgG%77EH&2te~dY@ z{+Dj$Dt6oWxJj?La9`4SK_;}f(stNmOm_JX%FT zc=ilDo>5}PT};)rSt`FwwINE$V9q%fg82Pw^N-dt|7;xVAoka(cOI7ECk}X2U3w?m zDIbBASD(gIm9B=ES>1gaSy#Hh8M!)oMh3e)15d|v;DblIL2DjYd;q5>oV*VWaPz`{ zdvhm8aVSMH!iGC^laewuk??&$JEuX<;1%(ejw^KFs@6`I${=)U(o14_NteYFyK2`U z@3V}QGyWT`M59j2JHyX$`QF8-spuC8{3zfjbR$QpMQNbYC z8kt>@_taxdgON%MdnLGA0M$AtWL6lsod|u`{$8~U>Z29DQEL0UA34fTcq^m_vy57a zr#10`9$)L+sdpH=xy+Al$HI>n=w2}f97$8`?ennEJYEmD2>d6xl;M1N*ZlEtT|N7b z`*Ayvd+PUy;HoQKhlj5t+_hHk4qcSG^ZF{I2Trf zxxblyi*d*~m|YppoV}>UPRCAQWetzPJNScdJ}tsTn<`?x*>&eO)~4stOP_3V`JP#Q zp24!rI;p2ztMnu7#4Yg^alH(p>LNU-m;GsGh{ZcVeG;|uV`oM_e$$Q_B3B_(TaT2A zUGv9G&T!G5DxswQQ_eNc^SrfXUKy4)g-DoQ*i24oA8I~5%AVrVN5>KRXTnV7K$(v0 zY`zuDk*E!pwZJMXC6#Q1ne7fwLfH!v1z0K;a14O-q`m!Gl&-NM9TbAEB-4=%m8A`d zR5O+u$Wm!5*=~E@etlA_#d>_F&se{+^dc4p0v5@SRGV0sd}lLUXCy6T&Y-c z-UOWB7Q|D^K;iAGj|=#ITkm`L{ttcqr_VdL7`GC;JpU&?-SzkT3c8GqrpNn^4bRfo zaq@Qf7o_nyR>W)@NMVs(@n;HPT-Ugi!-xr;@>cEYT+cN|kLiGi?jKg1$?NwctJq=Z zL;zy8Uk1oDbiSWozjy|;U6gUUxR{2b9k(G}4z+PMt9e~B<1H1Fgzz7RlaN4q+1Hnj zB2U41LOkAm=I=U}*4YFf_*mbbUK{w7`#%0J*Q%LY%4(Qd9!f3qNX@l|sFbFbC$cp2oEVxQ($>;#l@=JJC{&7Oh?a_` zh}c{@#6x+&6vfI@fQZUT&R^R5x<236`|}5UfB0TKuM2+V$?frY+|Q5u{h7e-AbYTt zzWl}Zo=PhvHS{x+O|46HYkeHJ08{@DYjq)u@3`_fbtkhSsJvVZn$9utQe4ZRNydUt~}7a4qQyNTpU z+?r8&k?(r*MAg}d4`kES#^pag%R$=NNaJG0Z(tX{F9nb0=w;s!tCvS3+FMqxIfbfC zt;hEKR05s)!*(N1@zaMtEiiLmz*c)-ZHacGutewG;XwtPYPlcgzPWV%a!O>+!vB(H z80^1ME5n1F1&O|Vm8`YEJlsCt9VduDcyxx?#xvX`j5q)A=izehQT+s0k{8lvSbd*RkU?`IOUO_7gBN);_rN!^ZlxUpo3MH&wbt z5+8(XUU2v3rDCqYb7mJOd3B)$PF=`c=4JSlryG2?%YN0qH6gjO3xK}A{%=Ks>dG?6 z4dJerj#=#AlK#q7T>a>Z#qp~@5yzzF-r5;d+sZ#)q0}(q(3+(Yu3bfA|4;j?Xn7P| zo-^V)$a_a{c2bl~w)C|Lx`mTq2sT+IQ)Ao^N7Sbl;=iBpJW!QYwrgwe0P~vri~g{k z$|jS?nSs;$L|mCrH7sb~RuGEYI_z^SnAGHFRdI4tHUHv=?<#jLUU~fo+c(9kWN-X; zf(G&XBNdg(xASMjp&gX6%~x&?C}PqL%a7I-tsBhTeiXZ5A?T*<&Pz|?Cu@9v=Ft$k zuN=~2tgd~~JgyK)-gtev{UVnuJlzc0-bW;TPOhKcc|F(q8p-qT81g-C?v2XVTfY%? z$<;!et{W*s;T!AzvfF>7tf95#*s1Y0k~?O@wOoNaGj+an5h`#;IVSW;3PjHBZArBX z{o+AmlQwZSz1C#p@|R)#pwHeqda1VQ9@5_m!#aOD#1&u3Ina)gwkNhB;gbHi57Cau zm-_?X)9Y8d`(JPVrtGnPI3I+!`rl27{O3lOYn99?yCWgAlU7%vj*QUzUOryz3m9r| zS(@cp=gutO+?_fF>lu$NeirBkiU83zNJI84$3<0^n6fkyyyHw7;M8i zd*!8rtg9!hawuHa7bMV?=2ydGq{$?~^KwX_i}Q)#eAHjw9SfK4DpadS3l-OILk0hN zbi43{@7rX3mnVK~+vthSoRZe}yMJ%_=T*wM&mXHZUdAEh*HvuQKZ{NeeJ>s^ZczRH zWiK?d8TQ#xUtiBdtSH6y^uryG2&AF)OIwXaz=T=3vxrS$-;@ZrSX z$K?mE1})=1mQH(y2;^*%kA{vgkE``^my_u2%@%9rg@zB^Si%3E#bd0zk*M?r zl_BWC`f=7O2rcPVPMp5H@l+gW@Y}3irhm7P{yLt#Uc>4;b9*lN#TLg8K76vce&kzSwEWK}k++|r@-y_bQ##+rwNGyBw^+lOsx*(9adokLYapH2 zl4uw{m{|Vg_M<-&Y0tlW=@wPw`zzyy>7sUUKo_}h%iaI_v0j2XES(x*Y%mM3Z=dxv z)cp21!~#J{m=3jwt6H3iocueVkvQ8IuyyLze)9Mc&C=JeoDN47^@I;AyI`L^sB`J3 zB8EJ+ev3?WsEh_ZeNy3Kd6}BC>6$>X{s;HpO+4oZJgyz%rROGZ59F{9V)vCsGuN0L z+g#Z%{7>>?O|ZPCb7-|um0;(o#fKd6-k&9?+Wa(WqtQ_yZojoyv*vQg`tX{yqSqIQ zCbF=d@z(Uj$L9G?2Zy(s98PWj%%s62tENQAzxo5t;{sY;Nh7C)$6#VFSh`YIFHKX! zpu3OSJntLaTxRyiHUZ1@TgpfXqWux8e%+Uymp95o&t{gi!vEOXbL`1s-tAX!)*tOg zY`yk-;!=UB2K@B^2Z75%V)OD{_;EV_g9-f*kX2PmG}H#E2e*k z(yL*YA8(7|2y@0u3u_GpV>Q{ZP5LCaelOMIeN-vjX2ZPIcS-a6HoiqaaC5~pTNmy< zz*>Fv1aU{GtSsdn9J?Bm*7cyNwA@hS{xWkgJ!h;5#+q~{@s>rnT_(~83;liTo7Ugg z{RTf5MgBFTmpUWs`Ss4%I5&Q4|B3X*8zVOrt8rz+$IJH}|L}F-YpXAVn;$1G@2`A( zr}a>X_e+Wfb%T}xdma;Ft5x4C|FoT?~c=JX>)(evvin$-lH@z6sE$iYOpKqCS z3fW~B@x#y~K|7O6f?oKp@i1n;M|nqA>o;jU_hHx9{Ntje)5$df4UervcXrDkgxlR6 z-nF3RZZKi?WL%_f{4&3D*YOh0{jR!a8Br<9v^mY+=c2EsVZK@OtL)Nd(Oden^pg4o zyNg%$m|4{t$lm+oHe4Ut8rldab&vCxdxRZu(d834jl4&CjM$XQ2fq zGh8})ZmTq3DX~6stxIzG6$W53V)sIs{7~sKkmh*}Te5|oDr?{oK9?ReF-Ob^{(N*U zZX^=s8RB}j?!~!{*Ips~Z8Q5PQTfC4NdtcZet+Bgl72}V?JY!_g`lqm8o=;hrq^xC zY_Ci|vKviDzi#m7yRj1zPyY~q{hQjb)!lK2UTRbRetkUS#tobnCAQOLk^QOOg!w>3(^mtJDUv2c|!Yc39{zY=$Z);C2G(_FvxM!BgHRG;J}dYqs7tfwnx&svjWThFrjvC zN3Xmuzt%NEw~iC6dw{~dj(ituJx%LuZC{LBR=3T4EzJCn`|k%AZ$3w#HVdKXd!2L( zY4+d!w|MFWT#)c8L`D zlf(79WmAClqXr z?+icPA8r-A?F6pGsV~;=XMQ8=(kpr1_SJQg%Xa%CDsJe%d6<;qAFyuM`e5qJiS3uL zJ<0Ulm76y>-VT2G?95H54d=6(AHU6iGI*c-S=qzt9mm`wpxvIpGxxdw`OX`1Qp)({ zDDH>q42RDJtC1-=@4c{pKB`q6eJ55Y`AS*WqhD~l_FapxG+nAb+R>Qtp9dl!w~0Fy zaM2-!_v1BG_u-3S+rn#p`Voll+;#nhF{Gp@F8lr0@Vsnm-y=t?$rIu^x#*ke{o@Fy zKb#y<=~)$fyLVp!8MXraU5fvU@kioXg>fX-(!jP&5?z;J@8-cHVF5RH^E3WJ+-{2; z6*EFQGhUw4B}i_jxT+uR4f(N+mvZ4!rS$`cuk`_U$LkBkFG{=CZ#>yc-uM8v&(n^4 zHEiRR+u052;UD-?bf}vHNU-t23x#=8|GF=EUuWgSl4*sTh8nLK-jw|G+WmA*$E7+} zV9Q>A57@fzexy|Q(fcoEeg2~UepFA<*Sj0-_6u(MVB0R8p|4&0_)Ff5D~flOjtW`F zXn&u6KDTM##^2@5KRjK##`=R3Y2@yLeU1HRDYqcD5Vy(z{Z;;bsp+YN`RX$r%RwW9 z4x251e?@t+KFZ>cYLlZs2bBM4^~}XEMwi!{TsxA{zxyqYjBwnYP!p5>{VCURZM8=b zI<$2r!RkNp$J5KRMg}#C{B`T!_l$?XanIn|eG|&nyl^kRvTJ7(jvWxcew5S zllSyofnuB6AAY}|^4)Y7rXhfcW&dq~wI_o)AMXmynVU_?;`ODUrMCxLHbzY(Gp-)H zd!n^9d*8N~xHbH3zxvGVXO;VfsP;yz!xdYEMdTfCJa00zf349OWn{&U{9HKy!?z1{ zT`v2%yQqL04d7R`p#{4?|7Yxv&wC!+O^A1HsJ6E8*vdFzz$oo1t%Ujf9#!|1 z35(HA1`4Wd1!RLic7|9m)hBrR8HdbNdpdwaHB_WQ#QP&vwN(TDXgO_kR3k|~k)h2% z&rmm{J$rdYjk~D9Nhy~y1KEAMhKPA3zICWnv;8OgD6y!=Z)?tCf;y1sf4m4Qy%ZDK z@#t9AwxqeICxZu3Jux3Xu%FDlGLYUq^-b_bux84KN*j&Y6tn#?0ra`^%xxWthPK=osmP zLmBSbtvg9N0eGC6$d#|ChSUF<<6>30idAr6e%$;X;;%kGTjJ$~jv%WE7Lfuz#+{1|e?J--RZv_tt5=}e{=7(d1~c~VGJVdfHpOPeA2J=?d!hgIQ6D@f#D*^>G*4Ap)$^b2guewsf`~L6OQriPT7qr_(?k>jFwd$7H(A4k31?iSrr0B6kmFM4qnF z7MwlJ{pwnvTbLzb`-5@yOI&hY<{@x_&s99|EWJc0Um2ZUU5Y*|vbm*`jjbGMj;gJs z9943l18{eTHE@>uw&$sd!c6yE534~~NQdThG_VUwv{YB+<( z3>#MvBJ8H>$z77?e0mz$aiE<>X^#%2@>1xrsfdh{cdy<~rI{7KP3>*aVI=`|TinB) z>IiOT$H`KUEVFe#!5HM7bJs8Gh10Xkm2+w;1iz}KvKJG_n%l0nwDEDAxYw#qkC2;0 z-(U;`p0Rgd05_Z7H7vDP4!gvXXYXpaN?&E2K^tbz_eTi4_Aalwp#MD z=VL^)J}8Mfky6(TozKoy-*d`Uh2d5>v_96;sQ}oHFp;^RrK6vi!FM49siFEM*qw%d z*Mlgu#b{3;vHAf+yQIY~?#-49=uAEh8Ga3B?6 z!(OWP1P|7d(64GqIvTKAywAPJZI124Bm>=jm^k?&4+kXc@REPnV`V`030@r#T-!XV z5^jWWn|L%Az}Hui&tdS^hG&z3~J}_fY>Kn<^_g($%i|i_LoyB zFLK@FULK}8?UKuAi%)a`%ga?KX=3Bd2^TUoQI(x0zp7?;4VC3ZlAO+p783$EF$V;@ z=4&Xi=*O02^SDM|pRuO8i^xE5gyZ2@vdy!A!)KdD2AyNsZk*-A?xx?PQ7!&hZ04qb z(FC&TUT>c(VkMB_`{&iDF8}fV7?i(F$c4wV6%p26}{(V19aN`sy5g)VMdaDAW;fj|z0GmyE5SjkfD2ccTX0r;S`sWjC{ z0z=nxQWTb#o)ZmeaYXYeGPE7SuTr0dQCH18G#(Re)A@hTN}>LS;kj)w)*rJ}sC`Fl zXRF$*K|Y>OV9(L5YEPaICKDuYR-_oJmoK)u4d`xjY+KywG@Yag&-OANMK zfi0-`-kipY;;Q^dy)l7@Mrb!rqy61YP3{lDcYH^TK}X_ZKLjT-8Of!G z$)7zHMVOn1JUb+63dDM(76y;Q4OAXSE=rt)*Z($`g3#_O7His1kMujBN0AVTv@aC| z)npT5vog~4^)fGZqXs?(V-cfS!wQ`at3D-|eVIsiucJibgKDwjX!Ot&i`jVKak6%Fzi?6Sg|Lq+K! z`9Mq2eIUIN|IBgAhcKSVKi{T?7Gso4$Xendn`c2p8GOf;WHEBX}El(z3QS*ES@^DPcy3s9yMGpJ?g#< zQHw1KQ_Vd*Nta>eZKWCe4%Kmg|Hkb2!wX%Jqc$)rNhzfUFEWE@i=%OwXO1QMJP~xl zwfcoGJMj2-2TbM9lU;V!qH=QgcBEuf`qCsh!7cz{A}@wgS9Fky!vWcIGS@MCvPeLS zi?B+JW{!wc37nnvi_-`>%kpVLwsIyTWx1WMJiWb3ZJ(pY{J zOpKK9va_=Fvy-ZZY!b)|ldgKvIK=`Dh_7e6F$qQHD0TNCd0b^S&o2oi-HHMC{|g?3 z0Liz4#&Nv{twdvyDm=m;#u7T8utvi*v%0>%0Xkpb(k)>r2ck<$buMv_>*lYtl?COE z94V+{EkE7EUVP~zerj@xWdCsT{*3T^LKkL5mhPB_5AS(*2bY?-@>YSRN5PtV^X)U< zILQmeiDUx6sT{%ARs=?g%3$G%Ti=AnWN<^2h-o1d+)S{>{&Z{7F-U-EPO1f<@ zH4g64?>VIt36|!!gXK~P^|B70kw*j0S8gaz`#%WkE#5E2p-@~=oj%5$+rzIxAF zzCF7PQGgXrI5IRpX6@|NKui2|s?~-Em4u?slfMLw+uqg?J5P=n1$zF&jZRtKL+_@^ z=H#>_Z%w@ypqs=cSmpVeMFiJ7)-A^Q+vN|WW&CqDAKS-XQC~ci<7{#cab*}g>~S%b z0%a07QVw-#5Vy@6m3llrQR%xw2jk`k#%F8Wkwm@kp^RB z9tCu`{RUb+VYn=?bhf2enMqyAfzq5L)@1wP0Zp?)BN|AnOY>2_l{2Qs!%@?+OKpZJ zm8=XG)H7DqB^N&D9t48~N(i<$qb_U|vXGrF-96M+2ZmF90E9ux+I<#lkuG~{TBiPtxs5Jz5}0S|M_$L4QW7OdPl9j?q5eL$Dbm z@FV=xQ0?PNj8P7l@%BBJ5|2JtsU$x#9u(>E#TKsT8ayum7Q;Yc^8e1C6~mb zRrXxsLHWt=ko9L5Gj>7>p!f@+#x6klBlVT#l*dhGzM(|lXNyi4P5!28+waS5qeq4_BMJ-99zHY;QgPQ71!DJ;$ ztFkmYNgIDsyO^e*WQlm318s=R(ovAItFMv^S1(Wj<_xM0L_;C#gRnF3u$3FOkV@_V zmuzaH^PW;o1z?j4LbF%L#Xz>y0uY~dCRxB?UA+q|t`wEBBI`Rw(u0IwQJ8u)){<1~ zrdrT#1Y`5#dq*Yqs`m%X+%J(dNIf36}4%G8k`s%%XWfAFV=%TdjPd| zC>Gv99F|T3*{PmYeH@WfEy)I4KXoxz|9a($8^ucK=3-SM%*Vbv@XHmnB(q0&;Og7t z7DM`>xmB+7FXxW<=z##;X-}heD3Qm!>0s}3&&jc@Gu{uIif=~U1*(KNLW|E#Cjj$& zrc~-RD@3a7c^-l|l~%~!#d5sR6~q2D4KUSrh9D-E&+3JDOhtHL%1%EAb}7(8lN~rX zSS8}tk!8{CE7~yygmw?MkFGarXI7AC>6G1U8)YGUptMMT6Qs=e#<0fdn!J7LwYkHs z0HBp(mO~ECl*a1$nAyUB&cx@DbzSpJs6?49y&;Izj4xl5SM%pL5}$d!Nv#^q3+J~l z&K~n)MnT4IjggCjxXido5B8ll;akHN^HXQPG8QG_i(n`POtK1d`jCUbhz|f2 zBg^@(*OE(Hl%y7AyU`8>ho{Xxb#O=tloV^c(jY{qA@$Hf@o_LFa?sj}mS1;^t`(k< z?)P;95C)xwG}^5o_4Pkb8DHIGHDw+n1!z?y8zN8tEk;o&?%p+Yq^7oz+lhen8K+$W z>UtJ=$k3_rU;zGBmU_jzFX&)PY@v2Yx(}v1(FcR6#z#?hlzTyQ_GcGrZ5dp3Un99L zLPT(2P+MlRiM)n!9)mIq@$GR+3+(tm~gP305& z6r}lL<>W^KhIek`ZJU?27%zgZ0_+4dypK7(xx}ZCLhoywnhNBUWhW}Dbh685CXw+a zE1}BVAU z`26tBl9i#uoZ&Yy_cC+h1$|Q!fx;M9PAedkwvQTV){LtlSuybs9lNc(G2_?@i2{w3 zISZKHNaUfZksuM z%!hH>HHbm{bXa~8-o2W`ad)(+F2(}qhrs_TF6Nnj!@~K0QqLaUH&7W@`{Fb=yBNi3 z?=0)h9~&-=-nsHR`yVxu{ez@YTBC;lI*@|j{y33XKklHc?>XxS<1a{W#*I+L?X#U# z3?TcaNM!#7#HJ7y5!z9rF1nfE-fj(Wf&|$JvREmfrv!^$bpsQmeTZ={B~Z+^Fyunn zZRFII_u5XZthKH=KNPP-DEsRZ->{cYq2`0r_Am!d82vqu;S`BZsKOQc2r~@lFb$f) z*_$_=OcC0V!^*7u7y3 zL7p0qPQxgfD09~I%*;X-*P{(Bc}L3!bAx$xuxK9$R=q07A4^U1!+K$qoj`W$J!E`y zY;oEoi&!ql4lvP8z_Q@6nMd|#C%Z*%8Nv9PWu{mJ#!kA{aupk;@mm;N_*{Mjw84}%{O`hZ;yZ#4w*^6@(BUh zg6D|tqX5UV%Zlr^#dQRYdc{e{GzxqcXDGg~URxhvrV@<3Lk~ZU^$K6apmVT6`FP;a z^;s9IFls5k1qVbQN)D=Td%>S~XAY$B#Z3fgGgCDW!&c{@aYW_22Fs_g|B%S#{DoVIIbx{YCI<7dgiOFm!%2pMO?w zq{(qU%{*_a)9qjks((rKuxVh=Y<9xXT9el^oP4eXifjA~;09)T<$cnzSzQ$l^>xpM^>)0tM z2vXvmfyK`r1SbaheU#2Vs*JttNGw`{USy_4B=NZ8xa<;8X_FWrtHz}Bi0H6OQZj<1>sQhe{t_F?OlxuaRIEr{nkkf`W_u5M zxViBL%zV)_%A|xwt|%I^KSc1wA6PU@x3Tg{Wp3T0b5$^6j3eR+rB{Gnq(#XOvr01= zg_V=C$9+TjQdbOuq_IGz0Y*G>OJ(sir3F(dcGAAbF#U~bMWe~tnLByqv$xIV62n$Z zqpYGR));SY&UNh*D<*i8382X&yA$B4M&pUX^MaF_BP2@f$~jP9T^(1R>&Kczf!Y!9 z%o17p&M;Afr!pT%MVU+Pja>AuC~D1JeF_xBjX=B;z;^NvSIHjsEdoL2C^pv9rmzkx zlg$IX(=_7LKxc2w;0Xp$lg+CV%`>a2qM{|D+*BG+I`VQPfHvEPS5(9)FC8)k4EuOn zCuSRi41slwAa!cZ?8}qzQ~B_ap}M@mx+DPuyO5+V;?Enp%?)ox^B5l)cYq#&q*aF5 z!Em7$A$?ql6A!0NCeM#H1^XZnF6j2#)B#BlE2TLtZ7O$ZDFzxCMwBn>Mx*zGg~BU= zRs>0A;HahqNNK!g&@~Q$E(VUtG}UKAJI3e5K=A$xicYvrUN$s5 z@=l%B_A}OB6Xl6nb_LJPTM!VS0S7RqzO;cp*$y3uZUi!n17msf34VillTCY=MZ-R| z`0R1bw1&P#6oOs;AiLzq4oK5YC-5<+{d9gjF)Ik7dw()tndAf*36Cx+;$Z6odfJPe z4GUAMBv{0eFFsP8dYUVd7#4&4{3K|9$%zcIq>(FWY}`oeGY=YghZ8WXQJ`g$g>P{c7C1UU8UeN>*Z=|{xyl&S{glICtc4ro;t?f@ z+IfED{!!qo53U+gYHzRRFpk#6n*6!sV(fALDp%tjM6@ZrtbmV<3+{)p-1_VNCNe_3Q2c4FZg89))L995~y?sS=|g{UhE^q2^)2z zQ%!?J{>eh0GliWe=v;ztUz}Z>qaXw6X>2wWF&Hjj8vcRl z*Tn4qxFxiER$;n2LlD#%klTb2PHFWPw#0Xxx?xOQmX{Wk<&YM=I6m*lll66`YE)=W z#L#IFofWcZBkynf<}l?RCA`55a_3BV9{j^AsE~T2IC?w1@?PU)eTuhi*!LIF<;Ss6 za#F-l(873Sl)5chG88l%9#J2ST*>el-8o0Nn6>wbIHhbdrv%ut(Ci|Q)5Jxjo*PYy z?&ma7TV^g-x828!hSAP^dy5_Ub|U)$SU(5#L|Qr`U&+C_%THeAb;lh&W*Nr5*rHc+ zb+?Ei5Nx^Ug+UZqp;=JSD9Y$GXXCUo@SJW@;AotrBW`jdI5ks>M7ii^eO@U;xMy5o zaemD6=t3f~VnOuW570Fpe3)8<_RBs@P}~^ovB-az8@JO9!1eI5_G3D-eFVCALsQ=W z`289+5u@vl9*JGVF6dEH^2vEHAIg4(ilFoR2j}ypxrXAAlRls#eV?~jj4Q{vLD*&T zr>*GBE67MccM>d6)WovH7KvSzz}ZS03q}+)$gz?$(HM7G*w^o6DPy3N zKs8*?%QyQ){=Da+7X)ic-PM_x40g6Q8Zdrf0N(t;mTp_R>2xWOIZef zC52U!i__WTXnF-RY)*BPGB-KS34>U|ie#c9=RWizYgNkn?tc!?+UVIGCfW3E^Gch06Ar=Lzoo}B+0Uh?>1CAMAYTPPYFdlGztxx72oP6^A~yZ zn&r8&!=`lu4q1!LY-NqDua%#>k2S8s%r}Wru?LJ=*Z)JC-Qn*1`-Ff#3q{^ZzjHr$*WHQ*GGBx z)_2~|y@CZYX-L7LLtvCr;1nom8JkS5ng@W|!S&v(*6~1Tn*)1fq;D2s*Rqcm71zvk zq(l=EvdZ{P;IR?s$dMpNKPz%k%n>Kbgv`0IXdG!rH$&{BMB`(wh6cg#;kA%z2DTR@ z4KC4tbduk?y;ou+%3;}I1-Af_R)r=lDqAK2iP4gj+>=54H#LRP(1EIgt`S{`oq2GN zVEIX@%~%Cjp6bE{&N_?yIlG~P`B5A299NjxY`S9-HdWCF;ku^~QqZ-`Afn>~3&<_+*9s7e{Ahm)PJi#63@nV zzeXu>z>MmaniF8GPc3#<(cl@|I^;UPlG8#EaZ=_wb!0Eq4IntlhM{vl_x8gToQF}W zurf-G@s2QeZ)O<~jmR&sUVPK zd>mgIroRwi_$a!UO_BRFhIX|m<*B2oX-ctvR<3t(L$6j+(S|uHQPt4Q z&(^pE?>84dH;Nu*@<=e3h}ch&l>kL@oKZOvOc`P4m4lLlzw$lk!|M}0JC947+tEi{5RgyV`BS4*^xk3H&Tt{5waCq$?4`C<2xOcXayMS9j zNix8hl%f=;S@>RKv55Q;AsJ#9j3pH{!rJzFiy_0u_z??O9f?!%xNrzAL*3_PDFwg z98qWL&t~9r-{ODLh9a8~*`)G{QHp;CI^Oae($#wYc0)53IIFM1j_e9!8j#r7K=uf= z7lA6vy|gstlU)QXZW_&Ae#Zb0&JisVq*w+&1)u;{ced8_<6~%9Q*Gpti<7vSvSw=_ zI4}L4e7S6PZD#^9&t0HP#GnEtDJ0F6Y^KqG=_mWBmjsJ*bGi!5W!1`Tm@(G2-v+jj zqQCrD4hGi_X^b{PxCmr0UiuH%XXK^bgB*c>Ot*Xti~NC68v8){VH;b_GbGf6)G9`3 ze`YW%iGXpu_BQrXg_u& zvX~I9uc)$hpj9;%`P>VtJd$!fqA+|OjRFJ78H!r(#sh1nS~fsZm8d3O5cg;9B-hVlp~c1?jU@| zjOIrsdv=IYs-MPTi80x^2vt20EU`%mcjh>6v7_0qJ8hm3I**NXA`S+2#YPs?W#KCg zh{>53$OHvBl}Ty}-$3qfUUVp=&8qK^3wWZUCR3BWPGrY*ri#%qZ^L(X35Ztz1di*k zjA>3BD}6+`493dJ8C8~CUu+R7s{n;}UEBkMUXcP)c-c z(CImnN3&^$Q)g;wH?O5EwOPuH;xMUV8M0^fGKnK%=(OWyDsDtd53_>rDCz^J>8>)z zlKrYhz|PB8BC!=RpCZ*BaN^wL9j+fXnP&`#rB+*L@IVTmgiE(e@h0Mb7~$q8n|GSb zsg8(Gs=}M|AC1KPBY5orh7VT_^YJg%C3u5-UU8n1@Q+@(qTM7}&{~o> zsHd-iBNgZJVcZ~C^!&^G3s!(Fc9M7!XyO)CnLoom*&{81pF*-~9T~KaaxUFsSKJ&uV5$w=FX$m}N$5D@Hr{Y;J8-j%ccxAsv z8rc~4)OeMtZv~lHJAUWo{V<9$BM=7+4i(3FLa?oNB8l#ODZ|?A0)se{DRF;7x3Y~ZTPk~MHP3LLz$L(fk6F}LAht)NB^<$YL*}k&@n;U{^0ZW3@G9uKv z2qbh6Y0Sgh*m&EiegPOqriT4%0Eyld8r~FY$4%3GvG6NOhsqLP#|f zHNcTA47$);Q;h7HKuT!FGFAf{ zqsD~X|5tm>U{=vnQHjXv1iCB~5)MX!B}TV!2$_(PXOuh{-|{93D-&A1mAOq4aV&{P zbJx*Z=qT^m{xf0C;UaUlW@uoZ{Avlde0f2i?l%^TfDfm!nBeLYDZ2jF(FR0NUNZkN zxLy*R{R~3_7Aql180^l`5GeLpuate&rAnzAdwug(oSUt8%T+I1G%0gPzw(kpmFXAM zE9&FK%5IzNdZrJ?b=Zq0C`1uS1)Zyn__mtP%V+aiAw5Om;X(7AM~Asa$&+C8@=*g& z?JIN6>5oY^(fyA*@#8afPOk$=H$sw9E-?$4ao&B#e zU{>h>`ZUAXXzlO+nqNzWvzm6163<17nRQ5K1wWJ~4}h@laRVdZ;Sld6+SIp&VO5Bo z1-N?4f`NkIo`kOQhFrxsb9kBFl&y)*YiNkhD^KR1u{HXf15Qe(aKESljkEOz6Ir>l zKc!jp(4WvPS9>tUg`@M*GYW7JTvt;i7dKA9CL$xFE1L;C;$(x*0DvIt9?I1`FIs8D zdj&}5>0GMJsO9GXhIfGBH|8HH?TCC1vj6F#9kqoJ;^Zr)G})XFfZ%HmLB1{t z8uUX#kW@-DkXcEI1;;_c_cI5K2MLP?ll`3KvHRFQHkvrp9A6XZmjGJs1byfGQIn^A zx8dU}7@s>pmC~3IJB@_kdxlq@ykNy9`~%A!STPQ5Jc)$)g+crzw0nFUHtwemD%tST zAaL66^Y41MKg^LBZx`-m;(>>l!;}Wry+O`kKRMhSZ2$)i4h8#s9*E0XK|$;|Mb|3k z@BA~@ZRjyX)&7sc`9Ht?>H8CbPXs;@_(b3nflmZJ5%@&l6M;_zJ`wmt;1hvQ1U?b? zMBx9g1Ud{1?<3!RjBb7@Gax+I{u>bc|LdRq^uIn4_(b3nflmZJ5%@&l6M;_zJ`wmt z;1hvQ1U?b?MBo#FPXs;@_(b3nflmZJ5%@&l6M;_zJ`wo;p1`@?$1JyKP5C0w$KM7Y M5B#zAhjYLFKSQnF8~^|S diff --git a/public/images/3pontos/logo-creation.png b/public/images/3pontos/logo-creation.png deleted file mode 100644 index 14141c140dfef27cf6ca9fcf58746ed08a51e4da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452376 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

    XQE8V13Qv^~LhM~TS? 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

    3=NfJoDc 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

    sncq|M-6;U9cI$@Z=%V3{H@NJg`uOemT=)6( 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

    4&4#zje|BsJOK>N~JN_u-)d@-H`kkG=P*4|3Dw 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 diff --git a/public/images/3pontos/logo-rounded.svg b/public/images/3pontos/logo-rounded.svg deleted file mode 100644 index ccdb9b503..000000000 --- a/public/images/3pontos/logo-rounded.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/images/3pontos/logo.svg b/public/images/3pontos/logo.svg deleted file mode 100644 index f38220996..000000000 --- a/public/images/3pontos/logo.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/images/3pontos/partners/betel-logo.png b/public/images/3pontos/partners/betel-logo.png deleted file mode 100644 index ad496465ca2b4be87338ea15f949fdb4142a956e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3045 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 diff --git a/public/images/3pontos/partners/firece-logo.svg b/public/images/3pontos/partners/firece-logo.svg deleted file mode 100644 index b29f82b2a..000000000 --- a/public/images/3pontos/partners/firece-logo.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/public/images/3pontos/partners/flamma-logo.svg b/public/images/3pontos/partners/flamma-logo.svg deleted file mode 100644 index 7362c43b9..000000000 --- a/public/images/3pontos/partners/flamma-logo.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/public/images/3pontos/partners/ipe-logo.svg b/public/images/3pontos/partners/ipe-logo.svg deleted file mode 100644 index 0d1f50956..000000000 --- a/public/images/3pontos/partners/ipe-logo.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/public/images/3pontos/wave.svg b/public/images/3pontos/wave.svg deleted file mode 100644 index 1c9bb9c09..000000000 --- a/public/images/3pontos/wave.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/images/assets/linus-dont-ask-to-ask.webp b/public/images/assets/linus-dont-ask-to-ask.webp new file mode 100644 index 0000000000000000000000000000000000000000..d4c4b42d6e4719e6a282c5fc999d46ac3082eeb3 GIT binary patch literal 96480 zcmX_ncT^Mq7wl&@AtVwY0fbNu5Smg#k*)>^m`IUg0V#$mC?#N_s-Y-BiWH@bh=}?X zm7;VsRH@P|bOEV~fS`gR^7x(e-rMZilaoKPlI+(DwQ?}%9{i1?WmkF}Uhb{yH2 zW)kSsx%PcyZvE?WaD!fw_qS6lR1jCflSd*;emuGFQ!Q_Wbg|@p-3+<4v!xDR3TMa4 zz&XdHBl@03kRRD-%OtPZJoqMmVK&C^$OyeTu{Dk(ISk(n#~Cftq%hUg*?cjpjHNTlTt=(_`5i_81rp*Y{#OD}Le%BtcvtA9pU)2>nNo@2!Xb zxC$$e+@9lKgD4O`P#{wa%M8nV_g*^;N@SEhAyyDfQQEfOOBEF+0uIzcRyLPz42nMP z8kv9tOwAvn>DT_-NJD?;&*dEG>S%y4d>+7hA0-Cdf^;bqC18feY5?wF)<>>NOgebI1}50>E-{B?|x!4lpQ27%pNo7NIf%VsJ`_%ccv!y<_c2=IlxNquj_7uH3m3NSk-^+eYZW+y!{1%q<{| z%w_oLaJh|WN0F40)?aU@2e1FTvX{-q5HM+D&JXdi+pmROXDdda1K^lf+uNn3M-s+f z)UszyN>xve6!`0UrsoJa-+i`iCQlV$>rJdD75P0JlfPa6ea&zDXL?2QBmR{KC%4*2 ztG|DKgDS>eG+a1TdvI3sUEv)IExt4VY1b>Xy*SMB=-2M!($gxm6p-SR%;$d+hP8;T zu$i%c$TDf9+bv0Y@a?*pG#ou%c`t9XXvCTCx<@?`CI^WWaSvv$GxNu#|RY)DU48A&J6sb5FeO{qL;GP8${Jg5FM z2)Fq>y54f&ONh!1KUqvF$?VtP&E;i3Q-&{zo=l><3Gc7`o3^=@HmeT(zn#h8_ph}T z|Ce=fYx3v$uhBJoHAgLvhd5tloXu17pkK!I{j$|9hnIw0DMO;lI9Zzy5yZZU@uuUhL%qb3Fh5uVhYSWWD^i zeUdxB|M;MrI6aC)f6Ek8U+ydI zRiLMmMk?em4jxa}>n`2hHXM^3A2Yvp`Tt*zy!~Id4|!khuRi#+U28HET>ZQK#+)^~oI-z% zpL_c8>rY<(i=Ss(?&8&<6D8Yw255g4?~Gpk`R{Y|(FnV-u0i?1B6l5zLV{{vOsU); z*AEu=v%=tMy5p~EI!W_V`@i1;Tg+fe^=W&4Fg&u-N6#|zUFLJl@ zY(%!ZzY&)>fLY42wcAHEGwSL6apa1D0i4f;U~$TxKiJ+S(*#N!Su~^}_HHYnAO>Xt zfQ68^xQR>5s5P+5WbJ~;9*>_r69?;5#FDdn;MwOLcmC#ayqgqMHEwKL?k}m&)IM&7Hf2#63dWE1fD5g@u`v?pFfDO? zE=jM8X?}ggtFD`QF&|gVcK8_6f@b$JTMVLkR9VO(JPM?R2<*ni+5iD`8W)m|HJB;Q z1!Cl80s=0G0yIuH8N_g28qr`mux!|SBdEVN+0Nzc2IJs#pJL)J_eIFy^sLJZ_ew(| zfX_Bp$gyLA1P|dIwnd5o2%iB1o1fzt3PEHp@CZnd_z=Kb%Ehpba8UJ6!zR2>Z$Dyi zEBI6OowsNI-62u{ACCFj8cay-GUPE52iA3}4jQ6+_WZqTt`9&N?uXw|mzrCJ)G(}^ zK&G4xI;+tQiH5M^r0hZUv1*3#St8}rpnNo$(bg~X+2VYjt7=!)8Ir05IM2d0W~no@ zb@PA|pkaw11U{(452O}vz2QNrO{kR^h6qo<0b^AI5_K;owV2QncnxCy#x^73TV(F-YdIXtQVuuVv$e47vTSgf6uO?$nlIl5(o1kVahoMF8Sr8 zUmsa^pD3$#_nD(3o8KfhUl%R`CSl?pVC}3h1@r9KIRf`!6Nw0M*^5dvMmA1u+k@gf zy%^_zBHvy*O6{2uRF=qkg$k<2hA;WidrL_p|wwjT(Cmz9b<%?4*p>F3> zdBnV~g^C4RkA`-9j^pNE#z*n2kdhRbbt^E7dxC2=lnhuwoM;i35JSU|$Q2k&d^glR z8UoZn2zrgfH7+s%vu@^?U115Gy-kJZ4kGs)JUO?`|DM+@dRs(-1pzK=V6t-6?3(1p z>lS;6<+`z}7;wmQ2dr04BXt22npr7D5V_C?07VpN+%lrum)-k*Jop1ove7t!g>S>< zFI}xjz8ZgZ>*m(Oo=@MmzN_60UV`-xs4Au3ty;WO{^o%}M%s%D_w+E`F7_Xm^qt6( zCtoXbs#I8Zx*l(tm&k8LBn-0B4(JIE9a??4Phqk+zUhsv;v-#6$LI87jVQy8bHW<^ z>{PXKoz35$)~~K#`Be3>Vm9W}=D&+|s{5aKJmWijJpR+242jPI(IN@xn)FxaxQ=d? z#VcTFx->oKYq8&3Me-GvatASoV#-l0VnTB7SE&qg>-)#52O`v2nXOKH&%5lOJ0AVl z!vSVxcpJs1{(9K*A8+v3a_9Dz`{tAFKkJvbwGXXtUtWE_X`m&hdogdQ^zjSDy;pr( zS6zO|FkNwc|r<{J2$DxFe^{OxFW=_8cr~+R~W$_w&kjosJ~( zxx)e34O1$(r97W1mALyt=surCPp!n{u*!kj z2ll~9<9d7hkDk?w!<{s_+n|BxRgg5B-4edLmas81z8G=$qv}$7pw-y77y3m**UVm7 zXTJMzDmYxqKUXKf;bcKf4#6nMsWnpsTdH=MIdc`Ct{enC)fFw$)IaG5pu9LaI z^`y|}0t7Pa`I=hdU8}y}_)nLmOwzQTd0X^UjD2`>XRNs1v9)^qhs*u_w2-?GqD=Ww z%2rB0&x)5S>y)Fp2VN?Nug!i7FI^}rRy7xkH3*3F{QbN(=MC!4{gA~HB$)lS{5tKE zK#J-UEpMWEt|6$LFXZ!IEh!)WuC@imFm>zHLh=)i0E6vWF1?61s^iP+ue&}K+6AJi z9{c0uz!7Q74B3>T)d)$)X9?i}h8G!Pr7y-phRx{b$Qd0*vj2^7EnjXEQ-wIMh?40J zk@N9z7tYdFHPqhFi>Bf6_HWi@UEfcg%gTSpIfJei%`!=j2a9sN4wvKMgd?fe(Rvdg z2FXq5$S6xEZ$!$nNdb`N=NyipYMfuso|6iS0uR=k_ST8HO2>@uNq(p%0yr|{o12Ue z-=D9A#q6uI{bAVCX>f38=qQ2OzbbaNAoiBzk*F9qMGMZa&vou`p1gBjy5|bQ&Cd+I zqGjkVxYFILFGkM14X-JW?``8T)_R<2=T^R9_k$~OUrlE_Us<4d5> zzW6MHz=>Z-Y=ii{CLWywM|T0&pN5mL3kpWBAcz2}W3fAlg#eHjYt^jOr;9=BpYW-IQI{Z&wus&I`d_IJTvJ5$h-i$Qrb){O7c&*E*Rw2 z209a0oUDuCJ4)S9dQM&JaIIu$trhiG?jyrx_OPX6ldCEe9&)xE8F8!=ymU)EA)Rq(*ORp8t=Z~GwDB`-d~C_3_GbN#N%oB zHR$Qs%*?Ej2V>Lilas$=(>`sr9l`wGbHG!thB_L;%F(aZw|?9+bRgWvV>50*i#L?9T)Dy#h}OC>^mgPU`1pDJbi*FlW0pxyI*=l zlewH&8=RFNp0SV*QBYVk$986+!`qx7!M2og1Bki7kr7WUWx_%3Lf?_ML!FldLuLfl zj#Q0y-7(MpaByxVi6_D(&9x1nDalC70XcoF4_XunNhdfxbn&pwngHubOq^%TwG9Ye9iraW-zm`4VjX%}Nn~_?U=zZ;zwvK_8UJ&0`HM!+ zPX8%f-#-DAYd)0zRJ^iDcREozTBny)|KUPpUB0KP4E(Rz9rCXV{O!}^8NOP`ZFd&7N`2%p;QK`eEgg!WgrH;5Xm^f4 zNGocsK+dlbJ>u-SKjvPO$%e7v&pSmnMkh?FDEE2TP-j_NOMJXEk?6K&c0!@5XzWj; zyaC^RBd(b)gG~e9U-w2*&*^8M@QiV$M7wWZ?b@Y$F8zRxtf-65bHTCrEtfz3a#rK6 z7vtsyvAa~=c?~p=0FTbH!cw2YWYpypw;w_LPHqz!ETx+w8GpHo_3IA1*0&;MLDi$0Tj^+kfB~mVUUIL`2y^YNd;maP9(wL~VK#i>25GOw z_+ZoFvShm4lXGVhh8*4|o%gzRPv<$^q?wG(DH64SVb$zLmJOYvpIxA+Ef1xoLF6l5 zrz;AFJ}}%jv`qVcSgbLh+&%2>atUQh6Nm?=v1sk|8C(-l-Kj2lCatH=S0`93XAtGhK?XdiFh3Us4d=~znrwPnWpQgq z&}uq5VmL~iLhe-_PWN1sNjyF%6r!fx!#k;xDB8%2AZ|SpL;j0ymi#BuXhj!5niv|L z=dLEjQhmh~^GoU3OIMb|LN&&&MY;IzlBoOmAyMNp8M0uyI@ZB8ybhhVOW6t2Y?#3ak zGCoDMvrH_fQrR5YV*4U;Qn~7N!BN(@Lb_bsFPUpvGDn880&OypQwOvDF_yQEZ_b0x4|Nukrp!W71z?&53k;FQe7XX33HD=8!U?9n6 z*_N96jxLVFwg)E4Myd_4ntZs=UJ=y5{SsJM7+Zj~(JeV%!@luJdyc)Zm>Rl~>A;mBUcM0^sD-odIs?l@76VCEZBq+yDIDxz0eSVZPr zavE|1j3f92`6i72vYkZ?u#m#srN(&t_?cgZ(p)j~>V$5$U|#QzsA>DO0f7N!2z35d zzFIOGSl$+KJ?xaoq|?oVzsLqo)t&VR&vB=9{oV7>_GMN^y~$0F8RHtP&feMKxJTJ>zI8OOk&W-MYcv!spBq*ze_f*=gKbrOmU|mdUKN z!b`~yUnQ^GV7vul>y7>%vgw5=ICPZRF5G6~$Ad3uh339B19MqAtrzT%CX^apQ#a8^ z60>qEM6Gcw2bVOn1YcM5)6n)Ey5YSPhpVk! z?Cu~R&oMoT!>=Vd3abg*p|~JS0j?TqiGFk6^3d$HG=(Hfv}$Y3LU*>kf(XGcw%Ll;z z;int-`H8oFYR)@opamXp7IvW{{TB#_rFU(3N19e*iS z+4%eO^$S({m-rX1XeY`+e?H4wi%I*({p|?2a^wAxM+d@O>VD+?o$fw^ndsO4a__n9 zqfyIqV}a>uXZ_P;Kaen!(sUCrK8a^SiRn`4|zx=w}x%q){Ka_g+LHMpdp$vBCr)@u|35v zE1^t@CG)7#l1m0qTwrCj)Fzim_0|g?YXUKb6%UFVbZKX5PuI>VICxdNsZ4JKK8#I?Z{` zzDI85PYj=ZeYNZLuNyP}9zWWA`YlE0XoFM6hQqvzwlMOrd6%$XQ1h@$?K! zyc1k<=A!4ymjvr-fVz$bv>mUAHnBoZh**S%-{{Q!yCyz+B7Yed@VS(V1iiBpqT@VcI}-5YRg;s_nJoU!wiH@OM@7OrTMCg)O;a;-lXCJ^Rm~J3k>+4yF+@}qj**n5?p6w-MFgyUcTv*s zw_4D{@mVM9t3IjrynMISm;G_p@tEUR7D$aD@wz@sFDNcNbKNNLpKuRSXd`%D46D#AeCx9<8`Kjq< zX@|}U3K0+)B_AuK=Itx@TM~3S>*U%~(JlMC>kb9pdx&|%deIx)mT|q#^(3MG(wI=2 z9EJv;Ej>SmHJk1P8E!doMr>6ITF^ss?bz=4#%X8r9^c^>8f{>TPTq^lImfnKX*PJv zvm&^7aW0abfx(?eV97Dab9qo2qTg3FwSlA_&lSG^NqnEyyn;QEzo-B5)$qLCHV)fG z+u=U@o;JsH^`V<%Vn~>`{sNZ`!cVpz9 zU;gr4sfx#5byJifxKG0zbhN}uAF9~ z2t9)r8%-VEJw=2QE$*z5ublwGJlVG9zsoEHRBw>~kOTR}+>sc9uY1|~8Kx)}L<%}5 zN;3R%&)k`ZhtboXr=FXyU!3j}$2EW2s2v{G(g>25 zm-k7#kZb})iMquJ=4&hA?D;Jb&E5@R_AJ2S0W4oM3jkfN(Nr2o=Llva2)nZ+1P(+( zJH>4nr5TZktn!_p@5TZF%#g`?s)a|%zCF$CS>srg^MFv3-OZ)6W{dB|{kO*V)A=;p zYl91`EnXj$I<5MnxwQd)2eKB4kS*|jibm1^s3MYu&PR4b z94zIrV=gk#@mfeM4nhMw4$rceYV}O`#(U!d&_^fl{G@Fg35*yCot{|gt^^zX8fwCs zrJyRO^a{t^F@$dJgL!gIHso%galSuw=E!J%YUkW)vqF6Z{iDQYdbsMVb-1p7()b=! z&i9a*so!+5TS^>~_vzNvv5!uQ|C;Ch3~j8TlgTAEP#L{eKi#mem|J;a@hxSf0A4;CuEuR) z`ud04sy@#?IchxP;MQdDYaWEE(0Nrel8H9cK8nmqFK=d{8M{Q$H0n;VIm)0H#zp^m z=<=(5`ELvNGVUn;e;|xYfWQv<0^-U8z-CQc4CVCi)SQXgWhT;e{ehR+8|BajN#iM) z^z!9}{;m91y=qU-1X9F@IUq-Fj5$vZPMHg=_iCq)}43 z8hIxldWf(?l53h=dbP>SfqLGDTDENho1MZRX#y$&6;(~giI__^ie-zd#|mya+Xd%# z@x;F4ZurVXhH=h7b1< zX~ODW0`f&ZZGv|vv*Nh}d?^~l2d&6xz`6#tBZXSx(00RWBT=mPfyC4YTM1OYG0QRItM?k>_5j>ILJcU(_j``-DZ(~ED{ zD!#hx0hMQh%OcG1p;&zo|LM#j-SkTe-#+_V_r9+r}CVObj@CSd^w6P zlWl240lV;{1g(9?+=68Byl4SezBadV3@uRFYWzFYJ@xh)4P`{p&Y76@IA4nKmtfCc zJ6&gNaE~weUC@$r58tljgFbbAZ>(&ceq8_sZdyiwqyv>?8drA%3|3h41yki zU6WrZEt-V)c4O~_f?I!>+I2{LhPf^ZHX=z&Dcm_S)qxX-b1shHe>Q%9>5${q#T((* z2JP{a`mx%{a&pqTJ3|y)n=oc&I8(Zcq#K&GKr(VeKN!QOF!pjCr^jvK+Kr#rKV?4q zbeTQY-sv)uJw9rmNl&(yTG_b%o`7aTByVvY{vlm`uV^V5qzn;>BqG5mO`TE5y7let zfDv}Vk&2`uBb4xPZj7~!l?f0d8B(+OZ6 zq`G9T z?+>(}HVF;Lv&LEt)2z$_@6_l*C0K*ZC5mhp=Z{Kb1lr`*F^#q38(9nua=axuON%E> zf*LUMRPzki#j2v+{<--l?Ibw&PP*vU$u7-aI&}5t@=I5k?(zF2#EyLa2Ecdu>(Iy; zWK0YTw8AsiI!e7J=;X3`lL*n9fR&>ootDE_XS)lQRFnqyRDiBTgdRvxC$|ofOLP%& z=EWIz9uU7hlUev2)NjesNtHU~m}B+dAy?+ykt0<+P1DssJR%#BXcSUL2YjRX@o z8s~f+$qq~jnuu}_o2niJFvU(w&>hfcuOGEDoSGUupgtFA8pyn#$E!W{BLCx^uq zyM)}G040&2CaJvp{FfOCCzuWG028_{gJX@s#6h*kO)^|VV{tejH2x59I3L}a5DepB z0U&TQ-+nybU1@&sYu?hE3ZV+L1XJ~^XSZ9w40PQUtHkZ?7t?F>jmPGI{`VeItaX!t zK{Pi?0HvP+cS}3?jucVX-Q$W6A<$Jl&7W!u*t1mM7<354XPkCqSZn&sK*%eM3MHd@BsB-*=}uORVGe7a1;t6-zVwj&H$O^F7 zcok(03<;4m;e!na6@~FsW{;P-K*>4W^G}U!wyCEnPEHQF+xBSWE zGm6=HDjyz4e!=Xi*;TpU+<24B^)0iUlCX9uP$-zwbZ2|4n*3cs%m;{i~}fuS_VwS4_bf z=3$d$$mk7QnZaaMB@Bo}_h!!OaDR@LeI_z9@5gZw>pNlv2$4UL$Ch&+=i-J{ob`I@ zUYI&XJh@i&A*dw6=Z#Yar)vJdCC=59+Gd|GWg8J|x(3}tp}9qoz~<3esr&-%TEBea z-o^HKOT$LlRm`-|#WINc6EH}1CTdYLoDSCztQ$UE87h()<0tSsz~ z5e(A+ySott*=jYggv7u04ke+r`GrZeGG-s!W86v%RrpA&W?!l0Nf0tf7(JG7s zg@JxV2!e??xPeQVzd`*pQ~PMfJg#Z8pQ>tQNaw)sQe#U-a z{u1b3yb?OQAo;doMk%%_FEOJ#{B7@=m+tA1;klWKv!5oitoIkpxf&UjE{h5vT_Y2Z zD}N7PnWnydb^7;jslUI1-inCZDZBLPeO?$hDko1&OBMxe2G^OM>8#fp2_Fe?b=MB) zdN?vLO2S*pQUysyAZ9Q*fv)XViX)-1CzEnNI_L(T@EPFww2*T%$$9AI`sWvuFVHxM zmCUm3S?SYIdu@QML{d06YYUpc4VZ>SVWF zScd#_=PUzJH9QCh;?jk)pK3wL&qEA>)w)=`&N%fr&| zj!;QEowI!*Q3iZJ&e`0V(_u8HUP5$ga`b|*d`{MEii^ymkw9FiJd;Xau9_%lI5QTp z&$7`!`vjvnPd9{0EQ?IqR8{||*PG)xGP6sgl=Zs(lu>f0oqLRtp6l@`sR5x$La6&m;KLS1*0!dZvkOX1JAGy@U6r98Gc z#oam~;;=M;fvCMP0CWo;Nmd(6iNMtwbMt}vIH{KeC(?in{7M2Q!X43--^~DnK}4k& zaOpH;<>dCwNKvFozA4N>dO*eaY^dsmujU3R$2M>Mvvp2U;Gy?-r<-E25@xw&2|Qjd zF}a@?Tq1fpb0AA)`>u=f6oHZ+bj~ra2XxQN85K*Z8Gf`=wI<)5I++i}eOfc`%UQS5 zRU)c98P^S!@exD3bvgg3t{-U>i<@jJW5Q`h_@<(T|FaA;mIpJ4NVP)? zAW6~`Av2te7%pW0{lK3~@tqA$H;bhE415nh&Z)lnOCwO6yNXsQG)SQU7)F9=S8fs@ ztEF(C%7@8KG?g=s_r@%%F|3MUG@fHhz2z?kbVK$*JMlOK{?}OjZ;M2^HEa26#Z)Vh zAP|kCX;s#(`VGEJ5^~M|qr4gRImRT_K7D$@!5>n0OPC5IqjG0+`FTHUa_4>X6qTY= zYAeF{4Upo<>|IMgraW1SId$OWzH1AC^}bUo3XjJ>-hJ|Tv2T%Qu4sDYz9gv@-%Fp(WA{7z~RH6LyNzD#6F}J1Hc+_Y3K;PEKDH zf1k5K)8)@F34p2ZLTF4fiw7NfhO-%|tprEvX^^KRr*JF@J{+|3s5%s`I?42|Qc#M# zMn*CWJBY0d5Cq*cE+_djmHJoqrbursmSF=ej%#*$jn-WMlefI13Gm-8p zpLScQ#W$6Hf5+{a5s8LYBboyi5U&&eOb`{bFWo7Kos7S3Ag?N?nCa~yN`ogdymKkR zDSB(lua^G4^Eh1)JRV=2>MtD6v)Y9Wh7V{+i-=rDno?pqc3-?pGO}TlGLc59539U! z?Jr2=6D7H&$YL{$F5l{wq44j9n=WP5dj`@X7uNsYFz?*5KdqIV6An7D(-GEjgGU@3AzEH;bH%_0CYlN}QD zp1Qj!b7X${!*|Kk@^3YITYesJdN*1hJeQt(_s*e7As%g)->qMTIJ@q1m~orAYU>L; z=mykUN#EanR%XZ!<-`m!E4UHlsB@fU1tx@BW*)2gRQCn0hLk;i94MQuII+6U#SVHh zLy+1yyN~Xb5V9~0_qMH z0}>!wi2=MK)q{fuV?~vGv6pl%7qE`UpU-x8n00tqX;*I0yhcN}Y?VJRoanjIsBCuy zdLCLc2A}F3byGK;I}u#aWw?4(J1^f8L=nUCItKx{O0$&#ImkXaw_}n|`LCXpb98ZIzA#r79N z6wFVJ{4V2MNc;8iT*zGd)}v69J-@sE`#!RC*z8-u)sr0*v^S&#l36hbIROEGt+OU>kyHwxOiNNIzBSZB7$%Z&V8{Ht z;9u4zCE@+Kvr=wDuQ|M6#dHAm@{N+8Yh@qAau^W&k zCM1Of9hb@L`82Jw&x*uje8h}kiiI7Up+PM07SmWx)#Ig<;*D(2r}jy2MlO``ckC`% z`*AAekeLakvF0XA5S;qa(}W=|G)R`o$2JB zuLJRSo)-euMiBzQA=r^86Ig6%91&0md2jl=L|m~MMh&9w$j*QrXirex3{;E4ZMYh}lGAKJ5TYi)+ADU^|n zSK{GD-pfM>aK~{X8JI*+=LG?TiNZk?HJ8@GQZX$K;g%7GLW|?>mxJ)_(^D&nf=Q#? zXes};ygAzd8~0|yxl;o)e~kw@!T~1CZ$6djx1?juX?+A)GzN`p1knb`I7>^-ObeEM zqM~qU_=o8BY}!(HYwa~LD}7-d?n?T>(LuTgvmH<-{Ma#ufD0&FH*k165V$%%U?f8x zm)FYj(*`;KIqs&&VpZ&dCxjKablCmsDfYa{c!GM=11E#1V-@vdJqMPoEIVt;e%4EvKnoa8TAbAP0JebqxPIIWdR$=$)%CvWp!F@XBcM0kUtM>~Q6WAGIKg;sXw zJ_f4P;e3nVQE4FAFqm~i75S&ShhHu9?`&vaeBNylch1ZgRbBgmMu}Y9n`?V)e48hT zqDW)#`Mp{UQp?@Xd^eoT$+XnSLK+Lj#=B{vk%V`qwM^Yxr`OiZyQ@z6ducalT@Vz; zH5e0-%JVRcQ3c>VY*yNx!~4%`!dYN9%ZRD#d;!C=5oMO3%BtS?UaQY5{?C-~uxSRG zk?`m$rzNWww8@uzs#&#?oH966X>eatZ!G4$vD6=j*F8>uL(V;saM+rEc;0KkV#KoY z_N`lkLkhF8Iv|G4{e`O_6iH|+I8e9c6q`>;n9&NLjCjT({J~mF01ev&0mVowZubr9}f~~obQfVd?S)1d+Pc_ zwZ^EKL~lfYF=sZY77D$)=RZ}4gq~WJCn(t|TlYf^4ZMCxW`4E|#ifq$pW{-Ls`Tox zGvjQwaVASbNL*8w#yLtHy{#IHNN}6!{xwx5ePwp6`tF?H)!XqSkg6(6->2=PRlh$* zgHZ?w?>&;gT2je~#>w4Jd1&YrTTyr&QeUh~fikW+)FV37=c)9#C;M=~B2bFIL)d}EaT}5?q<-9}* zKu{oZIA8j;NuMQdG~`F2K@1v+MiSqa3E{?|CYKmVO^&lWro64sGVRQ>#I5?}6Xoqj zw(qVVU479fi&eL@D;E;kgAJ@wGg8%WI=m*MUZ6-lmKrxG)X)&49E*!Q$_JIS#owHg zn%#;!u)1`os!Boh+#^Zc49~!f)al9#T&OA3G~DG+xIPrel27-B^G$BxUo}f1K|&>a z2c35`6PnFpp+WM{uz4wMq>wVwudUr}tF3nbf{CM)^>B9&A$(fHX5Y})7vi#Gg|SC9 zjvw1EJk(y+W!klSTqjDFZgszpa-NkSON0YVksd@8d5TW`AR{^Gj-dg-rhw5e%>^w3 zBBb*aqIYuf=+Xz&GMT$>*OCOm%B{l_=^otS zXS7{8&oW->%if)CYS+A}zrXd}Qpb%WU83zRD{|(C(~qQS^U^)}l8qKci5q|qiPS~1 z)-DcCy(%1XC|JY9?xtu^CWqc+EbLW2gDN9ZP6MtyZD))1CHo_lgGL8)CKm(h``Co! z`k~w&53oy+x};SaVauE0gf*uEO7b+9R*uw8lA7;LTQyRi^as@gGq}Bsvxv5&&wi+g z=N8XbdHi+J3sHjArhEtr564Tq_4*U4g0#O(e#7smlRfi_sW{#5QV=5!P>}EbM@$^e zCMxMZ18vsy%oCT}{&ey7z4(;f*YmtiPCr`BPta-!>OWk83oa+6#&j*^bvirG{Krxu zT_=I;Od)v>ft8E2os5d59@VFOe0K~I(9nQ-_Z4Wd)R+47`d~6Bg(cz{*D|X@Aiu>M?zAsQml!uS+R-c1D0)Bq1w!+o-EY6u#6^AwxwKWrEAy|ZE0eIO5*pC*N zZ>+ZNQap+{?Y<6pG?abfN08;T>++5hiDPxFuKwPX6H~r=DT8Cr(t;nJv`c&+@Xu-P zOYze`eG6Uh`7#ou>c1#Q%iP=jDxM2T;XWG4K{J-gjKj_xrcd%Ut_ZHM)SX6lyio)o zeDXUl_o~Z|E?Jz+U-YNQhSe+%?kO))%4Rr`o5jsWN(Gygv$;ggPDhfyHbk0xKK8o9UO+k5H3dx#p~fp4Iw)3Z2%_mb&bt6_uIX zZTxxKEGkxf$T*Qf=3}gzV7Tfuv;1AgORky% zwWoKNf^E$Y&$wOmnUhP9yM!m0yzcv$pJ{oToxlqZGB7BOE`OR-`Sht9ikk}CO`q;w zfn~?#Wsnq)y@0ectPsPhwTDq!<^^Lo?-C&%LhXzZjU4=%Ir}y|Lx=v@N5zjzBID72 z|7C>jEk;kNVy!R8no2LF>Hz^6;!&Ka{lrd^sLqNsf`Kud2ge5XjhMFR^|*-q_~DsA z?D0plSb}}iacoVvDiNP!$z%%j%-MdshX=`QF1IRNqI5J-I^QP-Vj*L&@Q$AD z?6zDMlhwyW5pP~gJ$I&xhv-vTICe{VC6tA2%E#0lK|q%83p`yRLey*(C)@)~L9&nL z{v~p_&%#{7G{nw`vZRC;CBsWi7BChQeK;aWibT3x>x-$*$lXrE!#+b+voES~w=7d@ z-btomk|;Lbd{r3fQ%E-0s|rJIqC%Z+M6eijk6VMnUA%J!5XtP5^ABSe!v@#p|1?>d z50R}ucD2$fABSlEv~?=DckYjjE=sd`s^D{L;{Ahq%91&*YSz4VL8qh4Lc}0cbO_of z+YBclAtP?4=5`P2A@9DMA$};{s&T2H=&gcAjnxN#>I6LM^x_B9GR_c%e!FE_a#|DX zhWO&&7tFLem?@l`VO3P3!5oCA80|nQb*J@4gOXc)6%U-;96O5q`b8y)6qsTErR=_; zS|{CJR=MS+%9DocaSFc+9ShP<3>T?t%=Jt20^kok(>zzwY1atqAzf(B20P3anOjU z24togfdZ7Jqp71h?NoR;zj;rK)zsYvVCST)QjFjMYHG<;bI5D9U}M zk*3sQwzVv7C;TZ}C_+(o- z=p73%GT8E<*Q}FjJjjbtFDh>DdbjXGSitU2!T;gv%%h=v-#`A$YA~3wj-?uF$u@SP z8VnIa6lEK`$S%7Y``Fj)dz&I_LZp#Bd!-N>yDT9RNqwKsf4}oP$2tBoCBygTRo=J&$B1PLf2jwpG@d#bWj*ML86%z1k-P=7ejh-Ug?eF` zDJXqrfEdk%31xGAzyZYz;ic1LJVRC^e-ePv8?IObHbBV^IWsQfpGtV7&8u2jHI&ES z;E7-qFaP*#t>qI>T*S@GZfJdD!jTjs(8Xzl0p@kBV zC|Z3NAR|ONQSW5SdgFVba$m}%n4j95u11EnTz7JN`Aj+UBAtmoMItGTk#Ww-iPS2d zTE`FCtv(7l>*N8;XcUkPJe1nu7P61X-=6Sx1pxalREncHZ*l}=``RU-bne!m$!F_# zAG-IZBzRR<9_rm1uD5%-fN9e;Os1Ksv@Be0{JCd6vt}s;1%nWvomyQv6CZd|Wlmb@ z(71ni51UZ|m$Og+Pv6Bg4aZY@c_eXFcWV=pjthEQcINVXlU&|>4!yjM#1lLDHE0wR z#HJ5?=#mg2c5JQ@69I(;P!4Cl)x&AtKw2WR|6$5x`fN!hL!6!N+POSVX%4niTDDuq zn%~31F9bl2{l;4o3ea*?Zih~S;+6Diss=An{w)Htg|Pr6kJco%8ik1WfY7Eupqxc{ zYx>2C*szq4#U+&tedok07Uex{=rMqzNx+fL7KIE-gcmiLy$il-JxyXk_WGrK3EWlt zM_1$f^VX{*VsOaMb4$}n;0Tj#P1 zJRTkPuRTRa3|cHRplS94b}s~L;q|e9-VPZpth~AC@%PHV+^Ej}tiYL#uwcmV`G9$e zL)Eya1DmsQTMJg`&N&Rvk6>0I-xdKlP$lUXYi=!BA67rO?rlO_=8kuIY9y_bwW~f| z)BnYL-*VUMAl%aE?jyAlU6d#0`+T!S$^TR%xMFFU479M0&t2-_af4@A^ zmYOuP-_f|k3gIiQyTy+E$y0ZW_T&Not1^Co^cYF~vdkEJ8C<6{C;+IVN_$tk-C{2D z=oirGxJ+tNQf?>lf}H1aDz*10wneY03`n1Qc7EH5LWB>X;|7eFxX2UW-yBY}AKN;Ljy@Ztu)92qCdl zQ6d0{2x-R7Y0|xIu$Tyq3yc&hv6z(QVTFxj@reFtL3z@AzJbsP!AVcvK$8P?TzG#5 zXrO~#)r<+FyezTeu-G=SQyrxnQbK@GwxPp~Y^pBrM5(J5oYDs>hM<^@0ciFRP1GsP zQtn$r?&DdzL}mVTB|U+|E^u+d8KJEHP=G`v#WI%xrLZ>IT{s0n0TMWXY;SlZ&jcIL z%os{z1Z+#U07h;Yr)`NQGajJHV)1Adzmb9FSNr)_;4820_^L>%*{3Has!-a1c+q{@ zA{36N>o^|JwWkF@`^Yg(6bevpF{K-vuZr0Fc!`6iYQ+%B@7P8GM=f3=uIC}?XpC?+ zQYY&37?BM3E#<^*VInSE7JjcVqX1AMY8XIGZu<@Z0;%|Dz68L~1jnuP7LL7pdRNL* zPxCg@BCG+z5S4!DF6iMgd<$(v|zQU>Q`(qwZa5js}+)TPD~NNz(`a!{NV6cED4{DJ{c z6seY`91GME2Pq?rq9SIymvg=cdrG+%qx2c_LpYOgvi5{a6fF{xR~b#*V+@9NwUJJt zd?1>DP!)yVb!`-avOS<6Y8h4^N{}g$()s6c%zL6|Fv?zqEP<3uB%1pQQt4~1VnBBL zt=^M&UQ5oo2lt*-QLhD9m3@4$b(bEOax9CS1R!;io!e1~nJ0y&p(H4`0M&wMcF93q zCNL>i`AWk|BXj?e0q_urDvo#skbRRyPb2~Jz5)7QAh@)qSj8Vmtxg{)*ZM#zifovP zqEb1v=XPmtu7Y=$G$Y(2U6}Xl?}mCK>%oy|+)%k)`%cnr6~2xrJb(+Ff%v1+K*l(l zgrcIr8xRmp0nGu6LI8z=U?^!I&ZYud6cOE?1N<`r=UQXXl64xBh9&ynszX|p)mZqw zS`F0E_yI$!HXJJhNY#KeC&&$`^d+9^ngjKGC>{bZLMo(+IPwE$uYOY)w`LYtc3D=Z z$kv)LoxpQcFTM_|1Smeu{duC|%nt{pU&phE^vHz@cUnF~VSsecSGV{uJKYkU0L;Ah zZg&trs8;FGem?W2P7@rP{z_yJIQKWDmp2pv5Q zR6~U%fmI{~Vmb!VC+>rP&J~J>aS`c|<#wU!o_ zgOJHt$B@@;%&d!2r_?Mw7h&;;b8@QGKmbzSZPyaCQx*q>#Ymj3>;5s-JZ!ir3`=U)YMbFq1~W47 z7vgD89N=Ls6!qEP5jXFzaZx^fx*os(^mlo(XL1SF=uk&#c^m&knT-L%>o2gS4i&}P+66yy51?_LQVRu(>`zC!|okvh=J7*JAxLgPfG@pOAiryPnXAZG%jPnEVsq1|c|B~qBxB)wk5v~4TaHC(&J z0!Cig?W<0{U-=&RwXw4|Y<}w6oyG zH2({a3Xz?j?&G>g_|t!y$G6#n2+!6AR_XDME!Wf*tsG`Oa=CQQ`}77F$!9hfi@3V4F!H6KOWE&HFJ3o0-WzLFtwMm-Ap--ND`f&9Z8M0HKD zEma_bB1j3UJ7lKj>eFQniY#^|DB($1Z)a~Aid_?>G#4JG(g22W09Y&?Cb1r>4V%q694O^T;^1Kp>zSg4Nb=HvFM^_UCih8Y3Gm z`moT{js#0#l&o^;nh<0Y#t7@+^cvtUUtq?-bVj@Pw0%xfylxH^cmX%|5B5Nj;XpnM zAVT-}PXn9PMVYL{b+vtZWOu3r^=UFpwP7M*}6FWTwq@eG9Y$~Nb{3qi(;iOmwBL#T>%J4 ze|g;i%{u_v@>AUc^>k}alL}*Vm|hh?;b;KB!-0#1kV?*LNwU{bfI5aS2*uCd4HLiG zhMWHw!I6!A>tYjo9?MC|(je*vbMC!jPy(d+B+2%>L_mTRoUwBq+V*Jc1~4@Ky*Ked z&#Xq-nj7c2_$(2UjcCsTD5LaM0@^*IC!>$ylxK@-G_{s7jW4nCn}A9#CzJv*%a z2(+eQXAM-fBLE~4h<;=!xg$*&mh87CK%rad;7L{Rc%WX72L8K9ibgLL05B*<5TmCt z6DY=l-PW`Iw+uneLxi_U0Uk?F)}TND&cD2bA@3jZNZJ(k1220$}?)Nme!4+fle>f zw$~0P0(ESOXSLvRA5PD_-<^3D6{w4)7@DSC1?L{^^K^hxa&xc?{|5({Cb)EHAz5h@keaPs zwpO2@7P~ZNkefyDBEENZXKzC>#63YYD+&#Ld+GN96j=*w`_#o!jwH$5#g)j2BS}*{ z?b0#=3aEe-46*#Oncl~Fw zM`yjH9LTL>KmjT>jUUI%1*KztbO1iWAUi0gOA-WBz0NbB@qJ~oG$4}sreDXu7N-NS zaVAi3)buZ=3Ca3CAR zdMp4qQ4_BTI08N;?Nz?5Ag3OH(0SOcujKW6g{6TzxMLemx$#BBw*|Yb(%5oz)~!xb zmP(TsA)_LIc&Zr;LUH1C#8?oa(96NXaHXu1(TSAE&|&|JCGey%>4c{ne%oYHVHV zwtB9_Bpo2?J_j%Swgd%%le2?>E@m$rXYVW|tosn;7Ia z%ot7qEN&1P)>=qPLzmwTWq$c7rp+)CVguxeYMz8bMdqPGnj|p1Vj3<&ny*FwfZ8*r zb>N@|!d45Bf!tc)l@9sVyT5ESFA^+BC}zx5y4PBA0RInQ@L|B2Z|jZi3nj8ndtRRr z#tKkTLNseV9);0ND+J&nLMTGs))M{M>Bn6?W(_hXeQjr-rZqZbQdsc8-cwxU+Ov+* zrF~bafWl9WAWdZn%#Y8E<>mfm&Qf31;)*KdiY>Z*QUTwY}Gc9DszQy-IIJj&XmL5v8O zc%@;TCC9Jj<#RHrqt{Hq7|m6#+N>+h@d)G4Z^HcZL3K{%G8arNx|2=QE=7)rrm*0hqoqbq! zMjQnZK|#rGAuc8;7!b7G!N7JBULT|_fX71#s%QNe9zy1rH^7o8bmkkn0U#`D6Cu*R zVD%|?qBQx0m-D1Uptax@Nk^q!0%*4z7)i}7Lt+aUhjG=#DX9*f*{Gd|f}=OManjIv zoTIP)82dCN8SPD>YGiB7WALX?k_# zE0P=toS@_dJVEr&08L*_GQXCz#d6%X@6@9K2=tBU)l zpFFn_OTh=uRUENdItTTQOsub1aw#HK@T0o-j13uk7YO&?#yBxo5pUSD*9sIl^cF@N zvoA-=%lnz$nRlf?pUM}aEtd#S%kzFeEEa0IROs|QrbQ+A(e0aA!cr0KRHusC8Iqr& zNshL;fJ-<2HT$6$Md=;lVRUpIODAobMLV{d;~Qt)`lS}vDddeQF~&=xT4FgSe8(b; zkjEE*h&01HlDJonfD2MilFh?EmLUG(vc#pEj~S_ZS?R8<6anC4vANaFv(b=firW6f zm6hkWN5YZULw4A=IT?MvF7wm^x+TGo39WddZX6Uyhx`Raf8zdvK0whWQb5H}2v2Dp z9*tPl+Wz*R{{dEG%H#}l^k#eD6`ysV>r!!-l0v_i-YD=q;2U0ljDqB~%-L9>a!>%{ z4NXw50igCc5g{5b4fsG^o=6HSKG;*g=}ML}O(4;L#4bDxk_2FIw99k>=APnR(fLz_ zv(g9H>cY#|i*&X&WRqvn4-ebv}8tHxKdm`2Bs;>sc>YM-1;Y9>0!oXk~`r!t84Np%;m z72(F1fUSs22EK`-_8-gDun`lfGH>&4 z65;1StJV1OJ0}u}^uaOLLrD^b=?KXfIFy6ts065Bn;Us6eB1+e#eTqOs$?TN4mU5Jye{U7o`0|9+v)mv<@eR z?N6XHd^!D-8Gb&n9yi(G_|cw9%;dlIv?eam7AnTfX*1I^<=Kd3e0<4b?2)F0N}e8_Jb0Y}*#>7&yNS zJIQ${_C3tC|*BMuF3`N$}_n@GcG&tUqNd z0(Znrz~1i+FJLdsyQDRN$2PE3#3I}?SuC>>qF>m+q^}?vb*1Iz>FiEG%7)~y{V4UI zJ}#1i0ZAx}MSDy$Bn@J(M{$h=6p(24@&d8D)ouv5DFh0@g@gzcfB>~m?3L>}^lgq| zoiD*tc3_wo`;VdsZ5=RjsDVm7W{Gv37@%;D<&0)pI8Ho(i4cqnHIeC4Ebi!Kv0H0K zvgwa+M&wOaec53VQ;>O9ICUd2V&^)S=4Ez1&BbYB0vpUJjnS|IAtAmLUMjozyWv~0 zE24!4#WIZ&=C7LOFYKIDD&_b6RBaV7rh)4&cl-PrshYHh z4f1%9M|@Ad!#;##7cD4cyw$wQ|HGINnc!Li-WQoMzIHk#B4^1EX2z~YEr>)>d;}JT z8LM9!bYmPw-V{_66Md~OB$T^XEeI#`F}4)CzC+}N${swVt;Rl%MOuP5X zcdbYDUsbOh<={yCTtxdT$0{c3bA|Au&1^m+qv<=tmYaR7&v~voar~3p8bKY{!k?9$ zXh~E${L-*85*og*oO3okK}l2*R8_9uA~H@c@|MuU zRaJR|pn$elFP~kDe#3V0Q@k^_dd&vc;B~VF z6imHdJze=5x}E&BrfB;2n|s0AjS?>SC1bAs&AP8^n}}b3RvBY|9X@};opEvGb4LWK zKg#f+zX4WrG3et#y-5fD?VJ?B2zeW!SiTkg<*Nd zUnNR{8&7?a((3fR?b1EDZbp?KT+hDjF0ZVdzq|QE7I!y;0#-y~JhQ6fOS7Id7Y9z- z{NU9>Ui}QFG+mRtr!D1hf;iuNa7Zft&(#m^v!8k}>~M(Z=2+sZ-`}_*uDzxTZY$BB zlOuI{BhwJvydv{>JUe*zk0w&7L?WQO4W0-jF!6(kgb~}}7_fIu0`~Wue)hJ=dM2M3 zSy1zR?1#I$KFzhF$f@@7+ICb1J~HQgHZeMy(#4MN#K(z}NN`9jn%YvUaT?Y>cXIv1 zC=dav3h9XKK&2$mLiQ=yb*dP4;#&FmC9<{4Y3c7U`pFh=hHKi#WeJ;rt%-(FYQg8 zzZsHCBcy`=7?vdARb))9z9BMp& zzWQ#(C=M6OE4qzIFss7Db$)S|Bxw+TmlGs^)5{WHuU}W)Tz)#Q@w9n9|HNrFn#*vj zyWPuBk7G?s!^Y89xAH^@UEI}iO|_5ee+-wGG!I8HB;E6xSGrepc%Q$i48iOX*gMsz zug#j{)j3lZ^PuDo;!WynhTN|qKgU1Y*ljZLnTp6`3a>;B_UH|z1|H3LjR_RH#) zpiK6_H!hA_x3~4qCiX>iiN-bp8oCqNJYQxM>~G&3K9kZKJl6H_Azu8&&4lPYvbLZ= zwC>aVU!%`sI1}8>I0+**@Mk#rWfLEosGOcK$(~YOM>!gGhgf72C{E4xcD(duIxkY< z!bMq%Oeg#WQBX*#F3_H%Fg4)_7KJWmMFpRsz^MsLw{3!jI=k^gfRHe^D?`-L4b6tC`R33^&i}L-`)J#*;#Qu^+r?jddG6lA zdA~AEGFtcItZzq|zG2DBrLo6_-!3r+W|C!qaS=lC&o>aFi%n!&YxqFY>-cMdfoRllDiTd)ltrK%T4TpNm#t=}T z9$uHZ>%yubm{GEE?pH;3_6^6TmFsWb?VbppekPXE6jf=*Z`$Q_y61~JCFq*n=z58* zd)<;!P?^fsi_p(E+`cK=vR&MM{BY&ekKggiy~Cf|^P9pcA~-e~?a`2f_l=nM_B=R;mLw)CBy@cg>QwvUcpe!7-H98AEa58Uy?#flr^_ODU!r5+nWX+RyJ6|2AM_ zcy!h%djR5LK_Y|dAc91^0M3(9G&F%o`Zg4T_eo>sg>pmwL+mCT;%RuHPCUC%)Ib}R zijF#qfdbGsAr?g(f|9<I0PD`>cRv-NuYzXsOhLGDTmWE z5Y8BTxc=hR3C9dv1OvLG6 zuf(PgR42BgD7L@LUVK|vcDpxh*R+vm`c0t>`b0kU-mRgzb`!eRn;=W;MR(RxLuHhq z3_HYKF=sd(X7gwEtWz>)^d!3J4OhZN6y92o(oWXJY5jMEJ|Ht_M=DeWu^O|($bY`s}4)?!G zyPjzr(_H!;>#ML8lxTl40(=tzM&jOy_9^LR@GnquwS?Na`N|vwLLHPsM$HhfBYA7`eeA%hwM_1 z;_oR5D5OOoyt?vI+NMn;zs@y?r^y=&+ZTSUulJkB(u%5l)QmhX;7*@L-Mh;x!LZ*1 z8g>t!fBMDt<}caxChzs5OCL@8G$8_x@QqKd$kt?CqDr3s*jSL$a)#(Oiu?Yo*qNbxPJ&kW>xYrCCx z02&#c+Ff#J8Zd^#82p&(Z}*7Q=xOEy86-#=#rA|Og-9MJ>q!U1 z4}|=Rq_HW0sht%LRtzlMamI|s|L$d>`$`md8&7=Ib3L`uYU=ow^A1ZsJizcBX;mqu zNziT3U~(KC$QAy0s+cXj;&EVA_ym{J3BplCTmKtzM5%83unLn6nMdnt`slP=Zk5|hrbw1ZB;+24baiY zX%f9^?tkm1>dcMzt$x0V(y!ygGA_P=Oj}oEoJKkFFSd>~R+zj_ej-zSXA0$cO;>6y z(63KBwf1qV-$U1=Q^jbnYUdIKxz?c=CJY`6p>;4tYb7m}={>=Uq@2-v$1WXc`yFI3d0g%H&Aj9N8@y6q@qSgjA(iPmmzA>WT| z)b0BhR=|}^GOymPp)%ckq;Y^;XTnqoeh4&myt#2S~5OSBB@>kze6a z+6R*vOgx6O_?vPUiAodbkVtobKX~_r4r3kCck+vV z<~lpkg7NlI>&0AxV>DuhNj{0)`{JYd7`?Z#pR#~pJGR{W*mDYb#m||%ZzjU6r_OJ- z&R7`lGWD6c1&V$9aOOE*{#+odsMLSE@dw_xhVQdNt^zBHoU=jo{0Rx20S z0AV`>C%b)a4eLU`aKujCfyF0{^6v9|XTZY<(-$Y75K%zvl?c|LOr@EpAMPwMM6Kn! z%WoV-4GD-p)(jK7%yBy+d!kg{l>50DK9ZTQ-p&-=2bK#ZFt?lGt5(R^UBK`>vD;Cg zCIaZx{lc-gL-EfIG4U;=@eCax=WUhFbDa)9h1Ac&-oZ8cI`=ahTsFKfDgPd7$Z@>= zVEZtk>Gt>7qk!eJxt+&TI>h}uvUp(_aboY0l|a}CgP%BV zlpZaIZE~->a4NW2?PgTa4%driXYa=V_pXA$H2IzOX^9u5S0&Zrdq2YNX$!0K-VLckkWM66)go zcs|=*5l%+oNcO4>lJOuX3=R;*GFz}}5YdoQ&RjA$&+xTN=mA9o(Cu4};NM_OP-+H< z04#Jk2ZBc;k#{R}&*r7hp1ONysk49Q_q~8pCiuIG((OI&Cp$5TcEYCyF(?1@+|a6j z`_3fFRACG%X{6g9$szH!R;v=7c?VnQcH_0IUFw?#Umf9RQ6~cP|1K*VDL4fd@R!P% zaZdKxM+zL>;QQ8nRn6#WVtlvON~CR%45p#Zk9$&r>7|Y;>(S04=MBfRzkj9uV=DL! zzIf|AX?M%oZO9E)=zydk$#qg@{7dwYT3>xPZIirp*j{ z3Y^gB@d18caY-%6Y7RK_rwU47)U^|y7d>O*iIVJP{at7(ufkjKt|4|xj`_X)&me^TpsQA*SaMyQm(pCKC!C<0><~BQoxOnAUHzNgAM$T0$5X~2r_0CisC!%YZUrD?l&7MSIuVUQ>Phxpjtl<|%*U=gd&9G;9anUzK|TpTcJ` zBlA87OSAa%y0R!J!t{X^*iABUY#Rc%BKQI@?}HfjN3Iz)PmBVZQBhKtiIG_c9yY~t z;&N#RPde+#X#?dJ(+Ml^Z(KLU-5Ij}kUm}Cc=g#%90r(GGrus(_!d$2$GYi{dH}UQ zaww(r{0ZXeYL?3|d`HZX9S@PsVPkXjvkwnP2+_tU<9ToJdex0Dr!OEs^Zb5rzUA}n zH@9|=pKlnRdNcVaga2M@$*1;GBAq=BmlHv4o=^t5SP8^z1e&jiQ*yL7&=~#fBaI;2 zg7<|56}re1Pq;SA^QaBR+8HDk4fuP`Carjy7gh(WNfWS7hT_Sd)uLgkcK;#bL%sSH@eu|~| z?*)z5frqhg!hFO1Lhh-w<*l>N)T8N|Ojtai(eZX2k=|<2d?NVNigO>vU!~W2tLx%R zwqLhTCLJ8{Mx5gs1Tx~ofPj-tPrOloJ;iPPyP11-RgXf#tJY%zGv}t z`)x~g5rI6;QR#_)*)xbyW35ee7TUm2PcigpXU@+#Uv}JJO^9Xk!aY{E!Z*PQ21wKQ zKM}fl9?T)R!h8wli0gOW0w4zbFw{o<-nUV72+XW&kS-b8=J)C1%l-83KmE4%LXzJu zj(^K+>M6i1dcC;g@~9=1IUkB6FDN=Xm|aiX_wIObfj=+(_+VRAekj*X?9NX38GtuG zf>6rKOGS;6oDRpTECWr`u5aSc9c)?c*6hE!^V#t^s>~-~8T)Iq)S3J}i^KM&yxN~P z$Ie?M+FRe*GQySqyI}`~dCmrknXmd{+3U+s*xWd$`A_GUd?e(`Q#eR%!bM(P&G})X z)Y6})-RT2@W{Q3NZ&;{Vtp}1uwBtuMgrGdFlBg=bX*)S%Xe&G=8;~Vn4%#j_Na-YY zAc+eC6XPIJ1D^OO6qXlB0d?rs3J8FPNwzKT<{J?|U$L-x4pB;#UbZk)!o!#CQ?BG3 z#mWM3o1*a>aLNP+w3TQ<5ub$5+3jRdQFvyT8a5&W@c4IM8-S=or}zoI{a$~Pnsoox zBZ$RWK?s0{*e2sNRFZ1Ff&l@immiw_nvUl#>6Rv3?HF!gG%T?Vva{uRu)v+Kofct+ zElSgQCjTZFTKs~Q$85gh+!+d9n2|%orFPZy#aNWnhj=8?F6s?!nN4@HmfwR>L+3JG z5vEagZlS&H7t2EIQ8~};bBB2`DeW)CTVL#XFl(9g0I!ZSYQ)7R?sy!`=-PVT+fD7Z zKB*ugszkv17~j7)u~zS3T34!+!dk8@8W%5(nEJ*YFllsPzVhM}^M~;l^N&+syIHC4 zPK6Y7%+#@*XU6yGLZx#PHTB z&#&%I1x|cd<}mY!KQ>JL=%(~fe`?u8fTh~f&F0W<@-V=mbSE|W;tsp~#Ba8rFH?1$ zm4BWxEp>hRe?Ruhxawi9--!RDbXGSij89My05eWhbRSL|LOxA%-Zn1u(2&x2;e*M~ z$W~6xuxgF5-G1G&yr=ARas%(?w;`uA0t5CC^_H|2))=(H3uYpq^Rk~)mnA?Cj@n=d z!UFb~90;00_7l00*)u97uO|yazRhP|Zf6HM5U}vfcoOTJZOEPb*t_}kL{vK&UTbcf zTT6sv`Wi9Qz4j7>Ha^or-=Rm}?yKvQ(oO>>f&!{gb7pmYguWCv#pUmx-FF|W2_PTI z)aufw@55326?3fa54Pw|&0PYhcQ1K@8d-S>^XwM^LCvI@wuKpOgYKGu<25_BzK27@ zx`uWsLK>U(=~2+CSGQjt<;Bf)%|0b@Na_7K!85(fH@Ua_sh|~F`ABmz|L=FNK%B~a zw#l16(k|NUl6vZ>95?RgqYWvSzqUJ91bk?cyekGlZac0ClzrS)T-&|kL`g}?C{DbZQwM__^fzfiXH%PZ@>VIz+|GwHcLC`M=v9B8ojxova zWPi1k?i8CtRA|vkiWpe{({m_9T^inx54ux4(gr5jHCGJaBFr200V$azllRCrhj)~o zvX1kim`b~hZPv_ArRDK@tkHi!=fnrFbfWOAnnLGB+#txHn+iAkJM%wF^SRtQgaV9= zz?{WViw%7Lc3&I1rwuwhwQtzOG_@dRoydg&@k&9+2v*iUiMD?AK2129NG-9>cw@v(ohM6zaV&K%6}M{_LXOaeLx4+{=Kyfd!Mq`t#?C z+X@3QaZ0>^jbhwX^ zQfsBfy*A+*Po!A(!N;=q_#)9*4h=pJuarB=NO?~S3Te5Fg^GzoI zuO=JnMV!r_zYMlk#A-+dOCkS0YU1-Z_5(jQI4^IJ@!PNa-@37<|IIa2^R9VmC5A1? zO!K^N^AWvRx8nYErn&j!Df8IFpNsYfUAu|#jh!D=!?_oO%f9v}9~HbZ|ILt{Y|js$ zqu@{!OL00Lg0jXF_%~j6*ef{P8nhopysG8k;(2VGgU!hn8srr^UG7HBIqb^>oD&^O z0);=xRDaf(js!;srU5?P1896KPVUk$7PO5;XHu08p!(6w(o9&GGWhz>uR4kPmU~z{ufQvC!qd8<3$8xKoZ19Bu zV}#6knB%8()$U?tGbO%HL#-xkcPp#$I5Yep*heO`x=Ln9hJnuXp-Gu zzfPc+I|JC3rj^;b52s$5uJ_io2CY7I3cKXyQ*Ny4)KA(OG9_W0RhhQw zTwNFBa?lbg9agse;F0)clThk&nDg*zs?py=b(H2*1{zU$3-f*7{KfFy0?EP7n%SV^ zH_RU%U6~4*8vXL-=#YN#;^&eCc)-l#OP+16yL~JxnetB#)z<%#T_iAmXBD9G|+V>%w^Q2yH`sxwQcHj1%b{QJb#eA!GB9e(s(dFHj! zN}KuY(yhz??+fgFr_xsn`(v!3(J%^`Mac}622e1$9;PkaStf1od6V-3b$>6d7-vsq zG_y3Cee|3jE^FlXoPD1tYd7nkSJPD{1JDTsj4UV&+8{*e?D*|_ssPoX5CO!BvZivl zgOURX!Ef82y%bldA)$h1jS^$=2+pf>Ttg(~eTkLCvW!I0Ag~1}C<+QAg;;sUt0WOU zN(A)+^ppV4^Hna)e-rpnXq{Exna@+p>ccG1d%X+8h=HZZ<;1OngSWjo7urDsQZ#bE(7H=sjj$hA~_uoX}hz!G=15HF4Nc)KEA;J2{qIqq|=>`s%n(7(9hx5|pz zo0{Co3%y@e-(vEGVB^mhqopDqtg6I5JJC2;Hy)I{(4T(+IN9RY#wR4k(B+l^>$(zk zoi!H!ZVm3+%0$at7Wl$K#S3!ZP#;nK6_L+!^;SP`-2w9GtHdQS*N3A(99+Y56L0VS zf-IzbvlQ>N$6Ie1@I#IO75y=q<>QW2{;0ojuoIX<09YEQe(@*CnYc`QJkAxsRO+!} z)C_Bcx_kGn!=`_zrCQ{Eyk~S)L!zbfO}Av3j=MJdw(K2WwjASrVwttDy<}zD32i9* zrE5>zv_GrdiKm_BDPnT)C02>45;qj+QmV=V8(<5c0#Ltep2i^HDv|e@u3secF(*08 z-6Zfalj?FgV?wL|+#jK9A73gfe(Pajhp4GTam#hejtgOoWF{p7D-p$VvyLJ|5w%a# zfDUprR8ZI?+ZI_@y8NwT`6z7rk&Gcaj2$ZMC$6|lH8RS<0+PDAg;NCS(l!BsFXFUb z@X+Mx?4hGb?sdChEbXxVT!TwLu8r#)OQ?cfA?#;kh!h6G44{m)x(?f#ZDLoQ{kptu z9syX3?6mV@(n#ixn}bLo?{+bH55WW*a_vBogEzrQcYlS4Pdm2C0~1zPE1zrZtuSx~8lw`t&zSO?x` z;ccF~X?<>p_*CW<^u8iUTTzA>c~fUt$3`O=?hqCJ8eH9cU7 zO4NvWxXMk28$!;)iPfxWr5iUZ?Uau2zy!B=Gw6Yd03vW0XOeR+eWQBx<$9g7`0{;e z)n8Lj%++S>`f{?AU!=YEcCTeoWTkx<>%+@A#>fCenExgKD5Gc;4iL#kID#?jEf!D! zk74M-Iq+2d-gwmT*zi6>_MGkq39Q7lVc{d$z}tkb;#dKIJh{XyjrCEnRS%zBD837W zfHCLLI?!d)j+z{Tv6QnBNd?B+w*OZYlm;FKMiDGUB9Y_+fbW;pY zz;G4|0rY^V#lG6kXnT0i($xy~&*+PjXcvY|W}&E{tFZ)VrB+mzsJwvZ`5cd(Q5tJD znNG=poWn;olP|fRDu+pS*9ZUjVZ8w@nt<9?8|_Up7Y;PEkb19@GlbVyrJ{MhEt)}B zTzw|n-r}x!O`;ivN-cU=0vGNa_=6LERbx3?*=w*j3=LFTYMok<8Y zq1ga=>UD<30($)Pb}1PZ3;xg&P^WU?0%y|702QC@2wB-PX}s8{>}^I5HqyFv7?YhN*O^IwZ@hdbbYFh%1}lioG*Q8tt%q5$@-i9I)YmTp6G?!>JWML(`(R zXxi*rYJ)TsHy^C2O%I!dC7oZ9fT;++jJfhGHhBG3lwvJ#iVcc{FDO9TiWcr^OG{Qxa}K{~&(bXh`tVq8T;z0($hz(zb zl_Ub?fTCIC&ouC1B3S7FdoTIuRa48=DEDj3LV5Wswuxep2^0!pf`l)DpRamMWN08) zkC)^;TVv zmKeP7$j$6JGNAJI{J7S!HW-v9W1ZoS?O-|96If=m{I*S z{Uj`8N?0$>7#Z17g94!av|4Y>ag@lnZsK0_+2t69pFE^1IiVV0p}zo|EB^v%%nDoi zg#$Y()M2wdhE;kl)^Nf5rgECTxW!q9!j1|%)iz+5R!W7^7&KPLM8SakY>wU{wGkO$6C~`k38s$$Z4fM?Br<-$ zG0l5!eCk_Kuz z>zD$pU=F;uolbV#QB{^V2V1V4J4$DhNx9#h8N4^@QU&BQlj{s7=Omo4GpH!=>eMh` zDA?jpCmJ|04YADDPSrB9&6=C8X5Cne6x~00(XI^Qf( zp6Uj>{hhRSUoymT8*$U2Y|z_q$!NMe%%Z@}H?PytWF#OAc(wwsOmuog58fD zF2-BIN23_L%zBIOFzk^pjcFgXZ7RuYl##Hv=Pk^+!{=7Ms_6VmUJ*=ML( zz8m++k|8#pw#S#3HCtg+JhEs)O!5x?-ID{y!l_e5>d49Y+G@1b-u#ZaI%7J=T2e*T zJ8cZZn3LEHL=FQ3Hci>{C=eHl+*gBH{&{hXUe1OZ*3r`jR!^ypp4!GKzwDRWD0aQj zVSyvpi`nJ;vj~%|FY&0A;dgG$OB0;VXtndcdJMA0W(nV5$l{`CF{skodZQ(1UO{?i z%sEfz-@PQcI;&wij6N$&(KNxkP4)nSjUj;4CK8hic9@ujmz>2!PZ_Z`Fwt%r zl|?c3n|hvW_t$~X-%Lc>pkXgD4oB}J-!=XE(*7q^6*1TOwbe5Wb^vCQ2teG3c=$eo zZ~(&D9XEb|!N>?gC6#q1p1urd1Iql?RyD-bZ^WcO+#+(T=Ua_MBe#8{JK0{p*62k5 zsQTGSL+qss3*ImWmBWMKBBWRC0pvW6=t}~D3N!wo4@NVR@U3P?I$arr4!Al5_K|~Knm~hKp ztCzFO{fC1#?|cLm9HtH*V(Y9ibH-EGEgHHK`QYuPmGZFP%2!MecCjKz&}@?v#GjWg@nebEmg#kb>|68c}O);tbRqmAsNs8CRUSAkF!P&988;T0&?QPg9qab=WQX+ua zC!WqCvzU``9Zs^!fMeV44(`kRg@!r(F~ZCRrRb0E25RYjkkjI=Tfj9BcANY4joHtq z!3#PL=Me8xAbz{eY3FI`X{bPmVI?P+Kl^+%D9QU?>2kRF(eiV9nuSrIwmmI*nE#hR zwW3tp9=X3Om633MG_<^9^g*%0qHp>!MP@sP*DppXh+xm^j1vaix!WK1gWFHk+?>Fj z8c#gZq_;amDkw@zFenU)h$A6DvRlGU>>{ul^zql7c5rRXo3>0XzuK2eIUQg7y-Ek9 zo?orKssaLjRNP^0b5l!nmF~o1`TpRy9gowA9Vnt9iq@N*U;p_w5A5Uf2cu9FGl~q~ zrSLl$2lU{3FAj$w%ymd*`AKWENz1kVvf=wsip}H;dZD%?-b{`9+8h<+QNaX${f%H15AwF7Kp@nxUzFl) zqNW}NIC3z!@tu^i1zY^7es}V-{demfk#q_rv%$eN8FkY4`VQSj%|i2^tPEuHb(9Z8A#4$*wylGJZ@+ z_w`Rp_iK)9=k1)7;L(vmn-A_r#c94Wi)s}lVxqvcs>BYCv(~Zli<8ihAHDVh=2f~m zHE*fgg;~}*!39X>C;gErMX!tVJHQGlLuBKWYP7{N0f1o1lP^rwoK#uud6(CBHO!wg zCxeZABm&jRFHo&2>bu&w8u&zJWR1#&6ZpE3a~lgtdq#11_bV^}>jBhp%-94My!l!Q zFnj#4RUf{p}Q>L|VwE zZF}F!OQchX>krb6g!A??8r8;v(BQw_S!GELR3#RFF%9quiv02@uq3ST8<5MGra|^7 zcoU?5oewrHqJ&2Y6%J%l<-eK5K!3LdG&J1NWAcV0slXAhu>@kLXM*%KpX#no%j<$( zV;zWdop$5rU!LH&PYh^y@2*}?VGxj2^!A{*@7dsXvR>c5KId9ad@lKm-zMf)GPNIA z7KYr*5C9Yi09lnmMExl*+J1KbmPADm1Vq5;+6Jsf6ZT%9J{+)~)MVsKC~Lhv-?6s5 zm661Fh{1hUK$HeqbCj|%rATH{E@zfDW z{MD>SkWSC1$pKZIl&u$^j>K--4=>c*tECmzyPZG1elyDT?B#1B1Q~}3PL@!O7DR)^ z@}oFAzp|*UO^*@8+sod$)whrO>k2(a5B3I9VCg_X!3K`>sU)!8Bf=ccyHoH+g& zpj1?0q-7Dh+*@V+c#?VB)hDG_ z(>9Nn%~0m8UwZqHTA~>CD$Bi5N6{Qh2rIjGS&^YW*F#ixVMf|W+!;6}B&WjZ;WHs7 z+4Tt_|CSk%B*#*Qtn1*$8n%_oJB~IH6ID!ATq710>0Qm0>SF$QvXxUFL}^fw!*t#9 z+`OeuJuC#0d!93B*f=!*^G-Q$prhN`r>d9ukJHDDI&s#lODpLJIFdLA=Y>*@6R5Wp zDY>8}dSi4FF!Ow$k`vb4LYd)tEg^cxh%%-Z~3 z@BC;Xhwb~-2hRJk%+{iW+n89|rJ=bRfpCw}-2ng;1uSsUx}l1Cqtc z0D$kv%@9-s2DoTo9RawQ@ZHc23k4H8NvE+lH8ZsizV`LsTXrv!T@|HKR7`5v7>NY1 zgb=eY;yu{Z6X**yVkXxm0)F5JnVSCi#_P2tXY!qX{C((;_nj{rc*$SlcE4mF=ypd} z_XdXN#FM(;z4?9Re2O=4<+XEoNMsij9s9uKUPqY+`j>|n@|E@=Fh$HYqmPj$o%7B> zuVzKoh$yZX5?vM2Kvv7nrp%I(G9Y6K`$p)|^yt!ykG`$XweZyYCv%xxz9M5eMA-o2 zvt=QqDK2nH>vKI^QrMo4*qevAkyHK;%h1W0UwKx`EZp}i2?SuUp^IpZ#hXU=R^R|-X7l9(jee)#s^2~ak7kAIR}l|X-P`V^tHfNI%pB+&uEj%l zsK5VHlVA6}-BJ6pb7+||`P9**P<-rH*1OaDW9PYN$ZIL*=pe0gwQvLL&-SwEo07l! zly_?>Ml&^AvLN!7+NqD-p5+rtM?Ln()auWa5CDmUU_^_Go+al{pmTQYGO(^ z3mt?~1PzU9KAMstk;qu$oG7^u53FaL=l!epf_cD#vAH!v`0?6#%-=yP#dTkK#LWlK zClT&@So=AAYsy%PFyhIiRZ!F z)rk;9F>-@puld97<6D#`KM|3!k}b@Jgve8ei_lzJ_g@ti#+7q+C0EaQY*R}EhkFf8 z-#YkE{`#oIA;e~O2=CKz;ESHJkZvn&wSfD^MxHkEs2iA74Q$Hk@eMuD9|urRB^sKU z3f+e1YBkQ!Xk{pSOT-m=+j!y=2%^I;>NQlve3S4_BJLjC0tlNG+jtepln&OPb-D;V zw5Sf5KF?l5Ye+y9e;oDxRpYSutSDwQpH*g>n58G8Sfk;aNS|2^gVul7;(6_X_h;&@ zBk2EM-ANwkq?Xrm@)rebOMMR%Ly8kDg`O3U`V-S>L_KyJB$Joox76 z3){nfcr7zWVWE%}*Vfi~-cfabYt!>K@$t^0J5x2B{l>R zHkX-=Cm$kHgOQjB2TclskVYX4s3;tmRi4F)TRL-_R4EpxKA^FJq;i?Gz{Bq4kCoyWaXv0)A zDmEH~3|)3!f4T1Yr>42U>HcM@*V}cyf?q6_>fMF{lZ~gmRkIqiengt4CndSNi=_md z?oM+tOdQf^+RwMN_!v3}w}O^^zR;t;CSv+J=P6{*ft6cFNxfnya92k0&EYlLt22LJq8ED}C3v{Kh8q0R+I?x7lW}9lIXqiVs(FfER#Zn?I5zcn#C$2AH9Id~njwnsk zV3u0rz}9bKmkN*xxksZQV!DB*_Xsq-N{gy~dh#74c`1Spmt3{Q-Cf@B>Mp$9U6D|_ zUEmvu^(Fs8vIxA4rbh?EUtS}3hv5Jb4lG(b9Ec8ee6~@Ly7o$)mzcV8-#5eIqVlz3 z-Y>(Xa<{_##5*Rx4TpCxl|8XzBhrV{b@!e7E*}P;_U+=e+Uv^dlnL0QImT$haJw=o zLBGGdYK(q5`fWsx(zH2jmh5g7Q)R_zL9^oalss-|U2k;mH6}8xvy>@(>~_n4Jhen= zGwb$yJ}dE5;NK@Vq2u9Yz4`_8#o3l|WjwI3yxyX(Ki*hU0W;MC`TLm2&_=W2w~K*0 zbyMq$xhLtT;LQfKxhl;HK67b=ql`^gXvEJg-56XU`j=3kUulYZZd8Gd831Ht!5kQ- zpy|fIachW`&PT!Bg=Kq64S^o33Pb-Y0IG<P02!4n_qfG@RFC@=N>W9vv@do9g06?C&&5MCF5Lvq~zrov?-Nu9u> zNc|%bkl`R7lcZDa3KzK|ICpW6l&Cb0=QI{5q;Tr?4a(E0D3`+#a#txXqT@msX~0e1 z?eH1vOD@Ehx6usW4x%RvzOJK|R2vYrmGm5n89&lD8;|Y7ApF*g&7CjlE_;{4d_Z~X zl=bJn&1yPa-z#di*@fa4?P(Os=3e~Fo5hJ%mlRUo_akJZF7#8S@R??-&%fInM!T-_ zZpQEeXSH1ZaL_vZpfzx*ts37O&oas?ZOd^+=DplUVpEJJk~T5|92bQS&U%QbxcnbY zDAb&ExY`uK;zPgkx{6`C2XyaWRUk5`eM)|yF~(arU{J`Kynu0JDlD>~5g^G;QBrYZ zc2_NC*M<(Ha5;ddlx|UqhsJBmaH>C@)TNe_45P4zh^Xn=1RwlwrRPtL)gxtc6>s(W zGFyr@3$dK-QP+v7x0oTlj+uDHmSfir(RR(>I0MF~6-pP}M7wMsZnrWTk45r(e;R2_ zxQ*fU>}eEl9L4H=f$wQ7xB-GRMU8BOPdeqbhcuCL##P;XkhcSnRVeWGFAMosq%j-g zKoxQm`ZCQDZx$s}hSgEvWA5WXgVKcP)plU@%&^ql);Xs9XZd&TA3?jIyVhG}@nfvqa^aMN_!AV%TS5nkZ_xQ+5v(#fRLCl5KR0J)7&L zr?&?rUnx%*RGbp#XCDo=2hj;xR=?w3*x#!5eC(@LVuk1mW+ZfqjOsxqa|>CA<<8`` z_~YHYjRje;-D3|znRF4-^AnDDHe%iT^Kn}p(~)?l1r6?GZe7q; zp{=|c;>K-<^V?hIL7lXCc0AUCBQ?CI$?x`9PH+0pU&Mqn17@J1A{E!Ch#hWTRC%0w z9Xh|fcNp{^%ZC||M|y)4kFR8ne+4SR(<}D5O{`JCAW>!DR3JML-&-0|nVk0>vaeEA zjj~9}WwOMmurX!Qy5|{+N?YMF`@8{RYk~@f#V7o{--c|zSdzalI+`Ue53%81Zinz4f+< zH~%)i?v`+euOb(tU2?kg8mgXWU~?Q2&UiKP^>C)mnQCF1&v9b9e6Q4ZY4A_$^km+b zs09|@c@3v8!aqeP`nCiovV}O2{P5w_PqGxo72HN>qjM~d+|=y@je&>xXEgfwAw=_g zL1rW8$y*KdICOkKwwr+u6~;L22$F8olxL{fBch(M1(X~{W<23bm2anYO`#mO)hr&4x?Ud>| zTTNqyRN3`g?RT=`fw6E$%}uj>lIO((GWnfsveKRQv)L|hipx`chcyM30+k#4)9x}j zAkIW$s(w;3#CKXvbvq1X*-v6eFCHCMnby*ds{4iRE<_5;SsG`{kgu@UQkQvEHrk^V z#;>kD;p;fD4X_(sSi=c75*(vKDq(ylYz(3VNN6mk&qt0`7-l%^3*HzkBE}*eX}zi| z5|;0IJ(b^@diZBV?LnZi>7(|MvccEcnGpxd)*1PJpJ<6I(wu~RpRM+^=DUc0qzm`k zO;nGDMxJx|8y^BG7KEGpUHJ|e^xfCW@QsdS(^Yr#8?(M9or{_H4!F&ItU4D28cFX0 zmWO8hc&CM#*;`u{FN5kICHwB41t0HwKDNpoy&q=jSpKl)*Z*HR^4jnSdy`Q@e7qH1 zEuJr9QKZqeTFO`hYfSV~$r8^HjMpmCh3XK2lFdQEZtQGOVnbk7<7KdZZp^xu#!j(0 zWWBJavVe*$NOcyG{{=7&KE8QZ(& z@*QcbVe*?aEA_3j_<*#x!^Za>SuGl=n7ckg8xlw@gzdTumzT?$+j~P?Jj0=Uei1Tp zDJ}U5=NvL6o#Ptmr%LmXTT9a6W{;eag5Tdt^L(6xC7uoD`DL}Za@qB#P`nd8;T#r8 z$CngSJsS3^2e*Brc-M&dfIQ+c7}L)ff3vQKC^e~ZD4oyE(8LhE!N40(7y6@&iva?h zE4@&2VVp zbCq@PnvtNJhuSHhTZ!hg=`hV+0Wswlq}FejGFo!$8GTQGI#JB zQZ&7g0J5k`J5!54mx3!FHa`xT!zWIdX|W3$t6p5}(C`U7$5)rEoyC zBFeE4EX$V?pAh5)et?ct!;1?iIz9ZK)T;uu@+4yq6G{>ipkh;l>OdR%mDu;6|M3Jw zM^fE+ztTp9xtYs>1cbFn3LuHpF8@73HLN@r`MtXjdx`ZTQTXBciTf-Dxg7GmAE69l_t>B8hEU2hwt z`;Ob|gP&?6ypQwS?}F^xQ;$7HJq(=}=%!g`hvtl*iUK7^7dOcI{L25WORPMl+#apu zH||s%3n~U&n#**F=PDi@+w-3_Jms{!WmQq2dSu(^FqAW#{Mwaf=rnhlLaGd^H6k?( z3M{{h)uug0o1obqeGwObkt7++DXt_!hThNpvK?3p*OQZQjdQ;{+Gy_6ecr&iO(_U> zeY(r0`sz$P)V%GrQj2@iCv{gZ9<*XSF8S+Pgb=;T2`yTO2>=*~3DCjdfTXj+ghceg zB_C`4OH8t-{beJ$)X4mnTxHZ`Ceo)rtWCeRe-j70FO9#0zBXICYI}W zpK5oa=E#m{<{#>NlBuKYO9qN;ug2?7SH!Fv{iX8rdEI19@lBL-lG1J|#G~Z_XaOw& zkC*$c0lv)vw2w6#=hr>dU%Xd>Mi+`k`KGsm#jl4~7X3X7wr}_JnlxU{|4a&8%-A1KNVtENVsrUJlyJcC3;4DoX`V>f3U2gBi0z0bny zvm<-v`uiieF_7A0LJ)xua(Immd3-xjy}|O=5-erCN+AN;9u9`G-PQLw(;hZ#tw&^j z*6X-s>;LCpguoB5ru6?XQw^f{Z30?#^Np4n5|`dL?uyYC$i={s zs<234j9yuq@eZ&uU!j>}JQm^QQmMIf{)cvH{I5w41={e5Bq*EOJXzsK_ncSVv)Sqa zp8G;cV}^@P@6i@SU;xOa&Ez-&6^?DBT9G^=7fQc@28twaTSYY)=wuQfGl-+l(E~Wb zfNhWvUf z^PZVgym!9pREu7Xyf6OR7zLbA_xT5r`RXqm6Y}%_ssE()LDF+cF)}jw>99&eqA7JI^<@MTX@8Cebp8sszcbcnc?Zs zHhp--=D*;5IMsG}l+$1w!0*IMNfRrkgnN`&jIA2ac1~?({DFNFB_fq+s);Yk9NEHIB2Un3N`Txv~kdvvt!T&Im7biYm@34;SsNMI3diKYd>wUU=zL;+|Y1XWNlK9OEp#7YmGsZPwCh$ahq_n~!_8SR6ng}xag4*rU z)v_zL^~UXs;`dfDN;URGqO7(y0(5s{GJ|hEZ1u!DonD@_Q0AoV z@f&$biP+!-2~L)({GJ=Stu7HQKUE6o>2d#HT=~YQAfR*-vDXUVmNuWl2pr_ z__h_k++{T=gq+loVLp}|1m9=Jm1e)ohi}JUod11TvZ)Yo zJT}G^-uTwh5F8yLXT^UZ5=tR#0^VPPvL8!W#~X|aIh6_O)*IN6SZobKBuz@#z=*Me z&u3tt#M_%PZb`TbJIjwnXkj$P2V6fj4a2M{lKVei#7%BinnNI$adY0@7_o3|hVq38 zazMy=LCQOt`=8Y4S9e&%nrzpye1%RyVGBk-$*RW@8oLcs6_d+}Crnn7APW8pFo8M~ z>imJAJQqeEgLNdM7B;*M#k4LDZ3ICe-NXzpkzrs!mcb0ZnvqM?gi5o5eO;K7jWcqz zq4~%DQS3f9$G23;{m+7$@y|UOee*WjDy#A4VsEHIdn-OsorQRbf^`>5_OHDf&XV+m zwwW5^()Q_x$qN0zvA|!0qWp54El_mj z^c-iymd}i|Ep^$&0^;{4;C~1SqjyDdEPkM^f+5~hM2f{9#nB_Cw2WE!-u=w`QIr$J)>N11F^~CH zTfl;3T*<`Fk*#}yL;&us?!phpt~GyD1LnpqkxT^$4=r#8L;fcNC@>V&#{|&#hfo+BgWj##Xf?FK zby{pDE7AzhW>|Q0y;qJRKJ2}DvOOnjLv6#NfNjdaoPO4;c9Q~b{I^ekoWSSGYt5i} z%NFUGUBRXLk{yDn86n^gIe%lr-b>1s@gc_#sA)5<=J=JXmZH7@V(Cv{_6{}-uI@s&xg}+CoRV#m zyUL-fUN8J}c^|XMcBdC#e(N$ozsXdIL$J?1C{4vI!;$yTX=vj>V@dIuL{|l>QGjWu zeBhC#agz+0ZkzT_9fR(vLDbaG$;31D%aJ6Ifmi&`*1cg@hc36*vi9;5`rD)v>~xR? zk=-et5BQZRVA!Ic6zh*SI?CW-VahVCzvhrwYFZRoK4Ofrp=Ic%hT;)c$UPE0r^OH4=x4FfQM5E3RP zv7{a%B@XO>>{uj`q0)#93c`wYz@(o$BYzGE=_52(CG~xg@w{EvhM0t&hFhk2`u?tg zRvWz&=7T)j%>`ajA&HEHdwK5fgQC9+C4LNusvWG#)f-lNzb!!a%I<#O>XqPSi#Yw& zBQAKx4H_}u{bNn}rM}LZudACI>)N%Lm{6pDxYTeRTE!#-i|Uwimxxf|L~O9-AhSpY zKXTsxpe=TzevF=?~@llD5bW`69n$M-iyNL4X6G7@>Z`r2fb;euy%&iGvi zfRU-qeudhFtk_+Sr+4@&l%u*O@_C%$w^)V%`c#MinewwV~6|RWk%mcwlR!3JLAN=zr-WvOkvL3Udiz>QATo`87TN>hGNmY&1?_hnd zrHz|3@ls*3*5Dj3mQvpF-Vc`eOeQ9Cb1grz;&AHQWQtuNYf1CQy zy9gw{_8=D+0e?jNC^9f(7i1sxwt4lg7b=6ty?1yR8a0qygHnJVn)^yp630aT*u8D> z*NKmvCNOpa@HiCP5wd3cc>UvmA1Zq)*W-hYu~&sZ8m@aWV$Ut{0p$2elseL%h=xWor69s96IPIGrf9A2 zOFlx0S8IQskwXj>{rF2{9m47nVsi z>sCFYI(!)FvoacE$fW`m;V^iM1-b_z`M4&3T}}daOGEB!j$%Km6u=weZD?%aIPhNr z?en&~Z_~71@X&Fo=TrAeUPfogSilvtehwygOR_#bKTBEciB8h4bbURN-$g?#@s3tt z*31;-GK5R*Wl+vOoXvVHGNK(f`W1>>6`lylW0bH_hA}YZ@StV7eykqEjXU-QB}eC% zHM3P%orjvOnpF-4e#j;-=m<6K{`)$uBr4=t@9YH}eL0fP;GjkN>0D#;P@ouJfZj~!V@vK*_dI0%*S^tpSMsRp)VOk%2ji6IR9tvkPjKA?6BzTUdSxzy=iC1| z>CAcBqhtovj^l5o>CINvl6E@CWOaIDv6#Dbgj~mvfnfZZIq-qL8Vi&uTCueKeppEBkA*?tH84k=YyGD`Cqw^bA!4OS8*WrKrE3L}bTS3(F#-O9QZN90SK z3V;}oR)mle5NOhrqKH5==lZc-*tvNCMAJC9A&eD^AUnM%8%+%++m9YF@P25^ih7vc zXyNj#>dLtO*6F%@(f=m9{};$j{` zo?^Jw`iW9G41V>e-$`{F<8+`8m)o5>Wu+&l-mj3W%%R@{2imeY8n-hz$w~_azXTYh zutJH)sxmv~){^KclL0^k7f|gE+IS>?6#Y7px_@Ao!#E+BqKVl+NgW}1hI|H$M_@Ht zX+C!;orI9kA7OA}|H48FrKybeLv{iRlqi!WlK18fTyVdy1GHHfJ&B@G%Ope<1A#N1 z;9y_?yU3La%1N{eD8iqywd|DRkLLdA>vBKy`!lT13Vk>RxAUJTo}dkZ%}r<~Wk-q# zh+WmMv>s>i)l{$OX`p-e>4e(4#RryAd1G{JD0t)6O)4D(0wqR~fj|Jy(r~!bn<#RG z6E*<%Cmb|vgQO7vI%XN^*b!wF%GlN9ps2Z*Fu3GyI3AP$={5_g6KaV!#z!;xM)LJN zRk2W@N2fy}Fk*?V@)y!Y6t($f|A)0nf+V7)Hz%nViN6MrhfJV>8x7f;M#ed~Q5cpb z8JAiV8D-bES*OS2i7#%nZq1%NHR^+x6)06y|KgN8vl=*5-h?7#h|puWKad&WxO5wC zO?^kukK4#=?0$g0Q2KkKryY!TSL8|C*K?ysK4yboV;p>_qsP;-BslXWtmT1qFidLR zg6Z_bmTtf_KgU)jsw|tP<>l?)iBNPEYOrl_e@9A<1g(Q!*)(^ylGSR;@k`f-EfH7F zwSG(#6ga}D5YZsv>qbC`(LnCRgxt5}Y=CEA=!r`-9zb~4`Y#9xPS)bk)%HtKm8iNF z_kRTv2)%4{uYsCo-#HB=29+BH>AL6*F;?5+nEgnU1fm*Gz#&utB~dDvg=00Epy23TcTG1_(K;zV#9T07kCCyDW!* zpfBzJY@1K5N(b~uOXl2_Exu9;X@pR1Opu&Wkc+77~nT3ePu5d`)q|wROO*@_E$n(DFurT-&YUC zlak0VUi4O=vJ`zg=zpb%=ZW+uSeA^ zK}vz?O=3$t0U%`1X zP(m}p85f@x3>UlnYzGGe_-)WJlM)xUhV|Wd$)&5}0tny7bVjR-hT!#OHrvaXtG!Cs zzvV8k=5Qh^?N=m}o#iE|+jfNQ>VHy8aa%e5Qv0;EV}{&VuprKTS~wx}@V=W)T|*vX z1S4MG!#CoB`(AtgBI%KqOzEfBdRtEd5~rTAt`wtIJJYRYu0OaikQX22gVB&Gz-5FW z(kuD+45zTh`QD5?e71JnemuupC4JbnDt8%pWdbTA0+LZdaAc^1Ad1|4l@IA|8#Bhc zOe9Q`y8URZX3J3>;4z0{7CPdpqzW?a#ICqI^ktwA@SxRnqbxyxt9iBaT!@A6<`N1Z zm;oKcS~xfJOBp~GXIB@8;5>I`^{g>Go{DN z+;sU=0oN4)bjXI-O&M!4*hs)fx#3p zg`&SX8CoCCa!UIW&3WF&h2wRrQBD5&k!c2Mvr=~YL3N#J2C#?()^Z>t|9sP4x8N`Q z)4eC`zvHx1Q*Z0?Y0+pYuaoF2U+DZ}*ufbJmT*$|=e@1FBdrDBP8gZ`T+1KSZi>IK z6Wgxt?rbJ4YwU&Zamc?Ki#zskFj%6Sa z(^VCZriRDxao~#2$m*PSXS40T!|?hsXHq65D)ijV``_Q#LFC(5FSC``OR-T6$Kf{7 zMZ+WjM92j&%!sQTnWGRsq_s zjYR$utrsj*Zwlsn8L}foiN6pyr|TdIc`#BS5zqwyvuI{BOgNkXlVFxbmIOi1@T}g} zWyYeH(0O2G>FNDr&b4W~uajS%GGD1mdyG5RL~_$B0=z;pHH}^!6V*v`lrgKBUA^JZ z7gq~mH+LiD`MC*m`6B(q2y(_Yo8C}}g>I-T`-&!1hZ?7+xP&ctKUzs-78vKC8&eNpkw z{i1d87bfcGiYxVplmzMju7#?F5O>vJ0FJ8WBjpDI)@m8yIz6;|dqVsEr?#9z^H*;@WCEiEh^mauXf`T9)3t`i00^QTM@fH%_U8`vv47$dT% z2!R_QG+&|ti4CPSxO(SS8D!W}UO0=M;>KH7A9tYJV)qOQw@%GUwDGy}7~Qo?E{h_* ze6_DY@bGY1IP|~C#!}m_X8lng+V=-A(WS+_gDO-)=PC}%EkZ!cG5aclhP*Yrm7LwB4P#B1yx5yvIIaaqnq_)hD zsa-Qn#6>#{Z;`~KP?*fRU>GMVv~1B(Qi`!gutu??83_!hTT2MJU+>5Ma2hIF74o(^@1(~jRyQ^< z10|ii?S0Cbd*%GJ{diWr;Z7Uhcxbe+dNR7BGV!<;mLcvm;An;Se3Holg5;V(;Ih6h zb*{Ia?u{06b0gCcygWfPe8ha1Hn_#_7k&x{|D}8;;d9cJNltG*PR?U#+#5TD2FSUg zvS|G6nSa6!@93<(U89Df^4g!s!F)exgz{ zZQbOWQ1Vp+T>Kjb0;#dZ_M9$}fImAV&5|KhDN2;lLT`4@i+PwrI~jiI0ATp%wY;Mu z?NMgGgToc4?IrJ(2S%q9XJ=_OFD^9|Ko#Z_%MXUJj#zuFhKb-*QD|fvMJ<&C(#*4w3+Goblx9tMci0LJCl_E+T zN)F$86ysqn_!@;M7DTV;{x)Wvy_$725l#6QOWq`3xIKBj~g3yLe`yzFV=r8<-ACCfrx%b-}uHSnGdETn3 zUgup9mSN1S(gHTI!@dESANWye#wk{r2Oezem8Hv%S4`XJF3-I+j$PYC$W-oMSICFp zQoR%qDsVFpBmbS|6&dd@ed)Ssb0wJjgO$-wDBPC^ol=ejrIj*O0YIj;oLeU(X`Anr zwjX^17n%cCoLQwc+@*!@)x=#2VDyfCY;>|S*p)4W^v)MD=0;4@`EGN^ckcdw)%Q=9J6D zz7(RR`;6vz3g6D;2yQk2=BY+nL~@SmfcDXZ00M}>DlI-j!;kRVkV)p0Ws1#I06q5y zZU&2U-KX0{r?DgXH&$2L0jEtjESDzC6;>4|j03JzcgO@f=au^QmeV5C71D|bhPb_r z&(t*nBj)@&eK`w~3%IoVU~j~%X*e{=N*PCC90>XE&gcJkJ^Y0tIs@RBN0dxMoDC3B6{^1n&e;%^urXfR(=32toV3B7SQOC=z>cId- zA^abX8sR)!v=K2L_Uh?say#}Ra^KX^TU4{3?$l4u%z z7vfA6GQkwP*sX%x%0&x91BA;&N#@U3Ci1UDT~zEqSv%O64__(O0h)2A0qr;=jBI(c znYJPtK)dTlp2j_D{->TTs%-vQ`R~H!#pdeiMUvlb`t`BWTGf>=vtQRoKY4`N9v8=~ zV9@kqNn6wXYClew=SIRM7j^+B4FlH;ZcQs4{AsDylRU(;C_F&G%{FCm=!Y{6gYlPD z+OU+clZu&JHcOK5c5Ove$Uh!J7w9?Ts|a{X}lS2?4+LCC{o@kI`MtTL3|nSP|l7=r!lGxpy3z+k3majuV_Jsl;>$7H`MVjc9eCg!Q80bBRhS0wf{rbNtSQQ>9s=9 zQWP=MeH3Av8^gQDp8GEN{#fxkEC7IU?NGq9FrjBOoW*R4UXeYxKE>KnW6zOHWo%~K zf9#zbv+HoXmU(`QJHN07^?JF$BPdn@O)Kz90R2-s0Q;9597e}`Ra(uKz__8v`I!oB zYc0prp>_OIaWjjMhXo}A+^lIHPt`s~U0$uTmhZB-NCo?uOu4waz5ItOZ?AE)lE79a z9qR^}4eILlA6#0Qr>YlE@cA<7d49C%=jWBKQBut>@~F{#Df~)5Q%K)?LM701mNC9m zTg~a)jMYO?^54~E?LBI0<*%v|NE-(SvQaHk@pw3z+?E1sf@mfsK|BSu;=UKq2qvpY zPQwWMRdrhWrB%9qf{5{555KfFr>XAklI!QICs%=Q<^s--i-K<2PS={QL*{nxHk@wu z+2fK_0%Z7?BMhc>GjH*JbzR}S8Z!bm14CRUDw@oj#8>8=s%|km55X&?iSNeum>|n< zeAIK6T1fAvn8xDdxSw^$%BuBXy*9Ywq$9a--FHQ3%;RADqUd@zi2tVi_;hAw%F%Cx zV9i-KEbidTNymSeo=veQ*Ty$gn}^r&N16STTVpp>SBJ(F(A*`I94^Q>Oa zc6UCP=+QU*LxKBCioq%6A=z_gsY;`i)6}bSnmKH8>suPM3{{VaxCYxUhsYjG<Z}?~(+W8Ab`TK@@(X+k`#_&z=e5L?+LeYAFcfT);`~*z2mUG4iF=Ukj_9 zH``A$n>$9IPk$0MVFNfYnD3L4~kl@9=i#D`7 zs3XVH9+VW)Glpd_=)Sq1#%S*>-=I=9{VA!xljWplx06RDfKq6K{fe~b0ko?2ESD3! zKX96&HBj!YXTce zf7Ra{%w5;}?Vd^(SC-9Ys2?W2TUwpA4$77Ow|UfORQ%{h;QadNz@>Ng>eMRe{kcJq zuaVQLU%H5_R74mM?S{}hwip7P)N{cAb~Y$G6d0Clvdd8w!MB3hHV>y2UjS4eSuWDr zBvSNgl@v+Ix5$k|helotMKZ66!va+hI?YU$6?C9q4l5iDrg@IF0M40}7F9>DqgEge zXQy36wcP2e3U0YyAY%?+(n3CamjCSaYjw`YHyW79?|!&BJTZzBi}xBCZTG8wWwxy8 zC@-_{M9eOiDccLzw|E$g?y@KBYWgv06Xd;&ZG6*sFuS;-qi)~!=78xJ*O!UP_5CQL z(`vtornI-EUFL%#P z_%qmt`e<_bfT&g6Ek8htR0eWsfRH;JuNMkn5fGhzY-tz-L&`?@qIqwfL}KuCE=V@G zZ*ET)Bn*B#Ie5(HbZ)36>_}zM$$9MlP+>&Ke151-cE?Dh@!Vl2(;+Z^JD@7)C|9;V z+$|*V*IwKQ^Eh}rq5FolBEDy$-2p_^#x`KZ`L2z@(6v|5dznH0q>_3gD){a>zeEtm z@#+!RRoFG3U+V7RQJ07ITD?=|sqgk}V6DlC#AkMMY`4}!qVb|FC4A{>0!1s(#F7m- zA_8+27_#oe$=H#ePcbR9Dulu^o!(m>C=Q1K1B} z6HGJ?Cx`$R=kA&bh7~R-gdqQm{7-`MRSaBC%dShsY~qLAD;XK{L|K>^>AS+6+Z82k zBBzFr-V=ju6CD*tc{~GJU28@RFFl435X1Jf-*+CeqEv$>uP7H5wv z6qWe$43o8#4A-w5UK~A3^q`YWFi5HCD)eEsDsmalkv)HfK@2vNCZH7jlbp#lo4aon z)PSTI?>uz4Wi0ap`tTvxJpm{^w=y`2`}rT)J8X=e5feTDU#3=jHb|6yfBI}8Z*Hs6 zxar%_+Q+MyoBgDc-3I)UYbUw}p<)RCLw@~2P|lP(m3FDDC9`rFzI4~$ZK>~!^T8O= zDqsYS#lpYUCOHV}KP@c+^fwp{2U`Rpgi*Gh<$ILxqciVPr74N}p@Mwwc6Bg6J7jkf zS*tw_O!FU`8FlDiy%*5&tl@OpFHmf2I>|3%zwI~DRsfIG7>gzaz<*aB4S>F4ivMR$ zL8GZ!Qt|UKUx^lhw9hHarM>0>#kt*2`I#Qu3K43Uf$NBmMuBq#BnL*c@oi923_7M~ zS>Z7bikBslgHyyM884Te)<4soiXT}rk19;s)kyzaa36Qd$a8a#nTu?Ws9J0Pk?hgl zE2ilY^$R+?S!GzwPRm4o+y&EZ_200rZdX}vSI@e`pXypKe|@RC>Y(0zqW3ccf}9SgN_MU2 z8as{e$FA-lK9^{UV1;3VIf#Z!_vzzSg!io={rusp{RItgA17I<12qr0_9 zq^c_69e}DH)6{Czr>qg4b#K{WY94M&$X%|VKX{Y9`g=1fZh2nX=@<=f=Yj!y_%QrR zI-nFVr2)jV|B7`s-(Q;Ja!bY~$OsGlAePdX=g`2VZl8ORn;9!J+yWhH`NK>hT8Yba z2Z@ zF4iaqRaJok4ki1VWPwSh%Z+0=Dn#HW&nWrKSA8 zFAe~}BKe`yu(;L20#anZ#Xv{mBw#Ur(~D&(sgM7ntB?Q0e^-_2F^&3>RN(Jw^RbED z5#tq6BNUhMOx63Q{L?HYPCP(UVDjl^#(G#(fYjRdJBjExLdr12p)G`~f1{&pHTCAj z?rZiGM+3jtv#YQCt0Kwfif#nFcjHu=RO%e_N56cz9{b(1Kf$Cr18@0;mzUKJ@+3h{@_cNV4)y{G!={_i4IR&$imUS$|`!K7Z> zSLZ7cUpV)9z3XwoSTpBMV6A`a#lJ0kGqF4PF+97fn9+D2gWwN56i)G(w;0A#%2|giry#Lyzp=r~lM!QM zTQ#)e%N4E-bE^o0b57 zhBJRXXcoJ*qK=+9CD^QrYh3mC{vss({m3JWx^KAoC}Yb%*(_v zdNrTS^dK>pzWYrKe5eg+x1^C@51Tw?TJBx4iX0SmN_f8+tzBpsc{g`ur+#&n)+IER zYjkndn{FXGh?hPDP{1}_qzPOkU1HEjA3mYYEQKuzRd;z2|LDFxarTbyg$iO zRMnK*d4ezt01syI#Y~L`7R78aCI$MPw&bulhk{I(_EH2uKR$ft0VDKd$$f8$&bN$# zJ^EE9O}VioGpozuQtBhzCKt-q_M$0P*EScDfktOmeRbExJF%7fLPVm-RXM^{NEC?$ z{en%j`aC2oTu{T?TD${_;Bd5$v++xb;ZJi&(tC8b;8*mayIp)>Q~%Igl+nuy-pQx8 z{`czx$E0I$3lM8>B)FMaenuIsy#ydxl-|mUC?pyaY-vBW(wC)%DTvd}Y8iU_qrZ~! z*EXp zU*et8yMqeG4pOg&WZh#6oNhWByrcqla6jk&)a-nU@*F?taQd=a9Jr$(yqm`F5Oh6< z@J&+xB^86v+gukR*u6AdR5HRdcDPz$2)e#hRd@8YxuTdW>?VLXrPE-7vbiVy7+P~>N?vBVc#b46+YRB>ewm3BtV#A2`~yE znAUSRzbD5Y5D!XsJ=$q(+;t16a@3suRL+UN#1q6Cq&8+ZeV}%+8>8}-pH@(wWBs*o z;Zqkm1z_7WAz@68QE=<~vd!}B!@#2`?q`Zt zHzs>OFFX{Kw*NB~!T2ZHo8X8lr&e^V!H|NuLKTYiw*q1;c*x=!sHYG_5OCUmu}6yx2S}mkmLf1IcE%A|_|wTkgtwFHX}% z$M&H%cS86zD?R?;GzV5L%HBs5M0F zgMS5n{xK0y34W>Zj~@8$l4VjZ=0CjtA8=!|@(ND?pX9K7SSN(TMYavMMz_RNlO?#`;^_L@9jd32l1O<~@LZz`NA$1q#`b>LegAMiPBRn|{@c;;g zV7_mnre9UmrJlxnP${d$@kzn77rVNj5sq#-Cv`TY2h<~$$&F)@LhnU%%R z;T8oMpaaDo6n?;)tt{-IEu<@3k63?vqWJG#2r0WiF5)*{D{CmmvAjn@3e{GwDb+I| zIQZl!`W&Cd2^-!*2AFMBzH)G8Yn~)Di*BR$iSMnUel-j%%52W8$?(HUaKl@sD+eLigete~`YrO9DtDcb$0fna%{x+E!N<94 zVgFg(0dm@?%Sa)J|63eFAndI8{MawenijM6S|OWDuD%hrwh&-%(V}+3!2V|#7Y;{- zY6f6VoB$vXbb?8UAOtg3SG#^s^Rceux$G00Y3l+ZjnKWa2J2C62|WHIp3tyRj?6on z4?IkhIb2kT*DAzGN;$ANbOi_V)_o5AH~ikjtiXr=Ue6x~clRG46hW9F_%x#02P#O5 z!KSzTjv^*1P}U-AR(}@4#EK;#C(t%=_)&j`4#st2_0*cf9E5w2NNlLOIv+A)vUvW_ zEBVw45~u`!0d;d!{@&&~*T?prZQFyDX#W!VLv{y-NH5Q=d6dgtCH`?byS4{5aC9&# zQ*(YsGZy9uu+asyu)>3tIFML^CouNlJN0zpY)%)VF6&{H%6BHrR}6%w>~*F>SpX~m zdsWg{b`gPg2bZJ4IT^1_2+F*#FEJ?wr|Yv4MNdi3Or)Ia05a|U z<>7ETR%0wdx5UyT+Z>J4@7|K)ww2ATDi#SyF;_$bxe&^;EnUUuHgUuK0Y@WL4 zCX%AOojj8^P8D4E%P-wk9Tn%6=Z?mK;7%`a=;E`~u*`d1lzK7uw8tGVC+ z5GuAq8%0G_DjK)F%;C8;FG3c%Z8z=!@}!84$s{h#qWNJLC`KUPLm?@wp8$r;TDQ~;Y$B8uSZgRbf`YWHc% zPo;19%?kP}wT5^m^#E#~^o8?cRM2bl;HIqo9IqOMrGT{G7%k$$r?c)YFaPXB$M8v^ zE>|jE7qdKb*Qda({N!{4gSc?meC;%TnL7Wn=CNXWfjn-fBDZdspS9Q09 zF1!KteBz2DIWorC9E60!W|B1IXskUugggOguJ9Wz>R6PyoVm{TJ=Lwo;58T%M7PkW zxfMWEKB^QFQP%t0S8oPTPlaX5cQ+|MmhkhELY{WZhlVF)3tp z0D`$XLCSrxXdXb~l1Zu_i%%SiS~Y&kbiWkytZmx5k+HmK|4rM+{2<&67Pdd*|wOLpPq{gJ0Pe3@$~yX!e^t1dt3(@%k26UHoCmlSTb z(LQf2NnQywlpXr_d8SB9%i-?5u-1VlwHviV^ynV#m4zT8zVZDK;slDNPKF!PP7MCM zv0G|7v@)`o4P>Zp%^;Li9kggV3A{YMoSQLbFRn;_Ki>^`p-3S{1ZS}dA#aAV4UxsW zT4`&JX{YxcHaT2$tq{(#<>P8_HJH~ji?*UHOWcGQ_EIb_H;`yLLb&yhRg_Vj8^V|r z?*VpJK}TEc6KK)-&ipK6(0`83&J?(#MG)jtx441cz zT*#R{#WQ?$6ZVxJ$A5_Q3-u{7V-*npvPMP4_jgpf)k1vvF$vU0cA;=ARP1=xVoYS` zmw8WAdepK>@zu4)j=!|$$ymYR-s*?I8ujAFYFX7)g!w7!J0q#oTngh$`%cGVp^P0*SIxT#rSZI#WWfh0c&5FTsT*Z)_^0& zIjCt$(J(aZ4m;d=p8S;w42eW062JkhqJg8|TiOnEj;Ow=ac)b`vmf|XN^dC(Yy9;q zR2?rOHyH;|Qn7uKydtgA{^X5RSU;p!alqXO>%Wr1e?Kcn>iDIfu#$LJrKXwC>--Y6 zQ|W#$^>>;=UebcjF|e5><;k+I_lKJI^F;xi4c{a)7#(d0(V#q|KZ?O?sayvKg90c- z00aTH-RRgMl?k0wJ zF_8AzVe~(ODcOr0dlncB%`O;lQWm>?08p^wBT4{AD2xP-!> z)m=H+2lzc-$)d3PsI~I<5k*1n9rfW^mqEqIw^(SdVdX^3fZ9Mvj~c6iV!gBWOQP6s z96Ut^192*Jy`A?{-wtnn==*6Qt+pEPOgAk@n>KwNg^yZexKB>eH|TH=lf1KRLukd( zQ%HT+#7%ar(YIu$>Lm1hM^BQh#6>jGiU3>E_z9m4frRcVK#_0^$jd@^LR6jEQC2(6 z%xD90@Z2d^R7JNhr_bu&*Y$N6D;{~In3%%Tg!nCVq)dm_E0s5!7!kt%{?wi4onK|t z^-np$SvDZ7E#&zUg0+1CfvkXlDma$7R%$#fX_`12_j>btHvmFN=uNjo1y?OudAH^* z8uA0b3^R;hg}@s~j*8IJ%{`hN{h0CEM}=9_#JjwJrYq9OHnfvX>HT}P!rrG4sLwr3?tlAy!;-vo3uI=>-(<q{OazYm@MK~Fxv5e!OtTny5-v2D71fIBk8pzb#T zSb7t}^TL2Mm?~S>Vo5Z+dV6%$cY%2KE>x0h92d^lx?gstmlQfuinJtVlqNfF%O1@oh1!Q0DRD z!R-kv9s`|vB~r9Y{+dK-gt($XDrqpRg%9SlJ*)T-nbktt90qT$fhsCCgM;|#-g zAbmOVWO)4SH2K$YvHyfrnbgK|?W5lu-|lG~6lw|$PQuG5kpP)%BXqfDw=+>t;Wz(CdHCy z^~xU#!QhzDz(x0P-&|5&0u^ntu z_yCR&F$}R5z(!}s=3@culo}^SJ1Z6e5(>M6<(q51a|uW6XeKZe6?HPlP_|t)2R<J&=_nmW5Ha%k%A(!UK9O+BRyLs18FQsCAIi{&iUL2q@tTHS< zKnJh`NRSW?lINiyMhBD0zlQNAmeBH#N<=%55U@iPkw_?e4nRq`w%^BdpJX?gS8b(i z8afDhiEC^xTA!Ae&^Sr!<0jW-2IzMY_W(>N2Ir=JI>R#bbC(})`~beR4L=k@pAU| z_Es}6+P3x37^uzudUSKDSs{i~qEZiv<&L{`sR zP3B2TuHRVQHEJK;hzfsAyz+z89ST5kcUsGdNm3JWxbjm%h_rUuTV}wYijoTWl!d^` z5j!Gvpn#;yJab%xdnAD6rU0Ow8BAw+evWIO0-DXUD=7`k$u67SM*6x~cH`c_^=uQC zozEX7@kAhX#3_@aoXn*oU%3bcz0RT-x6S(YpH$V%7<+idZ;SG-?yJxGLDs6`o5-ib zS@#SOh(~jMF9{4d@Y04=p0(9vzQ^7%S|zP$L-HB7`2V(=w~AL*Z44w{2= zsIgY&@z82Fz289TJc|&ZNc)}y?SaLrfY=9%Cd8saS%9=So@wNNAiecqnkrOmq`&V} z^R;)rlxo3X;vFe}%F?#S9q!};V>SuC&SfoXwozgVa=mx!40M}axz9bO<-to2>aFPk)Vk11a$P83ILn4WGb?J>Vb#A95)#sM zLXqIvfYAVkokQX@(K(M_`yk3VKy1jZ>U?5JZ+a|AVUzr61K&Qk&(BNP|4w_Z3#C(- zWs0=~Y1*sCd0?1Hm-8jFR~m#@lA;;O5h(Fib8S(%bw=V{kJ!|d`oD`we7&bZcvzG9 zYNnr9ISv3Tdf!|%<6%1k5dTD2JdP$arag`92Xep{HaWB2&o)N9jd{L70+7ywq2)j! zlopmi$Hwl)!BmLBI-69~(~%NOhUhi7wn70G$X7S-gEjxEkx9F68q5{Xe;#%;&wMUW z0t7FDdAac|ZGB=*HftWT;9*VYAAP_@nQ8-1opix@tGqldL=QkJ!jTxPl{FklprZs| zm(TQ?|44wn`XWw>w$)$hFqiP~muOOvrMK)_Zu?Om)f&Xd*NK-uJe!d-ryY!zwc=3; z_Rb!RVtG4K=?h;>iqTvYRJh`hpg&HBH-7k%2i~9t{c`;Uc$GMD!q8?qO4i2ycz&J} zjr^I*KWUy{T;4G=npefLt5-NR?KM9)MSyfuJv5l92ij@izi3M$NklA6x9tBdJwb<} zLkUqT)%8mar>agR7Zx z=L{|*s8)kOu#v=o31iTK+3$iAFjo~{>$b)X?61l@nZ%Nfq$G&JYa2^9##~!vQN{jd=H8?hd_uR zV*j^nQDs8{^7l#S>I$sSe1n{}lBw(Jxk=3-mkrt@EDetd-x5;soYZVzUG1<#`uvZekDwux-~p#kpLzOW7m zckxg)*A*;=^#~ZJ_Vf|zANOD<+q@FbiL74g1TEZUJ+h~ z2lX2SkrrO8l5C%*;mIq>J{SAlTJt`?aBlu|5P{LFs*B+*INJmF8{cw0z+@4j0a5@0 z<~9h!eApC-0cboPymWq^b>1LQAhPkgy>EXk)dVxJn~k^Tc+e^8!(PbEDbb+c=eJ+t zk+9KLQJC^W=IcDajtb`iB$`nYi|d3@;@Z9+%<(+^2vh)EsZlLSFG$>dn0>~(&Cgi7`o*>-sS>g_$5K0ziqU9L6Yk?&Ri0|N z_*a)cn8pzAA+u`NNZW^~iM5dAT}Ns4Q1c0uiWCG$fX}4V1E1Dr{dzedfdE7CnI=P=`RY4RE$4#-OD3?>4?sZ}1fdFk+6@CW z40_c`U2#|vmH@oN&o=J>>atf|Ka^>}(qBkyWY@Bhimemb`dS^`~#`SIR& zhi9pMq*!FQKqjuh#4Y+(;7e8igggGNF0_Qf%gSU zJG6lCW{D`#yuqptR$mm(Se*1WOvl>0)MZLsw8mIQY1KvlG7Q1IEXJ3@tOfjgfTcE7 z!IINt0qs4Pp(r>UbfXgh>E;M50yK5Of!}cdms1iFvBl{!6nAfQtXDT(jEOM`ShGA9 zlbBf9vt<;++PdQ*8WRmsf0Mn%Z76z|;nacigG^y!z-|{S9RCa&mt}i5Ktw4oRp+-5 z0r8*EE?lFh*LyemYdnkU8~x_{OTUu&+J47yd#MatjFlTajsnWwj4i zMdpLGYy^Hv1lK%1SPYIc0m1+ryo#V4Xf#m2_emk2%fCg*Qkt*Yqh$LVdT@sW*&mNf zW_8p*-zj!X>~-6NEP3Im-u)AJ&>}PcDOW4x6p(sOGW-=x+>;ZCG|&^*ImEg=C-Z+8 zyT?DiPlu0L{C0i0EcHlu`Q3`H)BcR z%&~OD^jVE(Gl#}Kc>|pvsaL;$Oot_wjAAq%QlcIX*7^RIrS`#AwZxO*`F)gDoY`wN z%@_R(A^bIGtr_|KPjO-7bS(xAR)_F)ZyJyEc|;>-qezBA);a|UQg(-lBnGD9(PoR*c)&xm`-9@7t&!L$JS#_!r!GW_ z09FqMzMkXtZ3B)7I^dqEe`g-W3%ZYO4bI>L>))sOvNU+}smEo)ZPUTGuiPa>pJU2l z%VWacy+$BnwqA|`wug~vL{jYGVHO6S0RXjkA3ji>2EsSMo*2*rFx+SWj)qpF*{}qi zt}j9o)&~yPtXFNdqa8D_^Q;xW$|KX{4iiHoedmP=GEj&AB5h(_Y~Dn&K45ATO1fRC zUQ8#@=HqCN8(w$Gg?dZS3cz11s=uP)!$(dhRrlN#!{(!(Gc>!ZvrlM--n3|dTs~TbSt(JyE#Yi?d5dpv9+SFUR(mVREH3fk1A&VphQGY96i zac>gY*b!w#r>jv_dh}>vt0(6EJf*F{Z2(XQspjs8%EkFwD!6~5- zfQsT1ndnCdJ0Q=2gv0G|hV6k{(RvQi>L02;Srs2=oPJc_892t@@LLfbik~@NfOx*y z9$yk}B{8Jd)Cs>zyYiVs#WtSR7&$c=+-d?I$=1DnJKmx=KsxRmR41)HDPxZhxT?1 zHlR)WSnG2tI;$aT?{e?YgLP@u5bqG!W0w~gDg2HJPCf6*`T2WGi5 zAON>D1ffG*A;%6#dM5_g6CsfR9Fl?^7oL7Y4kXhn03Z1uN__h##Qfa1hm|_7yLH7G zo9=AZl|`K%^C&VP{+`ysam(e(1ZwhR%`wx{!LgGluJ4h{y(MYUPy)k8YUgu5!wx7@WKke^8&tjrk^BAht1INQublYVkj!;``Zrv)Yk_&+U);Nnl#mF576coh zxVWxMLNo;A;6mAf-~&{>3535<9Mqqm9bc6M>B26|>uOZwhDA4kyc$e?`uwy|htxx{ z*B-yPlYElR?k--f*d6BVFZHeEp2dCQr!L4%;SltfTY6#(t)I+%(kH*@@&nDjgqd`0 zDDF}Asu`FSRI@F={&VoNyCD7f(BO@$erxc!LrFt|-h;M2+j9NpV9ONU%@eP>2E7q0 zne0!uv3{&^l$OE6WcQGpRv{A_? zMZ;sc9Ev0H%Z|35ILdfiT?^g#$X-vE-}7N$cYY=*@ow$`ZiRC{zc1S+yHoAFJg$O9yRiEs@B&ndEI?a28X(A;vLh&R?Q}D|Js)Ke1)w<4HJ~|Hh6}c z)Ad%6xC|nNDc}jZvj?umm;ao7T&nSOUyOh0H4z~7hHu*f(-+SjBNvR{<9CCyX&o#A zWsNd{m}^OQ^=3cM(uTKgTph2oo*LB=EuOgA$XeJn+L_9(S!ZCY242Aa{}x!G;Lr?E zhF*q7;g%D_ACr_4HoSQI+(STnjWN?cvVz*3%h2PZ9!BO5yN~M9LmlxOfbu-5@ zy@Ib?j1=|DG*+B4eL^c^c~jF_l>gaySbca}V&mbmC$KyJXxs8+i*SB;toZ)>K|>OA zZdmg``BqK3m=hU(3xJKNu3i?7W^zbIu_GIf-D-#;cFiaVRYO8+LWKj8ehJQ@F zlTldC40Sk$^_{E^O*4AQ=Zb~eXss^k#pv%_?1WohODC0$O7}*}bR@60JKz=FqBAtg z6+dlwCM;+iICFcuKE3kHPLn9=dmdxnYcE+dW52@-=jWa$L_syKMO@GY$akNj=xXW- zuW?fJIQz2De&&}u)*Q)o{uzy96fMDpo-6NKJEX;UDO!`V83xOp84*C%FZ?_|R!Z#3 zZ2j6wYqpC|EsX#oytK`<-MY?)9ZHEP5R*NRf;Arm05+h>g&t7PF+}0*0X3oEYZ@Mw z_+s`J^}I_$<2ZvH_3_egfc4niMUmt5lCBS!-xqzFQL+m7d-nM()8b{-%Ja6)?C%uU&{FRf%TY_{);(h5 zfw#NIWpxoI5tfI1PIEU#{6?%1zR>k3FG5lzzT@n~3xJSB&wubBen>Br|8nJ000}sA zmtqMZyK*er03Sd%1V|AuUuuvYZQ%L6IEf?p*H9sSQgE6gN7WN$sQH?B;hC%cetnwM5?` z;X3h1Vry1)8afJ5q`=%MkIJ460XM~T77TQ!L;&IBe2vJ)t83I*Y*XgpCGV%EG^Sau zOV`b`*AY0h)f;-inFzp@;PZk7XX)<3r+0z^c}qgYra-&ykB~cOS^_3k{|>w^XN_*1 z3U=<+ANU%ny%cg@+xYe`g+0<5O5BPoU^s!rdHy*@k%4_N16d!L(E z)GJJ#S(G3g!~B^;rQ>|D{jsRte(=K3xcAF5PO--H!|B)0-wjlC#GwxtW^XN5!%qA6 z?dN>L*(ft|h=4}bm-m1&v5-WD!T>zcGgm=lnT&YyVAxymI7osYvvS7YCq zDe!wT@NipGl#bKrlzv8`&Bg@zM*5on?$@F;#Ck(ES}nJFgsiH4e(cuWUg>&_X$P6> zO3FG-mTOtA4gYv-LHY|C!S!#)!!uBPHTA?{DSYkOb-B#w{AB6N5u;)IzbSVfw=m-^ zThwoImxx^Wz!fny{!zBr7XH5^jMPM;!n5Llg)wKg2waF0?KWabR-@S+R2kb z^a#z16v8Lrk-@eNbm+@S)Ykfd#e~)j9xo--nGLE9iP-SrdTTw~^^=FR_v+4(45qA- zlblizzZ2|+((Z5Yg3&#gLPXmOA!jnKo~fzcpEwTC$kx>o*KL<_Re!}=7kXdn)x zpQiG%S?|siCtX>WWR8B$g;e#}>OPD3WdJCy{ta&O2buGp$F}rzC;QWX2Ielv7`>*{ zoxE4O=dB-?-R2i<{4k37`N&q}t%kcoh0Mw7{8@j&b+m`{6nzZ-knO12fl)19;Ppn@ z*tDBhzG-rin5I%vm0OCHX9N~6_;ea?hb1%SzpgaZ=^<^I#FaotTH6Up-uI@INbLwh zS|nVU3Cx+Xxf5VQxu+WlG#6c>GWl0tIeCyno!(p33EXfAvJ03-1EX#&jLy~q6kR4P zd3enL-VZ!c?KkF;D=~dXt_)c)7|;u=)w!#|zdme7HB=ffcf*`plUVmJp9`l~rPyh} z8LBogUuOsjQJytp(n^RNbUdT7@}C+|7SfVps(;aMxlMDyXS7GfPYIFZuR^)$zJHn% zkty=-+t)~r@#{dy2=Zf-jlm+1V3Fh$ zR*kceUl z!%486N(aVL0XS7QT!e*>nIxYXk_Es=0^t4@$b-|`OEG`)6ww_uq1APYkb+ajn-8_1 zf$_Y&0J?1n1sCc!+Lu;V2Ois$o%jJROV1a+vV`SPRs{{7t`~|Vjk~rTIEUyrxxb2h z{C5D%N}g1@-k4qD@PG)Pj6IONMLvBU(A}#=7~W#aYko?OBa9o7V-1-dY@RN66{@#> z6Hr;H=bH#(e_Bw`u>(%`j!Z*=r}jE_Me1}9kjPPE3VQYz3;NRUjObS89b7RSbx}Xp zX`3H7{*R-xjBE0J+xWd;8$CiA94%6#8%ByEpzxEB8eIYdltxDgLr@SDkQNaWDJiMZ z9ZGjecL*Ya&;5Tsyy4|w_kCXHb)LuZJr=mo5~)>dy*ooE;35D+?<5*`z{gj}=BT`P zYC#pc_ecV`wxVc3r>$`9SYW%l?B#=0s)`=bxZ9eWmGdi4(N7@-FyZX6(Vp|#h9mbj zC8~0ZouFTXPYrHUM}3XCla$|Y{a!z6jbejS>f!UuYr9gg9fJq|I*?B}rvW?EcTH%Z zf(y@t+ihF?n}RxkMA1Ish|(eIi;a|#i>~#Q%kP%-fwxf%-yk=DyVgoFgONmbh9uuN z0}`-{)TL3Sh>5L#gAAYgty+N$L4E>z1OUxViRG-Wkim)(4{&hHxIStU@e^B=Ls*nf zN-V007e!ov2&q}Ft(0xP4P9|L_~H0NwsNlr1NC>Ko2Owa8GHQkkzk|&-C_LPwq1mHWTkVg#IiJ0(PQ4%f|IZA7fhMpGovCmb^aO@d%V~3~;jXigV*HY2*P1MkrxX=a`5k{g0zQ0|EDRe00V16g#MB=0xBiX zPj}ZJiZW7gu#kM1W&bTR_GfDSBJvP>sQ9w;Yiuw(v|gT6qF=8MulO;pgyj{al7-ByCIhM%wHz3u)fU9D*grX zRaynJ9Vl4kUMy~`i(@h^2YbyAx4@<9(~t6Mdpd9w_yV``>cFd)p2-l9Xa+v1=ldwI>k(j5W{nDGq>A=K-Z~9eB(* z-`&xiH(6HClwBzRf0w>Niiwf7#kP5e0y+3up?}c&hPCj^m&?n&0wXK{dOlt(ytbd+ zEoKbcYZ^`$Eq!l-P-(KvCmB-FCnVZot(fE8DEk7K^UDyRoEwUxcF|p6UBbVKdB+-M z6v(40H@!typ4^vd*;hh0A?TbB19Jh1e^z7>qR$Nw>syhorFR{2N^m+jCIAhF0l;+< z7Wl{`+h6{z+D1?irG6Hl6n*j^Y^p8z2}V>I5`Q^M=OL*J0GIF1k0nBJ5DvfwviM5( ziCXx?P?}n}QljL^di*=dP>_-s4-as6@+f?%&he$pPw3r5V&JDu3wu51mB-(+ARI|e zkyY|(*MeHo6%|g?5=MRw%IU#lTyBKeN2Rz53a$8^?$VpV?i9QdkgT?VFTAR`aixxQ z%ov?bDauvav(VWln?4dPS=MRP#gOCtjw>AM5T9A+OzY3+&)e|#%U9Ry=BD=#-wTFS ziSYvDRR?qsm8zxp-Bk6X{8Y-lA6FaV>508ELaQe?x0Ra6`6M*^iD^wKadJ=f3m!jAdvj7gEhGq11*Eo96ICTArs}jL+b10{>nm`cemNq(=t_%Z(f9NABB&*^cyNR z@}EswJ$M&@U2FtE#DWsJ_Jw0LVV%Uh@K`lB2%?RuZ!N(n4+4;{0a%EF7ls(YfPe88 zpus9qFelxp-5YpjI=fD#V1X>vAkw@LXVYUTF*AeT8 zD~Njl3EsPY3Df=N$55Er5u9aG8?iuA&1ny+$!N=eAQf!XTCa1G{)00*OL#QWAX>Mgh4uh|tR9&q)I=1o(&@67teoZ%YiIoU(x8;=qe1e&Vl~QnJ!s7Inbi zyoMdtieYE$0m(t(OxA$F>bmrHgBRi{S{0+stlSE44qC)c-X#L@I}USO$zD6CsZTrh zq|U-NNQspr7MZG*T*%E3pkS;MGhWUQhdQyDLP^Jw%3|@>#+5qwBsxD| zDg8YLh9C~u&GMRIv;z(AeDPcpRrbKFu*jP+L^GWN2;v8ye#3HiRmxV9;F7RbPVWqm zkznWsedrQv{NL*3Uy2)9BTC;oUTbb0SOkJ-MdapF7H#F+Raj(+gX4j!70TWNl4Vy?Gn zxU)IZ2Mix}=l*%Wq>JKZQ;rW%q?Ml?36+Uozl%Q<*rG$;JnlQRG@8;3;_{yYj#D4s z1)BpjNnaPwhA{qt#PDIrCqU0(weS-!`DWEj%E(5lhV1(5tyf-op7JHiNVuj5^;_7| zOiN4j<@mCNN_=_GO6R{MgdF_LuFZi+nDUH6VY>TIO}Ixa$8N8xiZQ$vGIbh&Kq+(T zH->S3?5pdKT`!J9A|CqfpKh1t(;|_;ns|`UrX@_E;qVC;OtN?^G_Y&6kz)EU28+%iNlLX+YH+41mL%X!| z%01K-u6PDFq)r_#R#K#lEwa6p`}(Fx>A-Eyx}ba`q_C!8*Cz*Zcx5Dvj!pKN7Bcv` z=QSnaw=qoQ3Vv0oj-mAOT&2f>!sR*u=^eY>U7`)3a4ZAzGxXdNlSrtW^n|y%vd#*L zOc37m^rtL!@_u3iE%p6Td=0!$JLXaxta5Pwq_DsdmT z$c%0fIP6ubKXU))n;fN=z!cro_1ZRTT$m_QQb(-mI|Rh!q3ewEF?Xj?Xjx}{5sV@& zAKVF@&P9VUxi+{ZS!e*OCdTgAQ7$~0PlYtmo6oI%QcG!%xCK5Gu;N$}m z0MI^#I2_J5C9~jr-?_3u-r!mRDBJ(e6NbTkKKa(WO>Uon=BuwD#&)VS42j%qSc~t{ zW{&1jUY8{Ug0ah3Dr(Zp-29eH&(JI%1U!#l1;xECbgBMNkp##kKy+ANQIsEg==Qot z7gP5bbX5441RqZQ=zlv8_lHrgpx)VIajjAvuSNGAPCZV)aEH7YPU9Y5sL&CE0@7Jl zwNFydv&!G?sy^j-W1$28thQiqnE`;XBOsuMPZS{MWyE(Z=Sz{^W0JU0WBEbbEKE<8!aDOR2aJ8(+31=j5~x9dQ+ec7Ta509iQ zLD|TIvr(~YY(ii^zliV!Vasgohmh3ujzC4?yY%3{ZK>T@Ua-bj`TTh83p5Evqp^K% zsIOs$ff%VP`DTMu9Hm`+h7rYr^7PmUii3FqQwuQy3S^BCMHt4J>V895cy(|&^yyFX z;&5_pZQ7OT0BntyOf>G2mH_!A2%wol4-cn9;b(s8*XfnMS(;A@$f6F2;Q=5{vE|%s zqx7BJC0Pi!u&T2a-50+QRy;PnbWf1;oc}F1#eeuOb}Q{XLw1v&QND9TcBcf8LZIEN z@m?;Jk)sE4o>c7lu-|DgS>t{RSnRBE!W;g5}ajGTYwz1cM^*T|QNT zSh*=;LdOUMyyk0BG{4t%1qSKSxmgVOLm-$k?EouX>1Ziyxg zpcUT}GlJ;K*v&}}T~U}6ZnTm-(f1CF3)-(#>FN&HC!;1!| zHd?x^T3wilI=S88BE-BDh^!iac-5tqgu)OZH1GzgH>6*0wCzi12k1BxsN7>!NH8`+ z(7hUbSrZ@K*Oj^nApL4Zzi|>}=xy7+b)fl+klTM8BlA2S$J+tN9p4gG?si+tE5$}# z0_Gv2uNMvg9mf(wITmC0{x88ZQr7}>T#+3$nElCx2|>Pr4{^5-WJ&JPyORsci!%wC zAA+epy@yq4cBC$c>&ka#mRpOpvHO-W88}cMlcg(iE%0bCINpxgB46meGwMyD2o(%~ z!UVdLZ0m~j@FMrsp5;Wp_TAs=T^3)MK200ZEI2|}q`o32 zLhPR#wfTH}_Asa2r1r3{X)B5U)!`@|zO(MXbXd~*WViJKdWH?-&vdiX&u)LMvG%?bJ%ENuzGJDZj5X9+Ni=a_FMOWmrr(N?tYh)<9h2Z)V%X(748< zI`L9((RV44Z0w>O3Z0tU0LMH-5$yI!*|QTB3D@e*wl68^&Msq#W@P}IFW{!PX|Hb~ zI4Ho*{jEY+aq$zPI>7PscXZ)E8U;cc)cnQC?3x>?WWc3%*e1HHTq{9B58 z*^dxTYE>)vx2?wjfCiPD5mgWX2OF&uV=#OT>at<#cQ}KvK#ZEAogPzY`)SCM7l}4{} zv?(pa$ec^M*zD^{n_|V1R@Bl>+0nWjzP9$=bjROUy|(7zeI*P$um>Ffb(MpSa2@JH zz09<5MO|1ylUoRy-D|7CIG|nrih-8FMf!=laEh6Pc=P-g68&0 z9dz{V44j_pfbBlnYN7nkvjU!i?F#49StLERdfyJW=feWe@V>_{&4(9lvr~T6v|7Ye6QWC5OcoM|y0sI6ZPmeBi2OHJ%#adI`XKKe$Gw zmX<&@22bJt z@*4g9BJHX>Iyw@Qsbef1Kd@vo;+E{4@_eTxF-B&eTg3MeoDudz+DPU@eR+vpLRaHl zhpXL=Us%6-MPEI_O2B@L%_xY&A68T|!<Az4Q~$QBsmldTY+5 z<3PKl)MA)sl^IPH%B+oXGv#{?5f@S{U;MVk4v+v|G2jPMAn0+icoNCkGNT>9fBrcn z>!o1Q5L-MG&G*KOsH!)q2XMWaPtAB+6eD(z==>QHA#I^DSVE^w&wx~w$M6|A+KP)I zsLi^rQV4yzEY8-8+zLy~reHmOZJ8n>y70MHsPFmGNke$xkxfod*wfL>xj_$3-TVHF z?w~fYmCjbB-?!J^J9q~xZg+c-4+E$33(1TSbeLF<_oefJ4 z%IDd#-JsEL2)tO!`ZfRUp@F|iEd&SPpm424hD4%8s)r?qBMLx-WsKU&nq-{MdHQKk zAlCIGZ^q`}rCiWXmKI$~);&cQmld%6Ukmq@d_iS{h0h!Y&HEKDB7*iff39(1(!|#6DLA3rC%*nbEkFS0FkUPi6Q%W zSxVuP|4{fNuQ%12-E5*2m_E+9q&NTa_V_L70z9+xl}US=JkVg;nwLm{;vi;0HU`Hj z?*(ga{QcZu=eH6l6zUx?Q86v|&s+8yqZUW#>_C0m982JYchTj#jK(@@__Ti3 z65xCFw1?aSQ|H6GdTjR5P+EAai8`2S2AJ(JN5PYhd=)-388H>uEJ4~2T47~Zu2#rVU2f~nMb*LY9}H*9Ju63Fc0+z}{E1G! zvg*;_dtHUK>XHUZr+P(j3V8A}Ame$!=A=_dhI@t>Lt3~l!@F!Y{DUrbjQmT}wF!0% zA{1a{-w|2@#L%FP zW{lB{yW+H6X2aGGOQ^|CNE0MIpFDkCipbbJqnSX2AOL3YIt3?lAxa>0n)(ZAFXz?= zp6?v0Oq!-ORrS^Xsy&K%#Fa&_RF6z}_x#h}fMb47!@z)h&CMP+zFWsC^;8C`@&Xvf zD$QV*&k?FJ|GjX7#lb^YD0pd~=*bjb{|_y|Ec+C;)d7&HU!EoK5*SN}a6q31%LvkX zAU^yQ5*P;x9i6iE?Adi*o%zgd;BoC4H68*R{rMtKGrq2doGc$=`Xu0NgO)kPgsw8V z>&45CLa|Q8z%+k}xU9EfJwukEQy2`Cqz}-!DCUKKH$9peM$r zTt2Yo(O6A`=i7%jF1|1NxR#H_caP z6+Gu~wBe$BobJ7tV(v#D1KtR=ndD^LGS-FZ$4VhWThj_DL9hl2tcd>uUL^&BZwN5o zB0b_i+M?bAg<|GB)q}-7d2P=KwiprWq!LP&f^y~=LqSwbX7ny{+xzZKDu9hGNNvk5 z`}|Y+&;%r*+&uvXWOe_3f*7YxQWnn+zE*YEyPI@c2G5`PRaxWN*buW>{}*7HiHjV* z`bV_>(9cEt+u^{vodkoMghIBzgHwJ(5pO%Tcr-asM)|$?g94|FXX6eZx@v>kuqYZ< zTX^`_w6x8t$+etGEjIgv5!N>wCX}kW^HRVT1r#jDJiInwawO{NX1`d7_*iu`}wpIBPj-~au>ip~BO z9{a)2BZWho$Qr$y74qZR@JauvfBU`MU@%O}yvSVt(NspC&*m4U)BKWd@xD7pY0=*~ zL|WtrJQVC?m8z&{S=d8nu4Ma1j#e*!;*I*ghaH-@Z&W&v&CWtc=>h#}(25!8kz4gr zp*ri|RyjPV+|0Sl>y;oCt%qVTlmQQSB8mh@fz}lunrsTqQLnYAYxVQ@2hb5dm6Gke z<6~9#ef^6O20SI-{a?wV6?+T|(;v&V+!r%?vZ7Ze@O-K)YgsncqsI?r4<|y(QKgn> z%(R)t3I%H82K^&^;@{KM{E4@9zVWt!fis_1jqfLXlyiL#(d1dpolE8#ekg7;;Tyja zV%Iy!C0euAAQKcm;XCQtZ{}%_NnIfHI0ni4=#IGgcTSrD?@(^1$|!PQW-fQ;j5>## z`B0Qkk?Sfa^tMczlFkFu)J@Ri4`j?Y3T{yp6v z^>mcFzCr^Vb2c!VmjlVxw)g+L+on~EuN%E>pv#Z2Yreu_WSH>FZ?5-&X$a@`X8f_- zTLT5F8+Y&OXoTF{#Q_-5=#vBztiY}q{GrB$rKXsfwe}fb{PEN9je`>PaUvEzvkq!( zRb%p;H-h=?4@@2L*>x*xjKq-7L3HUP^ zcsPkfU~~RqJ`~q!+xg9AAEs_DZAeI31-yD}ccc+pD}Dbu&6Qr!S)yj55)L`Y`}nT0 z0%x{?A7$Hz;{CJD(ntNTqKdtP`uB$C8G9tw#SCbsn(1QK?%fYKR8k}lO_bitjUVgZ z4!$-!%`+C{NPy(Io0AIL033Mdnx)pKVML=rqY|_PwWmXUN1RZ7+69r&fr1y}&7en` z6zM&@zI0Sq=+Jlv;sX4~aZnD)c0#2Xf__zj?U0F6Ysbd-t?ZmaFOitiEhMey#NE za4e@PMS-Jg@2VwGszTixKU)a4BZ6Pwi&qBOrf%hxe@-`E%*d>K5ZK#Q@ke2tH4{_9 zWUA zy7l^_=Yic#on8#yzXN?T5`RaYQoYGx8Cfv@XiB6*5V43sfjmry(zTNBhj-I@XNqT) z=#`(z{;EfD_*-jXE31n0)4qfAcpBrbcde$2yf+pnns~pl-X8W#_@R`!v5`;R$pe8y z0hB%(JTTE10E31?!F)^b%*8l#-H8o$P~y^>55w^sTtWlwRy}`04<8dlukiqT6a*nQ zDt^VAC2%iU7paxDgPIhiUXwV*jeCOR5h%Z%W=G#88$uZQp@ws%sokIFb22{e%~I{c zftzCn7YjNp7wnSvJ2hmJx>K|u+_v})RVqAy2;F%k6jbJ>qw{0De=qdHeK*4(n`a5p zcf*vtXFdBZ6gY%_|Q6S+SX!w0x<3FbE%T3peM4!_OBzP&>4XwTBr14T;(jZdn`QEXSu?o ztA1=Idm(?0&((J{RdOqRbP$XqUu)ZVox{Z4*j%R?1cZ#}%su~;69BLA4sWk*JlmNt z?|~hKdrvj}NP8Uo%VxXJ`}S;6P2e;q6{i$h{)*S4ZcOdYrK~w@KX>T6yN9M<+%p22 z(XbKXzVe#zXy=R^khD!)cP2Ae?ZTOq^=%o7Z zX)Xf4IsJ%d`>gepjvoP?WQb?`)boH+EKW?|UUX(m^c#%oo3X>jH>~Yv3m0n_Q#+3& zb_aqUP42#9N(ENvm&lQ{c50G44)TEI0&g2-RQX!@gHg4XN49EOr}&fp z9gkXz5jh)a_;~Zsf>*iPIn9Q`TUSRV?-*%!yqsWeJh`r9z)mMPGz~s8JpnskC%SHO zhbpQsm#A<+4x$B91#$Bt5MxRpxH-*?0EWVWKv7LCvxurG&opG$mm3% zSM@ERac!wUeg_+u6|odo*qFB>s2T7;=0T(B{fx)C>96bws&BK)i6okbh`41JN(Kle zkfZ<>5NS}TM5KVQY()@*9W)@Uhd4XTEP=qb@0G0ICx*~w=4CUy@f^Wv=qP^xi` zRkj-kVDu_vKu-2Q9n1tr$S@R*5(a3idz&kTwQlBmj>yc)cdMV@#5$)6YmayFSj! z_{gXG+drOD?!#5lM!U0zldPK~4RMYYyq8QaTQjDPGx_GSY14=SG%K%>7bmTx2fG!2 zhsKi}g*qs8UhxTu3s}ZxIW4?@eQ?6h(fS`Vrp%*%v)ron(@wIRrK?)l(NMM~OVgKW zu4|nH-f)195%NEiC+`6Y2!cnG&j6}C>fc9{)O94du^qTlX}9VVTx`S=#G6Zh3jMfq zEoQk5KYV*Btj1?``uJYTjhnOpI<}pXC?jGWG$R>ZnE&6S<)ToTSAG2bCjlydF7DeM zwD`Q6F{f)!qez3>#|rU6$!suE1cT!;KIfq*49bkTa@-?g0J5cPi0SMR|P~i0#}_@@Ag%=oFJ?}a_OD2d z@6IR zQ6)406yKj~0)G~nU|_(-OKSA<$C84Zzntm0SA|lM0Dnw56k@y~u@D|vwDkBM#yLJM`rG4`UdM4j6$i8fP#9q5_L#|< zX2Fv4;^AbJn3CkB{U2o3l@~gUv}GCZF;tAwpI6r-|4gko4}@ON!il3w+np2gj@bn} z`ez7tgZ-gZBpi+$`Wzr70sqUe0v)5^#Q=k20e{_FHvlSx0Uk)C!n9<9M$+H3#-}a0 zLArpo_mc^VRRee(G;L>4dVeCia5sjTikud(`D-C1aQFVBP=4xSq1B+hzLUdx;mchz zN{3fpj-UFu6kg$cZ8_CmpmCK(KZpfNJ|JjvVgU!ze9v7R9H}Y48=}s-TRU=CrT+SP zf?G3iODXBzs>jrVTUVW0`AO)2%p*@}c-LjBU&VJye*prG19HH;QWFB zU|1N~1?XZ~%UDSzcnJ89M-boRz>@TYNMdCSui3Nw0$rL~Oxc$^e&*K%Vc?(iD=TVmrH(GRd-UcSvn`_J(296%yW=pE)gHZm#z;mW8y+n zo;+Qc5@9^bBLK9_l;qIq`BxLX-XS*X`~4;e^t~)fVVxu)hI)rDx^s~+2$bpq-zz)R2u>K=={An)xBQQ7NO7@VjYPxr^P{iryi3z%;q?cro_`DuGU}~N z%w#;mCeMX;r&kR1A^UGKSQ_r)333j_aUtOXqw18h4#B=~~ zVisB$1U=+H#2_UAJ&GCv0T-T(CGbU!UGX~(1d?xn!gg)_j?yD5TVf_0>j02(pf$@E zDG>i18+ljAbWuKoxxRPKv8Hh~6yl~Gds zvDI;sUb4f*Jv1#hA-a^EGQe%!@Dfiage7`=oQu1jn&b09?e-lxhJA>|Wn3mDRR*VbFvq zh3gHC-5osh&eSb~zodR;5p(ORsnnX(6KMO>g1#5Bp82)a<0HzQvB* zGhbtBucJv%Q^$f00v{iMVE}i}0ECeY(!0Tccra<(0t4v48@71>PbC@>O9CrIRB@~6 z6bhvSBXsApQdV^T7z8QI9e6%GJJp|C{a2^1q_|=sdOZ(quTDOfOoF)f*Oi-z(uWkFahcU7rGrh#kEby`;)85SDxAK1s;!3fSf{Wo4n z>goG@TW@Aff0TAO+ndwl=l;xm8g6RK#(y2WULz%N;M2^j3BWL53ABmM20!m_ooG0N zp!Cxt3b8AYs8wzxjUE)93B}Qf{sicNIHl$vw_Uq^8Wx9nBSkvjozI?S=gzHHyCsP5s8HoI!!;xGg7_qy`J?!6q`M9o>LAm*4y86TY`hv;_CpNc( z%v$2^$=)Pf9l!G0K3`OFmRw_IZuLEs!SJqcR6A!wu-9xr`{V55Y z@y<)}ZE}EP(lP|YeG5Y*FAL(as4IzpLwS6!*W_k#{lAON#(yjt-o+2ZY}9N--3N;Q zo-drWD0??%=c?6yNgPP&>1WNc+ip9~vAgIUNReC}2+i^jD6I9|vOa8=Mt-R(Z6>Q; zA@CkD@sl% z0znU_c09!Kz#;cBsyG4X#ov1N7eOYcru}4-+&^9ys^&9eXS=4mPycmXbfMNs>8<69 z&~7Lj0JVDyvX!)9U|SAuEYJ#nRW7=Eeull_zp7vsXrcL5P}fK&pwd^73*b`!-BLK^ z**h(Zw6L^o$xiLl{dvqNu~H2T((PjM!^sf{wnP~-0Abw@7JRW%tFeb|0AVWqIRptX+56)Li>K}U;H+0 zzDbJnVG(qo>*RSqqTxKnM-IBnk8?^=+5P)jne%dnJ>ipq;g6K88;<2aZhcZ)>sjZ{ z8L3HNpuZ?#Crp2R?k~H#IJv##@oZK_{I5`+l4J~Wwuu1(35K?kA|lv+%K{D%Dl#+& zxN`i}wg?460MS@1F`~G=Cn)fhDq{o~fXNs6ge(AMw0~|JBk~?h);P3miAJg&&TgxP z>$!Kz?f4eEe9zo^kl>jnin;})(t*bH)ZLvgbwR=qD4)T>CG!vk(S&a`A&&8-23onh zcXG$h(nt}@Z;=#POvvCA=a#PVnye;D9r-(_8+Af;0CB-m4qS~?!^p2?n8D+O2D+t5 zBwKlCh+%NmWS|Zwob?;N|8guMa4cSg*&%LpT$SbWF%;SaXU9_V5k)U0$^CkD`}X!1 zJN47NN%5Mwoi3{(?Yk+f{_KtkY;3^)yu=qTrPRS2BpiUZLQAspwpaRh?tSkNl+j7> z*nBMTG; zjxTlZmehcQI5nYA${O0hL&nWpA!luifQ*m%pgG0a-RJBs3J&hachk;hPHqdSD2|MO(zaEa zbXU73jTOfMpW;*$(wL7<5zYou11Y5)JuMQx>a3a$zkU;!9X0qmNdV$^7#3UR4*0Lp zDbNB*1XjQlipG=$BmF@9Y$=i0nModl?UssAl!_S`-a zB^}Mqq)i0N{&_kkB>C|H}Y*r&IH~_ts|7bI z(nfpV6SYiKRa4e#rX|}x<~+$^vU(A<#gbkq-y((=HtzT7@hrQBNqAQyv0{QDzg415 z)SPYw(Hy>%09%l#^d8qdJA{uBpe6xCkZkg(HMEBob+u=G$&xR1zH|_+s-6;d^gxO3K*J2P##$wi+GhMGD7v+Qkp2)9Wk5eG(XABbFD6ZvX%VZ^=z`&zA0u zvfj6oR<+xLDN^P4t`E_8Bq#=}7;kL*{hqH;y**)p!LupQ_!xJ?o|AJt8Vjt}b;PmW z-^G7=tQz@r0eY%O4ho25@?-jvPS2=qrZ@|_coY!_2Zar|1hzRWloUY@-J}Oq^(1HK z2d@KWj((1~bs0o(nk!pN(Ug@;r0vQNB?cuvaCqb+Y4s&g;Whmsiff80&Wi?Mix`-& zo395op?-sNH-!>^c1t{wF1RI-@uF?*bC%lc7a>QWi0w+{bn~<(9h)OSAhzzTKxFY> z+O1VkA6WmhO)AS1S4%oI+Ade^!E?=fzG>Na$+3 zjNU6j+)8%m3?u?*`st$uFIa$(?H>qo9v=@#R4u2LZ**>TPl^lq?mIN)S^kfR+}5Z?VN_yKo{d}9-V?xu{$i$FYwoVlhdr{-l#}+42<`mt))$KC|8};8~UWt z&2Uf|5g;*oHT43Bi$zes2aak>hd-RB2wYE=eQB*LpZr3d57AquhRd3jNc`g$tUmQ2 zry(I*P*G(wv{nEy!c%;(<&ZA8BDm#Ia`bBERgH5H(aOamabmN6ZMA2zU);c+A$2L> zJCme?v-LL%OiLS<1l;0I)rz42QQ(=D2V0Ws~B#XH$|(o1PROJH4O z0X)DE>#6LGNfiu0=Hwtz`4^o>gspCCMW<)aYLtI&&Ff#fei|7uZJ5D^@}}&kyiCTV z!aC6pYZiLc9Sy1}sgWGxi6#1!s&rr-f2Rb{a;0ilOs{vT^lfZ(L&a!1UjzxhA_=K& z2mTqDEvA^8s|XIQwWLm8-N(nrKhE!09Psz*;bbH29|SUYEjlS(JWNg*wtBGnl+{j1 z$?$X8#xrg@w(10r)mz3h9SDGI%?bHlaDYllq`_sBHl}@$F z=7z6Xwrh3|U#i$c${d?K>NeKP5-&(Jqh*0yS~!*@G(ZVQ%z73(8c$y;q*wl}X?hha&S3Mc)49KfSi>BR0@;v3}B1r)J}v{MN|sg?201!iQByC)1z31ykzz zy2;!h+2_2rX5@qEfcsNJ`EHd5XpULv76?za(cYAb{XS72&n6KQ&szSyAe1tRHxay@PpZXJ(S@|ADJ}9Gf1f_!x3Y^-ym{5+M;G1$++J zc&kK5KXb5^TIK3`BcMs?6OB@61ILlQ)VS0*_C}6MyBa|feU;$a+kT)d`kiSwY@w!M zkLrYRq)hU$zU#U|k1l}2%qwAMy$bh*j-KTjTbKMyTD`gW%xdbt2QrTW|E*l8o$R{n zmL^D^zn_x|d}h6KlKAfLuYl9Y6(`|GIZ`?F2s3+KXi0HWBhEG0PP@8oA+Pg&I|DL& zVC-bJl#chdJDti&_U@|ki(08Tx8#grLmaYn)JUg1bcMhq!%#LP!)oq>MNVER zd}gzjyup=mY}BZoAhjn*LANayFMf#op?p-Dqi8L&0v!snFb;UMlPJ}y)iea9zS0m* ztZ&kf(-RW)mur<(weQaKLgOk|1-RGh#g+|BcypKm^3NJ-G|}2Km8bTkpFCtlQ$Mzu z4qmC&5D}=~*AsBV?&Zl}p4p`Z?nfPIA#G6Bd38m6!ljEGuUxPO`$|DO zTBF72!YwL`zWDlN&Hs%4tK7x({R31J3jh6xkM4cd&#)#4Y%GciREv6A>WS~3#txC?htdgq_G>nF>_<$hN~55uBo_fI9e0zkLG@nw+3JNkrabB z^o=b;|A{$T*ii1uYJu`$_Oe-HTO?I!O^_JxN#)1#U7gpYi({E<(nN&h6x6mp{mr}4 zB=+~hdPjyBQB6V9ItTH}Z3}`B+=DWPUp`|TI#kVE{n|Laz1UXdvhLG~FQ{g|5=ja& zAv8G=&`YH{xYEPNGfwYgT;3yE2wsKd&-GK?I0$lBVpC=2CioY%s&$fCBJt+ zSeD&YMB8EUbyMJ&?ltM4U-C^gE{DnCa#v2n{Tn72?$AQ<)t7cbSsX_;5&-)58GW6e zfB|M+i2X*JCA;>)>5YL<&?#27#%7L5Jqi|PVHi5v+eI(X^xZLV+{tC zT<7g??6O73y0064MgWW`c#>L6PX9{?amMRl@_C79O@NRziKri#!Yk$~OpE_KUL*Z} zU2s95h#U1npe~w_epI3lv}W#pdsA)px7hA_@yMt61{=B_kt>|R;R2!?4@LXaHKSU> zUN)}popM^Di(@Z2z`?y1`S)gNaVzixrH=ylHVoy;)#`=CJxVkE*~NjSlhs?f!4EhO zNcu!H-zr67W819CDs@NxMh}V$d&gAjKW$y8gg}m=m^e^tz(vQvl$T{5kWy`s3!m_u z;O?B;KCF384@SDffyG@Nd_o|brf=t)6ik=+^=H)V&qpN%iXWuEZL}LhgF_ApYJA51)Skmjb|HUJEigceQcq-Da|ZkEHF709%jOb2T~NxTAqzZ7*io z$hgny{rS#%j;$O-5J-~8%Lf_uhY(@F=T&IQp$ENR=1Js{i2ckxIx*h=Z2+E*!H5rY z(AT9+uJ!8wDfkg+G;p3e9~m#%^-YB=*zq6{+Fo$xk_JFFF|MiU#!zo7*&8ysNO+Ms! z$C zD5JQPiMTlC2mLnyk}*~2;gvdnEu>NkTSE@i(@S|^C{n=O1r{PEMNN8gEw7YYz51wOY!t?;1fsFxlg(m>OAJCn_U~!8i2z#=qMpNRO}fG z;k%9jW3vwu8)}R}Xj{YnH~tPDI}M%h|218|Y8q=iDrv{1Dr*?qo4-d<_JQ@{(HqU zjVANYzw*DEvknZ)*&fYm{NVM_B*kxeFi{V3E2MKkq!^`x4{M=+PA?zk!LI2Mg#>bb z?EXAlE-2pK2=Q@VR=Gr+`8zDBTwK9#Wy^^jR^m6~#+%xKva3NLPOyZT4T1+i&X3mt zG5*p)WYpfDj7^pEzqvz2vm*~g!w>-F@BW^fRV&zke}B!b1bRCTve-5Jed?z%_wV0a zW4P+&qeCaUyX@kRU{^RJE{jvK>}gpNc)QM*L!LkI}i3%U5&G~%j zBoT95rPv6QWxxCT`vZ8`?%VyoU$5)Bo>%lU5FuKfjytJ1@z%w%GFCuHMzyjs)KHAb z_`Ixak87Kcgf)ECKRS5hdh;XSJKA%$fR;j{{LdVwML|-r5`ck^R0kAGcQvcCwv*=C zV`dYL=@|0X&A)n1#sLOn3qaRf@ziQ?T88tRJ#X6vo^>jkia2Ar@U8Tr{S4sE#^mW?U)Xhp!ttV>*t-&KF~n)1W! z!6mWfIZyA?tM}ZuZHCvoE@fER~l4D<+!0qb_KifYX5 zN1SzScP@}F=^`nV|Pw%`xtaoD)3DQyj6yYKk7b|WmhI7! zCH}Me!Eoa*o--J4OS;YI5-o-DXdJnST$4>P;O%5Y7D#}eIrW*|3pJN!ioIT+-!X%3 zrBIt?W(i_Qnt7GNjaN8%WqqFuZL{B1d;8;=41h-0${;`{mI)K+;IlythIOYAWT=`) z#vTW}r}_6hevCfAU^37!U!K8v8n@!1?0To}k8MwHvv8^CO#Dj4-P$NASk8(OY|2M6 z|8{p>Jv;iN!7Oo4Xxp#)k+82fTAEXOA^bipMe=u?H@Lzi+Cq@+9|ml;X4+%1ESF#1 z_iwKJm>x*e%~mlNU6U1OA|`-F0z!_LDvO#tr%mCw4Dg1zWNJa7rew@5WH9RV3sKmZ z&`m4h`BbMD+^BBU^E{im*`Mei7XZ|KG$1Vuo{@=%zcIXoEEekC*t+NYkKlpf(Iz## zXW%{;GzE=DQz-Oh$fi>)U-=c8@W6l6;)F=u|0bMf9(rt*T@;nhjuw_X@H zjNsINvu8!WxE{m(=DHkZP^;_-$yq1A6!R~Yh-(q?V;2hUbv>yL_jzee@49rfM~sC8 zp|Ikz?={w*iDqEI`7N9eA%SMbYRb~-$q(#MWxN9kA8ua8d=X|oC5c=Rk7(B8U8@2O zSTO~%`h4fwu6{Ag$Sn44h9p#*B%=TE`WgHIaXg=s*`3;TLn!z)Te;2o^MOyNz4y!5 zELeOw^tyRu>0_zaUamuo76<AJe(C^&%rrdGyaTF0We=eqbGn~^0>6biv(_OOW_V{OI2tdB*FIN)wYGc zk~MCFSFGMNVpYdlWM&;ZcqHONgr^dYfCsAoENepGWnQKOg%*be|KmafyoVwYP1MK7 zcBEvVd7u5GNcXfqQI@faR3tirpBwifG(fY?d^zr*EXtlhHhowP#NitdftP(CTRZq` z_aBE7VTZYm=g%GWba~V8OS>&J!AfuOZ9}|10v?slOD;eV!=f~c5#R*t@@zhfw9j<^ zp1Jkj?;l2*q9sNtlrdoT34V?s73&QqytF|xMVv*U3UOw};O)d=wI|y3b$|Dnwu#qP ztf#NM^&G5Rt$v|Kx@vXC{O9$_O-KouKi~#|p;Tp3CeAz&C~a?Cjtqz!bRPwbS1OoM z2k)B7RIQ?!;Y)U5HFGPS?}y8xYQ?>D89+AWu_SYUt_IRfj>?YsvI_w=Ju7SMi@5#> zf3ElIk5>Ep4~BQo4OBKPy!L$ELom`l&)6?@MVkGL*Af&#v8Q5#Z(9a77m{=HhzJO? zp}Mna>ywxN$S;#mXUw;~_W5|XiM3C%K5ZJ>4lq~>%k;q98fwN8w>u*0slB|9RDf&}i4=-q_DHz>HR)aq8GUIW7v% z>nWlWu573NiXy1+=SJV3W6Dt?c0?3a2+vI?E#2#T`+nzk$&S?xGWJ4~@G_&qO~sqS zmEkA`C_8d;t8QFZ*|;t%%%%8AKh%h$xDUvkB*t4f1{dOhac(C+=K zt;=7PxVVtgW}465Ytc=S<9*Xs8Ba1Qf-fFuG^q~l;NGjF+MKSBFM3b9H~nW_hem*!bw7@QTbG6JjererlEoU6Z~=JWt^;fb{$dhQ)1B7gp#6S$V{8XIiA_ zsSkZRcpbGVXLPS}K13<0WaG@kxl1jhMJK-mMl~7FeuYBf7d-b=B_Jq25!Wvw%6`UO zGfDe66tegy9(nwFTSUidIrsU%rR{ITia-_nU7WtPAmH!rb-r$Fn0&)vU${XTKzypK z4Bi3o=+hN#lX9vB@+P;M>qslnr)r}4?G`nvwIgG+H0SvwyuLz(Z`-JJoEIw5Ym3Bu z5lit^bKI8DGV#j@LHWX`bN_xVOBo2ef*x4hOelr79;pg za#I(xL3(X?U>O}B;l+ta7-8T()IUbGm!cD`6sMZFeXlzPtC_gRux z>*M)LaA?PaW;+=AyKb$lzJKG+_q%&`3fjU~gI9icpBF6+M?QTzuf5?5`#U_2WGMWP zp-uGnt*$Z)JS!?{Fe~wOYd5`R;2kq_1&{6m;RCp0tfC4*DX;6TsPMa;T94It>q3@u zyti-mYWH02+@ZPiH}zO&K}YezMdz`m%YWo<7segmWXZhnGN#z?tI4WOTfnx0oa;L; z9y*}F`y`G@X(B!7-HfDA(Dg%Ud?OUz>~85KcI3HaZ%5?P{pTTLO#Yp$|GX8eEEh() z&RpI9sUZLIjMYse7r*?{pe`D__W0=hx8H5oTGa~m?b5?rDl~c@bHB|;>JAP))SbwG zrdSbHmHEwl!>kmm2Wg0l_K>bgWU?y1zmfgq1-}`hMU6?KZm}W`UM+Hhf>lcY0Xtp0mnzfgdQK| z{BD$e86WWD-yfCXhQmhE{OPOVL852stE-{0LB~x_M!!10+wEDnUj7xG)@he?0r0VE zTl-b#vKaN|Qmm-X^HsG$t60$TI927(N60i(-f(23a5EhtxlF$+A^a&Nfu#O3ax5RBjc%?Cu1Eh%39ypwC4h$Z?W3a zMirS?V5&B(89Xd{&ee|$9-fb}?lo=uS@NYNa7F(?{kAkj1G$?}ENPZ1E6dvzA#|Oo z^B-eGT`_G`RUZ3z+_madM2p`^!x`l z*3WBO3y1%DaHaq4y)3NXNG3xv=LWjQMdQ|10nydC$loH-DZ9n(a=NwTi7N`}vrp@U z^Gg#;CrVn}F|wK1)r&^t7_~)SU8vD6v9p<)(D$4*1PC@=io3JMOtw{M{YSU=_dDCLI;e@8uu=P=|_0>92L*76DfB&Md zl>W)t=xJf`(b~Xw!QW041HgVqP-iA_G2n^~XZTlK2115se&5;(TDzubD)IW@X^ucu zQ6%ipvHlhi$=^??9T^IEk;2?%HSOLyuUYk7sX|HcX{^nxe*U|8fVt^v_u}}2ePR8rF)^$_%N~JZMS&2G z+LggiL9WW<*kby)i|VD;=aJ*1{uBLBE3xD+t|CfsaV9gzT{q)rmgh*QdoBT4A)S-+ z*srTc=Xk-a(Z;pUW;z-LA)jPgBYQ`PZzHWZ3G?q~7S>)|^6UQM*_B^+hGV)WJnD1-hM6bN%7V9(C*M<_g!p{7 zA`U1?lhL|Bg`}E)xO>w?nQHtERg>Dtd`Ruq?p+=2agCE5#SJglv)8_Ky&e6baeT1g zxySGgv)pJ`x7qOE4>^prUz%1E*FY@-1v?W@RxL@AZ5djxU&;QrTmpaCas-&#Gt(hY zg(h?szM5&-QZ($f?6n{h_hrpzU58ac>5%3f1#RragWdQUSKpa)&38X_o#EWCG_Ah& z{O^a&H=iHQd7WPq+N+}QvT}vqtYU(|krDy?4$8u7+(Bw8mt94*67yJVKZ%lbi@zyl zZvGuo8cQ^Eua^@eE%ecertDSRTssXB2L~Ba@peGf025*o8#`kj+3F(jTnqBJr_xkd zy!Nrmb-p^H`Pb5NYa74p3VsA&cQfGK84^oKmPatymLY7l=6pv+T@RgCia<`DvG##c z7gz~Ao_XSlh5J+sPi5`4AM-X(%BwFwc9&D`)7s&av-1~@PA)EO2OTQk9?D8UiGV`$#opF}tzI_B zTP@aRedC6-q=+wFEH^94qh2uR@;mPFHO3oWx%zGerWmEU%KOUfsrP^-AQdOuFi_x= z=fK--dHN4VUAQ%wPG5_@zF0a{<(N;wQ!t5ehW5i=ER=Xzp(E9(%6MtwwDGVJ208ym zpD#}vqaxnLMcw=`f|uSY*MFkGE|s}4W1NLJnyLL?X_^GkeqrH`fnHw^{8L+3`ZTY7o{}^k( ze)iXLn3G?fl?@?agS?eQTFNxRE}m`k?yO=G$!XtNT&%gYr)Y_? zbg@<*2F7-8fD|~ATqm-U7A)105Zkc^G_mC)@&f=XtVK~CoJ5Dx;G&ZwMocqRPEtGQ zLIxkhQW(h3o)|3Nz~czFP}_B<6o111VZ7h@?dS9n5CrvG(FA;l{r>!3QBMWk5DfW`s?Kt!6&Pq}YOO_d_zB8MZrLw*{T zDWhJF6u6?vJo(_A;HY_I#k04l^B%`bYtNv7Y?devhm<94#Q5*dhV&%Z57dJM&7)tQ z47jlB{0C9v<|p#s5=d#u`oyXbPGg)TMvp~A;z}R%T;*NTl9YGV;Gb=viY0?qrdvz~ z<~TDdP=`jwx*mWzX#ou6SIYkUX+-i?T9I1Pcgv7M= z?`s^m8JJ*W+_-{;?!YsSJjz}p?T%lk(}qVBMVQ$&LjmQGJc5armt|P!TjpnKkQ_MK zBq%=aanx06EBcY&t&-SwvZITS2}1fi1fgM9v4DsHU<@{OYO%NieRG%m?HfM zQ^T%Kl7C|JI1+guMG=3z1CLZ40qJ;|TM4C3PJd>1<{mKGa(r3RmSTGq>8j1b4`}72 zsuZy0dn8|Kv1by|7a#*;5{5NmrfdAKqJ>#hOBv6ini2AqvG-7v?&NW$Rc476*EL#KAjjg(N2IU=#fH?PfdToD#(X z52tke!`C8qVjWNWmZH~f4<6`MXvR9uD&5SdRoq1TleZ`X@<)fj6LaCz_D`XrWnx#W8#g$@vOlu-^U3^KUA&wu ziGYM{f`}%bEeGEAV5TvitmalBd*y#IK?I(qF^J;bExuqP;hQ1_X+w9m z*mFHtSRrP6HflhXuIBcQ;V+9d?|=R-E+-dxu5|waEvO~lQ0Z}H8gTH13mnN*BeN}G zHai^O2PNrEb0oti@8s+1G0Z<_<~Z0W>J$Vplo&Y~)hO+gkV3oiMrfalz1YFMy+iJp z0pSRs;s*|-4@)SFG@hht*wYY1h@uBCo@pLO@+AA4rP}2kT6()}N{5Ck9)F`_Y~c7v zBnHdSJ*Y2@p?oyHU~rG!P1=x0<3xO?SYm_DYA5($%b)y6YZ&`k0k!R_OE`5$GxbTJ2#Cx;yx>M%uGz#glOFA(Ke6b zbsEt~dV48%tErgWD*1x=|At8UX{Tb=bw5i_gmrrW3cNIhq`RR1r7fFaCyy#E&KGNf zz(AjCt<(>aaDsbImXH?BgVQqLdgs<2-*_ZAd=3ryL9M}AE$QH_UU5{57#pA#tdXrx zc9}|EEoE&yk(BYz$jy>Dkx$P>sC}luWg+l z+;@~Ed?`#7)(N@BGJEynXA)KOQv=k_N@H4#R219HWlP_@i$CI1iPh6==hG2VG8Mz=qz4ho!S@o2=7V`G;#Qe|MfC<)UqNh{y zp6Scts!Ep(F>zrYYZ0KYsYC60R6mu8NXv_Kgq&_U5?FD=A;l-e~tqBK`NES#C;++Rx96FDl1f z->**vLWT@gBz$TRL2eUL-=CRzVl@>gVX!eJfpfK?+`V=bDy$c1aGs}n_I+4j&-c0P zNpq4$6BTH$5OHn9xUqW?#pVKrx(q00UgSrqw)yNrWrw($5BPDPC7yDPvR=FWF7|f2 zaSm0pUajFqY({KKY(i|2Pgh<*I1P-yD-gMpf1O`^Zn3kBJ!85sX@(GO7fDWSm#y5_BfB?or;gl17>7KAKfm9^6}W>mIQdQWP)o zJ>`HddZB&BbLU3H+#iSY09&Fh2`}ptu@nkUgI^QGy)~kBi{6XgGZg`H-8B?JW~#3s zmFSI=Ee8};>F5_D38soy@Tm28Fz}FH=kF$9jhegBjPv0O(}MT(Q|lHnxUqzJ z_{kYN(Y2@}xSDy5dQSGfF9)4zJ@wGWd$mJY$3QK{@}gIrg@{r9d%=rZZo>qDTEE4* zh_Egbqf@#%?}V+sd%kH?lGXjKKP@(nRmId@uHp@3g-7SAErvq2JU-4_)8APGmbE(Gno2*6@(0 zWB!rK7b59yhpcwv2TCYwX9)%ajyXxBWWvmoR4`fiY5HPJ&js>eKe0E;00&;_!kk;( zqQ06a%dQ*1I_2E}-k3(GuIbcr1T24#Cih^El*bgo=mM=xURd zyUBul^>`pc5C5xTlk|DFk@-T#^B@`KV3=xe&Bm`%hhD1m-WvaM7@vA==H@(7u(rBl zZU%8mCVc#OJ>a><;Y^Bz(t*u$PmOw&W5vZKk?nWP1T})1eC|_nm2Z4U2lScAVq9@` z%817J2!lR82|C5zA6s2}PTFiTe})^)6Z5wQe54vO*(Gtv+;qO?)2C0Ia!T>9C%#oI zNDA&MXYQ~$kpd52-^wpy15+J*8M4G?#Q%(bY9w89ySQkg#M2%^4&G^{d0mC&D)&BN zJ_2XYSqackgnx6fX+1}g{qF{k`|`S(I@3?nMKS7*!oW04j{yWM($>S<{%q+=%2@eYC_`QbUoG6vx+om z?+FW+4>JH1R)_&w7cL=^)xzSiEUt+i1u%unwE}`@A_B=kQ(qzAC=hRwq?`~39EI!d zj9@0YPpIgvSBlb-+_u*+BY20Y^`>K=zKmWRJGVoM5Zt{^=)X%FqAeKYOc`Y+rZCA@)NBZf!Pt3X5-bZTssUQ&bgUtH;2PvDGQ<~sgh## zM2wryy5N^Z#mgL=qsap$fpa|~Ul{|GkkVy<*}jP^PH9J;JVqb9f8?Be713MBNf_5L zH8l+l<=eu?^Q9p-U6{Yhz>-`kK$i^gJoCw(d0}tEs?_J{kibN;R!8W51qVN@gd^vI zaJ?#&-vdhFvTkG|apk4*_2G{Jdg-6PudfXLp6?CaTeL9N-+JS<3-`r>$+odJf9God%-njDNRXR84&^>4OYf@av3&0(Nk3z$XL}!XiL~@*dya9 zOo$&cs&2Ru!?{T3Gt*xT(~2Yfic3xb3SHrM9E0ITp^P@lNw$-1Qm4H>_ZDd(4Ab_k zAvOFX4Ja3M4#{;PisjY}HaW@|+>v1U1eUd1TL177@>zW+l!ClmyE#C?xx&xdb}>>D z!n0V+F|`6h{SJ=ix|s-3c{SMN%A;xLkuakpX={3|f&bho)bBk*xA%K}{=WA!+tLWk zj9b{`ab9?2BVA1-J9gz|x2SW>4!Rmn(G&Dmw>`C_N&Sr$*1(&uUjn``=Bmc2?u@Bn z6x@4r4pYDa@(d2!C_*~h7CRpvFtGA@UiRX8&un;Z>%vgyR$}^z)<8y8bA}tT_}yb< zQdbqsT1EQeSq|4)f3%dTO6xb`a>bSlrd{SsJa-cMMZM#EiKyfZ`D@}x^rc#ZOXw1V z?A^8XK`)x;2gsH*do{+*E%+0hEjJQd#VGC`@-7v!`?VOCXNoL;CV1ppOf1%(K2QAh z@Yu=!)$~0a3C8i>2p&eYiP{FIX&=Y_er@1)a93BX|IUwM(L!Cii zvb2id6U712dfkD7wl^_Yh#w$iswzA%U;&shrGaWjx;XKlbxkjvs5AR>c_j5eO?>B%fmXx3 zE~ItG|4aLM3E`?!txVc3m5m`Fiy=mtkRT<$`qeQVHW{{7q<{b6Iy`|lJ-}<3IBKOx zbkhd%$#!WZGE1%%*dl5p6SWgNolCoJ9Lg#rfFEVU&#BFFNI*hvWek~Sju9ESH1fT< zHyh$giCWM06 zqFgfst1`^Dzo9I)iM-^y*D}`z#PQ`}h1h|5fRUr$n#?>py2V5i0f_eh%U>cXTHxnU z-tnSX9zCsVyST4C9_MP8xK+*49eXkn4{u2lq5Wt;Y5mvCRZ}ed+Q<-O#!{1@wxKyrGLK9P+Hq{0#wH@uM#V(F5_VF`92NY}!vGEC_6bQPK=^VBo;y4VsX!v)r zzzl_rxOPH%fb&oZq;inP?Ta(5m*$KSrYspM;;aW6f`=&kDHr=t>E*M-b2lp&Uvn+r zAMY{OnativG^SinX`$U!HPo1xNhDHnkS?_hD0L5>DjjG= z@>y_N5+k-I^$y)J zdj9_ASd#51G>BphZ;8LO#8231i{~U_VILrbL_kO~@`+JMNzB8|3mC#Z}5d~S+-g?2BO}7j@hF<6Tov2XbOFdA%j#@ zfBycHJlrWg?=A6-OfiJj!`#gQM7vK1UZaQ<`D-WO)CvC}0C9|xO+)qr0ek^5RQDstie%4@F;^3e~f0+9zSf3h7PkXgQj(zIqgC(84R>e7LIQ4UGW z(}RpeqMhsFF>lXT!l|5885+O}ZpHsyCTrnYc+EYO5?8aG$(pwx=mGJ3w5wdj&3qL} zgRM@!PLF=>q>BC6skO`9SR7zc-KC@)Q}55251cSMlKq*mGZ?QW7GiF{&DhZ7`bNe% zSEDkb;FKf97g;`p)`7501cM1H@fz?YkCS9zcU(aH84K{E<>V1Oo-^DJJ4~oD-efB|fVfJ0n;VfOx&1 zyhWngNsm-^^`P?mW<-x~vp^{k*fStda5BsmCSAdH4;aRPkL+Y_{33O>TJ>$q?y%^U zoqCD{TkJ0JGrFUT?GDUN(*)pq$GKO`(hYkk@JDiO>3@COq|FdEjA2_G3!{ZhcI*8$ zA?IO!-K%y~UXfUmHU`DU?Nbnp*{!Z4!O}W_bp!)>c?BCJlf=0z15-FoQS2y2c#b|v z>6LQh!;WS=5(hZ~_&UMuCA^5FX%GBmi8S#DHFT?Ss>MqWE)k)2g~R}vg}9(+|3NuA zy(bU#xy`lNgKRAak`omz;Dm%TQc2Q=@D?|=tbO0UQFH5hnGJw}8dYD5QWFf{Hc!-V z&LGE;wVCNQTJX_?X!ydu46e_n$yVLSS^DKDx9DoCS937&I~%LuVZSe)Z7}~#S8sXG z=nnO;NvgcR(q<@l>UN{nq%97(=i=S{@mYe68M zU1uF?~pJc+S zUGVCj&c>vOV(wp3+@j@jcnl+g5z(75zqr1B(P_7BqDnk$*_M^I?LI6E>s1Y|Y%)G! z;^1--s#XSjvrT@<2rMnZelv*r zcA?C2*tCC)#DK5JIslx~kYe#j@np1cI(glJy{>38cDWowiTL_g;A*Svi-nqra-fXD zaAJ+g;C|oNk*+|(&0)0zpdXviXqh01@bu8>>j~c#>IWr~A)?lUQ@0Rg4Xl&Acva+p z*PaI;ktHHXikE^7>np`z871-&rmh{2J97|}61>EpO8+SjcqJIP94o&5AjxXyGqy5F zt}>Cv_AC-*RB_qgP&4d?lFy`gLAM}<}&Uq7}^BPB-b&8i@+9BqR()}@9A zS!KPGd15eDO>d7{w^X9|MSW_Cc)t4dLRGIaexG}9vR=kJpW9=dPo=@{=}++9z*lDz zO17EUZw%ceHYLQV?VGUeUhJ%Uap0@)O)~<+sG@Q4AqMT@Wh3^uP*#;?3R9+uJGLU- zW#!wq;n_|QB5A#50{^wIoAwyYjzqK9yLQo#2hPUZfHbxNkuo(QPT+U+gfWR2m>wv> z92ZlC<94~?)AeO7i=Y35?R>@p{qwZgx*aU#^Hdq&cP?1AG{#JkUT~L`&i1Z$^uYdnsHY_rZmFIE1VR^5Rz}*u(dRl*AY2>u z8_pF5i&ViTX4jJh>6qnB&k(;sAzb*I2)}X0Yc=oMG@!37z1uVG&TeTWgi=+sfaTN5`cyfY4rkJ7wTyuZr=D~pG{!Djr9J+%UM3t3l^(%zk;-Aa+;PR5#)Ox7c$ zeZm#=)S~o@lROq;y;JYQ2>}S=$X79&Qq}2U?t0!VQYow2(#)-E7t$SZd9?=Dd=$=` zixZP2X=$byJ3Gt?qWbHRQD2|A)w{jyClx>X)mek$00-H_>cl7ojX??sOhzK3FkxvY z*m>6tXU}l{%{0(*f`K~eP#jCn#YqUae1!4YErt}`b$;T&85D0e7NYSP$A}7Rsy&ulRnl<+xs695#`}*5@I}A5@R-tdPrYrL;@nv#o zHT`?jnuf-H?acy?B!XUOU7n#ISMgg69I;O0Z@@6Rv&Y#9 zO~hR!dl=N?grqo8Vz|5x9Z7r7b|^I5JvWtrl!d!nn|pLjLj{}!@r=9lD668p=?h*7 z<@4r?CCgs}Ubg5_i{^JI0B!55 zEk_HHs-Gv#c+*I!`U((&U?4YyAVQ9TvXjn>)}ofLwSkC!EXZatBI-KQa|$B``Pu*i zNHEp%v_|l&7|SYe)*!$;rpXc^ySln?N;V@@amv&C%bCyUF&EM4bAh?WqD7yc1;)uV z)Tq)890E5kv);f7QxxXC^clTOcX-bc_cG(1KyY-G=@I-H4~Ar|Nnk%mmz6CsBLyf( zplplf?9V^*KX@?$kI0UL=MI1diugFTTp@e1;vOQmE%)`_&ia6;*d1T4V5Ar`VOXF! zs)$E>bZ{0L7OVyOLYeg47bD}RFKhwJH+p=u>kaE?kyKzO9ZDjhu=W6Gc+=<(xeOb~ z-rs{pd=Wn$yB{E~?yw1HCE|gfw7urUwPsT6RtD9s-4~Qm^Y+13Zfcgz6?aZ(t69gC zvue<3#Fq-jcHU8SFmasM@Q+o7zL1^Mt(C8v2hkr_sYg5{!D|6YSI3~7chmR5g#|dGr-C;b5LjNCj CiEWqw literal 0 HcmV?d00001 From 1eb7a1bdc48bfd41a26d20ab08e73f7e5314831a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Abdala=20Bohaczk?= <114778253+joaopabdala@users.noreply.github.com> Date: Sat, 18 Jul 2026 17:47:09 -0300 Subject: [PATCH 17/46] fix(identity): remember para logins com OAuth (#417) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O login com qualquer OAuth (Discord/GitHub/Twitch) não guardava a informação de login porque a variável remember não era passada no controller. Assim a sessão expirava com base no SESSION_LIFETIME — não sei qual o valor em prod, mas no .env.example está 120, ou seja, 2 horas após o login — e o usuário era deslogado, com o painel pedindo para reconectar o Discord. Resolvi isso passando o remember como true por padrão no OAuth - Auth::login($result->user); + Auth::login($result->user, remember: true); Testei localmente deletar a tabela de sessões (php artisan tinker --execute="DB::table('sessions')->delete();") para reproduzir as informações do perfil desaparecendo, mas não consegui reproduzir essa parte. Ainda assim, o remember por padrão deve resolver esse comportamento. Closes #409 Co-authored-by: Claude Opus 4.8 Co-authored-by: Daniel Reis --- .../identity/src/Auth/Http/Controllers/OAuthController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app-modules/identity/src/Auth/Http/Controllers/OAuthController.php b/app-modules/identity/src/Auth/Http/Controllers/OAuthController.php index 378e7065d..a3f694c45 100644 --- a/app-modules/identity/src/Auth/Http/Controllers/OAuthController.php +++ b/app-modules/identity/src/Auth/Http/Controllers/OAuthController.php @@ -77,7 +77,7 @@ public function getAuthenticate(string $provider, HandleOAuthCallbackAction $act } if ($result->intent === OAuthIntent::Login) { - Auth::login($result->user); + Auth::login($result->user, remember: true); filament()->setCurrentPanel(filament()->getPanel($state->panel)); } From 4f778b85a504d148910df66aa5bb448d6c1f305b Mon Sep 17 00:00:00 2001 From: Fernando Andrade Date: Sun, 19 Jul 2026 16:21:05 -0300 Subject: [PATCH 18/46] =?UTF-8?q?feat(profile):=20adicionar=20avatar=20no?= =?UTF-8?q?=20feed,=20redimens=C3=A3o=20do=20avatar=20e=20cover=E2=80=A6?= =?UTF-8?q?=20(#435)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Contexto Este PR implementa a solução da issue #428 . Atualmente, o upload de avatar e capa na página de Perfil (`/app/profile`) não oferece nenhuma opção de recorte antes do salvamento. Como consequência, imagens com proporções diferentes das esperadas podem ser exibidas de forma distorcida, esticada ou com cortes indesejados. Para melhorar a experiência do usuário e garantir consistência visual entre os perfis, o fluxo de upload foi atualizado para permitir o recorte e redimensionamento das imagens antes do envio. ## Alterações - Substitui o componente de upload do avatar pelo `FileUpload` do Filament. - Adiciona suporte ao editor de imagens para permitir o recorte (crop) antes do upload. - Configura proporções específicas para cada tipo de imagem: - Avatar com proporção quadrada. - Capa/banner com proporção widescreen. - Configura redimensionamento automático das imagens para as dimensões esperadas pela aplicação. - Exibe o avatar do usuário no feed quando houver uma imagem de perfil cadastrada. - Adiciona traduções ausentes para os novos textos e componentes utilizados, garantindo suporte aos idiomas disponíveis na plataforma. ## O que mudou 🧐 ### Removido - Propriedades públicas `$avatarUpload` e `$coverUpload` com `#[Validate]` - Método privado `saveMedia()` (chamado dentro de `save()`) - Chamada `$this->saveMedia()` no fluxo de salvamento do perfil - Lógica de `temporaryUrl()` nos computed `avatarPreviewUrl` / `coverPreviewUrl` - Reset das propriedades (`$this->avatarUpload = null`) nos métodos `removeAvatar` / `removeCover` - Import de `Livewire\Attributes\Validate` ### Adicionado - `editAvatarAction(): Action` — abre modal com `FileUpload` configurado com editor circular (1:1), `storeFiles(false)`, e persiste imediatamente via `replaceMedia()` - `editCoverAction(): Action` — abre modal com `FileUpload` configurado com editor de imagem (3:1), redimensionamento automático para 1800×600, e persiste imediatamente via `replaceMedia()` - `replaceMedia(string $collection, TemporaryUploadedFile $file): void` — método unificado que limpa a coleção e adiciona a nova mídia com fallback de extensão (`getClientOriginalExtension() ?: guessExtension() ?: 'jpg'`) - Import de `Filament\Forms\Components\FileUpload` ## Motivações - Melhora a experiência de upload de imagens. - Garante maior consistência visual entre os perfis. - Evita imagens achatadas, esticadas ou cortadas de forma inesperada. - Permite ao usuário visualizar e ajustar o enquadramento da imagem antes de salvá-la. - Torna o feed mais personalizado ao exibir o avatar dos usuários. ## ANTES antes ## DEPOIS chrome-capture-2026-07-18 --- app-modules/panel-app/lang/en/feed.php | 13 ++ app-modules/panel-app/lang/en/profile.php | 10 ++ app-modules/panel-app/lang/pt_BR/feed.php | 13 ++ app-modules/panel-app/lang/pt_BR/profile.php | 10 ++ .../components/profile-media-header.blade.php | 43 ++---- .../components/timeline/header.blade.php | 23 ++- .../livewire/timeline/composer.blade.php | 30 ++-- .../views/livewire/timeline/feed.blade.php | 2 +- .../livewire/timeline/post-show.blade.php | 19 ++- .../resources/views/pages/profile.blade.php | 2 +- .../src/Livewire/Timeline/Composer.php | 12 +- .../panel-app/src/Pages/ProfilePage.php | 131 ++++++++++++------ .../tests/Feature/ProfilePageTest.php | 31 +++++ resources/css/filament/app/theme.css | 10 ++ 14 files changed, 252 insertions(+), 97 deletions(-) create mode 100644 app-modules/panel-app/lang/en/feed.php create mode 100644 app-modules/panel-app/lang/pt_BR/feed.php diff --git a/app-modules/panel-app/lang/en/feed.php b/app-modules/panel-app/lang/en/feed.php new file mode 100644 index 000000000..7d06c29a7 --- /dev/null +++ b/app-modules/panel-app/lang/en/feed.php @@ -0,0 +1,13 @@ + 'No posts yet. Be the first to share something!', + + 'composer' => [ + 'placeholder' => "What's happening?", + 'add_images' => 'Add images', + 'post' => 'Post', + ], +]; diff --git a/app-modules/panel-app/lang/en/profile.php b/app-modules/panel-app/lang/en/profile.php index 1eaac516c..39a63f386 100644 --- a/app-modules/panel-app/lang/en/profile.php +++ b/app-modules/panel-app/lang/en/profile.php @@ -71,10 +71,20 @@ 'add_social_link' => 'Add social link', 'add_work_experience' => 'Add experience', 'add_skill' => 'Add skill', + 'change_avatar' => 'Change photo', + 'change_cover' => 'Change cover', + 'save_avatar' => 'Save photo', + 'save_cover' => 'Save cover', ], 'notifications' => [ 'saved' => 'Profile saved successfully!', + 'avatar_updated' => 'Photo updated successfully!', + 'cover_updated' => 'Cover updated successfully!', 'no_profile' => 'Profile not found for this tenant.', ], + + 'page' => [ + 'subtitle' => 'Fill in the fields and watch your card being built in real time', + ], ]; diff --git a/app-modules/panel-app/lang/pt_BR/feed.php b/app-modules/panel-app/lang/pt_BR/feed.php new file mode 100644 index 000000000..100409a1d --- /dev/null +++ b/app-modules/panel-app/lang/pt_BR/feed.php @@ -0,0 +1,13 @@ + 'Nenhum post ainda. Seja o primeiro a compartilhar algo!', + + 'composer' => [ + 'placeholder' => 'O que está acontecendo?', + 'add_images' => 'Adicionar imagens', + 'post' => 'Postar', + ], +]; diff --git a/app-modules/panel-app/lang/pt_BR/profile.php b/app-modules/panel-app/lang/pt_BR/profile.php index 990dacc86..413407ba6 100644 --- a/app-modules/panel-app/lang/pt_BR/profile.php +++ b/app-modules/panel-app/lang/pt_BR/profile.php @@ -71,10 +71,20 @@ 'add_social_link' => 'Adicionar link social', 'add_work_experience' => 'Adicionar experiência', 'add_skill' => 'Adicionar skill', + 'change_avatar' => 'Alterar foto', + 'change_cover' => 'Alterar capa', + 'save_avatar' => 'Salvar foto', + 'save_cover' => 'Salvar capa', ], 'notifications' => [ 'saved' => 'Perfil salvo com sucesso!', + 'avatar_updated' => 'Foto atualizada com sucesso!', + 'cover_updated' => 'Capa atualizada com sucesso!', 'no_profile' => 'Perfil não encontrado para este tenant.', ], + + 'page' => [ + 'subtitle' => 'Preencha os campos e veja seu card sendo montado em tempo real', + ], ]; diff --git a/app-modules/panel-app/resources/views/components/profile-media-header.blade.php b/app-modules/panel-app/resources/views/components/profile-media-header.blade.php index 66d6d2353..d10570033 100644 --- a/app-modules/panel-app/resources/views/components/profile-media-header.blade.php +++ b/app-modules/panel-app/resources/views/components/profile-media-header.blade.php @@ -14,29 +14,26 @@ class="group relative h-40 overflow-hidden rounded-t-xl sm:h-48" @mouseleave="hover = false" > @if ($coverPreviewUrl) -

    + @else
    @endif - - - + @if ($coverPreviewUrl) @endif - -
    - -

    nwY=vqzCA^>u*3o^X{gfjdRhXjAFPywW(3I@!& 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 XJ6fXxA;gbO8f; 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�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\yNpqMIH(0q&89Dd}0UyHD&vc)4ypXMc74k?O zX2{%>i@yRzad2TjE25~nnxgavcxa&Xtqdg&o8g|Hj~VsU)%WoT;3ltigK2F`+a%6$ z4`Xm;9LBdQkGXd*wy{V@@Xfl&u=ys=rf!FIW9(R9f#gGqw(1XR}|o=t0AiL zK+gl@9?UTpPiqgdRmY8f)Ie9`mvdJgPJJe(EKS)QmcbyHi?8@!p9SA?4A~x5x?$)$ zk441Bd5fs>#GOh61P}yNJ)uVTct^LPxFK2LhYmPS2bpkyZxKAwcHF7B*8h+hQ5=*m z#$|qAjdk3I;augBJax*}bteBkHcBfxnk(Y4MO=5dBgFeo2i3tIcC}Yr zjI$qKbjUHSG{99T!l|$(-qSZgWm?RW+T3*>IXC$Q)#@<@o=Xi`)lAl69DS?*`8z*5 zjTluakPY6{_8|xNfR(&gyfl$OfTi04Tm@1_cJwtFBoIvE1W=GsRn#X>*~NME+c%U4|{915+H&~LpJu# zv|=bLpDT}$>--=y4s#8X(22+~CLR!g(N$#f zec0UWWGmYz&g&y;3@a|s2j!B|iQ|fJxuHUtQDtQ_d=bWOJc{gzkB^_T@E3G%NK|

{{-- Bottom section: avatar + fields --}} @@ -82,10 +71,12 @@ class="flex h-full w-full items-center justify-center rounded-full border-4 bord
@endif - - - + @if ($avatarPreviewUrl) @endif - -
- -
diff --git a/app-modules/panel-app/resources/views/components/timeline/header.blade.php b/app-modules/panel-app/resources/views/components/timeline/header.blade.php index a01d3bf15..d1169a257 100644 --- a/app-modules/panel-app/resources/views/components/timeline/header.blade.php +++ b/app-modules/panel-app/resources/views/components/timeline/header.blade.php @@ -1,13 +1,24 @@ @props (['user' => null, 'pinned' => false, 'createdAt']) -@php($displayName = $user?->name ?? 'Usuário removido') +@php + $displayName = $user?->name ?? 'Usuário removido'; + $avatarUrl = $user?->getFirstMediaUrl('avatar') ?: null; +@endphp
-
- {{ str($displayName)->substr(0, 2)->upper() }} -
+ @if ($avatarUrl) + {{ $displayName }} + @else +
+ {{ str($displayName)->substr(0, 2)->upper() }} +
+ @endif
{{ $displayName }} diff --git a/app-modules/panel-app/resources/views/livewire/timeline/composer.blade.php b/app-modules/panel-app/resources/views/livewire/timeline/composer.blade.php index e876ef576..d770e08ca 100644 --- a/app-modules/panel-app/resources/views/livewire/timeline/composer.blade.php +++ b/app-modules/panel-app/resources/views/livewire/timeline/composer.blade.php @@ -4,15 +4,23 @@ class="overflow-hidden rounded-xl border border-gray-200 bg-white dark:border-wh >
- + @if ($this->avatarUrl) + + @else + + @endif
{{ $this->form }}
@@ -24,7 +32,7 @@ class="hidden h-10 w-10 shrink-0 items-center justify-center rounded-full bg-gra @click="showUpload = !showUpload" class="hover:bg-primary-500/10 hover:text-primary-500 rounded-full p-1.5 text-gray-400 transition dark:text-gray-500" :class="showUpload && 'text-primary-500 bg-primary-500/10'" - title="Adicionar imagens" + title="{{ __('panel-app::feed.composer.add_images') }}" > @@ -35,7 +43,7 @@ class="hover:bg-primary-500/10 hover:text-primary-500 rounded-full p-1.5 text-gr wire:loading.class="opacity-50" class="bg-primary-600 hover:bg-primary-500 rounded-lg px-4 py-1.5 text-xs font-semibold text-white transition disabled:cursor-not-allowed disabled:opacity-50" > - Postar + {{ __('panel-app::feed.composer.post') }}
diff --git a/app-modules/panel-app/resources/views/livewire/timeline/feed.blade.php b/app-modules/panel-app/resources/views/livewire/timeline/feed.blade.php index cea7457e1..087c1f51b 100644 --- a/app-modules/panel-app/resources/views/livewire/timeline/feed.blade.php +++ b/app-modules/panel-app/resources/views/livewire/timeline/feed.blade.php @@ -12,7 +12,7 @@
@empty
-

Nenhum post ainda. Seja o primeiro a compartilhar algo!

+

{{ __('panel-app::feed.empty') }}

@endforelse diff --git a/app-modules/panel-app/resources/views/livewire/timeline/post-show.blade.php b/app-modules/panel-app/resources/views/livewire/timeline/post-show.blade.php index eee4e5d3c..e351f0a8d 100644 --- a/app-modules/panel-app/resources/views/livewire/timeline/post-show.blade.php +++ b/app-modules/panel-app/resources/views/livewire/timeline/post-show.blade.php @@ -16,11 +16,20 @@ @foreach ($timeline->children->take(3) as $reply) @continue (!$reply->postable || !$reply->user)
-
- {{ str($reply->user->name)->substr(0, 2)->upper() }} -
+ @php($replyAvatarUrl = $reply->user->getFirstMediaUrl('avatar') ?: null) + @if ($replyAvatarUrl) + {{ $reply->user->name }} + @else +
+ {{ str($reply->user->name)->substr(0, 2)->upper() }} +
+ @endif
{{ $reply->user->name }} diff --git a/app-modules/panel-app/resources/views/pages/profile.blade.php b/app-modules/panel-app/resources/views/pages/profile.blade.php index 3ccd6abb3..e6a41c79c 100644 --- a/app-modules/panel-app/resources/views/pages/profile.blade.php +++ b/app-modules/panel-app/resources/views/pages/profile.blade.php @@ -1,6 +1,6 @@
- Preencha os campos e veja seu card sendo montado em tempo real + {{ __('panel-app::profile.page.subtitle') }}
diff --git a/app-modules/panel-app/src/Livewire/Timeline/Composer.php b/app-modules/panel-app/src/Livewire/Timeline/Composer.php index 2ba6551cb..818bf371c 100644 --- a/app-modules/panel-app/src/Livewire/Timeline/Composer.php +++ b/app-modules/panel-app/src/Livewire/Timeline/Composer.php @@ -13,6 +13,7 @@ use He4rt\Activity\Timeline\DTOs\CreatePostDTO; use He4rt\Identity\User\Models\User; use Illuminate\View\View; +use Livewire\Attributes\Computed; use Livewire\Component; /** @@ -36,7 +37,7 @@ public function form(Schema $schema): Schema ->components([ MarkdownEditor::make('content') ->hiddenLabel() - ->placeholder('O que está acontecendo?') + ->placeholder(__('panel-app::feed.composer.placeholder')) ->toolbarButtons([]) ->required() ->maxLength(5_000), @@ -75,6 +76,15 @@ public function post(): void $this->dispatch('timeline.post-created'); } + #[Computed] + public function avatarUrl(): ?string + { + /** @var User $user */ + $user = auth()->user(); + + return $user->getFirstMediaUrl('avatar') ?: null; + } + public function render(): View { return view('panel-app::livewire.timeline.composer'); diff --git a/app-modules/panel-app/src/Pages/ProfilePage.php b/app-modules/panel-app/src/Pages/ProfilePage.php index 6646285b9..350b4d02d 100644 --- a/app-modules/panel-app/src/Pages/ProfilePage.php +++ b/app-modules/panel-app/src/Pages/ProfilePage.php @@ -8,6 +8,7 @@ use BackedEnum; use Filament\Actions\Action; use Filament\Forms\Components\DatePicker; +use Filament\Forms\Components\FileUpload; use Filament\Forms\Components\Repeater; use Filament\Forms\Components\Select; use Filament\Forms\Components\Textarea; @@ -39,7 +40,6 @@ use He4rt\Profile\Models\Skill; use Illuminate\Support\Str; use Livewire\Attributes\Computed; -use Livewire\Attributes\Validate; use Livewire\Features\SupportFileUploads\TemporaryUploadedFile; use Livewire\WithFileUploads; @@ -53,14 +53,6 @@ class ProfilePage extends Page /** @var array|null */ public ?array $data = []; - /** @var TemporaryUploadedFile|null */ - #[Validate(rule: 'nullable|image|mimes:jpg,jpeg,png,webp|max:2048')] - public $avatarUpload; - - /** @var TemporaryUploadedFile|null */ - #[Validate(rule: 'nullable|image|mimes:jpg,jpeg,png,webp|max:4096')] - public $coverUpload; - protected static string|null|BackedEnum $navigationIcon = 'heroicon-o-user-circle'; protected static ?string $title = 'Profile'; @@ -415,7 +407,6 @@ public function save(): void resolve(SyncProfileSkills::class)->handle($profile, $this->repeaterToSkills($formData['skills'] ?? [])); - $this->saveMedia(); $this->form->saveRelationships(); Notification::make() @@ -424,6 +415,87 @@ public function save(): void ->send(); } + public function editAvatarAction(): Action + { + return Action::make('editAvatar') + ->label(__('panel-app::profile.actions.change_avatar')) + ->modalHeading(__('panel-app::profile.actions.change_avatar')) + ->modalSubmitActionLabel(__('panel-app::profile.actions.save_avatar')) + ->modalSubmitAction(fn (Action $action) => $action->color('primary')) + ->schema([ + FileUpload::make('avatar') + ->label(__('panel-app::profile.fields.avatar')) + ->avatar() + ->imageEditor() + ->circleCropper() + ->imageEditorAspectRatioOptions(['1:1']) + ->storeFiles(condition: false) + ->required() + ->maxSize(2_048), + ]) + ->action(function (array $data): void { + $avatar = $data['avatar'] ?? null; + + if (is_string($avatar)) { + $avatar = TemporaryUploadedFile::createFromLivewire($avatar); + } + + if (!$avatar instanceof TemporaryUploadedFile) { + return; + } + + $this->replaceMedia('avatar', $avatar); + + Notification::make() + ->success() + ->title(__('panel-app::profile.notifications.avatar_updated')) + ->send(); + }); + } + + public function editCoverAction(): Action + { + return Action::make('editCover') + ->label(__('panel-app::profile.actions.change_cover')) + ->modalHeading(__('panel-app::profile.actions.change_cover')) + ->modalSubmitActionLabel(__('panel-app::profile.actions.save_cover')) + ->modalSubmitAction(fn (Action $action) => $action->color('primary')) + ->schema([ + FileUpload::make('cover') + ->label(__('panel-app::profile.fields.cover')) + ->image() + ->panelAspectRatio('3:1') + ->imageEditor() + ->imageAspectRatio('3:1') + ->imageEditorAspectRatioOptions(['3:1']) + ->automaticallyCropImagesToAspectRatio() + ->automaticallyResizeImagesMode('cover') + ->automaticallyResizeImagesToWidth('1800') + ->automaticallyResizeImagesToHeight('600') + ->storeFiles(condition: false) + ->required() + ->maxSize(4_096), + ]) + ->action(function (array $data): void { + $cover = $data['cover'] ?? null; + + if (is_string($cover)) { + $cover = TemporaryUploadedFile::createFromLivewire($cover); + } + + if (!$cover instanceof TemporaryUploadedFile) { + return; + } + + $this->replaceMedia('cover', $cover); + + Notification::make() + ->success() + ->title(__('panel-app::profile.notifications.cover_updated')) + ->send(); + }); + } + public function getRecord(): Profile { return Profile::query() @@ -456,13 +528,8 @@ public function initials(): string #[Computed] public function avatarPreviewUrl(): ?string { - if ($this->avatarUpload instanceof TemporaryUploadedFile) { - /** @var string */ - return $this->avatarUpload->temporaryUrl(); - } - /** @var User $user */ - $user = auth()->user(); + $user = auth()->user()->fresh(); return $user->getFirstMediaUrl('avatar') ?: null; } @@ -470,49 +537,31 @@ public function avatarPreviewUrl(): ?string #[Computed] public function coverPreviewUrl(): ?string { - if ($this->coverUpload instanceof TemporaryUploadedFile) { - /** @var string */ - return $this->coverUpload->temporaryUrl(); - } - /** @var User $user */ - $user = auth()->user(); + $user = auth()->user()->fresh(); return $user->getFirstMediaUrl('cover') ?: null; } public function removeAvatar(): void { - $this->avatarUpload = null; auth()->user()->clearMediaCollection('avatar'); } public function removeCover(): void { - $this->coverUpload = null; auth()->user()->clearMediaCollection('cover'); } - private function saveMedia(): void + private function replaceMedia(string $collection, TemporaryUploadedFile $file): void { /** @var User $user */ $user = auth()->user(); - - if ($this->avatarUpload instanceof TemporaryUploadedFile) { - $user->clearMediaCollection('avatar'); - $user->addMedia($this->avatarUpload->getRealPath()) - ->usingFileName(Str::uuid()->toString().'.'.$this->avatarUpload->getClientOriginalExtension()) - ->toMediaCollection('avatar'); - $this->avatarUpload = null; - } - - if ($this->coverUpload instanceof TemporaryUploadedFile) { - $user->clearMediaCollection('cover'); - $user->addMedia($this->coverUpload->getRealPath()) - ->usingFileName(Str::uuid()->toString().'.'.$this->coverUpload->getClientOriginalExtension()) - ->toMediaCollection('cover'); - $this->coverUpload = null; - } + $extension = $file->getClientOriginalExtension() ?: $file->guessExtension() ?: 'jpg'; + $user->clearMediaCollection($collection); + $user->addMedia($file->getRealPath()) + ->usingFileName(Str::uuid()->toString().'.'.$extension) + ->toMediaCollection($collection); } /** diff --git a/app-modules/panel-app/tests/Feature/ProfilePageTest.php b/app-modules/panel-app/tests/Feature/ProfilePageTest.php index 906ca113b..23f01970f 100644 --- a/app-modules/panel-app/tests/Feature/ProfilePageTest.php +++ b/app-modules/panel-app/tests/Feature/ProfilePageTest.php @@ -12,13 +12,16 @@ use He4rt\Profile\Enums\StartAvailability; use He4rt\Profile\Models\Profile; use He4rt\Profile\Models\Skill; +use Illuminate\Http\UploadedFile; use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Http; +use Illuminate\Support\Facades\Storage; use function Pest\Livewire\livewire; beforeEach(function (): void { Cache::flush(); + Storage::fake(config()->string('filesystems.default')); Http::fake([ 'world.bmbc.cloud/api/countries*' => Http::response([ @@ -283,3 +286,31 @@ expect($experience->is_currently_working_here)->toBeTrue() ->and($experience->end_date)->toBeNull(); }); + +test('profile page uploads avatar through action modal', function (): void { + livewire(ProfilePage::class) + ->callAction('editAvatar', [ + 'avatar' => UploadedFile::fake()->image('avatar.jpg', 1_200, 1_200), + ]) + ->assertHasNoActionErrors() + ->assertNotified(); + + $media = $this->user->fresh()->getFirstMedia('avatar'); + + expect($media)->not->toBeNull() + ->and($media?->collection_name)->toBe('avatar'); +}); + +test('profile page uploads cover through action modal', function (): void { + livewire(ProfilePage::class) + ->callAction('editCover', [ + 'cover' => UploadedFile::fake()->image('cover.jpg', 1_800, 600), + ]) + ->assertHasNoActionErrors() + ->assertNotified(); + + $media = $this->user->fresh()->getFirstMedia('cover'); + + expect($media)->not->toBeNull() + ->and($media?->collection_name)->toBe('cover'); +}); diff --git a/resources/css/filament/app/theme.css b/resources/css/filament/app/theme.css index 5c4830ef6..0d56f1f59 100644 --- a/resources/css/filament/app/theme.css +++ b/resources/css/filament/app/theme.css @@ -48,6 +48,16 @@ } } +/* Force image editor save button to use primary (purple) instead of success (green) */ +.fi-fo-file-upload-editor-control-panel-footer .fi-btn.fi-color-success { + background-color: var(--primary-600) !important; + color: #fff !important; + + &:hover { + background-color: var(--primary-500) !important; + } +} + /* Keep user avatar circle visible against dark sidebar (default ui-avatars uses gray-950, which blends into dark mode) */ .fi-sidebar .fi-user-avatar { From 71a6ab1a666bf34644798a4672b7b481c9fa23a3 Mon Sep 17 00:00:00 2001 From: Gabriel Vieira <48625433+gvieira18@users.noreply.github.com> Date: Mon, 20 Jul 2026 21:41:53 -0300 Subject: [PATCH 19/46] build(vite): optimize production bundle (#439) ## Summary - Configure the Vite `build` block: terser JS minification, CSS minification, and per-package `manualChunks` (via `rolldownOptions`, since this repo runs Vite 8 + rolldown) for better long-term vendor caching. - Add `terser` as an explicit build dependency required by the terser minifier. - Bump ambient JS and PHP dependencies that were pending in the working tree. ## Test plan - [ ] `npm run build` completes without error and does not emit `terser not found` - [ ] Buildable output lands in `public/build/` and main screens still render --- composer.json | 20 +- composer.lock | 335 +++++++++++++------------- package-lock.json | 590 ++++++++++++++-------------------------------- package.json | 13 +- vite.config.js | 15 ++ 5 files changed, 380 insertions(+), 593 deletions(-) diff --git a/composer.json b/composer.json index da84afb2e..b0995ce7c 100644 --- a/composer.json +++ b/composer.json @@ -10,10 +10,10 @@ "require": { "php": "^8.4", "calebporzio/sushi": "^2.5.4", - "dedoc/scramble": "^0.13.32", - "filament/filament": "^5.6.8", - "filament/spatie-laravel-media-library-plugin": "^5.6.8", - "guzzlehttp/guzzle": "^7.14.0", + "dedoc/scramble": "^0.13.35", + "filament/filament": "^5.7.1", + "filament/spatie-laravel-media-library-plugin": "^5.7.1", + "guzzlehttp/guzzle": "^7.15.1", "he4rt/activity": "^1.0.0", "he4rt/bot-discord": "^1.0.0", "he4rt/community": "^1.0.0", @@ -37,7 +37,7 @@ "he4rt/squads": "^1.0.0", "internachi/modular": "^3.0.2", "laracord/framework": "dev-next#e7b64d6", - "laravel/framework": "^13.19.0", + "laravel/framework": "^13.20.0", "laravel/nightwatch": "^1.28.4", "laravel/sanctum": "^4.3.2", "laravel/telescope": "^5.20.0", @@ -46,12 +46,12 @@ "livewire/flux": "^2.15.0", "marvinlabs/laravel-discord-logger": "^1.4.4", "monicahq/laravel-cloudflare": "^4.1", - "owenvoke/blade-fontawesome": "^3.3.0", + "owenvoke/blade-fontawesome": "^3.3.1", "phiki/phiki": "^2.2", "ryangjchandler/commonmark-blade-block": "^1.1.1", "saloonphp/saloon": "^4.0", "spatie/laravel-backup": "^10.3.0", - "spatie/laravel-medialibrary": "^11.23.1", + "spatie/laravel-medialibrary": "^11.23.2", "symfony/dom-crawler": "^8.1.1", "symfony/yaml": "^8.1.1" }, @@ -60,20 +60,20 @@ "fakerphp/faker": "^1.24.1", "fruitcake/laravel-debugbar": "^4.4.0", "larastan/larastan": "^3.10.0", - "laravel/boost": "^2.4.12", + "laravel/boost": "^2.4.13", "laravel/pail": "^1.2.7", "laravel/pao": "^1.1.2", "laravel/pint": "^1.29.3", "mockery/mockery": "^1.6.12", "mrpunyapal/rector-pest": "^0.2.17", - "nunomaduro/collision": "^8.9.4", + "nunomaduro/collision": "^8.9.5", "pestphp/pest": "^4.7.5", "pestphp/pest-plugin-drift": "^4.1.0", "pestphp/pest-plugin-faker": "^4.0.0", "pestphp/pest-plugin-laravel": "^4.1.0", "pestphp/pest-plugin-livewire": "^4.1.0", "phpstan/extension-installer": "^1.4.3", - "rector/rector": "^2.5.5" + "rector/rector": "^2.5.7" }, "autoload": { "psr-4": { diff --git a/composer.lock b/composer.lock index ca03703ca..5a376ea72 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "a814ca5741d771d93852c30419c321fd", + "content-hash": "781185ac23ddcde1f4884f38debfd794", "packages": [ { "name": "anourvalar/eloquent-serialize", @@ -567,16 +567,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.5.12", + "version": "1.5.13", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "00a2f4201641d5c53f7fc0195e6c8d9fcc321a78" + "reference": "c008272789979f709f7fcb32c2ecf1d2db5e84e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/00a2f4201641d5c53f7fc0195e6c8d9fcc321a78", - "reference": "00a2f4201641d5c53f7fc0195e6c8d9fcc321a78", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/c008272789979f709f7fcb32c2ecf1d2db5e84e5", + "reference": "c008272789979f709f7fcb32c2ecf1d2db5e84e5", "shasum": "" }, "require": { @@ -623,7 +623,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.5.12" + "source": "https://github.com/composer/ca-bundle/tree/1.5.13" }, "funding": [ { @@ -635,7 +635,7 @@ "type": "github" } ], - "time": "2026-05-19T11:26:22+00:00" + "time": "2026-07-18T12:35:13+00:00" }, { "name": "composer/class-map-generator", @@ -1286,16 +1286,16 @@ }, { "name": "dedoc/scramble", - "version": "v0.13.32", + "version": "v0.13.35", "source": { "type": "git", "url": "https://github.com/dedoc/scramble.git", - "reference": "546a727720d4c38f2248e7c63b43178fbea7a96e" + "reference": "c072f731e060972134b6916ca6899609bacc0dd2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dedoc/scramble/zipball/546a727720d4c38f2248e7c63b43178fbea7a96e", - "reference": "546a727720d4c38f2248e7c63b43178fbea7a96e", + "url": "https://api.github.com/repos/dedoc/scramble/zipball/c072f731e060972134b6916ca6899609bacc0dd2", + "reference": "c072f731e060972134b6916ca6899609bacc0dd2", "shasum": "" }, "require": { @@ -1355,7 +1355,7 @@ ], "support": { "issues": "https://github.com/dedoc/scramble/issues", - "source": "https://github.com/dedoc/scramble/tree/v0.13.32" + "source": "https://github.com/dedoc/scramble/tree/v0.13.35" }, "funding": [ { @@ -1363,7 +1363,7 @@ "type": "github" } ], - "time": "2026-07-09T09:04:02+00:00" + "time": "2026-07-15T13:21:15+00:00" }, { "name": "dflydev/dot-access-data", @@ -2067,16 +2067,16 @@ }, { "name": "filament/actions", - "version": "v5.6.8", + "version": "v5.7.1", "source": { "type": "git", "url": "https://github.com/filamentphp/actions.git", - "reference": "1c479a47ee1612f7c05a7921b2491230aeed392c" + "reference": "f7568eeaf8c8459e3013208e65577a3954f0c6fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/actions/zipball/1c479a47ee1612f7c05a7921b2491230aeed392c", - "reference": "1c479a47ee1612f7c05a7921b2491230aeed392c", + "url": "https://api.github.com/repos/filamentphp/actions/zipball/f7568eeaf8c8459e3013208e65577a3954f0c6fc", + "reference": "f7568eeaf8c8459e3013208e65577a3954f0c6fc", "shasum": "" }, "require": { @@ -2112,20 +2112,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-02T08:19:13+00:00" + "time": "2026-07-17T11:48:10+00:00" }, { "name": "filament/filament", - "version": "v5.6.8", + "version": "v5.7.1", "source": { "type": "git", "url": "https://github.com/filamentphp/panels.git", - "reference": "c54ec7692245787057c24f82d92d9fee7bc24941" + "reference": "71a5faed128b50450e7f196ed47ca8eb856a4eba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/panels/zipball/c54ec7692245787057c24f82d92d9fee7bc24941", - "reference": "c54ec7692245787057c24f82d92d9fee7bc24941", + "url": "https://api.github.com/repos/filamentphp/panels/zipball/71a5faed128b50450e7f196ed47ca8eb856a4eba", + "reference": "71a5faed128b50450e7f196ed47ca8eb856a4eba", "shasum": "" }, "require": { @@ -2169,20 +2169,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-02T08:17:14+00:00" + "time": "2026-07-17T11:48:37+00:00" }, { "name": "filament/forms", - "version": "v5.6.8", + "version": "v5.7.1", "source": { "type": "git", "url": "https://github.com/filamentphp/forms.git", - "reference": "7e6e4e52a63f4fc11edb253201bdd8cbc7d956eb" + "reference": "436596bf1cb40bca5c8b80c4ff3c0c5773cc744b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/forms/zipball/7e6e4e52a63f4fc11edb253201bdd8cbc7d956eb", - "reference": "7e6e4e52a63f4fc11edb253201bdd8cbc7d956eb", + "url": "https://api.github.com/repos/filamentphp/forms/zipball/436596bf1cb40bca5c8b80c4ff3c0c5773cc744b", + "reference": "436596bf1cb40bca5c8b80c4ff3c0c5773cc744b", "shasum": "" }, "require": { @@ -2219,20 +2219,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-02T08:16:27+00:00" + "time": "2026-07-17T13:54:59+00:00" }, { "name": "filament/infolists", - "version": "v5.6.8", + "version": "v5.7.1", "source": { "type": "git", "url": "https://github.com/filamentphp/infolists.git", - "reference": "01152bfc7d5d2b65a83eb1045a8f3625d4eaeae7" + "reference": "6267d8a167a452d9be3537f1096aba19ef35b131" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/infolists/zipball/01152bfc7d5d2b65a83eb1045a8f3625d4eaeae7", - "reference": "01152bfc7d5d2b65a83eb1045a8f3625d4eaeae7", + "url": "https://api.github.com/repos/filamentphp/infolists/zipball/6267d8a167a452d9be3537f1096aba19ef35b131", + "reference": "6267d8a167a452d9be3537f1096aba19ef35b131", "shasum": "" }, "require": { @@ -2264,20 +2264,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-02T08:19:40+00:00" + "time": "2026-07-17T13:50:29+00:00" }, { "name": "filament/notifications", - "version": "v5.6.8", + "version": "v5.7.1", "source": { "type": "git", "url": "https://github.com/filamentphp/notifications.git", - "reference": "a2b4564d9c7fcb5b8e904da40b4f6c2782934071" + "reference": "40c21474fa34633e9bfeb517e8f7faba3b8dc7ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/notifications/zipball/a2b4564d9c7fcb5b8e904da40b4f6c2782934071", - "reference": "a2b4564d9c7fcb5b8e904da40b4f6c2782934071", + "url": "https://api.github.com/repos/filamentphp/notifications/zipball/40c21474fa34633e9bfeb517e8f7faba3b8dc7ce", + "reference": "40c21474fa34633e9bfeb517e8f7faba3b8dc7ce", "shasum": "" }, "require": { @@ -2311,20 +2311,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-02T08:08:59+00:00" + "time": "2026-07-17T11:49:10+00:00" }, { "name": "filament/query-builder", - "version": "v5.6.8", + "version": "v5.7.1", "source": { "type": "git", "url": "https://github.com/filamentphp/query-builder.git", - "reference": "401d0d61f5ead5d440f184857e1921675138fd5a" + "reference": "a60124f499f16a7a6c46279ce38948ae02be1ce9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/query-builder/zipball/401d0d61f5ead5d440f184857e1921675138fd5a", - "reference": "401d0d61f5ead5d440f184857e1921675138fd5a", + "url": "https://api.github.com/repos/filamentphp/query-builder/zipball/a60124f499f16a7a6c46279ce38948ae02be1ce9", + "reference": "a60124f499f16a7a6c46279ce38948ae02be1ce9", "shasum": "" }, "require": { @@ -2357,20 +2357,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-02T08:20:10+00:00" + "time": "2026-07-17T11:43:30+00:00" }, { "name": "filament/schemas", - "version": "v5.6.8", + "version": "v5.7.1", "source": { "type": "git", "url": "https://github.com/filamentphp/schemas.git", - "reference": "036549f1b6cbf3d908e1b9fa42f5e221d1db3240" + "reference": "6da87c7b80c6ee6388199810ff47d520522c4e9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/schemas/zipball/036549f1b6cbf3d908e1b9fa42f5e221d1db3240", - "reference": "036549f1b6cbf3d908e1b9fa42f5e221d1db3240", + "url": "https://api.github.com/repos/filamentphp/schemas/zipball/6da87c7b80c6ee6388199810ff47d520522c4e9e", + "reference": "6da87c7b80c6ee6388199810ff47d520522c4e9e", "shasum": "" }, "require": { @@ -2402,20 +2402,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-02T08:20:18+00:00" + "time": "2026-07-17T13:48:45+00:00" }, { "name": "filament/spatie-laravel-media-library-plugin", - "version": "v5.6.8", + "version": "v5.7.1", "source": { "type": "git", "url": "https://github.com/filamentphp/spatie-laravel-media-library-plugin.git", - "reference": "085dda340dd99dd350d9f8fd77015cd420d8b2d2" + "reference": "16d3c2b0a4a47fd03dfe5f448f6b3bb5a53b0587" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/spatie-laravel-media-library-plugin/zipball/085dda340dd99dd350d9f8fd77015cd420d8b2d2", - "reference": "085dda340dd99dd350d9f8fd77015cd420d8b2d2", + "url": "https://api.github.com/repos/filamentphp/spatie-laravel-media-library-plugin/zipball/16d3c2b0a4a47fd03dfe5f448f6b3bb5a53b0587", + "reference": "16d3c2b0a4a47fd03dfe5f448f6b3bb5a53b0587", "shasum": "" }, "require": { @@ -2439,20 +2439,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-05-22T07:42:50+00:00" + "time": "2026-07-17T11:47:27+00:00" }, { "name": "filament/support", - "version": "v5.6.8", + "version": "v5.7.1", "source": { "type": "git", "url": "https://github.com/filamentphp/support.git", - "reference": "024caa553010c2617bb90114eb0e78883e33138b" + "reference": "60fe88581e05640a6734fcf8cb589bce69e63ca8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/support/zipball/024caa553010c2617bb90114eb0e78883e33138b", - "reference": "024caa553010c2617bb90114eb0e78883e33138b", + "url": "https://api.github.com/repos/filamentphp/support/zipball/60fe88581e05640a6734fcf8cb589bce69e63ca8", + "reference": "60fe88581e05640a6734fcf8cb589bce69e63ca8", "shasum": "" }, "require": { @@ -2497,20 +2497,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-02T08:20:15+00:00" + "time": "2026-07-17T11:48:56+00:00" }, { "name": "filament/tables", - "version": "v5.6.8", + "version": "v5.7.1", "source": { "type": "git", "url": "https://github.com/filamentphp/tables.git", - "reference": "bfe49781b2879e0c1acdfd4065d1c8499ee7ba1a" + "reference": "5006e20108cbca1316ae1e1a080433e103685292" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/tables/zipball/bfe49781b2879e0c1acdfd4065d1c8499ee7ba1a", - "reference": "bfe49781b2879e0c1acdfd4065d1c8499ee7ba1a", + "url": "https://api.github.com/repos/filamentphp/tables/zipball/5006e20108cbca1316ae1e1a080433e103685292", + "reference": "5006e20108cbca1316ae1e1a080433e103685292", "shasum": "" }, "require": { @@ -2543,20 +2543,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-02T08:20:10+00:00" + "time": "2026-07-17T11:43:57+00:00" }, { "name": "filament/widgets", - "version": "v5.6.8", + "version": "v5.7.1", "source": { "type": "git", "url": "https://github.com/filamentphp/widgets.git", - "reference": "329c92e8560536fd6dd738b45eaf6ba063cd53ea" + "reference": "263d17cf523d24d70f17c2fa794742a16903c17f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/widgets/zipball/329c92e8560536fd6dd738b45eaf6ba063cd53ea", - "reference": "329c92e8560536fd6dd738b45eaf6ba063cd53ea", + "url": "https://api.github.com/repos/filamentphp/widgets/zipball/263d17cf523d24d70f17c2fa794742a16903c17f", + "reference": "263d17cf523d24d70f17c2fa794742a16903c17f", "shasum": "" }, "require": { @@ -2587,7 +2587,7 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-02T08:19:55+00:00" + "time": "2026-07-17T11:44:15+00:00" }, { "name": "fruitcake/php-cors", @@ -2724,22 +2724,22 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.14.0", + "version": "7.15.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "aef242412e13128b5049864867bb49fc37dd39de" + "reference": "61443dfb33c62f308ee8add20f45b4d6e4bf8d2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/aef242412e13128b5049864867bb49fc37dd39de", - "reference": "aef242412e13128b5049864867bb49fc37dd39de", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/61443dfb33c62f308ee8add20f45b4d6e4bf8d2f", + "reference": "61443dfb33c62f308ee8add20f45b4d6e4bf8d2f", "shasum": "" }, "require": { "ext-json": "*", "guzzlehttp/promises": "^2.5.1", - "guzzlehttp/psr7": "^2.12.4", + "guzzlehttp/psr7": "^2.13", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.5 || ^3.0", @@ -2752,7 +2752,7 @@ "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", "guzzle/client-integration-tests": "3.0.3", - "guzzlehttp/test-server": "^0.6", + "guzzlehttp/test-server": "^0.7", "php-http/message-factory": "^1.1", "phpunit/phpunit": "^8.5.52 || ^9.6.34", "psr/log": "^1.1 || ^2.0 || ^3.0" @@ -2832,7 +2832,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.14.0" + "source": "https://github.com/guzzle/guzzle/tree/7.15.1" }, "funding": [ { @@ -2848,7 +2848,7 @@ "type": "tidelift" } ], - "time": "2026-07-08T22:54:09+00:00" + "time": "2026-07-18T11:23:11+00:00" }, { "name": "guzzlehttp/promises", @@ -2936,16 +2936,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.12.4", + "version": "2.13.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "51e27f9e2b332ab3e72f4520d5ff4f3c68c3577c" + "reference": "dad89620b7a6edb60c15858442eb2e408b45d8f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/51e27f9e2b332ab3e72f4520d5ff4f3c68c3577c", - "reference": "51e27f9e2b332ab3e72f4520d5ff4f3c68c3577c", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/dad89620b7a6edb60c15858442eb2e408b45d8f4", + "reference": "dad89620b7a6edb60c15858442eb2e408b45d8f4", "shasum": "" }, "require": { @@ -3035,7 +3035,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.12.4" + "source": "https://github.com/guzzle/psr7/tree/2.13.0" }, "funding": [ { @@ -3051,20 +3051,20 @@ "type": "tidelift" } ], - "time": "2026-07-08T15:56:20+00:00" + "time": "2026-07-16T22:23:49+00:00" }, { "name": "guzzlehttp/uri-template", - "version": "v1.0.9", + "version": "v1.0.10", "source": { "type": "git", "url": "https://github.com/guzzle/uri-template.git", - "reference": "d7580af6d3f8384325d9cd3e99b21c3ed1848176" + "reference": "f6c24c21f42b990e9a58912b332d0874df6ba839" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/uri-template/zipball/d7580af6d3f8384325d9cd3e99b21c3ed1848176", - "reference": "d7580af6d3f8384325d9cd3e99b21c3ed1848176", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/f6c24c21f42b990e9a58912b332d0874df6ba839", + "reference": "f6c24c21f42b990e9a58912b332d0874df6ba839", "shasum": "" }, "require": { @@ -3121,7 +3121,7 @@ ], "support": { "issues": "https://github.com/guzzle/uri-template/issues", - "source": "https://github.com/guzzle/uri-template/tree/v1.0.9" + "source": "https://github.com/guzzle/uri-template/tree/v1.0.10" }, "funding": [ { @@ -3137,7 +3137,7 @@ "type": "tidelift" } ], - "time": "2026-07-08T16:19:22+00:00" + "time": "2026-07-17T13:53:03+00:00" }, { "name": "he4rt/activity", @@ -4302,16 +4302,16 @@ }, { "name": "laravel/framework", - "version": "v13.19.0", + "version": "v13.20.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "514502b38e11bd676ecf83b271c9452cc7500f16" + "reference": "b9d1bccad5fbc32578dca22566bb11e7c0e545d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/514502b38e11bd676ecf83b271c9452cc7500f16", - "reference": "514502b38e11bd676ecf83b271c9452cc7500f16", + "url": "https://api.github.com/repos/laravel/framework/zipball/b9d1bccad5fbc32578dca22566bb11e7c0e545d7", + "reference": "b9d1bccad5fbc32578dca22566bb11e7c0e545d7", "shasum": "" }, "require": { @@ -4390,6 +4390,7 @@ "illuminate/filesystem": "self.version", "illuminate/hashing": "self.version", "illuminate/http": "self.version", + "illuminate/image": "self.version", "illuminate/json-schema": "self.version", "illuminate/log": "self.version", "illuminate/macroable": "self.version", @@ -4416,6 +4417,7 @@ "ext-gmp": "*", "fakerphp/faker": "^1.24", "guzzlehttp/psr7": "^2.9", + "intervention/image": "^4.0", "laravel/pint": "^1.18", "league/flysystem-aws-s3-v3": "^3.25.1", "league/flysystem-ftp": "^3.25.1", @@ -4452,6 +4454,7 @@ "ext-redis": "Required to use the Redis cache and queue drivers (^4.0 || ^5.0 || ^6.0).", "fakerphp/faker": "Required to generate fake data using the fake() helper (^1.23).", "filp/whoops": "Required for friendly error pages in development (^2.14.3).", + "intervention/image": "Required to use the image processing features (^4.0).", "laravel/tinker": "Required to use the tinker console command (^2.0).", "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.25.1).", "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.25.1).", @@ -4522,7 +4525,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-07-07T14:13:33+00:00" + "time": "2026-07-14T14:22:22+00:00" }, { "name": "laravel/nightwatch", @@ -4997,16 +5000,16 @@ }, { "name": "league/commonmark", - "version": "2.8.2", + "version": "2.8.3", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "59fb075d2101740c337c7216e3f32b36c204218b" + "reference": "1902f60f984235023acbe03db6ad614a37b3c3e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/59fb075d2101740c337c7216e3f32b36c204218b", - "reference": "59fb075d2101740c337c7216e3f32b36c204218b", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/1902f60f984235023acbe03db6ad614a37b3c3e7", + "reference": "1902f60f984235023acbe03db6ad614a37b3c3e7", "shasum": "" }, "require": { @@ -5028,8 +5031,8 @@ "github/gfm": "0.29.0", "michelf/php-markdown": "^1.4 || ^2.0", "nyholm/psr7": "^1.5", - "phpstan/phpstan": "^1.8.2", - "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", + "phpstan/phpstan": "^2.0.0", + "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0 || ^12.0.0 || ^13.0.0", "scrutinizer/ocular": "^1.8.1", "symfony/finder": "^5.3 | ^6.0 | ^7.0 || ^8.0", "symfony/process": "^5.4 | ^6.0 | ^7.0 || ^8.0", @@ -5100,7 +5103,7 @@ "type": "tidelift" } ], - "time": "2026-03-19T13:16:38+00:00" + "time": "2026-07-12T15:29:16+00:00" }, { "name": "league/config", @@ -5458,16 +5461,16 @@ }, { "name": "league/mime-type-detection", - "version": "1.16.0", + "version": "1.17.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9" + "reference": "f5f47eff7c48ed1003069a2ca67f316fb4021c76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/2d6702ff215bf922936ccc1ad31007edc76451b9", - "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/f5f47eff7c48ed1003069a2ca67f316fb4021c76", + "reference": "f5f47eff7c48ed1003069a2ca67f316fb4021c76", "shasum": "" }, "require": { @@ -5477,7 +5480,7 @@ "require-dev": { "friendsofphp/php-cs-fixer": "^3.2", "phpstan/phpstan": "^0.12.68", - "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" + "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0 || ^11.0 || ^12.0" }, "type": "library", "autoload": { @@ -5498,7 +5501,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.16.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.17.0" }, "funding": [ { @@ -5510,7 +5513,7 @@ "type": "tidelift" } ], - "time": "2024-09-21T08:32:55+00:00" + "time": "2026-07-09T11:49:27+00:00" }, { "name": "league/uri", @@ -6393,16 +6396,16 @@ }, { "name": "nesbot/carbon", - "version": "3.13.0", + "version": "3.13.1", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "40f6618f052df16b545f626fbf9a878e6497d16a" + "reference": "2937ad3d1d2c506fd2bc97d571438a95641f44e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/40f6618f052df16b545f626fbf9a878e6497d16a", - "reference": "40f6618f052df16b545f626fbf9a878e6497d16a", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/2937ad3d1d2c506fd2bc97d571438a95641f44e2", + "reference": "2937ad3d1d2c506fd2bc97d571438a95641f44e2", "shasum": "" }, "require": { @@ -6494,7 +6497,7 @@ "type": "tidelift" } ], - "time": "2026-06-18T13:49:15+00:00" + "time": "2026-07-09T18:23:49+00:00" }, { "name": "nette/php-generator", @@ -6639,16 +6642,16 @@ }, { "name": "nette/utils", - "version": "v4.1.4", + "version": "v4.1.5", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "7da6c396d7ebe142bc857c20479d5e70a5e1aac7" + "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/7da6c396d7ebe142bc857c20479d5e70a5e1aac7", - "reference": "7da6c396d7ebe142bc857c20479d5e70a5e1aac7", + "url": "https://api.github.com/repos/nette/utils/zipball/b043439dbdf954e6c28b5ea7e34b0100f83165e0", + "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0", "shasum": "" }, "require": { @@ -6668,7 +6671,7 @@ }, "suggest": { "ext-gd": "to use Image", - "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-iconv": "to use Strings::chr(), ord() and reverse()", "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", "ext-json": "to use Nette\\Utils\\Json", "ext-mbstring": "to use Strings::lower() etc...", @@ -6724,9 +6727,9 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.1.4" + "source": "https://github.com/nette/utils/tree/v4.1.5" }, - "time": "2026-05-11T20:49:54+00:00" + "time": "2026-07-17T23:02:45+00:00" }, { "name": "nikic/php-parser", @@ -6967,16 +6970,16 @@ }, { "name": "owenvoke/blade-fontawesome", - "version": "v3.3.0", + "version": "v3.3.1", "source": { "type": "git", "url": "https://github.com/owenvoke/blade-fontawesome.git", - "reference": "b155b249742a49931c60a05cf43d33bc3f7c098e" + "reference": "e1f679a1da22e75bdad9fe19865c3b0bff83c5e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/owenvoke/blade-fontawesome/zipball/b155b249742a49931c60a05cf43d33bc3f7c098e", - "reference": "b155b249742a49931c60a05cf43d33bc3f7c098e", + "url": "https://api.github.com/repos/owenvoke/blade-fontawesome/zipball/e1f679a1da22e75bdad9fe19865c3b0bff83c5e3", + "reference": "e1f679a1da22e75bdad9fe19865c3b0bff83c5e3", "shasum": "" }, "require": { @@ -7011,7 +7014,7 @@ "description": "A package to easily make use of Font Awesome in your Laravel Blade views", "support": { "issues": "https://github.com/owenvoke/blade-fontawesome/issues", - "source": "https://github.com/owenvoke/blade-fontawesome/tree/v3.3.0" + "source": "https://github.com/owenvoke/blade-fontawesome/tree/v3.3.1" }, "funding": [ { @@ -7023,7 +7026,7 @@ "type": "github" } ], - "time": "2026-06-26T07:46:10+00:00" + "time": "2026-07-16T08:22:20+00:00" }, { "name": "paragonie/constant_time_encoding", @@ -10208,16 +10211,16 @@ }, { "name": "spatie/laravel-medialibrary", - "version": "11.23.1", + "version": "11.23.2", "source": { "type": "git", "url": "https://github.com/spatie/laravel-medialibrary.git", - "reference": "143106b61b945f1ca815e6a71598c03881469228" + "reference": "cc1fdc4a9a9007101df610cd4a6733be71db4828" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-medialibrary/zipball/143106b61b945f1ca815e6a71598c03881469228", - "reference": "143106b61b945f1ca815e6a71598c03881469228", + "url": "https://api.github.com/repos/spatie/laravel-medialibrary/zipball/cc1fdc4a9a9007101df610cd4a6733be71db4828", + "reference": "cc1fdc4a9a9007101df610cd4a6733be71db4828", "shasum": "" }, "require": { @@ -10302,7 +10305,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-medialibrary/issues", - "source": "https://github.com/spatie/laravel-medialibrary/tree/11.23.1" + "source": "https://github.com/spatie/laravel-medialibrary/tree/11.23.2" }, "funding": [ { @@ -10314,7 +10317,7 @@ "type": "github" } ], - "time": "2026-06-24T08:31:39+00:00" + "time": "2026-07-09T13:26:15+00:00" }, { "name": "spatie/laravel-package-tools", @@ -13667,16 +13670,16 @@ }, { "name": "team-reflex/discord-php", - "version": "v10.51.0", + "version": "v10.52.2", "source": { "type": "git", "url": "https://github.com/discord-php/DiscordPHP.git", - "reference": "02f7c48e5e1af09564f77b70efed429acc52d96f" + "reference": "439ea7113f1180db3f9252989e8a34e426a840d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/discord-php/DiscordPHP/zipball/02f7c48e5e1af09564f77b70efed429acc52d96f", - "reference": "02f7c48e5e1af09564f77b70efed429acc52d96f", + "url": "https://api.github.com/repos/discord-php/DiscordPHP/zipball/439ea7113f1180db3f9252989e8a34e426a840d2", + "reference": "439ea7113f1180db3f9252989e8a34e426a840d2", "shasum": "" }, "require": { @@ -13748,7 +13751,7 @@ "chat": "https://discord.gg/dphp", "docs": "https://discord-php.github.io/DiscordPHP/", "issues": "https://github.com/discord-php/DiscordPHP/issues", - "source": "https://github.com/discord-php/DiscordPHP/tree/v10.51.0", + "source": "https://github.com/discord-php/DiscordPHP/tree/v10.52.2", "wiki": "https://github.com/discord-php/DiscordPHP/wiki" }, "funding": [ @@ -13769,7 +13772,7 @@ "type": "patreon" } ], - "time": "2026-07-01T05:08:27+00:00" + "time": "2026-07-17T13:36:19+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -14884,16 +14887,16 @@ }, { "name": "laravel/boost", - "version": "v2.4.12", + "version": "v2.4.13", "source": { "type": "git", "url": "https://github.com/laravel/boost.git", - "reference": "d43bdf901fee8d216145cb062c9847c892844908" + "reference": "f55e08f5afa89ac72f23f574175005b67878f466" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/boost/zipball/d43bdf901fee8d216145cb062c9847c892844908", - "reference": "d43bdf901fee8d216145cb062c9847c892844908", + "url": "https://api.github.com/repos/laravel/boost/zipball/f55e08f5afa89ac72f23f574175005b67878f466", + "reference": "f55e08f5afa89ac72f23f574175005b67878f466", "shasum": "" }, "require": { @@ -14902,7 +14905,7 @@ "illuminate/contracts": "^11.45.3|^12.41.1|^13.0", "illuminate/routing": "^11.45.3|^12.41.1|^13.0", "illuminate/support": "^11.45.3|^12.41.1|^13.0", - "laravel/mcp": "^0.7.1|^0.8.0", + "laravel/mcp": "^0.7.1|^0.8.0|^0.9.0", "laravel/prompts": "^0.3.10", "laravel/roster": "^0.5.0", "php": "^8.2" @@ -14946,20 +14949,20 @@ "issues": "https://github.com/laravel/boost/issues", "source": "https://github.com/laravel/boost" }, - "time": "2026-07-08T09:53:34+00:00" + "time": "2026-07-17T14:28:57+00:00" }, { "name": "laravel/mcp", - "version": "v0.8.2", + "version": "v0.9.0", "source": { "type": "git", "url": "https://github.com/laravel/mcp.git", - "reference": "0c32bf369c6432cab21458f9f4479da33a49ba37" + "reference": "3d365d5db3493c806d190f3404cd7431634ca4e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/mcp/zipball/0c32bf369c6432cab21458f9f4479da33a49ba37", - "reference": "0c32bf369c6432cab21458f9f4479da33a49ba37", + "url": "https://api.github.com/repos/laravel/mcp/zipball/3d365d5db3493c806d190f3404cd7431634ca4e1", + "reference": "3d365d5db3493c806d190f3404cd7431634ca4e1", "shasum": "" }, "require": { @@ -15020,7 +15023,7 @@ "issues": "https://github.com/laravel/mcp/issues", "source": "https://github.com/laravel/mcp" }, - "time": "2026-06-25T14:00:45+00:00" + "time": "2026-07-16T17:16:38+00:00" }, { "name": "laravel/pail", @@ -15469,23 +15472,23 @@ }, { "name": "nunomaduro/collision", - "version": "v8.9.4", + "version": "v8.9.5", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "716af8f95a470e9094cfca09ed897b023be191a5" + "reference": "fb53eacd509a1d303858e2d20cfebf2d630254ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/716af8f95a470e9094cfca09ed897b023be191a5", - "reference": "716af8f95a470e9094cfca09ed897b023be191a5", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/fb53eacd509a1d303858e2d20cfebf2d630254ec", + "reference": "fb53eacd509a1d303858e2d20cfebf2d630254ec", "shasum": "" }, "require": { "filp/whoops": "^2.18.4", "nunomaduro/termwind": "^2.4.0", "php": "^8.2.0", - "symfony/console": "^7.4.8 || ^8.0.8" + "symfony/console": "^7.4.14 || ^8.1.1" }, "conflict": { "laravel/framework": "<11.48.0 || >=14.0.0", @@ -15493,12 +15496,12 @@ }, "require-dev": { "brianium/paratest": "^7.8.5", - "larastan/larastan": "^3.9.6", - "laravel/framework": "^11.48.0 || ^12.56.0 || ^13.5.0", - "laravel/pint": "^1.29.1", - "orchestra/testbench-core": "^9.12.0 || ^10.12.1 || ^11.2.1", - "pestphp/pest": "^3.8.5 || ^4.4.3 || ^5.0.0", - "sebastian/environment": "^7.2.1 || ^8.0.4 || ^9.3.0" + "larastan/larastan": "^3.10.0", + "laravel/framework": "^11.48.0 || ^12.56.0 || ^13.20.0", + "laravel/pint": "^1.29.3", + "orchestra/testbench-core": "^9.12.0 || ^10.12.1 || ^11.3.5", + "pestphp/pest": "^3.8.5 || ^4.7.5 || ^5.0.0", + "sebastian/environment": "^7.2.1 || ^8.1.2 || ^9.3.2" }, "type": "library", "extra": { @@ -15561,7 +15564,7 @@ "type": "patreon" } ], - "time": "2026-04-21T14:04:20+00:00" + "time": "2026-07-15T19:09:14+00:00" }, { "name": "pestphp/pest", @@ -17239,16 +17242,16 @@ }, { "name": "rector/rector", - "version": "2.5.5", + "version": "2.5.7", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "9718a72e7f1aacacbdcb6eeed07a47147bce802e" + "reference": "ba22f8c087848278fed6b4910d4cf1108096d8d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/9718a72e7f1aacacbdcb6eeed07a47147bce802e", - "reference": "9718a72e7f1aacacbdcb6eeed07a47147bce802e", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/ba22f8c087848278fed6b4910d4cf1108096d8d3", + "reference": "ba22f8c087848278fed6b4910d4cf1108096d8d3", "shasum": "" }, "require": { @@ -17287,7 +17290,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/2.5.5" + "source": "https://github.com/rectorphp/rector/tree/2.5.7" }, "funding": [ { @@ -17295,7 +17298,7 @@ "type": "github" } ], - "time": "2026-07-09T09:48:44+00:00" + "time": "2026-07-13T15:24:18+00:00" }, { "name": "sebastian/cli-parser", diff --git a/package-lock.json b/package-lock.json index 72e833fba..a70abea22 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,16 +12,17 @@ "@emnapi/core": "1.11.2", "@emnapi/runtime": "1.11.2", "@tailwindcss/typography": "0.5.20", - "@tailwindcss/vite": "4.3.2", + "@tailwindcss/vite": "4.3.3", "concurrently": "10.0.3", "husky": "9.1.7", - "laravel-vite-plugin": "3.1.0", - "lint-staged": "17.0.8", + "laravel-vite-plugin": "3.1.3", + "lint-staged": "17.1.0", "npm-check-updates": "22.2.9", - "prettier": "3.9.4", - "tailwindcss": "4.3.2", + "prettier": "3.9.5", + "tailwindcss": "4.3.3", + "terser": "5.49.0", "tw-animate-css": "1.4.0", - "vite": "8.1.4" + "vite": "8.1.5" }, "engines": { "node": "^24" @@ -92,6 +93,17 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", @@ -427,49 +439,49 @@ "license": "MIT" }, "node_modules/@tailwindcss/node": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.2.tgz", - "integrity": "sha512-yWP/sqEcBLaD8JuA6zNwxoYKr75qxTioYwlRwekj5Jr/I5GXnoJfjetH/psLUIv74cYTH2lBUEzBkinthoYcBg==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.3.tgz", + "integrity": "sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.5", - "enhanced-resolve": "5.21.6", + "enhanced-resolve": "^5.24.1", "jiti": "^2.7.0", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", - "tailwindcss": "4.3.2" + "tailwindcss": "4.3.3" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.2.tgz", - "integrity": "sha512-z8ZgnzX8gdNoWLBLqBPoh/sjnxkwvf9ZuWjnO0l0yIzbLa5/9S+eC5QxGZKRobVHIC3/1BoMWjHblqWjcgFgag==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.3.tgz", + "integrity": "sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==", "dev": true, "license": "MIT", "engines": { "node": ">= 20" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.3.2", - "@tailwindcss/oxide-darwin-arm64": "4.3.2", - "@tailwindcss/oxide-darwin-x64": "4.3.2", - "@tailwindcss/oxide-freebsd-x64": "4.3.2", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.2", - "@tailwindcss/oxide-linux-arm64-gnu": "4.3.2", - "@tailwindcss/oxide-linux-arm64-musl": "4.3.2", - "@tailwindcss/oxide-linux-x64-gnu": "4.3.2", - "@tailwindcss/oxide-linux-x64-musl": "4.3.2", - "@tailwindcss/oxide-wasm32-wasi": "4.3.2", - "@tailwindcss/oxide-win32-arm64-msvc": "4.3.2", - "@tailwindcss/oxide-win32-x64-msvc": "4.3.2" + "@tailwindcss/oxide-android-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-x64": "4.3.3", + "@tailwindcss/oxide-freebsd-x64": "4.3.3", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.3", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.3", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-x64-musl": "4.3.3", + "@tailwindcss/oxide-wasm32-wasi": "4.3.3", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.3", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.3" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.2.tgz", - "integrity": "sha512-WHxqIuHpvZ5VtdX6GTl1Ik/Vp2YuN42Et+0CdeaVd/frQ9jAvGmvR8vLT+jk3e8/Q3x8kECB9+R17pgpp2BulA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.3.tgz", + "integrity": "sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==", "cpu": [ "arm64" ], @@ -484,9 +496,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.2.tgz", - "integrity": "sha512-GZypeUY/IDJW3877KeM+O67vbXr3MBnbtEL4aYhNErv/JWZhye2vGSWWG9tB6iiqR2MqRNkY8IOUy4NdSZV26w==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.3.tgz", + "integrity": "sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==", "cpu": [ "arm64" ], @@ -501,9 +513,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.2.tgz", - "integrity": "sha512-UIIzmefR6KO1sDU7MzRqAxC8iBpft/VhkGjTjnhoS6k7Z3rQ9wEgA1ODSiyH/tcSYssulNm4Ci3hOeK1jH7ccQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.3.tgz", + "integrity": "sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==", "cpu": [ "x64" ], @@ -518,9 +530,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.2.tgz", - "integrity": "sha512-GN+uAmcI6DNspnCDwtOAZrTz6oukJnp337qZvxqCGLd3BHBzJpO0ZbTLRvJNdztOeAmTzewewGIMPb0tk2R4WA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.3.tgz", + "integrity": "sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==", "cpu": [ "x64" ], @@ -535,9 +547,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.2.tgz", - "integrity": "sha512-4ABn7qSbdHRwTiDiuWNegCyb5+2FJ4vKIKc3DmKrvAFw7MU1Lm11dIkTPwUaFdTzc7IsOpDbqBrlh0x6y36U/w==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.3.tgz", + "integrity": "sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==", "cpu": [ "arm" ], @@ -552,9 +564,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.2.tgz", - "integrity": "sha512-wDgEIGwoM8w8pufh9LVt1PahDgNdKXrLC2qfAnV3vAmococ9RWbxeAw4pxPttd/TsJfwjyLf90Dg1y9y8I6Emw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.3.tgz", + "integrity": "sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==", "cpu": [ "arm64" ], @@ -569,9 +581,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.2.tgz", - "integrity": "sha512-J5Nuk0uZQIiMTJj3LEx4sAA9tMFUoXQZFv1J6An+QGYe53HKRJuFDi0rpq/tuouCZeAbOBY3kQ6g8qeD4TUjtA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.3.tgz", + "integrity": "sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==", "cpu": [ "arm64" ], @@ -586,9 +598,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.2.tgz", - "integrity": "sha512-kqCZpSKOBEJO4mz7OqWoofBZeXTAwaVGPj0ErAj7CojmhKpWVWVOnrt9dE8odoIraZq4oj3ausM37kXi+Tow8w==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.3.tgz", + "integrity": "sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==", "cpu": [ "x64" ], @@ -603,9 +615,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.2.tgz", - "integrity": "sha512-cixpqbh2toJDmkuCRI68nXA8ZxNmdK9Y+9v5h3MC3ZQKy/0BO8AWzlkWyRM7JAFSGBlfig4YVTPsK6MVgqz1uw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.3.tgz", + "integrity": "sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==", "cpu": [ "x64" ], @@ -620,9 +632,9 @@ } }, "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.2.tgz", - "integrity": "sha512-4ec2Z/LOmRsAgU23CS4xeJfcJlmRg94A/XrbGRCF1gyU/zdDfRLYDVsS+ynSZCmGNxQ1jQriQOKMQeQxBA3Isw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.3.tgz", + "integrity": "sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==", "bundleDependencies": [ "@napi-rs/wasm-runtime", "@emnapi/core", @@ -650,9 +662,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.2.tgz", - "integrity": "sha512-Zyr/M0+XcYZu3bZrUytc7TXvrk0ftWfl8gN2MwekNDzhqhKRUucMPSeOzM0o0wH5AWOU49BsKRrfKxI2atCPMQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.3.tgz", + "integrity": "sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==", "cpu": [ "arm64" ], @@ -667,9 +679,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.2.tgz", - "integrity": "sha512-QI9BO7KlNZsp2GuO0jwAAj5jCDABOKXRkCk2XuKTSaNEFSdfzqswYVTtCHBNKHLsqyjFyFkqlDiwkNbTYSssMQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.3.tgz", + "integrity": "sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==", "cpu": [ "x64" ], @@ -697,15 +709,15 @@ } }, "node_modules/@tailwindcss/vite": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.2.tgz", - "integrity": "sha512-eHpMeX4JXfVNJDEcsouTeCBubJBTcTLigeaw/NTUW6PB5ATKKXdyonnXgTBX2VuRbjz1hjfz6C5XAhr52ImQXA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.3.tgz", + "integrity": "sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw==", "dev": true, "license": "MIT", "dependencies": { - "@tailwindcss/node": "4.3.2", - "@tailwindcss/oxide": "4.3.2", - "tailwindcss": "4.3.2" + "@tailwindcss/node": "4.3.3", + "@tailwindcss/oxide": "4.3.3", + "tailwindcss": "4.3.3" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" @@ -722,20 +734,17 @@ "tslib": "^2.4.0" } }, - "node_modules/ansi-escapes": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.3.0.tgz", - "integrity": "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==", + "node_modules/acorn": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", + "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", "dev": true, "license": "MIT", - "dependencies": { - "environment": "^1.0.0" + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.4.0" } }, "node_modules/ansi-regex": { @@ -764,6 +773,13 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, "node_modules/chalk": { "version": "5.6.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", @@ -777,39 +793,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-5.2.0.tgz", - "integrity": "sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "slice-ansi": "^8.0.0", - "string-width": "^8.2.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cliui": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", @@ -825,41 +808,12 @@ "node": ">=20" } }, - "node_modules/cliui/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", - "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } + "license": "MIT" }, "node_modules/concurrently": { "version": "10.0.3", @@ -917,9 +871,9 @@ "license": "MIT" }, "node_modules/enhanced-resolve": { - "version": "5.21.6", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.6.tgz", - "integrity": "sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==", + "version": "5.24.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.3.tgz", + "integrity": "sha512-PwKooW9JUzh5chmYfHM3IQl5OkK2u2Nm011MgeZrss3JmFraUx/fqrf78kk8GUMYoibx/14MdwTl/1WKkG7TpQ==", "dev": true, "license": "MIT", "dependencies": { @@ -930,19 +884,6 @@ "node": ">=10.13.0" } }, - "node_modules/environment": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", - "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -953,13 +894,6 @@ "node": ">=6" } }, - "node_modules/eventemitter3": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", - "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", - "dev": true, - "license": "MIT" - }, "node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", @@ -1039,22 +973,6 @@ "url": "https://github.com/sponsors/typicode" } }, - "node_modules/is-fullwidth-code-point": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", - "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.3.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/jiti": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", @@ -1066,9 +984,9 @@ } }, "node_modules/laravel-vite-plugin": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-3.1.0.tgz", - "integrity": "sha512-Fzocl+X4eQ9jOi0RwdphYRGkUbPJ3ky1pTAST5Ot18cS2gw6d2vldK2eCrlKDVjtibCjCx5qptYDlA0373n7qg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-3.1.3.tgz", + "integrity": "sha512-cI5Anw4QHY+UzvZczFaj+j8NhwT2FtyEN8aqS/hOdt6DpEFBsn6x3GENxALem3cc+TsGvd9MacneimEvShvKMA==", "dev": true, "license": "MIT", "dependencies": { @@ -1083,7 +1001,7 @@ "node": "^20.19.0 || >=22.12.0" }, "peerDependencies": { - "fontaine": "^0.5.0", + "fontaine": "^0.8.0", "vite": "^8.0.0" }, "peerDependenciesMeta": { @@ -1354,14 +1272,13 @@ } }, "node_modules/lint-staged": { - "version": "17.0.8", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-17.0.8.tgz", - "integrity": "sha512-B2P/d+jVW0UXOQ0MVMLrB/9ydA1P+zz6jYfdrbbEd9ur3S2rcbduFWKiUCC02Sm5hbC8nrm7y24WuYMG54HfxA==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-17.1.0.tgz", + "integrity": "sha512-d7UQRu/9ZPgfu4+hu/k0wny5GEaIxo+2jb2LJqQDkE7cHRTm1HGqNUDq5UOwsGPpjpaNAFmgAsYo3TR+i9cSJw==", "dev": true, "license": "MIT", "dependencies": { - "listr2": "^10.2.1", - "picomatch": "^4.0.4", + "picomatch": "^4.0.5", "string-argv": "^0.3.2", "tinyexec": "^1.2.4" }, @@ -1378,96 +1295,6 @@ "yaml": "^2.9.0" } }, - "node_modules/listr2": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-10.2.2.tgz", - "integrity": "sha512-JtNtbZj8q5BnDMR7trpwvwk3RIrANtIVzEUm8w7amp6xelLgyuq+4WZoTH913XaQAoH/cNdYhaNzBPA2U3xbDw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cli-truncate": "^5.2.0", - "eventemitter3": "^5.0.4", - "log-update": "^6.1.0", - "rfdc": "^1.4.1", - "wrap-ansi": "^10.0.0" - }, - "engines": { - "node": ">=22.13.0" - } - }, - "node_modules/log-update": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", - "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^7.0.0", - "cli-cursor": "^5.0.0", - "slice-ansi": "^7.1.0", - "strip-ansi": "^7.1.0", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", - "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", - "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/magic-string": { "version": "0.30.21", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", @@ -1478,23 +1305,10 @@ "@jridgewell/sourcemap-codec": "^1.5.5" } }, - "node_modules/mimic-function": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", - "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/nanoid": { - "version": "3.3.15", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", - "integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==", + "version": "3.3.16", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", + "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", "dev": true, "funding": [ { @@ -1525,22 +1339,6 @@ "npm": ">=10.0.0" } }, - "node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-function": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -1562,9 +1360,9 @@ } }, "node_modules/postcss": { - "version": "8.5.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz", - "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==", + "version": "8.5.20", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.20.tgz", + "integrity": "sha512-lW616l85ucIQL+FocMmL7pQFPqBmwejrCMg+iPxyImlrANNJG9NHq/RkyCZopDhd8C3LA03PHRJDjkbGu8vvug==", "dev": true, "funding": [ { @@ -1582,7 +1380,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.12", + "nanoid": "^3.3.16", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -1605,9 +1403,9 @@ } }, "node_modules/prettier": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.4.tgz", - "integrity": "sha512-yWG/o/4oJfo036EKAfK6ACAoDOfHeRHx4tuxkfBZiauURiaSmYwlpOr5LQqKtIkRD2z1PLteme2WoxEnj4tHTg==", + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.5.tgz", + "integrity": "sha512-/FVl766LpUfB5vXgCYOYa0MeV/441Ia99AeICQIQFTY/Nw0roZwULcXpku5i1/m5kt/baz+s4Zogspd839HSMg==", "dev": true, "license": "MIT", "bin": { @@ -1620,30 +1418,6 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/restore-cursor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rfdc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true, - "license": "MIT" - }, "node_modules/rolldown": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", @@ -1701,34 +1475,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/slice-ansi": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-8.0.0.tgz", - "integrity": "sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.3", - "is-fullwidth-code-point": "^5.1.0" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": ">=0.10.0" } }, "node_modules/source-map-js": { @@ -1741,6 +1495,17 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/string-argv": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", @@ -1752,17 +1517,18 @@ } }, "node_modules/string-width": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.2.tgz", - "integrity": "sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "license": "MIT", "dependencies": { - "get-east-asian-width": "^1.5.0", - "strip-ansi": "^7.1.2" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=20" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1798,9 +1564,9 @@ } }, "node_modules/tailwindcss": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.2.tgz", - "integrity": "sha512-WtctNNSH8A9jlMIqxzuYumOHU5uGZyRv0Q5svQl+oEPy5w84YpBxdb7MdqyiSPQge5jTJ6zFQLq0PFygdccSBA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.3.tgz", + "integrity": "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==", "dev": true, "license": "MIT", "peer": true @@ -1819,6 +1585,26 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/terser": { + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.49.0.tgz", + "integrity": "sha512-SNiDnXyHSrxVcIOtVbULzcTmniUiwcV7Nwdyj1twVubeTmbjoa8p69KKDpfkdoOavuM4/GRm1+ykI8qqnavHoA==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/tinyexec": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.4.tgz", @@ -1881,17 +1667,17 @@ "license": "MIT" }, "node_modules/vite": { - "version": "8.1.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.4.tgz", - "integrity": "sha512-bTT9PsdWO+MQMNG9ZXIP/qM9wGh37DFxTV/sPq9cFpHr3w4jkgef032PkAL9jAqhk3Nz8NQw3O8n6/xFkqO4QQ==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.5.tgz", + "integrity": "sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.5", - "postcss": "^8.5.16", - "rolldown": "~1.1.4", + "postcss": "^8.5.17", + "rolldown": "~1.1.5", "tinyglobby": "^0.2.17" }, "bin": { @@ -1984,18 +1770,18 @@ } }, "node_modules/wrap-ansi": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-10.0.0.tgz", - "integrity": "sha512-SGcvg80f0wUy2/fXES19feHMz8E0JoXv2uNgHOu4Dgi2OrCy1lqwFYEJz1BLbDI0exjPMe/ZdzZ/YpGECBG/aQ==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.2.3", - "string-width": "^8.2.0", - "strip-ansi": "^7.1.2" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=20" + "node": ">=18" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -2055,24 +1841,6 @@ "engines": { "node": "^20.19.0 || ^22.12.0 || >=23" } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } } } } diff --git a/package.json b/package.json index 4b678305b..7e858970f 100644 --- a/package.json +++ b/package.json @@ -19,16 +19,17 @@ "@emnapi/core": "1.11.2", "@emnapi/runtime": "1.11.2", "@tailwindcss/typography": "0.5.20", - "@tailwindcss/vite": "4.3.2", + "@tailwindcss/vite": "4.3.3", "concurrently": "10.0.3", "husky": "9.1.7", - "laravel-vite-plugin": "3.1.0", - "lint-staged": "17.0.8", + "laravel-vite-plugin": "3.1.3", + "lint-staged": "17.1.0", "npm-check-updates": "22.2.9", - "prettier": "3.9.4", - "tailwindcss": "4.3.2", + "prettier": "3.9.5", + "tailwindcss": "4.3.3", + "terser": "5.49.0", "tw-animate-css": "1.4.0", - "vite": "8.1.4" + "vite": "8.1.5" }, "lint-staged": { "*.{js,ts,json,yml,md,css}": [ diff --git a/vite.config.js b/vite.config.js index 8278b70f2..dd1e945aa 100644 --- a/vite.config.js +++ b/vite.config.js @@ -22,4 +22,19 @@ export default defineConfig({ server: { cors: true, }, + build: { + minify: 'terser', + cssMinify: true, + chunkSizeWarningLimit: 1600, + rolldownOptions: { + output: { + manualChunks(id) { + if (id.includes('node_modules')) { + // Creates chunks based on the package name + return id.toString().split('node_modules/')[1].split('/')[0].toString(); + } + }, + }, + }, + }, }); From b5a1919bd0a8062ce5fb783ec24ef16e0743f249 Mon Sep 17 00:00:00 2001 From: Arthur Bazilio Date: Thu, 23 Jul 2026 08:47:02 -0300 Subject: [PATCH 20/46] =?UTF-8?q?feat(portal):=20Adicionando=20bot=C3=A3o?= =?UTF-8?q?=20de=20redirecionamento=20do=20para=20loja=20da=20h=E2=80=A6?= =?UTF-8?q?=20(#445)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #436 ## feat(portal): Adicionar botão de redirecionamento para loja da He4rt Adiciona um botão na navbar do portal que redireciona para a loja da He4rt (`https://loja.heartdevs.com/he4rt/`), tanto na versão desktop quanto mobile. ### Mudanças **Desktop (navbar principal):** Ícone de sacola de compras (`heroicon-s-shopping-bag`) com `aria-label="Loja"`, exibido apenas como ícone ao lado dos ícones de redes sociais e Discord. **Mobile (menu hamburguer):** Botão com ícone + texto "Compre na Loja", dentro da lista de links do menu mobile. ## Preview Desktop: - Novo ícone de sacola entre "Redes sociais" e "Área do Usuário" Screenshot 2026-07-22 at 23 00 46 Mobile: - Novo item "Compre na Loja" entre "Redes sociais" e "Área do Usuário" image Redes: - Novo item "Loja" no final da página image --- .../views/components/navbar.blade.php | 22 +++++++++++++++++++ .../tests/Feature/SocialLinksPageTest.php | 10 ++++----- config/he4rt.php | 1 + 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/app-modules/portal/resources/views/components/navbar.blade.php b/app-modules/portal/resources/views/components/navbar.blade.php index cb62c74f1..1855a6720 100644 --- a/app-modules/portal/resources/views/components/navbar.blade.php +++ b/app-modules/portal/resources/views/components/navbar.blade.php @@ -75,6 +75,17 @@ class="absolute -bottom-0.5 left-1/2 h-1 w-1 -translate-x-1/2 rounded-full bg-[v iconOnly aria-label="Redes sociais" /> + Área do Usuário + Compre na Loja + Área do Usuário toBe('/redes'); }); -it('renderiza os seis links com rótulos e URLs corretas', function (): void { +it('renderiza todos os links com rótulos e URLs corretas', function (): void { $assertion = get('/redes') ->assertOk(); @@ -32,8 +32,8 @@ it('abre cada link externo em nova aba com rel seguro', function (): void { $html = get('/redes')->getContent(); - expect(mb_substr_count($html, 'target="_blank"'))->toBe(6); - expect(mb_substr_count($html, 'rel="noopener noreferrer"'))->toBe(6); + expect(mb_substr_count($html, 'target="_blank"'))->toBe(9); + expect(mb_substr_count($html, 'rel="noopener noreferrer"'))->toBe(7); }); it('exibe o logo He4rt animado', function (): void { @@ -44,8 +44,8 @@ $html = get('/redes')->getContent(); expect($html)->toContain('Escolha seu canal'); - expect(mb_substr_count($html, '--accent-light:'))->toBe(6); - expect(mb_substr_count($html, '--accent-dark:'))->toBe(6); + expect(mb_substr_count($html, '--accent-light:'))->toBe(7); + expect(mb_substr_count($html, '--accent-dark:'))->toBe(7); expect($html)->toContain('--accent-light: #0F172A; --accent-dark: #FFFFFF;') ->and($html)->toContain('--accent-light: #111827; --accent-dark: #FFFFFF;'); }); diff --git a/config/he4rt.php b/config/he4rt.php index 135f332f9..95621d456 100644 --- a/config/he4rt.php +++ b/config/he4rt.php @@ -61,5 +61,6 @@ 'whatsapp' => ['label' => 'WhatsApp', 'url' => 'https://chat.whatsapp.com/EBKjYxIodpe1x5LLExbTzK', 'icon' => 'fab-whatsapp', 'accent' => '#25D366'], 'instagram' => ['label' => 'Instagram', 'url' => 'https://www.instagram.com/heartdevs/', 'icon' => 'fab-instagram', 'accent' => '#E4405F'], 'github' => ['label' => 'GitHub', 'url' => 'https://github.com/he4rt', 'icon' => 'fab-github', 'accent' => '#111827', 'accent_dark' => '#FFFFFF'], + 'loja' => ['label' => 'Loja', 'url' => 'https://loja.heartdevs.com/he4rt/', 'icon' => 'heroicon-s-shopping-bag', 'accent' => '#111827', 'accent_dark' => '#FFFFFF'], ], ]; From 6eb46497cf0f132c8e4d80c9ff7dcbc1047ec2e5 Mon Sep 17 00:00:00 2001 From: Gabriel do Carmo Vieira <48625433+gvieira18@users.noreply.github.com> Date: Thu, 23 Jul 2026 12:53:00 -0300 Subject: [PATCH 21/46] chore(deps): bump composer and npm dependencies Update Filament (5.7.3), Laravel framework (13.21.1), Sanctum, Telescope, medialibrary, phiki, and npm dev deps (lint-staged, prettier). --- composer.json | 14 ++-- composer.lock | 204 +++++++++++++++++++++++----------------------- package-lock.json | 22 ++--- package.json | 4 +- 4 files changed, 122 insertions(+), 122 deletions(-) diff --git a/composer.json b/composer.json index b0995ce7c..0247b3f4d 100644 --- a/composer.json +++ b/composer.json @@ -11,8 +11,8 @@ "php": "^8.4", "calebporzio/sushi": "^2.5.4", "dedoc/scramble": "^0.13.35", - "filament/filament": "^5.7.1", - "filament/spatie-laravel-media-library-plugin": "^5.7.1", + "filament/filament": "^5.7.3", + "filament/spatie-laravel-media-library-plugin": "^5.7.3", "guzzlehttp/guzzle": "^7.15.1", "he4rt/activity": "^1.0.0", "he4rt/bot-discord": "^1.0.0", @@ -37,21 +37,21 @@ "he4rt/squads": "^1.0.0", "internachi/modular": "^3.0.2", "laracord/framework": "dev-next#e7b64d6", - "laravel/framework": "^13.20.0", + "laravel/framework": "^13.21.1", "laravel/nightwatch": "^1.28.4", - "laravel/sanctum": "^4.3.2", - "laravel/telescope": "^5.20.0", + "laravel/sanctum": "^4.3.3", + "laravel/telescope": "^5.21.0", "laravel/tinker": "^3.0.2", "league/flysystem-sftp-v3": "^3.33.0", "livewire/flux": "^2.15.0", "marvinlabs/laravel-discord-logger": "^1.4.4", "monicahq/laravel-cloudflare": "^4.1", "owenvoke/blade-fontawesome": "^3.3.1", - "phiki/phiki": "^2.2", + "phiki/phiki": "^2.2.1", "ryangjchandler/commonmark-blade-block": "^1.1.1", "saloonphp/saloon": "^4.0", "spatie/laravel-backup": "^10.3.0", - "spatie/laravel-medialibrary": "^11.23.2", + "spatie/laravel-medialibrary": "^11.23.3", "symfony/dom-crawler": "^8.1.1", "symfony/yaml": "^8.1.1" }, diff --git a/composer.lock b/composer.lock index 5a376ea72..4585df653 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "781185ac23ddcde1f4884f38debfd794", + "content-hash": "10111ac1c304668e59567510be9dd09b", "packages": [ { "name": "anourvalar/eloquent-serialize", @@ -2067,16 +2067,16 @@ }, { "name": "filament/actions", - "version": "v5.7.1", + "version": "v5.7.3", "source": { "type": "git", "url": "https://github.com/filamentphp/actions.git", - "reference": "f7568eeaf8c8459e3013208e65577a3954f0c6fc" + "reference": "dfb15d45b91f288b9f8245dbf590ae8332a5a03d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/actions/zipball/f7568eeaf8c8459e3013208e65577a3954f0c6fc", - "reference": "f7568eeaf8c8459e3013208e65577a3954f0c6fc", + "url": "https://api.github.com/repos/filamentphp/actions/zipball/dfb15d45b91f288b9f8245dbf590ae8332a5a03d", + "reference": "dfb15d45b91f288b9f8245dbf590ae8332a5a03d", "shasum": "" }, "require": { @@ -2112,20 +2112,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-17T11:48:10+00:00" + "time": "2026-07-22T16:56:03+00:00" }, { "name": "filament/filament", - "version": "v5.7.1", + "version": "v5.7.3", "source": { "type": "git", "url": "https://github.com/filamentphp/panels.git", - "reference": "71a5faed128b50450e7f196ed47ca8eb856a4eba" + "reference": "711978b0d14a7cf0bc222d304be07efd7baa2ba1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/panels/zipball/71a5faed128b50450e7f196ed47ca8eb856a4eba", - "reference": "71a5faed128b50450e7f196ed47ca8eb856a4eba", + "url": "https://api.github.com/repos/filamentphp/panels/zipball/711978b0d14a7cf0bc222d304be07efd7baa2ba1", + "reference": "711978b0d14a7cf0bc222d304be07efd7baa2ba1", "shasum": "" }, "require": { @@ -2169,20 +2169,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-17T11:48:37+00:00" + "time": "2026-07-22T16:55:00+00:00" }, { "name": "filament/forms", - "version": "v5.7.1", + "version": "v5.7.3", "source": { "type": "git", "url": "https://github.com/filamentphp/forms.git", - "reference": "436596bf1cb40bca5c8b80c4ff3c0c5773cc744b" + "reference": "5432b78a7f1d30407c29ea6fcf98ffc9daa4b863" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/forms/zipball/436596bf1cb40bca5c8b80c4ff3c0c5773cc744b", - "reference": "436596bf1cb40bca5c8b80c4ff3c0c5773cc744b", + "url": "https://api.github.com/repos/filamentphp/forms/zipball/5432b78a7f1d30407c29ea6fcf98ffc9daa4b863", + "reference": "5432b78a7f1d30407c29ea6fcf98ffc9daa4b863", "shasum": "" }, "require": { @@ -2219,20 +2219,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-17T13:54:59+00:00" + "time": "2026-07-22T16:55:09+00:00" }, { "name": "filament/infolists", - "version": "v5.7.1", + "version": "v5.7.3", "source": { "type": "git", "url": "https://github.com/filamentphp/infolists.git", - "reference": "6267d8a167a452d9be3537f1096aba19ef35b131" + "reference": "47af660679dcc036eeb995243285304156adc7d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/infolists/zipball/6267d8a167a452d9be3537f1096aba19ef35b131", - "reference": "6267d8a167a452d9be3537f1096aba19ef35b131", + "url": "https://api.github.com/repos/filamentphp/infolists/zipball/47af660679dcc036eeb995243285304156adc7d4", + "reference": "47af660679dcc036eeb995243285304156adc7d4", "shasum": "" }, "require": { @@ -2264,20 +2264,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-17T13:50:29+00:00" + "time": "2026-07-22T16:50:42+00:00" }, { "name": "filament/notifications", - "version": "v5.7.1", + "version": "v5.7.3", "source": { "type": "git", "url": "https://github.com/filamentphp/notifications.git", - "reference": "40c21474fa34633e9bfeb517e8f7faba3b8dc7ce" + "reference": "a9dfab2f4fdedc5ddcce8cec5292ddc779d0438e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/notifications/zipball/40c21474fa34633e9bfeb517e8f7faba3b8dc7ce", - "reference": "40c21474fa34633e9bfeb517e8f7faba3b8dc7ce", + "url": "https://api.github.com/repos/filamentphp/notifications/zipball/a9dfab2f4fdedc5ddcce8cec5292ddc779d0438e", + "reference": "a9dfab2f4fdedc5ddcce8cec5292ddc779d0438e", "shasum": "" }, "require": { @@ -2311,20 +2311,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-17T11:49:10+00:00" + "time": "2026-07-22T16:56:07+00:00" }, { "name": "filament/query-builder", - "version": "v5.7.1", + "version": "v5.7.3", "source": { "type": "git", "url": "https://github.com/filamentphp/query-builder.git", - "reference": "a60124f499f16a7a6c46279ce38948ae02be1ce9" + "reference": "66a963dc5a06988bc9fd0c16ac5a66f3f63a3b61" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/query-builder/zipball/a60124f499f16a7a6c46279ce38948ae02be1ce9", - "reference": "a60124f499f16a7a6c46279ce38948ae02be1ce9", + "url": "https://api.github.com/repos/filamentphp/query-builder/zipball/66a963dc5a06988bc9fd0c16ac5a66f3f63a3b61", + "reference": "66a963dc5a06988bc9fd0c16ac5a66f3f63a3b61", "shasum": "" }, "require": { @@ -2357,20 +2357,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-17T11:43:30+00:00" + "time": "2026-07-22T16:56:05+00:00" }, { "name": "filament/schemas", - "version": "v5.7.1", + "version": "v5.7.3", "source": { "type": "git", "url": "https://github.com/filamentphp/schemas.git", - "reference": "6da87c7b80c6ee6388199810ff47d520522c4e9e" + "reference": "b9b7988da3a21a5ea32066011c5e4be7b9a16ce6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/schemas/zipball/6da87c7b80c6ee6388199810ff47d520522c4e9e", - "reference": "6da87c7b80c6ee6388199810ff47d520522c4e9e", + "url": "https://api.github.com/repos/filamentphp/schemas/zipball/b9b7988da3a21a5ea32066011c5e4be7b9a16ce6", + "reference": "b9b7988da3a21a5ea32066011c5e4be7b9a16ce6", "shasum": "" }, "require": { @@ -2402,11 +2402,11 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-17T13:48:45+00:00" + "time": "2026-07-22T16:54:36+00:00" }, { "name": "filament/spatie-laravel-media-library-plugin", - "version": "v5.7.1", + "version": "v5.7.3", "source": { "type": "git", "url": "https://github.com/filamentphp/spatie-laravel-media-library-plugin.git", @@ -2443,16 +2443,16 @@ }, { "name": "filament/support", - "version": "v5.7.1", + "version": "v5.7.3", "source": { "type": "git", "url": "https://github.com/filamentphp/support.git", - "reference": "60fe88581e05640a6734fcf8cb589bce69e63ca8" + "reference": "0e41d23d71972f7c37daee6255606776e1f6313d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/support/zipball/60fe88581e05640a6734fcf8cb589bce69e63ca8", - "reference": "60fe88581e05640a6734fcf8cb589bce69e63ca8", + "url": "https://api.github.com/repos/filamentphp/support/zipball/0e41d23d71972f7c37daee6255606776e1f6313d", + "reference": "0e41d23d71972f7c37daee6255606776e1f6313d", "shasum": "" }, "require": { @@ -2497,20 +2497,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-17T11:48:56+00:00" + "time": "2026-07-22T20:02:06+00:00" }, { "name": "filament/tables", - "version": "v5.7.1", + "version": "v5.7.3", "source": { "type": "git", "url": "https://github.com/filamentphp/tables.git", - "reference": "5006e20108cbca1316ae1e1a080433e103685292" + "reference": "988cf1d4531c2f2d54a6ebaaf51d736a73ea1f9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/tables/zipball/5006e20108cbca1316ae1e1a080433e103685292", - "reference": "5006e20108cbca1316ae1e1a080433e103685292", + "url": "https://api.github.com/repos/filamentphp/tables/zipball/988cf1d4531c2f2d54a6ebaaf51d736a73ea1f9d", + "reference": "988cf1d4531c2f2d54a6ebaaf51d736a73ea1f9d", "shasum": "" }, "require": { @@ -2543,20 +2543,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-17T11:43:57+00:00" + "time": "2026-07-22T16:54:42+00:00" }, { "name": "filament/widgets", - "version": "v5.7.1", + "version": "v5.7.3", "source": { "type": "git", "url": "https://github.com/filamentphp/widgets.git", - "reference": "263d17cf523d24d70f17c2fa794742a16903c17f" + "reference": "585d77e2b6b60693bdae525a2e791bd4d37b748c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/widgets/zipball/263d17cf523d24d70f17c2fa794742a16903c17f", - "reference": "263d17cf523d24d70f17c2fa794742a16903c17f", + "url": "https://api.github.com/repos/filamentphp/widgets/zipball/585d77e2b6b60693bdae525a2e791bd4d37b748c", + "reference": "585d77e2b6b60693bdae525a2e791bd4d37b748c", "shasum": "" }, "require": { @@ -2587,7 +2587,7 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-07-17T11:44:15+00:00" + "time": "2026-07-22T16:55:35+00:00" }, { "name": "fruitcake/php-cors", @@ -4156,16 +4156,16 @@ }, { "name": "kirschbaum-development/eloquent-power-joins", - "version": "4.3.2", + "version": "4.3.3", "source": { "type": "git", "url": "https://github.com/kirschbaum-development/eloquent-power-joins.git", - "reference": "33c189bd51a510c1ceba67222395ead08a29863a" + "reference": "c609dbbe4ad2051b667e937f1ab554067519d64b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/33c189bd51a510c1ceba67222395ead08a29863a", - "reference": "33c189bd51a510c1ceba67222395ead08a29863a", + "url": "https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/c609dbbe4ad2051b667e937f1ab554067519d64b", + "reference": "c609dbbe4ad2051b667e937f1ab554067519d64b", "shasum": "" }, "require": { @@ -4213,9 +4213,9 @@ ], "support": { "issues": "https://github.com/kirschbaum-development/eloquent-power-joins/issues", - "source": "https://github.com/kirschbaum-development/eloquent-power-joins/tree/4.3.2" + "source": "https://github.com/kirschbaum-development/eloquent-power-joins/tree/4.3.3" }, - "time": "2026-05-28T20:35:55+00:00" + "time": "2026-07-23T11:41:37+00:00" }, { "name": "laracord/framework", @@ -4302,16 +4302,16 @@ }, { "name": "laravel/framework", - "version": "v13.20.0", + "version": "v13.21.1", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "b9d1bccad5fbc32578dca22566bb11e7c0e545d7" + "reference": "303b5f8dc899f89e8c38c350b639b8fbd193ed16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/b9d1bccad5fbc32578dca22566bb11e7c0e545d7", - "reference": "b9d1bccad5fbc32578dca22566bb11e7c0e545d7", + "url": "https://api.github.com/repos/laravel/framework/zipball/303b5f8dc899f89e8c38c350b639b8fbd193ed16", + "reference": "303b5f8dc899f89e8c38c350b639b8fbd193ed16", "shasum": "" }, "require": { @@ -4525,7 +4525,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-07-14T14:22:22+00:00" + "time": "2026-07-21T14:27:35+00:00" }, { "name": "laravel/nightwatch", @@ -4682,16 +4682,16 @@ }, { "name": "laravel/sanctum", - "version": "v4.3.2", + "version": "v4.3.3", "source": { "type": "git", "url": "https://github.com/laravel/sanctum.git", - "reference": "2a9bccc18e9907808e0018dd15fa643937886b1e" + "reference": "fee27a573d1a013af3721d86153a65e0b11927e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sanctum/zipball/2a9bccc18e9907808e0018dd15fa643937886b1e", - "reference": "2a9bccc18e9907808e0018dd15fa643937886b1e", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/fee27a573d1a013af3721d86153a65e0b11927e6", + "reference": "fee27a573d1a013af3721d86153a65e0b11927e6", "shasum": "" }, "require": { @@ -4741,7 +4741,7 @@ "issues": "https://github.com/laravel/sanctum/issues", "source": "https://github.com/laravel/sanctum" }, - "time": "2026-04-30T11:46:25+00:00" + "time": "2026-06-23T18:26:55+00:00" }, { "name": "laravel/sentinel", @@ -4801,16 +4801,16 @@ }, { "name": "laravel/serializable-closure", - "version": "v2.0.13", + "version": "v2.0.15", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "b566ee0dd251f3c4078bed003a7ce015f5ea6dce" + "reference": "dccd8bcb851bb03fcc005df650b708b57cc52661" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/b566ee0dd251f3c4078bed003a7ce015f5ea6dce", - "reference": "b566ee0dd251f3c4078bed003a7ce015f5ea6dce", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/dccd8bcb851bb03fcc005df650b708b57cc52661", + "reference": "dccd8bcb851bb03fcc005df650b708b57cc52661", "shasum": "" }, "require": { @@ -4858,20 +4858,20 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2026-04-16T14:03:50+00:00" + "time": "2026-07-21T16:49:22+00:00" }, { "name": "laravel/telescope", - "version": "v5.20.0", + "version": "v5.21.0", "source": { "type": "git", "url": "https://github.com/laravel/telescope.git", - "reference": "38ec6e6006a67e05e0c476c5f8ef3550b72e43d8" + "reference": "f00f45a59843329b97aa238f28da594f3b7d4aa7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/telescope/zipball/38ec6e6006a67e05e0c476c5f8ef3550b72e43d8", - "reference": "38ec6e6006a67e05e0c476c5f8ef3550b72e43d8", + "url": "https://api.github.com/repos/laravel/telescope/zipball/f00f45a59843329b97aa238f28da594f3b7d4aa7", + "reference": "f00f45a59843329b97aa238f28da594f3b7d4aa7", "shasum": "" }, "require": { @@ -4925,9 +4925,9 @@ ], "support": { "issues": "https://github.com/laravel/telescope/issues", - "source": "https://github.com/laravel/telescope/tree/v5.20.0" + "source": "https://github.com/laravel/telescope/tree/v5.21.0" }, - "time": "2026-04-06T12:52:26+00:00" + "time": "2026-07-20T19:44:45+00:00" }, { "name": "laravel/tinker", @@ -7149,16 +7149,16 @@ }, { "name": "phiki/phiki", - "version": "v2.2.0", + "version": "v2.2.1", "source": { "type": "git", "url": "https://github.com/phikiphp/phiki.git", - "reference": "24375dbc474dbc484de7d53c6bab0bb9e198f647" + "reference": "0a9ff7efad9d433d9b173aff36b2a1905ef13c57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phikiphp/phiki/zipball/24375dbc474dbc484de7d53c6bab0bb9e198f647", - "reference": "24375dbc474dbc484de7d53c6bab0bb9e198f647", + "url": "https://api.github.com/repos/phikiphp/phiki/zipball/0a9ff7efad9d433d9b173aff36b2a1905ef13c57", + "reference": "0a9ff7efad9d433d9b173aff36b2a1905ef13c57", "shasum": "" }, "require": { @@ -7207,7 +7207,7 @@ "description": "Syntax highlighting using TextMate grammars in PHP.", "support": { "issues": "https://github.com/phikiphp/phiki/issues", - "source": "https://github.com/phikiphp/phiki/tree/v2.2.0" + "source": "https://github.com/phikiphp/phiki/tree/v2.2.1" }, "funding": [ { @@ -7219,7 +7219,7 @@ "type": "other" } ], - "time": "2026-04-01T15:56:08+00:00" + "time": "2026-07-22T19:51:40+00:00" }, { "name": "phpoption/phpoption", @@ -10211,16 +10211,16 @@ }, { "name": "spatie/laravel-medialibrary", - "version": "11.23.2", + "version": "11.23.3", "source": { "type": "git", "url": "https://github.com/spatie/laravel-medialibrary.git", - "reference": "cc1fdc4a9a9007101df610cd4a6733be71db4828" + "reference": "b578814b8c81a68c8ec9c9005246df5d417fe0f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-medialibrary/zipball/cc1fdc4a9a9007101df610cd4a6733be71db4828", - "reference": "cc1fdc4a9a9007101df610cd4a6733be71db4828", + "url": "https://api.github.com/repos/spatie/laravel-medialibrary/zipball/b578814b8c81a68c8ec9c9005246df5d417fe0f9", + "reference": "b578814b8c81a68c8ec9c9005246df5d417fe0f9", "shasum": "" }, "require": { @@ -10305,7 +10305,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-medialibrary/issues", - "source": "https://github.com/spatie/laravel-medialibrary/tree/11.23.2" + "source": "https://github.com/spatie/laravel-medialibrary/tree/11.23.3" }, "funding": [ { @@ -10317,7 +10317,7 @@ "type": "github" } ], - "time": "2026-07-09T13:26:15+00:00" + "time": "2026-07-22T07:06:25+00:00" }, { "name": "spatie/laravel-package-tools", @@ -13670,16 +13670,16 @@ }, { "name": "team-reflex/discord-php", - "version": "v10.52.2", + "version": "v10.52.3", "source": { "type": "git", "url": "https://github.com/discord-php/DiscordPHP.git", - "reference": "439ea7113f1180db3f9252989e8a34e426a840d2" + "reference": "c932bc23eb916da03ebb6bc6315a47d0380e72db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/discord-php/DiscordPHP/zipball/439ea7113f1180db3f9252989e8a34e426a840d2", - "reference": "439ea7113f1180db3f9252989e8a34e426a840d2", + "url": "https://api.github.com/repos/discord-php/DiscordPHP/zipball/c932bc23eb916da03ebb6bc6315a47d0380e72db", + "reference": "c932bc23eb916da03ebb6bc6315a47d0380e72db", "shasum": "" }, "require": { @@ -13751,7 +13751,7 @@ "chat": "https://discord.gg/dphp", "docs": "https://discord-php.github.io/DiscordPHP/", "issues": "https://github.com/discord-php/DiscordPHP/issues", - "source": "https://github.com/discord-php/DiscordPHP/tree/v10.52.2", + "source": "https://github.com/discord-php/DiscordPHP/tree/v10.52.3", "wiki": "https://github.com/discord-php/DiscordPHP/wiki" }, "funding": [ @@ -13772,7 +13772,7 @@ "type": "patreon" } ], - "time": "2026-07-17T13:36:19+00:00" + "time": "2026-07-21T11:51:48+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -14953,16 +14953,16 @@ }, { "name": "laravel/mcp", - "version": "v0.9.0", + "version": "v0.9.1", "source": { "type": "git", "url": "https://github.com/laravel/mcp.git", - "reference": "3d365d5db3493c806d190f3404cd7431634ca4e1" + "reference": "a08884d79a95c5143498507aec5badf751cdbec4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/mcp/zipball/3d365d5db3493c806d190f3404cd7431634ca4e1", - "reference": "3d365d5db3493c806d190f3404cd7431634ca4e1", + "url": "https://api.github.com/repos/laravel/mcp/zipball/a08884d79a95c5143498507aec5badf751cdbec4", + "reference": "a08884d79a95c5143498507aec5badf751cdbec4", "shasum": "" }, "require": { @@ -15023,7 +15023,7 @@ "issues": "https://github.com/laravel/mcp/issues", "source": "https://github.com/laravel/mcp" }, - "time": "2026-07-16T17:16:38+00:00" + "time": "2026-07-21T13:23:52+00:00" }, { "name": "laravel/pail", diff --git a/package-lock.json b/package-lock.json index a70abea22..a46e98c73 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,9 +16,9 @@ "concurrently": "10.0.3", "husky": "9.1.7", "laravel-vite-plugin": "3.1.3", - "lint-staged": "17.1.0", + "lint-staged": "17.2.0", "npm-check-updates": "22.2.9", - "prettier": "3.9.5", + "prettier": "3.9.6", "tailwindcss": "4.3.3", "terser": "5.49.0", "tw-animate-css": "1.4.0", @@ -1272,9 +1272,9 @@ } }, "node_modules/lint-staged": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-17.1.0.tgz", - "integrity": "sha512-d7UQRu/9ZPgfu4+hu/k0wny5GEaIxo+2jb2LJqQDkE7cHRTm1HGqNUDq5UOwsGPpjpaNAFmgAsYo3TR+i9cSJw==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-17.2.0.tgz", + "integrity": "sha512-FchGnFe4i4B1C/a35SPU9bNGPEHSC1+1iV0plLjzBmKVe9klZrlRfSgK6Cw4VeHyqOXbJUXP0vON61uRftNQ0A==", "dev": true, "license": "MIT", "dependencies": { @@ -1360,9 +1360,9 @@ } }, "node_modules/postcss": { - "version": "8.5.20", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.20.tgz", - "integrity": "sha512-lW616l85ucIQL+FocMmL7pQFPqBmwejrCMg+iPxyImlrANNJG9NHq/RkyCZopDhd8C3LA03PHRJDjkbGu8vvug==", + "version": "8.5.22", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.22.tgz", + "integrity": "sha512-KBDEIpLrvpv16pp3K0Fw+UCoZfopFjjgeB+0tA/aaThfEE74kKDLrgg603YvOWJyg3+WYtyq3xYsQWsIyZlPqQ==", "dev": true, "funding": [ { @@ -1403,9 +1403,9 @@ } }, "node_modules/prettier": { - "version": "3.9.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.5.tgz", - "integrity": "sha512-/FVl766LpUfB5vXgCYOYa0MeV/441Ia99AeICQIQFTY/Nw0roZwULcXpku5i1/m5kt/baz+s4Zogspd839HSMg==", + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.6.tgz", + "integrity": "sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==", "dev": true, "license": "MIT", "bin": { diff --git a/package.json b/package.json index 7e858970f..d28601b85 100644 --- a/package.json +++ b/package.json @@ -23,9 +23,9 @@ "concurrently": "10.0.3", "husky": "9.1.7", "laravel-vite-plugin": "3.1.3", - "lint-staged": "17.1.0", + "lint-staged": "17.2.0", "npm-check-updates": "22.2.9", - "prettier": "3.9.5", + "prettier": "3.9.6", "tailwindcss": "4.3.3", "terser": "5.49.0", "tw-animate-css": "1.4.0", From 5c3ca9a3485799e7a79478dc174eba64b2789b73 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 25 Jul 2026 15:17:46 +0000 Subject: [PATCH 22/46] ci: bump actions/checkout from 7.0.0 to 7.0.1 (#452) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [actions/checkout](https://github.com/actions/checkout) from 7.0.0 to 7.0.1.
Release notes

Sourced from actions/checkout's releases.

v7.0.1

What's Changed

Full Changelog: https://github.com/actions/checkout/compare/v7...v7.0.1

Changelog

Sourced from actions/checkout's changelog.

Changelog

v7.0.1

v7.0.0

v6.0.3

v6.0.2

v6.0.1

v6.0.0

v5.0.1

v5.0.0

v4.3.1

v4.3.0

v4.2.2

v4.2.1

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=7.0.0&new-version=7.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/_pest.yml | 2 +- .github/workflows/_phpstan.yml | 2 +- .github/workflows/_pint.yml | 2 +- .github/workflows/_rector.yml | 2 +- .github/workflows/continuous-integration.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/_pest.yml b/.github/workflows/_pest.yml index 3f8ea4983..6fa7769f0 100644 --- a/.github/workflows/_pest.yml +++ b/.github/workflows/_pest.yml @@ -54,7 +54,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0 persist-credentials: false diff --git a/.github/workflows/_phpstan.yml b/.github/workflows/_phpstan.yml index 38afe24f9..f8ff4973a 100644 --- a/.github/workflows/_phpstan.yml +++ b/.github/workflows/_phpstan.yml @@ -33,7 +33,7 @@ jobs: cancel-in-progress: true steps: - name: Checkout code - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0 persist-credentials: false diff --git a/.github/workflows/_pint.yml b/.github/workflows/_pint.yml index 704c43b88..b73c0fbbf 100644 --- a/.github/workflows/_pint.yml +++ b/.github/workflows/_pint.yml @@ -33,7 +33,7 @@ jobs: cancel-in-progress: true steps: - name: Checkout code - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0 persist-credentials: false diff --git a/.github/workflows/_rector.yml b/.github/workflows/_rector.yml index b502b6530..6c27cf84d 100644 --- a/.github/workflows/_rector.yml +++ b/.github/workflows/_rector.yml @@ -33,7 +33,7 @@ jobs: cancel-in-progress: true steps: - name: Checkout code - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0 persist-credentials: false diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 80840536f..723713cf4 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -33,7 +33,7 @@ jobs: COMPOSER_FLAGS: ${{ steps.setup.outputs.COMPOSER_FLAGS }} steps: - name: Checkout code - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0 persist-credentials: false From 5c8d0bf60b76e7414ff0a3299a02149cdee04a04 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 25 Jul 2026 12:22:55 -0300 Subject: [PATCH 23/46] ci: bump actions/setup-node from 6.4.0 to 7.0.0 (#451) --- .github/workflows/_pest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/_pest.yml b/.github/workflows/_pest.yml index 6fa7769f0..b458e9555 100644 --- a/.github/workflows/_pest.yml +++ b/.github/workflows/_pest.yml @@ -83,7 +83,7 @@ jobs: custom-cache-key: ${{ inputs.CACHE_KEY }} - name: Install Node.js - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: package-manager-cache: false node-version-file: '.nvmrc' From 96ef5bdc8743c7d5381402e2789761d3d427fa0a Mon Sep 17 00:00:00 2001 From: Gabriel Vieira <48625433+gvieira18@users.noreply.github.com> Date: Mon, 27 Jul 2026 14:59:41 -0300 Subject: [PATCH 24/46] feat(bot-discord): sala empresarial private rooms (#450) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - Add `/sala-empresarial empresa:`, converting a `/sala`-tracked voice room into a private company room by stamping Discord permission overwrites — `deny @everyone` and `allow` the selected Empresa Parceira's Partner Role for `connect`, `speak`, `use_vad`, `send_messages` and `read_message_history` (voice + the room's built-in text chat). `VIEW_CHANNEL` stays untouched (visible-but-locked) and `MENTION_EVERYONE` keeps category inheritance. - Put the decision (guards + role resolution + overwrite plan) in a pure, unit-tested `ConfigureEmpresarialRoomAction`; the command edge only performs the `setPermissions` I/O. - Gate by Partner Role membership, **not** room ownership — any member of the selected company can privatize the room (rejects `not-in-tracked-room` / `unknown-company` / `missing-partner-role`, all ephemeral). - Add a flat `bot-discord.roles.partners` registry (`slug => role id`), seeded with `brd` and `3p`; onboarding a new partner is one env + one config line. - Ship the module glossary (CONTEXT) entries and ADR-0001 documenting the design. ## Notes - Deviates slightly from the original #448 permission list: `send_messages` was added after a live server test showed outsiders could still post in the room's text chat. - Stateless by design — only `/sala`-tracked rooms are eligible and `DynamicVoiceTask` auto-deletes them when empty, so overwrites die with the channel. No revert command. ## Test plan - [ ] Member holding the partner role, inside their `/sala` room → `/sala-empresarial empresa:brd` privatizes it; outsiders can't connect, speak, or post in chat, but the room stays visible. - [ ] Same room, run by a teammate who didn't create it → still succeeds (role-gated, not owner-gated). - [ ] Pick a company whose role you don't hold → ephemeral rejection, no overwrites stamped. - [ ] Run outside any `/sala` room (permanent channel or no voice) → ephemeral rejection. - [ ] Re-run on an already-configured room → harmless re-stamp, no error. Closes #448 ## Screenshots _Ephemeral replies, captured on a test guild (`/sala-empresarial`)._ **Company picker — choices built from the `partners` registry (`BRD`, `3P`):** Screenshot from 2026-07-24 09-30-16 **Success — room privatized for BRD:** Screenshot from 2026-07-24 09-42-33 **Rejected — caller doesn't hold the selected company's Partner Role (`missing-partner-role`):** Screenshot from 2026-07-24 09-30-39 **Rejected — caller isn't inside a `/sala`-tracked room (`not-in-tracked-room`):** Screenshot from 2026-07-24 09-29-14 --- app-modules/bot-discord/CONTEXT.md | 17 ++- .../bot-discord/config/bot-discord.php | 9 ++ ...la-empresarial-role-gated-private-rooms.md | 51 +++++++ .../ConfigureEmpresarialRoomAction.php | 72 +++++++++ .../src/DTO/EmpresarialOverwritePlan.php | 54 +++++++ .../src/DTO/EmpresarialRoomDecision.php | 34 +++++ .../src/Enums/EmpresarialRejectionReason.php | 27 ++++ .../SlashCommands/SalaEmpresarialCommand.php | 140 ++++++++++++++++++ .../ConfigureEmpresarialRoomActionTest.php | 134 +++++++++++++++++ .../Enums/EmpresarialRejectionReasonTest.php | 22 +++ package-lock.json | 22 +-- package.json | 2 +- 12 files changed, 565 insertions(+), 19 deletions(-) create mode 100644 app-modules/bot-discord/docs/adr/0001-sala-empresarial-role-gated-private-rooms.md create mode 100644 app-modules/bot-discord/src/Actions/VoiceChannel/ConfigureEmpresarialRoomAction.php create mode 100644 app-modules/bot-discord/src/DTO/EmpresarialOverwritePlan.php create mode 100644 app-modules/bot-discord/src/DTO/EmpresarialRoomDecision.php create mode 100644 app-modules/bot-discord/src/Enums/EmpresarialRejectionReason.php create mode 100644 app-modules/bot-discord/src/SlashCommands/SalaEmpresarialCommand.php create mode 100644 app-modules/bot-discord/tests/Unit/Actions/VoiceChannel/ConfigureEmpresarialRoomActionTest.php create mode 100644 app-modules/bot-discord/tests/Unit/Enums/EmpresarialRejectionReasonTest.php diff --git a/app-modules/bot-discord/CONTEXT.md b/app-modules/bot-discord/CONTEXT.md index de05e8608..9718cec06 100644 --- a/app-modules/bot-discord/CONTEXT.md +++ b/app-modules/bot-discord/CONTEXT.md @@ -4,13 +4,16 @@ Discord bot runtime powered by Laracord. Handles websocket events, slash command ## Glossary -| Term | Definition | Not to be confused with | -| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | -| **Event Handler** | A Laracord event class that reacts to Discord websocket events (MESSAGE_CREATE, VOICE_STATE_UPDATE, etc.). Thin orchestrators that delegate to domain modules. | Domain events (like `CaseQueued` from moderation) | -| **Listener** | A Laravel event listener that reacts to domain events emitted by other modules. E.g., `NotifyModerationChannel` listens to `CaseQueued`. | Laracord event handlers (which react to Discord websocket) | -| **DiscordModerationAdapter** | Implements `ModerationPlatformContract`. Orchestrates moderation enforcement on Discord (mute, kick, ban) by delegating HTTP calls to `integration-discord` Transport. | The moderation domain itself (which is platform-agnostic) | -| **ModerationEmbedBuilder** | Formats moderation case data into Discord embed objects for channel notifications. | Transport (which just sends the formatted embed) | -| **AutoExecuteAction** | Listener for `CaseReadyForEnforcement`. Creates a `ModerationAction` and dispatches `ExecuteAction` when moderation domain signals auto-execution is safe. | The execution itself (which is done by `ExecuteAction` job) | +| Term | Definition | Not to be confused with | +| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------- | +| **Event Handler** | A Laracord event class that reacts to Discord websocket events (MESSAGE_CREATE, VOICE_STATE_UPDATE, etc.). Thin orchestrators that delegate to domain modules. | Domain events (like `CaseQueued` from moderation) | +| **Listener** | A Laravel event listener that reacts to domain events emitted by other modules. E.g., `NotifyModerationChannel` listens to `CaseQueued`. | Laracord event handlers (which react to Discord websocket) | +| **DiscordModerationAdapter** | Implements `ModerationPlatformContract`. Orchestrates moderation enforcement on Discord (mute, kick, ban) by delegating HTTP calls to `integration-discord` Transport. | The moderation domain itself (which is platform-agnostic) | +| **ModerationEmbedBuilder** | Formats moderation case data into Discord embed objects for channel notifications. | Transport (which just sends the formatted embed) | +| **AutoExecuteAction** | Listener for `CaseReadyForEnforcement`. Creates a `ModerationAction` and dispatches `ExecuteAction` when moderation domain signals auto-execution is safe. | The execution itself (which is done by `ExecuteAction` job) | +| **Sala Empresarial** | A `/sala`-created voice room that a partner-company member privatized via `/sala-empresarial`: `@everyone` is denied view-channel/connect/speak/use-voice-activity/send-messages/read-history while one Partner Role is allowed. Fully hidden from non-members — they cannot see the room nor who is inside. | A normal `/sala` room (public, permissions inherited from the category) | +| **Empresa Parceira** | An external company in a partnership with He4rt whose members hold a dedicated Discord role. Registered in `bot-discord.roles.partners` (`slug => role_id`); the system supports many, not just one. | A Squad (internal community group, owned by the `squads` module) | +| **Partner Role** | The Discord role that identifies the members of one Empresa Parceira (e.g. `brd`). It is the `allow` target stamped on a room when it becomes a Sala Empresarial; a caller must hold the role of the company they select. | Moderation admin/mod roles (`he4rt.discord.moderation.*`) | ## Module Boundaries diff --git a/app-modules/bot-discord/config/bot-discord.php b/app-modules/bot-discord/config/bot-discord.php index df1fd3429..6f0931081 100644 --- a/app-modules/bot-discord/config/bot-discord.php +++ b/app-modules/bot-discord/config/bot-discord.php @@ -14,5 +14,14 @@ 'presentation' => env('HE4RT_PRESENTATION_ROLE_ID', '546150872397119491'), 'comite_delas' => env('HE4RT_COMITE_DELAS_ROLE_ID', '1014311739397001288'), 'he4rt_delas' => env('HE4RT_DELAS_ROLE_ID', '1018009963903328308'), + + /* + * Empresa Parceira registry: partner-company slug => Discord Partner Role id. + * Each entry enables `/sala-empresarial empresa:` for that company. + * Onboarding a new partner is one env + one line here — no code change. + */ + 'partners' => [ + 'brd' => env('HE4RT_PARTNER_BRD_ROLE_ID', '1522599722370465904'), + ], ], ]; diff --git a/app-modules/bot-discord/docs/adr/0001-sala-empresarial-role-gated-private-rooms.md b/app-modules/bot-discord/docs/adr/0001-sala-empresarial-role-gated-private-rooms.md new file mode 100644 index 000000000..44395d51d --- /dev/null +++ b/app-modules/bot-discord/docs/adr/0001-sala-empresarial-role-gated-private-rooms.md @@ -0,0 +1,51 @@ +--- +type: adr +title: 'Sala Empresarial — role-gated private voice rooms' +module: bot-discord +status: accepted +date: 2026-07-23 +--- + +# Sala Empresarial — role-gated private voice rooms + +Partner companies (**Empresa Parceira**) need private voice rooms on the guild. We add a +separate `/sala-empresarial empresa:` slash command that **converts an existing +`/sala`-tracked room** into a private one by stamping Discord permission overwrites: `deny` +`@everyone` and `allow` the selected company's **Partner Role** for `VIEW_CHANNEL`, +`CONNECT`, `SPEAK`, `USE_VAD`, `SEND_MESSAGES` and `READ_MESSAGE_HISTORY` (the last two lock +the room's built-in text chat). `MENTION_EVERYONE` is left unchanged by the command — it +keeps whatever the category inherits (every `/sala` room already blocks it). Because +`VIEW_CHANNEL` is denied to `@everyone`, the room is **fully hidden**: non-members cannot see +it in the channel list nor who is connected. + +## Considered Options + +- **Convert existing room vs. a flag on `/sala`.** We convert. `/sala` is shared by the + whole guild; branching its logic and gating a `empresarial:true` flag by role would + couple a general command to partner concerns. A dedicated command mirrors `/sala-limite` + and keeps `/sala` untouched. +- **Explicit `empresa` parameter vs. inferring the caller's role.** Explicit parameter. A + caller can belong to more than one Empresa Parceira, so intersecting their roles with the + registry is ambiguous. The parameter picks exactly one company; we then validate the + caller actually holds that company's Partner Role and reject (ephemeral) otherwise. +- **Config registry vs. hardcoding `brd`.** A flat `bot-discord.roles.partners` + (`slug => role_id`) registry. Adding a second partner company is one env + one config + line, no code change. The slash-command `choices` are built from this map. Each partner's + Partner Role id is seeded as an env-var default in `config/bot-discord.php` (the source of + truth), so no role ids live in this ADR. +- **Stateless vs. persisting the empresarial state.** Stateless. We only convert + `/sala`-tracked rooms, which `DynamicVoiceTask` auto-deletes when empty, so the overwrites + die with the channel. `VoiceChannelDTO` is left unchanged and Discord's overwrites are the + single source of truth; re-running the command is a harmless re-stamp. There is no revert + command — a room un-privatizes by emptying and being deleted. + +## Consequences + +- This is the first permission-overwrite code in `bot-discord`; prior room commands only + set the channel's parent/user-limit and relied on category inheritance. +- Gating is by Partner Role membership, **not** room ownership (unlike `/sala-limite`) — any + member of the selected company may privatize the room. +- Because `VIEW_CHANNEL` is denied to `@everyone`, empresarial rooms disappear from the + channel list for non-members and their occupant list is hidden. Discord force-disconnects + any non-member connected at conversion time (losing view access ejects them from a voice + channel) — accepted, and consistent with a fully private room. diff --git a/app-modules/bot-discord/src/Actions/VoiceChannel/ConfigureEmpresarialRoomAction.php b/app-modules/bot-discord/src/Actions/VoiceChannel/ConfigureEmpresarialRoomAction.php new file mode 100644 index 000000000..b851f9263 --- /dev/null +++ b/app-modules/bot-discord/src/Actions/VoiceChannel/ConfigureEmpresarialRoomAction.php @@ -0,0 +1,72 @@ + $callerRoleIds Discord role ids held by the caller. + * @param list $activeChannels The `/sala`-tracked rooms cache. + */ + public function execute( + string $companySlug, + array $callerRoleIds, + ?string $currentChannelId, + array $activeChannels, + ): EmpresarialRoomDecision { + if (!$this->isInsideTrackedRoom($currentChannelId, $activeChannels)) { + return EmpresarialRoomDecision::reject(EmpresarialRejectionReason::NotInTrackedRoom); + } + + $partnerRoleId = $this->resolvePartnerRoleId($companySlug); + + if ($partnerRoleId === null) { + return EmpresarialRoomDecision::reject(EmpresarialRejectionReason::UnknownCompany); + } + + if (!in_array($partnerRoleId, $callerRoleIds, strict: true)) { + return EmpresarialRoomDecision::reject(EmpresarialRejectionReason::MissingPartnerRole); + } + + return EmpresarialRoomDecision::approve( + EmpresarialOverwritePlan::for($companySlug, $partnerRoleId), + ); + } + + /** + * @param list $activeChannels + */ + private function isInsideTrackedRoom(?string $currentChannelId, array $activeChannels): bool + { + if ($currentChannelId === null) { + return false; + } + + return array_any($activeChannels, fn (VoiceChannelDTO $channel): bool => $channel->channelId === $currentChannelId); + } + + private function resolvePartnerRoleId(string $companySlug): ?string + { + /** @var array $partners */ + $partners = config('bot-discord.roles.partners', []); + + if (!array_key_exists($companySlug, $partners)) { + return null; + } + + return $partners[$companySlug]; + } +} diff --git a/app-modules/bot-discord/src/DTO/EmpresarialOverwritePlan.php b/app-modules/bot-discord/src/DTO/EmpresarialOverwritePlan.php new file mode 100644 index 000000000..12b3c1750 --- /dev/null +++ b/app-modules/bot-discord/src/DTO/EmpresarialOverwritePlan.php @@ -0,0 +1,54 @@ + + */ + public const array PRIVATE_ROOM_PERMISSIONS = [ + 'view_channel', + 'connect', + 'speak', + 'use_vad', + 'send_messages', + 'read_message_history', + ]; + + /** + * @param list $denyEveryone Permissions denied to `@everyone`. + * @param list $allowPartnerRole Permissions allowed for the Partner Role. + */ + private function __construct( + public string $companySlug, + public string $partnerRoleId, + public array $denyEveryone, + public array $allowPartnerRole, + ) {} + + public static function for(string $companySlug, string $partnerRoleId): self + { + return new self( + companySlug: $companySlug, + partnerRoleId: $partnerRoleId, + denyEveryone: self::PRIVATE_ROOM_PERMISSIONS, + allowPartnerRole: self::PRIVATE_ROOM_PERMISSIONS, + ); + } +} diff --git a/app-modules/bot-discord/src/DTO/EmpresarialRoomDecision.php b/app-modules/bot-discord/src/DTO/EmpresarialRoomDecision.php new file mode 100644 index 000000000..1894b304f --- /dev/null +++ b/app-modules/bot-discord/src/DTO/EmpresarialRoomDecision.php @@ -0,0 +1,34 @@ +plan instanceof EmpresarialOverwritePlan; + } +} diff --git a/app-modules/bot-discord/src/Enums/EmpresarialRejectionReason.php b/app-modules/bot-discord/src/Enums/EmpresarialRejectionReason.php new file mode 100644 index 000000000..2b1a987ed --- /dev/null +++ b/app-modules/bot-discord/src/Enums/EmpresarialRejectionReason.php @@ -0,0 +1,27 @@ + '❌ Você precisa estar dentro de uma sala criada com /sala para usar este comando!', + self::MissingPartnerRole => '❌ Você não faz parte da empresa selecionada e não pode torná-la privada.', + self::UnknownCompany => '❌ Empresa parceira não encontrada.', + }; + } +} diff --git a/app-modules/bot-discord/src/SlashCommands/SalaEmpresarialCommand.php b/app-modules/bot-discord/src/SlashCommands/SalaEmpresarialCommand.php new file mode 100644 index 000000000..3f8e8c06d --- /dev/null +++ b/app-modules/bot-discord/src/SlashCommands/SalaEmpresarialCommand.php @@ -0,0 +1,140 @@ +member->id; + $channelId = cache()->tags(['voice_tracking'])->get('user_last_channel_'.$userId); + + /** @var list $activeChannels */ + $activeChannels = cache()->tags(['voice_channels'])->get('active_voice_channels_keys', []); + + $decision = resolve(ConfigureEmpresarialRoomAction::class)->execute( + companySlug: (string) $this->value('empresa'), + callerRoleIds: $this->callerRoleIds($interaction), + currentChannelId: $channelId ? (string) $channelId : null, + activeChannels: $activeChannels, + ); + + if (!$decision->isApproved()) { + $this->message() + ->content($decision->rejection->message()) + ->reply($interaction, ephemeral: true); + + return; + } + + $this->applyOverwrites($interaction, (string) $channelId, $decision->plan); + } + + /** + * @return array + */ + public function options(): array + { + return [ + [ + 'name' => 'empresa', + 'description' => 'Empresa parceira para a qual a sala ficará privada.', + 'type' => Option::STRING, + 'required' => true, + 'choices' => $this->companyChoices(), + ], + ]; + } + + /** + * @return list + */ + private function callerRoleIds(Interaction $interaction): array + { + $roleIds = []; + + foreach ($interaction->member->roles as $role) { + /** @var Role $role */ + $roleIds[] = $role->id; + } + + return $roleIds; + } + + private function applyOverwrites(Interaction $interaction, string $channelId, EmpresarialOverwritePlan $plan): void + { + /** @var Channel|null $voiceChannel */ + $voiceChannel = $interaction->guild->channels->get('id', $channelId); + + /** @var Role|null $partnerRole */ + $partnerRole = $interaction->guild->roles->get('id', $plan->partnerRoleId); + + // The `@everyone` role shares the guild id in Discord. + /** @var Role|null $everyoneRole */ + $everyoneRole = $interaction->guild->roles->get('id', $interaction->guild->id); + + if (!$voiceChannel || !$partnerRole || !$everyoneRole) { + $this->message() + ->content('❌ Não foi possível configurar a sala. Tente novamente.') + ->reply($interaction, ephemeral: true); + + return; + } + + try { + // Allow the partner role first: if the @everyone deny below fails, the room + // stays public rather than fully locked (deny-first would strand everyone out). + /** @var PromiseInterface $allowPartner */ + $allowPartner = $voiceChannel->setPermissions($partnerRole, $plan->allowPartnerRole, []); + await($allowPartner); + + /** @var PromiseInterface $denyEveryone */ + $denyEveryone = $voiceChannel->setPermissions($everyoneRole, [], $plan->denyEveryone); + await($denyEveryone); + + $this->message() + ->content(sprintf('✅ Sala configurada como privada para a empresa **%s**!', mb_strtoupper($plan->companySlug))) + ->reply($interaction, ephemeral: true); + } catch (Exception) { + $this->message() + ->content('❌ Erro ao configurar a sala. Tente novamente.') + ->reply($interaction, ephemeral: true); + } + } + + /** + * @return list + */ + private function companyChoices(): array + { + /** @var array $partners */ + $partners = config('bot-discord.roles.partners', []); + + return array_map( + fn (string $slug): array => ['name' => mb_strtoupper($slug), 'value' => $slug], + array_keys($partners), + ); + } +} diff --git a/app-modules/bot-discord/tests/Unit/Actions/VoiceChannel/ConfigureEmpresarialRoomActionTest.php b/app-modules/bot-discord/tests/Unit/Actions/VoiceChannel/ConfigureEmpresarialRoomActionTest.php new file mode 100644 index 000000000..fd48fa4ed --- /dev/null +++ b/app-modules/bot-discord/tests/Unit/Actions/VoiceChannel/ConfigureEmpresarialRoomActionTest.php @@ -0,0 +1,134 @@ +set('bot-discord.roles.partners', [ + 'brd' => 'role-brd', + 'acme' => 'role-acme', + ]); +}); + +/** + * @param list $users + */ +function trackedRoom(string $channelId, string $ownerId = 'owner-1', array $users = []): VoiceChannelDTO +{ + return VoiceChannelDTO::make([ + 'guildId' => 'guild-1', + 'channelId' => $channelId, + 'ownerId' => $ownerId, + 'usersCount' => count($users), + 'users' => $users, + ]); +} + +it('approves a member privatizing their own /sala room', function (): void { + $decision = new ConfigureEmpresarialRoomAction()->execute( + companySlug: 'brd', + callerRoleIds: ['role-brd'], + currentChannelId: 'room-1', + activeChannels: [trackedRoom('room-1')], + ); + + expect($decision->isApproved())->toBeTrue() + ->and($decision->rejection)->toBeNull() + ->and($decision->plan)->toBeInstanceOf(EmpresarialOverwritePlan::class) + ->and($decision->plan->companySlug)->toBe('brd') + ->and($decision->plan->partnerRoleId)->toBe('role-brd') + ->and($decision->plan->denyEveryone)->toBe(['view_channel', 'connect', 'speak', 'use_vad', 'send_messages', 'read_message_history']) + ->and($decision->plan->allowPartnerRole)->toBe(['view_channel', 'connect', 'speak', 'use_vad', 'send_messages', 'read_message_history']); +}); + +it('approves privatizing a room a teammate created (gate is role, not ownership)', function (): void { + $decision = new ConfigureEmpresarialRoomAction()->execute( + companySlug: 'brd', + callerRoleIds: ['role-brd'], + currentChannelId: 'room-1', + activeChannels: [trackedRoom('room-1', ownerId: 'someone-else')], + ); + + expect($decision->isApproved())->toBeTrue() + ->and($decision->plan->partnerRoleId)->toBe('role-brd'); +}); + +it('rejects when the caller does not hold the selected company role', function (): void { + $decision = new ConfigureEmpresarialRoomAction()->execute( + companySlug: 'acme', + callerRoleIds: ['role-brd'], + currentChannelId: 'room-1', + activeChannels: [trackedRoom('room-1')], + ); + + expect($decision->isApproved())->toBeFalse() + ->and($decision->plan)->toBeNull() + ->and($decision->rejection)->toBe(EmpresarialRejectionReason::MissingPartnerRole); +}); + +it('rejects when the caller is in a channel that is not /sala-tracked', function (): void { + $decision = new ConfigureEmpresarialRoomAction()->execute( + companySlug: 'brd', + callerRoleIds: ['role-brd'], + currentChannelId: 'permanent-channel', + activeChannels: [trackedRoom('room-1')], + ); + + expect($decision->rejection)->toBe(EmpresarialRejectionReason::NotInTrackedRoom); +}); + +it('rejects when the caller is not connected to any voice channel', function (): void { + $decision = new ConfigureEmpresarialRoomAction()->execute( + companySlug: 'brd', + callerRoleIds: ['role-brd'], + currentChannelId: null, + activeChannels: [trackedRoom('room-1')], + ); + + expect($decision->rejection)->toBe(EmpresarialRejectionReason::NotInTrackedRoom); +}); + +it('rejects when the selected company is not registered', function (): void { + $decision = new ConfigureEmpresarialRoomAction()->execute( + companySlug: 'ghost-corp', + callerRoleIds: ['role-brd'], + currentChannelId: 'room-1', + activeChannels: [trackedRoom('room-1')], + ); + + expect($decision->rejection)->toBe(EmpresarialRejectionReason::UnknownCompany); +}); + +it('allows only the selected company role for a member of several partners', function (): void { + $decision = new ConfigureEmpresarialRoomAction()->execute( + companySlug: 'acme', + callerRoleIds: ['role-brd', 'role-acme'], + currentChannelId: 'room-1', + activeChannels: [trackedRoom('room-1')], + ); + + expect($decision->isApproved())->toBeTrue() + ->and($decision->plan->companySlug)->toBe('acme') + ->and($decision->plan->partnerRoleId)->toBe('role-acme'); +}); + +it('is a harmless re-stamp when run again on an already-configured room', function (): void { + $action = new ConfigureEmpresarialRoomAction(); + $args = [ + 'companySlug' => 'brd', + 'callerRoleIds' => ['role-brd'], + 'currentChannelId' => 'room-1', + 'activeChannels' => [trackedRoom('room-1')], + ]; + + $first = $action->execute(...$args); + $second = $action->execute(...$args); + + expect($first->plan->partnerRoleId)->toBe($second->plan->partnerRoleId) + ->and($first->plan->denyEveryone)->toBe($second->plan->denyEveryone) + ->and($first->plan->allowPartnerRole)->toBe($second->plan->allowPartnerRole); +}); diff --git a/app-modules/bot-discord/tests/Unit/Enums/EmpresarialRejectionReasonTest.php b/app-modules/bot-discord/tests/Unit/Enums/EmpresarialRejectionReasonTest.php new file mode 100644 index 000000000..0daef9de9 --- /dev/null +++ b/app-modules/bot-discord/tests/Unit/Enums/EmpresarialRejectionReasonTest.php @@ -0,0 +1,22 @@ + $reason->message(), + EmpresarialRejectionReason::cases(), + ); + + expect($messages) + ->each->toStartWith('❌') + ->and(array_unique($messages))->toHaveSameSize(EmpresarialRejectionReason::cases()); +}); + +it('maps each case to its backed slug', function (): void { + expect(EmpresarialRejectionReason::NotInTrackedRoom->value)->toBe('not-in-tracked-room') + ->and(EmpresarialRejectionReason::MissingPartnerRole->value)->toBe('missing-partner-role') + ->and(EmpresarialRejectionReason::UnknownCompany->value)->toBe('unknown-company'); +}); diff --git a/package-lock.json b/package-lock.json index a46e98c73..29ed7abc6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@emnapi/runtime": "1.11.2", "@tailwindcss/typography": "0.5.20", "@tailwindcss/vite": "4.3.3", - "concurrently": "10.0.3", + "concurrently": "10.0.4", "husky": "9.1.7", "laravel-vite-plugin": "3.1.3", "lint-staged": "17.2.0", @@ -816,15 +816,15 @@ "license": "MIT" }, "node_modules/concurrently": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-10.0.3.tgz", - "integrity": "sha512-hc3LH4UaKWd/bbyDK/IGVa4RB6PtQ3CUYwtrkzqHn+wIG3Hr5fhpRlk0L/gCa8ZE1L/Ufj50Zho69cI5w8SQBA==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-10.0.4.tgz", + "integrity": "sha512-trZql+7l/0+WRAsAnEdctr4+iiOS6ZrViI6H8QWcCF9MFS/LT0dKpe8vluB1to6it+OxSI4VospFTIFMW8DJRw==", "dev": true, "license": "MIT", "dependencies": { "chalk": "5.6.2", "rxjs": "7.8.2", - "shell-quote": "1.8.4", + "shell-quote": "1.9.0", "supports-color": "10.2.2", "tree-kill": "1.2.2", "yargs": "18.0.0" @@ -1360,9 +1360,9 @@ } }, "node_modules/postcss": { - "version": "8.5.22", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.22.tgz", - "integrity": "sha512-KBDEIpLrvpv16pp3K0Fw+UCoZfopFjjgeB+0tA/aaThfEE74kKDLrgg603YvOWJyg3+WYtyq3xYsQWsIyZlPqQ==", + "version": "8.5.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.23.tgz", + "integrity": "sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==", "dev": true, "funding": [ { @@ -1463,9 +1463,9 @@ } }, "node_modules/shell-quote": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.4.tgz", - "integrity": "sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.9.0.tgz", + "integrity": "sha512-Iov+JwFv/2HcTpcwNMKd8+IWNb8tboQJNQTkAY/LLVK7gGH9jy+LGkVqPxfekHl+yMmiqXszdGWXgkfml7hjqA==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index d28601b85..0ceaf5f33 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@emnapi/runtime": "1.11.2", "@tailwindcss/typography": "0.5.20", "@tailwindcss/vite": "4.3.3", - "concurrently": "10.0.3", + "concurrently": "10.0.4", "husky": "9.1.7", "laravel-vite-plugin": "3.1.3", "lint-staged": "17.2.0", From a686bafee27c33cba68ecf9e3ec8a1967b1c478d Mon Sep 17 00:00:00 2001 From: Gabriel Vieira <48625433+gvieira18@users.noreply.github.com> Date: Mon, 27 Jul 2026 21:38:04 -0300 Subject: [PATCH 25/46] fix(portal): resolve hero avatars by user id (#447) ## Summary - Resolve GitHub avatars in the portal hero section via the stable numeric `external_account_id` (`avatars.githubusercontent.com/u/{id}`) instead of parsing the `metadata` username/name, which could be stale or renamed. - Filter to identities with a numeric `external_account_id` present, dropping the ad-hoc metadata handle extraction. - Add `HeroAvatarsTest` feature coverage for the active-user + GitHub-identity avatar resolution. ## Coverage (GitHub identities, non-deleted) | Strategy | Resolvable avatars | | --- | --- | | By user id (`external_account_id`, new) | **2643** | | By username (`metadata.username\|name`, old) | 2643 | | Resolvable by user id **only** | 0 | | Resolvable by username **only** | 0 | Coverage is identical (all 2643 identities carry both), so no users lose their avatar. The change is about **stability**: numeric user-id URLs survive GitHub username renames, whereas the old username-based URLs break on rename. ## Test plan - [ ] `php artisan test --compact --filter=HeroAvatars` - [ ] Visit the portal homepage and confirm hero avatars render for active users --------- Co-authored-by: Daniel Reis --- .../portal/src/Livewire/HeroSection.php | 15 ++--- .../portal/tests/Feature/HeroAvatarsTest.php | 66 +++++++++++++++++++ 2 files changed, 70 insertions(+), 11 deletions(-) create mode 100644 app-modules/portal/tests/Feature/HeroAvatarsTest.php diff --git a/app-modules/portal/src/Livewire/HeroSection.php b/app-modules/portal/src/Livewire/HeroSection.php index 02042dc45..e44252ce2 100644 --- a/app-modules/portal/src/Livewire/HeroSection.php +++ b/app-modules/portal/src/Livewire/HeroSection.php @@ -78,22 +78,15 @@ private function fetchAvatars(): array return []; } - /** @param array $metadata */ - $githubHandle = static function (array $metadata): ?string { - $handle = $metadata['username'] ?? $metadata['name'] ?? null; - - return is_string($handle) ? $handle : null; - }; - return ExternalIdentity::query() ->where('provider', IdentityProvider::GitHub) ->whereIn('model_id', $activeUserIds) + ->whereNotNull('external_account_id') + ->whereRaw("external_account_id ~ '^[0-9]+$'") ->inRandomOrder() ->limit(10) - ->pluck('metadata') - ->map(fn (array $metadata) => $githubHandle($metadata)) - ->filter() - ->map(fn (string $handle) => sprintf('https://github.com/%s.png', $handle)) + ->pluck('external_account_id') + ->map(fn (string $id) => sprintf('https://avatars.githubusercontent.com/u/%s?v=4', $id)) ->values() ->all(); } diff --git a/app-modules/portal/tests/Feature/HeroAvatarsTest.php b/app-modules/portal/tests/Feature/HeroAvatarsTest.php new file mode 100644 index 000000000..223e0bb9b --- /dev/null +++ b/app-modules/portal/tests/Feature/HeroAvatarsTest.php @@ -0,0 +1,66 @@ + 20 mensagens nos últimos + * 30 dias) e vincula uma identidade GitHub a ele. + */ +function activeUserWithGithub(string $externalAccountId): User +{ + $user = User::factory()->create(); + + $discordIdentity = ExternalIdentity::factory()->create([ + 'model_type' => $user->getMorphClass(), + 'model_id' => $user->id, + 'provider' => IdentityProvider::Discord, + ]); + + Message::factory()->count(21)->create([ + 'external_identity_id' => $discordIdentity->id, + 'sent_at' => now()->subDay(), + ]); + + ExternalIdentity::factory()->create([ + 'model_type' => $user->getMorphClass(), + 'model_id' => $user->id, + 'provider' => IdentityProvider::GitHub, + 'external_account_id' => $externalAccountId, + ]); + + return $user; +} + +it('monta avatares a partir do CDN do GitHub usando o id numérico da conta', function (): void { + activeUserWithGithub('583231'); + + $avatars = livewire(HeroSection::class)->instance()->avatars(); + + expect($avatars)->toContain('https://avatars.githubusercontent.com/u/583231?v=4'); +}); + +it('nunca aponta os avatares para github.com (evita o Set-Cookie cross-site)', function (): void { + activeUserWithGithub('583231'); + + $avatars = livewire(HeroSection::class)->instance()->avatars(); + + expect($avatars)->not->toBeEmpty() + ->and(collect($avatars)->every(fn (string $url): bool => !str_contains($url, 'github.com/'))) + ->toBeTrue(); +}); + +it('ignora identidades GitHub cujo external_account_id não é numérico', function (): void { + activeUserWithGithub('not-a-numeric-id'); + + $avatars = livewire(HeroSection::class)->instance()->avatars(); + + expect($avatars)->toBeEmpty(); +}); From 405a13df784dbb6ebe93bbe6d26567668b86af35 Mon Sep 17 00:00:00 2001 From: Henrique Leme de Brito Date: Tue, 28 Jul 2026 12:36:51 -0300 Subject: [PATCH 26/46] =?UTF-8?q?fix(panel-app):=20corrige=20camada=20do?= =?UTF-8?q?=20modal=20de=20unifica=C3=A7=C3=A3o=20(#442)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #441 ## Contexto O modal de confirmação de unificação era renderizado dentro da coluna lateral sticky. Isso criava um contexto de empilhamento próprio e fazia os campos Apelido e Data de Nascimento aparecerem por cima do modal quando o topo do perfil estava visível. ## O que mudou O modal agora usa o teleport do Livewire para ser renderizado diretamente no body. A lógica de confirmação e cancelamento continua no mesmo componente, mas o modal deixa de ficar preso ao contexto de camadas da coluna lateral. ## Testes 1. `php artisan view:cache` 2. `vendor/bin/pest app-modules/panel-app/tests/Feature/ProfilePageTest.php --compact` com 16 testes e 92 assertions 3. `vendor/bin/pint --test --parallel` 4. `npm run build` ## Validação manual Testei o modal no topo da página e depois de rolar 700 pixels. A camada escura ficou acima de todo o perfil nos dois casos. O botão Cancelar fechou o modal normalmente e o botão Unificar manteve o binding com `confirmMerge`. --- .../tests/Feature/ConnectionHubTest.php | 25 +++++++ .../views/livewire/connection-hub.blade.php | 73 ++++++++++--------- 2 files changed, 64 insertions(+), 34 deletions(-) create mode 100644 app-modules/panel-app/tests/Feature/ConnectionHubTest.php diff --git a/app-modules/panel-app/tests/Feature/ConnectionHubTest.php b/app-modules/panel-app/tests/Feature/ConnectionHubTest.php new file mode 100644 index 000000000..a8dc49331 --- /dev/null +++ b/app-modules/panel-app/tests/Feature/ConnectionHubTest.php @@ -0,0 +1,25 @@ +create(); + $mergeTarget = User::factory()->create(); + + $this->actingAs($currentUser); + + session()->put('oauth_merge_pending', [ + 'conflicting_user_id' => $mergeTarget->id, + ]); + + livewire(ConnectionHub::class) + ->assertSet('showMergeModal', value: true) + ->assertSeeHtml('role="dialog"') + ->assertSeeHtml('aria-modal="true"') + ->assertSeeHtml('@keydown.escape.window="$wire.cancelMerge()"'); +}); diff --git a/resources/views/livewire/connection-hub.blade.php b/resources/views/livewire/connection-hub.blade.php index a419c0789..2ad5b99aa 100644 --- a/resources/views/livewire/connection-hub.blade.php +++ b/resources/views/livewire/connection-hub.blade.php @@ -145,49 +145,54 @@ class="rounded bg-gray-100 px-1 py-0.5 font-mono text-[9px] text-gray-500 ring-1 {{-- Merge Confirmation Modal --}} @if ($showMergeModal && $mergeTarget) -
+ @teleport('body') From b92ec80ed43696315b79d8cc4c6940bfa929719e Mon Sep 17 00:00:00 2001 From: fernanduandrade Date: Thu, 30 Jul 2026 07:31:44 -0300 Subject: [PATCH 27/46] docs: adicionar template de pull request --- .github/pull_request_template.md | 66 ++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 .github/pull_request_template.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 000000000..280e580f8 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,66 @@ +## Summary + + + +### Alterações + + + +- ... +- ... +- ... + +--- + +## Plano de Testes + + + +- [ ] ... +- [ ] ... +- [ ] ... +- [ ] ... + +--- + +## Evidências + + + +### Antes + + + +### Depois + + + +--- + +## Issues Relacionadas + + + +Closes # From fab620070251861dba12475c3ef81d678adcc679 Mon Sep 17 00:00:00 2001 From: Fernando Andrade Date: Thu, 30 Jul 2026 08:59:51 -0300 Subject: [PATCH 28/46] =?UTF-8?q?fix:=20ajustar=20op=C3=A7=C3=B5es=20da=20?= =?UTF-8?q?navbar=20em=20dispositivos=20mobile=20(#465)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary No layout mobile, o menu de navegação está posicionado na parte inferior da tela, o que reduz sua visibilidade e dificulta o acesso aos principais recursos da plataforma. Esta alteração reposiciona o menu para uma área mais visível e reorganiza seus itens para destacar as funcionalidades de maior importância. A nova ordem de exibição passa a ser: 1. Loja 2. Entrar no Discord 3. Área do Usuário 4. Redes Sociais O objetivo é melhorar a usabilidade da navegação em dispositivos móveis, tornando o acesso às principais ações mais intuitivo. ### Alterações - Alterado o arquivo navbar.blade.php removendo margin-auto para os links exibirem no topo. ## Plano de Testes - [x] Acessar a aplicação em um dispositivo mobile ou utilizando o modo responsivo do navegador. - [x] Verificar se o menu de navegação é exibido na parte superior da tela. - [x] Confirmar o menu inicia na superior e não mais na inferior na seguinte ordem: - Loja - Entrar no Discord - Área do Usuário - Redes Sociais - [x] Validar que todos os links permanecem funcionando corretamente após a reorganização. --- ## Evidências (Adicione o comportamento anterior, como prints de tela ou GIFs.) ### Antes image ### Depois (Opcional) image ## Issues Relacionadas Closes [#464](https://github.com/he4rt/heartdevs.com/issues/464) --- app-modules/portal/resources/views/components/navbar.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app-modules/portal/resources/views/components/navbar.blade.php b/app-modules/portal/resources/views/components/navbar.blade.php index 1855a6720..c0bb22667 100644 --- a/app-modules/portal/resources/views/components/navbar.blade.php +++ b/app-modules/portal/resources/views/components/navbar.blade.php @@ -174,7 +174,7 @@ class="flex items-center justify-between rounded-xl px-3 py-3 text-base font-med {{-- CTAs full-width --}} -
+
Date: Sun, 2 Aug 2026 13:13:06 -0300 Subject: [PATCH 29/46] fix: corrigir novo campo de skills, adicionado linkedin e links redirect (#443) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Contexto Este PR implementa a solução da issue #427 e traz melhorias adicionais relacionadas à experiência de edição do perfil. Atualmente, a seção **Skills** exige múltiplos cliques para adicionar várias habilidades e bloqueia o salvamento do perfil quando existem linhas de skills completamente vazias. Esses comportamentos tornam o preenchimento mais lento e geram fricção desnecessária durante a edição do perfil. Além disso, foram realizadas melhorias complementares na experiência de visualização e gerenciamento de links sociais. ## Alterações ### Skills - Permite salvar o perfil quando existirem linhas de skills completamente vazias. - Ajusta a validação para ignorar registros vazios que não possuem dados preenchidos. - Mantém as validações para skills efetivamente preenchidas. - Implementa comportamento reativo utilizando `live()` e `afterStateUpdated()` do Filament para monitorar alterações nos campos da skill. - Adiciona automaticamente uma nova linha de skill quando o último campo da skill atual é preenchido. - A nova linha é criada automaticamente apenas quando: - A skill possui um valor selecionado. - O nível de proficiência foi informado. - O usuário está preenchendo a última linha disponível do repeater. - Utiliza geração automática de UUIDs para manter a consistência dos itens adicionados dinamicamente ao repeater. ### Social Media - Adiciona suporte ao LinkedIn na seção de links sociais do perfil. - Implementa tratamento para aceitar tanto: - URLs completas (`https://linkedin.com/in/usuario`) - Apenas o username/handler (`usuario`) - Normaliza automaticamente os dados para gerar o link correto. ### Preview do Perfil - Adiciona links de redirecionamento nos ícones e informações exibidas no card de preview do perfil. - Permite acessar diretamente os perfis sociais a partir da visualização do usuário. ## Benefícios - Reduz significativamente a quantidade de cliques necessários para cadastrar múltiplas skills. - Torna o fluxo de edição mais rápido e intuitivo. - Evita bloqueios de salvamento causados por linhas vazias sem dados. - Melhora a experiência de configuração de redes sociais. - Facilita a navegação a partir do preview do perfil. ## Issue relacionada Closes #427 ## Links com redirect no preview profile adiiconar links com redirect no
profile preview ## Linkedin adicionado no socio media adicionado linkedin na socials links ## Permite salvar com campos em branco ainda não preenchidos adicionar skill com dados em branco ## Adiciona novo campo automático quando a última coluna é preenchida adicionar novo campo automatico --------- Co-authored-by: Daniel Reis --- app-modules/panel-app/lang/en/profile.php | 9 ++ app-modules/panel-app/lang/pt_BR/profile.php | 9 ++ .../components/profile-preview-card.blade.php | 27 +++-- .../panel-app/src/Pages/ProfilePage.php | 101 +++++++++++++++--- app-modules/profile/lang/en/enums.php | 1 + app-modules/profile/lang/pt_BR/enums.php | 1 + .../profile/src/Enums/SocialPlatform.php | 20 ++++ .../profile/tests/Unit/SocialPlatformTest.php | 59 ++++++++++ 8 files changed, 205 insertions(+), 22 deletions(-) create mode 100644 app-modules/profile/tests/Unit/SocialPlatformTest.php diff --git a/app-modules/panel-app/lang/en/profile.php b/app-modules/panel-app/lang/en/profile.php index 39a63f386..c8461e68e 100644 --- a/app-modules/panel-app/lang/en/profile.php +++ b/app-modules/panel-app/lang/en/profile.php @@ -87,4 +87,13 @@ 'page' => [ 'subtitle' => 'Fill in the fields and watch your card being built in real time', ], + + 'preview' => [ + 'available' => 'Available', + 'years_experience' => ':count year of exp.|:count years of exp.', + 'skills' => 'Skills', + 'experience' => 'Experience', + 'can_start' => 'Can start:', + 'footer' => 'This card appears in the member listing and on your public profile.', + ], ]; diff --git a/app-modules/panel-app/lang/pt_BR/profile.php b/app-modules/panel-app/lang/pt_BR/profile.php index 413407ba6..57671c1e8 100644 --- a/app-modules/panel-app/lang/pt_BR/profile.php +++ b/app-modules/panel-app/lang/pt_BR/profile.php @@ -87,4 +87,13 @@ 'page' => [ 'subtitle' => 'Preencha os campos e veja seu card sendo montado em tempo real', ], + + 'preview' => [ + 'available' => 'Disponível', + 'years_experience' => ':count ano de exp.|:count anos de exp.', + 'skills' => 'Skills', + 'experience' => 'Experiência', + 'can_start' => 'Pode iniciar:', + 'footer' => 'Esse card aparece na listagem de membros e no seu perfil público.', + ], ]; diff --git a/app-modules/panel-app/resources/views/components/profile-preview-card.blade.php b/app-modules/panel-app/resources/views/components/profile-preview-card.blade.php index 5386dac5f..f10c5700d 100644 --- a/app-modules/panel-app/resources/views/components/profile-preview-card.blade.php +++ b/app-modules/panel-app/resources/views/components/profile-preview-card.blade.php @@ -123,7 +123,7 @@ class="flex h-16 w-16 items-center justify-center rounded-full border-4 border-w class="inline-flex items-center gap-1 rounded-full bg-green-50 px-2 py-0.5 text-xs font-medium text-green-700 dark:bg-green-500/10 dark:text-green-400" > - Disponível + {{ __('panel-app::profile.preview.available') }} @endif
@@ -165,7 +165,7 @@ class="inline-flex items-center gap-1 rounded-full bg-green-50 px-2 py-0.5 text- @endif @if ($yearsExperience) - {{ $yearsExperience }} {{ $yearsExperience == 1 ? 'ano' : 'anos' }} de exp. + {{ trans_choice('panel-app::profile.preview.years_experience', $yearsExperience, ['count' => $yearsExperience]) }} @endif
@@ -180,7 +180,7 @@ class="inline-flex items-center gap-1 rounded-full bg-green-50 px-2 py-0.5 text- @if ($skills->isNotEmpty())
- Skills + {{ __('panel-app::profile.preview.skills') }}
@foreach ($skills as $skill) @@ -203,7 +203,7 @@ class="inline-flex items-center gap-1 rounded-md bg-purple-50 px-2 py-0.5 text-x
Experiência{{ __('panel-app::profile.preview.experience') }} - {{ $platform->getLabel() }} {{ $link['handle'] }} - + + + {{ $platform->getLabel() }} + + + + @endif @endforeach
@@ -257,13 +266,13 @@ class="inline-block rounded-full border border-gray-200 bg-gray-50 px-2.5 py-0.5 {{-- Start availability --}} @if ($available && $startAvailability)

- Pode iniciar: {{ $startAvailability->getLabel() }} + {{ __('panel-app::profile.preview.can_start') }} {{ $startAvailability->getLabel() }}

@endif
{{-- Footer --}}
-

Esse card aparece na listagem de membros e no seu perfil público.

+

{{ __('panel-app::profile.preview.footer') }}

diff --git a/app-modules/panel-app/src/Pages/ProfilePage.php b/app-modules/panel-app/src/Pages/ProfilePage.php index 350b4d02d..5c7c6a93a 100644 --- a/app-modules/panel-app/src/Pages/ProfilePage.php +++ b/app-modules/panel-app/src/Pages/ProfilePage.php @@ -147,13 +147,21 @@ public function form(Schema $schema): Schema ->getOptionLabelUsing(fn (?string $value): ?string => $value === null ? null : (Skill::labelsById()[$value] ?? null)) ->optionsLimit(50) ->distinct() - ->required() + ->required(fn (Get $get): bool => filled($get('proficiency'))) ->columnSpan(1), Select::make('proficiency') ->label(__('panel-app::profile.fields.proficiency')) ->options(SkillProficiency::class) - ->required() + ->required(fn (Get $get): bool => filled($get('skill_id'))) + ->live() + ->afterStateUpdated(function (Get $get, Select $component): void { + if (blank($get('skill_id')) || blank($get('proficiency'))) { + return; + } + + $this->appendEmptyRepeaterItemIfLastRow($component); + }) ->columnSpan(1), TextInput::make('years_experience') @@ -221,13 +229,21 @@ public function form(Schema $schema): Schema Select::make('platform') ->label(__('panel-app::profile.fields.platform')) ->options(SocialPlatform::class) - ->required() + ->required(fn (Get $get): bool => filled($get('handle'))) ->columnSpan(1), TextInput::make('handle') ->label(__('panel-app::profile.fields.handle')) ->placeholder(__('panel-app::profile.placeholders.handle')) - ->required() + ->required(fn (Get $get): bool => filled($get('platform'))) + ->live(onBlur: true) + ->afterStateUpdated(function (Get $get, TextInput $component): void { + if (blank($get('platform')) || blank($get('handle'))) { + return; + } + + $this->appendEmptyRepeaterItemIfLastRow($component); + }) ->columnSpan(1), ]), ]) @@ -301,18 +317,18 @@ public function form(Schema $schema): Schema Grid::make(2)->schema([ TextInput::make('company_name') ->label(__('panel-app::profile.fields.company_name')) - ->required() + ->required(fn (Get $get): bool => filled($get('position')) || filled($get('description')) || filled($get('start_date'))) ->maxLength(255) ->columnSpan(1), TextInput::make('position') ->label(__('panel-app::profile.fields.position')) - ->required() + ->required(fn (Get $get): bool => filled($get('company_name')) || filled($get('description')) || filled($get('start_date'))) ->maxLength(255) ->columnSpan(1), ]), Textarea::make('description') ->label(__('panel-app::profile.fields.experience_description')) - ->required() + ->required(fn (Get $get): bool => filled($get('company_name')) || filled($get('position')) || filled($get('start_date'))) ->rows(3) ->maxLength(2_000) ->columnSpanFull(), @@ -323,7 +339,7 @@ public function form(Schema $schema): Schema ->displayFormat('M Y') ->format('Y-m-d') ->maxDate(now()) - ->required() + ->required(fn (Get $get): bool => filled($get('company_name')) || filled($get('position')) || filled($get('description'))) ->columnSpan(1), DatePicker::make('end_date') ->label(__('panel-app::profile.fields.end_date')) @@ -332,7 +348,7 @@ public function form(Schema $schema): Schema ->format('Y-m-d') ->maxDate(now()) ->afterOrEqual('start_date') - ->required(fn (Get $get): bool => !$get('is_currently_working_here')) + ->required(fn (Get $get): bool => !$get('is_currently_working_here') && (filled($get('company_name')) || filled($get('position')) || filled($get('description')) || filled($get('start_date')))) ->hidden(fn (Get $get): bool => (bool) $get('is_currently_working_here')) ->columnSpan(1), ]), @@ -606,10 +622,18 @@ private function repeaterToSocialLinks(array $repeaterData): array /** * @param array $data - * @return array + * @return array|null null tells Filament to skip creating/saving this row */ - private function normalizeWorkExperienceData(array $data): array + private function normalizeWorkExperienceData(array $data): ?array { + $keyFields = ['company_name', 'position', 'description', 'start_date']; + + $hasAnyData = collect($keyFields)->contains(fn (string $field): bool => filled($data[$field] ?? null)); + + if (!$hasAnyData) { + return null; + } + if ($data['is_currently_working_here'] ?? false) { $data['end_date'] = null; } @@ -635,6 +659,53 @@ private function skillsToRepeater(Profile $profile): array return $skills; } + private function appendEmptyRepeaterItemIfLastRow(Select|TextInput $component): void + { + $repeater = $component->getParentRepeater(); + + if (!$repeater instanceof Repeater) { + return; + } + + $items = $repeater->getRawState(); + + if (!is_array($items) || blank($items)) { + return; + } + + $repeaterPath = $repeater->getStatePath(); + $componentPath = $component->getStatePath(); + + if ($repeaterPath === null || $componentPath === null) { + return; + } + + $currentKey = explode('.', mb_substr($componentPath, mb_strlen($repeaterPath) + 1))[0]; + + if ($currentKey !== array_key_last($items)) { + return; + } + + $newUuid = $repeater->generateUuid(); + + if ($newUuid) { + $items[$newUuid] = []; + } else { + $items[] = []; + } + + $repeater->rawState($items); + + $childSchema = $repeater->getChildSchema($newUuid ?? array_key_last($items)); + + if ($childSchema instanceof Schema) { + $childSchema->fill(); + } + + $repeater->collapsed(condition: false, shouldMakeComponentCollapsible: false); + $repeater->callAfterStateUpdated(); + } + /** * Skill ids already chosen in the other rows of the skills repeater, so the * search can omit them and each skill is only pickable once. @@ -644,13 +715,17 @@ private function skillsToRepeater(Profile $profile): array private function skillIdsInSiblingRows(Select $component): array { $repeater = $component->getParentRepeater(); - if ($repeater === null) { + + if (!$repeater instanceof Repeater) { return []; } - /** @var array> $rows */ $rows = $repeater->getRawState(); + if (!is_array($rows)) { + return []; + } + return array_values( collect($rows) ->pluck('skill_id') diff --git a/app-modules/profile/lang/en/enums.php b/app-modules/profile/lang/en/enums.php index 685489637..3ffd48b77 100644 --- a/app-modules/profile/lang/en/enums.php +++ b/app-modules/profile/lang/en/enums.php @@ -17,6 +17,7 @@ 'website' => 'Website', 'youtube' => 'YouTube', 'bluesky' => 'Bluesky', + 'linkedin' => 'LinkedIn', ], 'skill_category' => [ diff --git a/app-modules/profile/lang/pt_BR/enums.php b/app-modules/profile/lang/pt_BR/enums.php index e01c86c7d..1b1fa3b9b 100644 --- a/app-modules/profile/lang/pt_BR/enums.php +++ b/app-modules/profile/lang/pt_BR/enums.php @@ -17,6 +17,7 @@ 'website' => 'Website', 'youtube' => 'YouTube', 'bluesky' => 'Bluesky', + 'linkedin' => 'LinkedIn', ], 'skill_category' => [ diff --git a/app-modules/profile/src/Enums/SocialPlatform.php b/app-modules/profile/src/Enums/SocialPlatform.php index 8dccf0275..db6eaf65d 100644 --- a/app-modules/profile/src/Enums/SocialPlatform.php +++ b/app-modules/profile/src/Enums/SocialPlatform.php @@ -15,6 +15,7 @@ enum SocialPlatform: string implements HasIcon, HasLabel case Website = 'website'; case YouTube = 'youtube'; case Bluesky = 'bluesky'; + case LinkedIn = 'linkedin'; /** * @return array @@ -40,6 +41,25 @@ public function getIcon(): Heroicon self::Website => Heroicon::GlobeAlt, self::YouTube => Heroicon::PlayCircle, self::Bluesky => Heroicon::Cloud, + self::LinkedIn => Heroicon::Link + }; + } + + public function getUrl(string $handle): string + { + if (str_starts_with($handle, 'http://') || str_starts_with($handle, 'https://')) { + return $handle; + } + + $slug = mb_ltrim($handle, '@'); + + return match ($this) { + self::Instagram => 'https://instagram.com/'.$slug, + self::Twitter => 'https://x.com/'.$slug, + self::LinkedIn => 'https://linkedin.com/in/'.$slug, + self::YouTube => 'https://youtube.com/@'.$slug, + self::Bluesky => 'https://bsky.app/profile/'.$slug, + self::Website => 'https://'.$slug, }; } } diff --git a/app-modules/profile/tests/Unit/SocialPlatformTest.php b/app-modules/profile/tests/Unit/SocialPlatformTest.php new file mode 100644 index 000000000..d7da83f3c --- /dev/null +++ b/app-modules/profile/tests/Unit/SocialPlatformTest.php @@ -0,0 +1,59 @@ + ['johndoe'], + 'username with @' => ['@johndoe'], +]); + +test('instagram builds correct url from handle', function (string $handle): void { + expect(SocialPlatform::Instagram->getUrl($handle)) + ->toBe('https://instagram.com/johndoe'); +})->with('username handles'); + +test('twitter builds correct url from handle', function (string $handle): void { + expect(SocialPlatform::Twitter->getUrl($handle)) + ->toBe('https://x.com/johndoe'); +})->with('username handles'); + +test('linkedin builds correct url from handle', function (string $handle): void { + expect(SocialPlatform::LinkedIn->getUrl($handle)) + ->toBe('https://linkedin.com/in/johndoe'); +})->with('username handles'); + +test('youtube builds correct url from handle', function (string $handle): void { + expect(SocialPlatform::YouTube->getUrl($handle)) + ->toBe('https://youtube.com/@johndoe'); +})->with('username handles'); + +test('bluesky builds correct url from handle', function (string $handle): void { + expect(SocialPlatform::Bluesky->getUrl($handle)) + ->toBe('https://bsky.app/profile/johndoe'); +})->with('username handles'); + +test('website prepends https when no scheme is provided', function (): void { + expect(SocialPlatform::Website->getUrl('example.dev')) + ->toBe('https://example.dev'); +}); + +test('full https url is returned as-is for any platform', function (): void { + $url = 'https://www.linkedin.com/in/johndoe/'; + + expect(SocialPlatform::LinkedIn->getUrl($url))->toBe($url); +}); + +test('full http url is returned as-is for any platform', function (): void { + $url = 'http://example.dev'; + + expect(SocialPlatform::Website->getUrl($url))->toBe($url); +}); + +test('full url is not double-prefixed for all platforms', function (): void { + foreach (SocialPlatform::cases() as $platform) { + $url = 'https://example.com/foo'; + expect($platform->getUrl($url))->toBe($url); + } +}); From cf13720256f735dd38be7a4b15f1a7c768c14dca Mon Sep 17 00:00:00 2001 From: Fernando Andrade Date: Sun, 2 Aug 2026 13:19:44 -0300 Subject: [PATCH 30/46] =?UTF-8?q?fix:=20remover=20op=C3=A7=C3=A3o=20de=20f?= =?UTF-8?q?ixar=20post=20da=20timeline=20(#463)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Contexto Este PR implementa a solução da issue [461](https://github.com/he4rt/heartdevs.com/issues/461) e remove a opção de fixar post do feed da aplicação ## Descrição do problema Atualmente existe a função de fixar disponível na timeline, porém ela pode ser utilizada por qualquer usuário e não possui um propósito concreto definido. Como não há uma funcionalidade real por trás dessa ação, ela acaba disponível sem trazer valor claro e pode gerar confusão no uso. A sugestão é desativar essa função até que exista uma proposta concreta e bem definida para ela. Alterações - Adicionado feature flag com o valor **false** como default para desabilitar a função de fixar - Desabilita do engament.blade.php a opção de fixar/desfixar ## ANTES image ## DEPOIS image ## Issue relacionada Closes https://github.com/he4rt/heartdevs.com/issues/461 Co-authored-by: Daniel Reis --- .../resources/views/components/timeline/engagement.blade.php | 2 +- .../resources/views/components/timeline/header.blade.php | 2 +- app-modules/panel-app/src/Livewire/Timeline/PostShow.php | 2 +- config/he4rt.php | 5 +++++ 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app-modules/panel-app/resources/views/components/timeline/engagement.blade.php b/app-modules/panel-app/resources/views/components/timeline/engagement.blade.php index 15b250b62..87c84c331 100644 --- a/app-modules/panel-app/resources/views/components/timeline/engagement.blade.php +++ b/app-modules/panel-app/resources/views/components/timeline/engagement.blade.php @@ -31,7 +31,7 @@ class="hover:text-primary-500 flex items-center gap-1.5 transition"
- @if ($isOwner) + @if ($isOwner && config('he4rt.features.timeline_pin'))
- @if ($pinned) + @if ($pinned && config('he4rt.features.timeline_pin'))
diff --git a/app-modules/panel-app/src/Livewire/Timeline/PostShow.php b/app-modules/panel-app/src/Livewire/Timeline/PostShow.php index e8d576cd2..ff0ff6405 100644 --- a/app-modules/panel-app/src/Livewire/Timeline/PostShow.php +++ b/app-modules/panel-app/src/Livewire/Timeline/PostShow.php @@ -26,7 +26,7 @@ public function refresh(): void {} public function togglePin(#[CurrentUser] ?User $user): void { - if (!$user instanceof User) { + if (!config('he4rt.features.timeline_pin') || !$user instanceof User) { return; } diff --git a/config/he4rt.php b/config/he4rt.php index 95621d456..07b846348 100644 --- a/config/he4rt.php +++ b/config/he4rt.php @@ -11,6 +11,11 @@ 'minimum_level_for_retro' => env('HE4RT_SEASON_MIN_LEVEL', 3), ], 'server_key' => env('HE4RT_BOT_SECRET', 'he4rt'), + + 'features' => [ + 'timeline_pin' => env('HE4RT_FEATURE_TIMELINE_PIN', default: false), + ], + 'discord' => [ 'token' => env('DISCORD_TOKEN'), 'voice_xp_interval' => (int) env('HE4RT_DISCORD_VOICE_XP_INTERVAL', 1_200), From aeefb62912a4440c5dd8432b6d53c2c54bb75427 Mon Sep 17 00:00:00 2001 From: Cristopher Paiva Date: Sun, 2 Aug 2026 13:22:43 -0300 Subject: [PATCH 31/46] =?UTF-8?q?fix(timeline):=20Exibir=20imagem=20de=20p?= =?UTF-8?q?erfil=20do=20usu=C3=A1rio=20nas=20threads=20(igual=20=E2=80=A6?= =?UTF-8?q?=20(#462)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Descrição Corrige a exibição do avatar nas threads. Antes, as respostas exibiam apenas as iniciais do usuário, mesmo quando ele possuía uma imagem de perfil cadastrada. Agora, o comportamento é o mesmo do feed, exibindo o avatar quando disponível e utilizando as iniciais apenas como fallback. ## Mudanças * Exibe o avatar do autor nas respostas da thread, seguindo o mesmo padrão do feed. * Exibe o avatar do usuário logado no composer de respostas. * Adiciona eager loading de `user.media` nas replies para evitar consultas N+1. * Adiciona testes para garantir a renderização correta do avatar nas replies. ## Como testar 1. Faça login com um usuário que tenha um avatar cadastrado. 2. Acesse uma thread que contenha respostas desse usuário. 3. Verifique que o avatar é exibido tanto nas respostas quanto ao lado do campo de resposta. > **Nota (teste local):** > O Spatie Media Library gera URLs absolutas a partir do `APP_URL`. Como o `php artisan serve` roda em `localhost:8000`, é necessário configurar: > > ```env > APP_URL=http://localhost:8000 > ``` > > Em seguida, limpe o cache de configuração: > > ```bash > php artisan config:clear > ``` > > Sem isso, as URLs dos avatares apontam para a porta `80`, fazendo com que as imagens apareçam quebradas. Esse comportamento também afeta o feed e não é específico deste PR. Closes #459 Co-authored-by: Daniel Reis --- .../timeline/reply-composer.blade.php | 26 ++++++++++++------- .../timeline/thread-replies.blade.php | 19 ++++++++++---- .../src/Livewire/Timeline/ReplyComposer.php | 10 +++++++ .../src/Livewire/Timeline/ThreadReplies.php | 2 +- .../tests/Feature/Timeline/ThreadPageTest.php | 20 ++++++++++++++ 5 files changed, 62 insertions(+), 15 deletions(-) diff --git a/app-modules/panel-app/resources/views/livewire/timeline/reply-composer.blade.php b/app-modules/panel-app/resources/views/livewire/timeline/reply-composer.blade.php index 4bbdedf24..1618ada38 100644 --- a/app-modules/panel-app/resources/views/livewire/timeline/reply-composer.blade.php +++ b/app-modules/panel-app/resources/views/livewire/timeline/reply-composer.blade.php @@ -4,15 +4,23 @@ class="overflow-hidden rounded-xl border border-gray-200 bg-white dark:border-wh >
- + @if ($this->avatarUrl) + + @else + + @endif
{{ $this->form }}
diff --git a/app-modules/panel-app/resources/views/livewire/timeline/thread-replies.blade.php b/app-modules/panel-app/resources/views/livewire/timeline/thread-replies.blade.php index 582d6f9e2..1e11d522a 100644 --- a/app-modules/panel-app/resources/views/livewire/timeline/thread-replies.blade.php +++ b/app-modules/panel-app/resources/views/livewire/timeline/thread-replies.blade.php @@ -12,11 +12,20 @@ class="px-3 py-2.5 text-xs font-semibold tracking-wide text-gray-500 uppercase s @continue (!$reply->postable)
-
- {{ str($reply->user->name)->substr(0, 2)->upper() }} -
+ @php($replyAvatarUrl = $reply->user->getFirstMediaUrl('avatar') ?: null) + @if ($replyAvatarUrl) + {{ $reply->user->name }} + @else +
+ {{ str($reply->user->name)->substr(0, 2)->upper() }} +
+ @endif
diff --git a/app-modules/panel-app/src/Livewire/Timeline/ReplyComposer.php b/app-modules/panel-app/src/Livewire/Timeline/ReplyComposer.php index 57001606d..2dfe0c854 100644 --- a/app-modules/panel-app/src/Livewire/Timeline/ReplyComposer.php +++ b/app-modules/panel-app/src/Livewire/Timeline/ReplyComposer.php @@ -13,6 +13,7 @@ use He4rt\Activity\Timeline\DTOs\CreateReplyDTO; use He4rt\Identity\User\Models\User; use Illuminate\View\View; +use Livewire\Attributes\Computed; use Livewire\Attributes\Locked; use Livewire\Component; @@ -81,6 +82,15 @@ public function reply(): void $this->dispatch('timeline.reply-created'); } + #[Computed] + public function avatarUrl(): ?string + { + /** @var User $user */ + $user = auth()->user(); + + return $user->getFirstMediaUrl('avatar') ?: null; + } + public function render(): View { return view('panel-app::livewire.timeline.reply-composer'); diff --git a/app-modules/panel-app/src/Livewire/Timeline/ThreadReplies.php b/app-modules/panel-app/src/Livewire/Timeline/ThreadReplies.php index e9ae79ffc..a4f564c01 100644 --- a/app-modules/panel-app/src/Livewire/Timeline/ThreadReplies.php +++ b/app-modules/panel-app/src/Livewire/Timeline/ThreadReplies.php @@ -43,7 +43,7 @@ public function render(): View { $replies = Timeline::query() ->where('root_id', $this->timelineId)->whereNotNull('parent_id') - ->with(['user', 'postable']) + ->with(['user.media', 'postable']) ->oldest() ->simplePaginate($this->perPage); diff --git a/app-modules/panel-app/tests/Feature/Timeline/ThreadPageTest.php b/app-modules/panel-app/tests/Feature/Timeline/ThreadPageTest.php index 635131fcc..1441b1eb1 100644 --- a/app-modules/panel-app/tests/Feature/Timeline/ThreadPageTest.php +++ b/app-modules/panel-app/tests/Feature/Timeline/ThreadPageTest.php @@ -10,6 +10,8 @@ use He4rt\PanelApp\Livewire\Timeline\ReplyComposer; use He4rt\PanelApp\Livewire\Timeline\ThreadReplies; use He4rt\PanelApp\Pages\ThreadPage; +use Illuminate\Http\UploadedFile; +use Illuminate\Support\Facades\Storage; use function Pest\Livewire\livewire; @@ -77,6 +79,24 @@ ->assertSeeInOrder(['First reply', 'Second reply']); }); +test('thread replies shows the author avatar when one exists', function (): void { + Storage::fake(config()->string('filesystems.default')); + + $replier = User::factory()->create(['name' => 'Replier With Avatar']); + $replier->addMedia(UploadedFile::fake()->image('avatar.jpg'))->toMediaCollection('avatar'); + + $entry = PostEntry::factory()->create(['content' => 'Reply with avatar']); + Timeline::factory()->for($replier)->create([ + 'postable_type' => (new PostEntry)->getMorphClass(), + 'postable_id' => $entry->id, + 'root_id' => $this->rootPost->id, + 'parent_id' => $this->rootPost->id, + ]); + + livewire(ThreadReplies::class, ['timelineId' => $this->rootPost->id]) + ->assertSee($replier->getFirstMediaUrl('avatar'), escape: false); +}); + test('post renders without crashing when its author was deleted', function (): void { $ghost = User::factory()->create(); $entry = PostEntry::factory()->create(['content' => 'Orphaned post content']); From b7948f5bc309d840e5c9a074dab763456e9ea07d Mon Sep 17 00:00:00 2001 From: Yuri Souza Date: Sun, 2 Aug 2026 13:35:08 -0300 Subject: [PATCH 32/46] =?UTF-8?q?feature:=20ao=20salvar=20o=20perfil=20vol?= =?UTF-8?q?ta=20novamente=20para=20o=20topo=20da=20p=C3=A1gina=20(#454)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Descrição Após salvar o perfil, a página agora rola automaticamente para o topo para que o usuário visualize imediatamente a notificação de sucesso. ## Mudanças - `app-modules/panel-app/src/Pages/ProfilePage.php` - Dispara o evento `scroll-to-top` após o salvamento do perfil. - `app-modules/panel-app/resources/views/pages/profile.blade.php` - Adiciona um listener para o evento `scroll-to-top`, realizando o scroll da página até o topo. ## Como testar 1. Acessar `/profile`. 2. Alterar qualquer informação do perfil. 3. Salvar o formulário. 4. Verificar que, após o salvamento, a página rola automaticamente para o topo e a mensagem de sucesso fica visível. ## Testes Testado manualmente seguindo os passos acima. --------- Co-authored-by: Daniel Reis --- .../resources/views/pages/profile.blade.php | 10 ++++++++++ composer.lock | 14 +++++++------- package-lock.json | 7 +------ 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/app-modules/panel-app/resources/views/pages/profile.blade.php b/app-modules/panel-app/resources/views/pages/profile.blade.php index e6a41c79c..e1a495de3 100644 --- a/app-modules/panel-app/resources/views/pages/profile.blade.php +++ b/app-modules/panel-app/resources/views/pages/profile.blade.php @@ -37,4 +37,14 @@
+ diff --git a/composer.lock b/composer.lock index 4585df653..7505885ca 100644 --- a/composer.lock +++ b/composer.lock @@ -4302,16 +4302,16 @@ }, { "name": "laravel/framework", - "version": "v13.21.1", + "version": "v13.22.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "303b5f8dc899f89e8c38c350b639b8fbd193ed16" + "reference": "d354afa45334cdac523fbc015f203a78d7e2f5c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/303b5f8dc899f89e8c38c350b639b8fbd193ed16", - "reference": "303b5f8dc899f89e8c38c350b639b8fbd193ed16", + "url": "https://api.github.com/repos/laravel/framework/zipball/d354afa45334cdac523fbc015f203a78d7e2f5c6", + "reference": "d354afa45334cdac523fbc015f203a78d7e2f5c6", "shasum": "" }, "require": { @@ -4525,7 +4525,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-07-21T14:27:35+00:00" + "time": "2026-07-24T20:38:48+00:00" }, { "name": "laravel/nightwatch", @@ -18430,6 +18430,6 @@ "platform": { "php": "^8.4" }, - "platform-dev": {}, - "plugin-api-version": "2.9.0" + "platform-dev": [], + "plugin-api-version": "2.6.0" } diff --git a/package-lock.json b/package-lock.json index 29ed7abc6..b0a3b35fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,7 +34,6 @@ "integrity": "sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@emnapi/wasi-threads": "1.2.2", "tslib": "^2.4.0" @@ -46,7 +45,6 @@ "integrity": "sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -1568,8 +1566,7 @@ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.3.tgz", "integrity": "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/tapable": { "version": "2.3.3", @@ -1591,7 +1588,6 @@ "integrity": "sha512-SNiDnXyHSrxVcIOtVbULzcTmniUiwcV7Nwdyj1twVubeTmbjoa8p69KKDpfkdoOavuM4/GRm1+ykI8qqnavHoA==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", @@ -1672,7 +1668,6 @@ "integrity": "sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.5", From 795c306cb66790c461af19a366922e1e0b88bf80 Mon Sep 17 00:00:00 2001 From: Jonatas Santos Date: Sun, 2 Aug 2026 13:39:56 -0300 Subject: [PATCH 33/46] fix(profile): add about character counter (#431) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## O que foi feito Adiciona um contador de caracteres no campo **Sobre** da página de perfil, exibindo o progresso no formato `atual/500`. A mudança mantém o limite já existente de 500 caracteres e apenas melhora o feedback visual para o usuário durante o preenchimento do perfil. ## Detalhes técnicos - Adicionado contador no `Textarea::make('about')`. - Mantido `maxLength(500)`. - Trocado `live(onBlur: true)` por `live()` para atualizar o campo durante a digitação. - Usado `mb_strlen()` para respeitar caracteres multibyte. - O contador visual é atualizado no cliente para evitar atraso/perda de sincronia durante re-renders do Livewire. ## Evidência visual image ## Testes ```bash vendor\bin\pest app-modules\panel-app\tests\Feature\ProfilePageTest.php --compact ``` ## Teste manual 1. Acesse a página de perfil. 2. Digite no campo **Sobre**. 3. Verifique se o contador acompanha a digitação no formato `atual/500`. Closes #426 --------- Co-authored-by: Daniel Reis --- app-modules/panel-app/src/Pages/ProfilePage.php | 2 ++ .../panel-app/tests/Feature/ProfilePageTest.php | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/app-modules/panel-app/src/Pages/ProfilePage.php b/app-modules/panel-app/src/Pages/ProfilePage.php index 5c7c6a93a..491087189 100644 --- a/app-modules/panel-app/src/Pages/ProfilePage.php +++ b/app-modules/panel-app/src/Pages/ProfilePage.php @@ -22,6 +22,7 @@ use Filament\Schemas\Components\Section; use Filament\Schemas\Components\Utilities\Get; use Filament\Schemas\Components\Utilities\Set; +use Filament\Schemas\JsContent; use Filament\Schemas\Schema; use Filament\Support\Enums\Width; use He4rt\Gamification\Character\Models\Character; @@ -123,6 +124,7 @@ public function form(Schema $schema): Schema Textarea::make('about') ->label(__('panel-app::profile.fields.about')) ->placeholder(__('panel-app::profile.placeholders.about')) + ->hint(JsContent::make('`${Array.from($state ?? "").length}/500`')) ->maxLength(500) ->rows(4) ->live(onBlur: true) diff --git a/app-modules/panel-app/tests/Feature/ProfilePageTest.php b/app-modules/panel-app/tests/Feature/ProfilePageTest.php index 23f01970f..aa6fcff6e 100644 --- a/app-modules/panel-app/tests/Feature/ProfilePageTest.php +++ b/app-modules/panel-app/tests/Feature/ProfilePageTest.php @@ -4,6 +4,8 @@ use Filament\Facades\Filament; use Filament\Forms\Components\Select; +use Filament\Forms\Components\Textarea; +use Filament\Schemas\JsContent; use He4rt\Identity\User\Models\User; use He4rt\PanelApp\Pages\ProfilePage; use He4rt\Profile\Enums\EmploymentType; @@ -188,6 +190,21 @@ ->assertHasFormErrors(['about']); }); +test('profile page shows about character counter in real time', function (): void { + livewire(ProfilePage::class) + ->fillForm([ + 'about' => 'abc'."\u{1F600}".'def', + ]) + ->assertFormFieldExists('about', function (Textarea $field): bool { + expect($field->getHint())->toBeInstanceOf(JsContent::class) + ->and($field->getHint()->toHtml())->toContain('Array.from($state') + ->toContain('500') + ->and($field->getStateBindingModifiers())->toBe(['live', 'blur']); + + return true; + }); +}); + test('profile page validates headline max length', function (): void { livewire(ProfilePage::class) ->fillForm([ From 00a49ae6d3f382afac3e78777ed7639bf3c5ac2c Mon Sep 17 00:00:00 2001 From: Nathan Mota Date: Sun, 2 Aug 2026 13:42:47 -0300 Subject: [PATCH 34/46] Feature - Show the last OAuth provider used (#420) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Problema Atualmente, o usuário não consegue identificar qual provedor OAuth utilizou anteriormente para acessar a plataforma. ## Solução Foi implementado o armazenamento do último provider OAuth utilizado no localStorage, exibindo um badge de “Último acesso” no botão correspondente na tela de login. A preferência é salva somente após um login OAuth concluído com sucesso e não exige alterações no banco de dados (salvei na localStorage que normalmente é o mais usado pra esse tipo de badge). ## Evidências ### Antes Screenshot From 2026-07-14 09-16-06 ### Depois Screenshot From 2026-07-14 09-20-27 ## Testes - Teste de login OAuth concluído no painel `app`, validando o provider na URL de retorno. - Teste de OAuth negado, garantindo que nenhum provider seja salvo. - `OAuthControllerTest.php`: 2 testes e 5 asserções aprovadas. - Rector e Pint validados dentro do container PHP. - Build do frontend validado. --------- Co-authored-by: Daniel Reis --- .../Auth/Http/Controllers/OAuthController.php | 10 +- .../Feature/Auth/OAuthControllerTest.php | 121 ++++++++++++++++++ .../resources/js/last-auth-provider.js | 18 +++ .../resources/views/auth/login.blade.php | 42 +++++- .../resources/views/dashboard.blade.php | 9 ++ .../panel-app/src/PanelAppServiceProvider.php | 7 + .../Feature/Auth/LastAuthProviderTest.php | 39 ++++++ 7 files changed, 241 insertions(+), 5 deletions(-) create mode 100644 app-modules/identity/tests/Feature/Auth/OAuthControllerTest.php create mode 100644 app-modules/panel-app/resources/js/last-auth-provider.js create mode 100644 app-modules/panel-app/tests/Feature/Auth/LastAuthProviderTest.php diff --git a/app-modules/identity/src/Auth/Http/Controllers/OAuthController.php b/app-modules/identity/src/Auth/Http/Controllers/OAuthController.php index a3f694c45..a55cd9f8d 100644 --- a/app-modules/identity/src/Auth/Http/Controllers/OAuthController.php +++ b/app-modules/identity/src/Auth/Http/Controllers/OAuthController.php @@ -76,11 +76,19 @@ public function getAuthenticate(string $provider, HandleOAuthCallbackAction $act return redirect()->to($result->redirectUrl); } + $redirectUrl = $result->redirectUrl; + if ($result->intent === OAuthIntent::Login) { Auth::login($result->user, remember: true); filament()->setCurrentPanel(filament()->getPanel($state->panel)); + + if ($state->panel === 'app') { + $redirectUrl = url()->query($redirectUrl, [ + 'oauth_provider' => $identityProvider->value, + ]); + } } - return redirect()->to($result->redirectUrl); + return redirect()->to($redirectUrl); } } diff --git a/app-modules/identity/tests/Feature/Auth/OAuthControllerTest.php b/app-modules/identity/tests/Feature/Auth/OAuthControllerTest.php new file mode 100644 index 000000000..5ba8e1293 --- /dev/null +++ b/app-modules/identity/tests/Feature/Auth/OAuthControllerTest.php @@ -0,0 +1,121 @@ +instance(GitHubOAuthClient::class, new readonly class($access, $user) implements OAuthClientContract + { + public function __construct( + private OAuthAccessDTO $access, + private OAuthUserDTO $user, + ) {} + + public function redirectUrl(?OAuthStateDTO $state = null): string + { + return 'https://github.test/oauth'; + } + + public function auth(string $code): OAuthAccessDTO + { + return $this->access; + } + + public function getAuthenticatedUser(OAuthAccessDTO $credentials): OAuthUserDTO + { + return $this->user; + } + }); +} + +function callGithubCallback(OAuthStateDTO $state): string +{ + request()->merge([ + 'state' => (string) $state, + 'code' => 'auth-code', + ]); + + return resolve(OAuthController::class) + ->getAuthenticate('github', resolve(HandleOAuthCallbackAction::class)) + ->getTargetUrl(); +} + +test('successful app oauth login marks the provider in the redirect URL', function (): void { + Filament::setCurrentPanel(Filament::getPanel('app')); + bindControllerGithubClient(); + + $targetUrl = callGithubCallback(new OAuthStateDTO( + intent: OAuthIntent::Login, + provider: IdentityProvider::GitHub, + panel: 'app', + returnUrl: '/app?source=oauth', + )); + + expect($targetUrl) + ->toContain('source=oauth') + ->toContain('oauth_provider=github') + ->and(Auth::check())->toBeTrue(); +}); + +test('denied app oauth login does not mark a provider in the redirect URL', function (): void { + $state = new OAuthStateDTO( + intent: OAuthIntent::Login, + provider: IdentityProvider::GitHub, + panel: 'app', + returnUrl: '/app/login', + ); + + request()->merge([ + 'state' => (string) $state, + 'error' => 'access_denied', + ]); + + $targetUrl = resolve(OAuthController::class) + ->getAuthenticate('github', resolve(HandleOAuthCallbackAction::class)) + ->getTargetUrl(); + + expect($targetUrl) + ->toContain('/app/login') + ->not->toContain('oauth_provider='); +}); diff --git a/app-modules/panel-app/resources/js/last-auth-provider.js b/app-modules/panel-app/resources/js/last-auth-provider.js new file mode 100644 index 000000000..8780852cc --- /dev/null +++ b/app-modules/panel-app/resources/js/last-auth-provider.js @@ -0,0 +1,18 @@ +(() => { + const url = new URL(window.location.href); + const provider = url.searchParams.get('oauth_provider'); + const supportedProviders = ['discord', 'github', 'twitch']; + + if (!supportedProviders.includes(provider)) { + return; + } + + try { + window.localStorage.setItem('lastAuthProvider', provider); + } catch (error) { + // Ignore browsers that block localStorage access. + } + + url.searchParams.delete('oauth_provider'); + window.history.replaceState({}, document.title, url); +})(); diff --git a/app-modules/panel-app/resources/views/auth/login.blade.php b/app-modules/panel-app/resources/views/auth/login.blade.php index 7db1b862a..8ecddb087 100644 --- a/app-modules/panel-app/resources/views/auth/login.blade.php +++ b/app-modules/panel-app/resources/views/auth/login.blade.php @@ -80,29 +80,63 @@ class="h-12 w-auto text-purple-500"

Acesse sua conta He4rt Developers

{{-- OAuth --}} -
+ diff --git a/app-modules/panel-app/resources/views/dashboard.blade.php b/app-modules/panel-app/resources/views/dashboard.blade.php index 7076f2e5b..0875024bc 100644 --- a/app-modules/panel-app/resources/views/dashboard.blade.php +++ b/app-modules/panel-app/resources/views/dashboard.blade.php @@ -1,4 +1,13 @@ + {{-- OAuth callbacks land here; persist the provider for the next login page render. --}} + @if (in_array(request()->query('oauth_provider'), ['discord', 'github', 'twitch'], strict: true)) + + @endif +
diff --git a/app-modules/panel-app/src/PanelAppServiceProvider.php b/app-modules/panel-app/src/PanelAppServiceProvider.php index c64ef513a..a7e0fc932 100644 --- a/app-modules/panel-app/src/PanelAppServiceProvider.php +++ b/app-modules/panel-app/src/PanelAppServiceProvider.php @@ -4,6 +4,8 @@ namespace He4rt\PanelApp; +use Filament\Support\Assets\Js; +use Filament\Support\Facades\FilamentAsset; use He4rt\PanelApp\Livewire\Timeline\Composer; use He4rt\PanelApp\Livewire\Timeline\Feed; use He4rt\PanelApp\Livewire\Timeline\PostShow; @@ -21,6 +23,11 @@ public function boot(): void $this->loadViewsFrom(__DIR__.'/../resources/views', 'panel-app'); $this->loadTranslationsFrom(__DIR__.'/../lang', 'panel-app'); + FilamentAsset::register([ + Js::make('last-auth-provider', __DIR__.'/../resources/js/last-auth-provider.js') + ->loadedOnRequest(), + ], package: 'he4rt/panel-app'); + Livewire::component('timeline-composer', Composer::class); Livewire::component('timeline-feed', Feed::class); Livewire::component('timeline-post-show', PostShow::class); diff --git a/app-modules/panel-app/tests/Feature/Auth/LastAuthProviderTest.php b/app-modules/panel-app/tests/Feature/Auth/LastAuthProviderTest.php new file mode 100644 index 000000000..d5de5173b --- /dev/null +++ b/app-modules/panel-app/tests/Feature/Auth/LastAuthProviderTest.php @@ -0,0 +1,39 @@ +get(Filament::getPanel('app')->getLoginUrl()) + ->assertSuccessful() + ->assertSee("window.localStorage.getItem('lastAuthProvider')", escape: false) + ->assertDontSee('last-auth-provider', escape: false); +}); + +test('oauth callback landing loads the writer asset for a supported provider', function (): void { + $this->actingAs(User::factory()->create()); + + $this->get(url()->query(TimelinePage::getUrl(), [ + 'oauth_provider' => 'github', + ])) + ->assertSuccessful() + ->assertSee('last-auth-provider', escape: false); +}); + +test('dashboard does not load the writer asset without a supported oauth marker', function (array $query): void { + $this->actingAs(User::factory()->create()); + + $this->get(url()->query(TimelinePage::getUrl(), $query)) + ->assertSuccessful() + ->assertDontSee('last-auth-provider', escape: false); +})->with([ + 'without marker' => [[]], + 'unsupported provider' => [['oauth_provider' => 'devto']], +]); From 368254995d9aea5a6a5ee5f6ef8de4752f6f8021 Mon Sep 17 00:00:00 2001 From: Jonatas Santos Date: Sun, 2 Aug 2026 13:49:05 -0300 Subject: [PATCH 35/46] fix: update merge message (#440) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## O que mudou Este PR melhora o texto do modal de mesclagem de contas para deixar mais claro o que acontece antes do usuário confirmar a ação. Agora o modal informa explicitamente que: - a conta existente será mantida como principal; - a conta atual será absorvida/removida; - o histórico associado à conta mantida será preservado; - após finalizar, o usuário será autenticado novamente na conta mantida. A regra de mesclagem não foi alterada. A mudança é apenas na mensagem exibida para reduzir ambiguidade no fluxo. ## Observação Não configurei o OAuth real localmente para este PR, porque o fluxo depende de credenciais e callbacks cadastrados nos provedores. O teste cobre o estado pós-OAuth simulando o `oauth_merge_pending`, que é exatamente o ponto em que o modal de confirmação é exibido. Também fiz uma validação visual local forçando temporariamente a abertura do modal apenas para gerar o screenshot abaixo. Essa alteração temporária foi desfeita antes do commit. ## Screenshots image ## Testes - `php artisan test tests\Feature\ConnectionHubMergeModalTest.php` Closes #429 Signed-off-by: Daniel Reis Co-authored-by: Daniel Reis --- .../views/livewire/connection-hub.blade.php | 17 +++++- tests/Feature/ConnectionHubMergeModalTest.php | 53 +++++++++++++++++++ 2 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 tests/Feature/ConnectionHubMergeModalTest.php diff --git a/resources/views/livewire/connection-hub.blade.php b/resources/views/livewire/connection-hub.blade.php index 2ad5b99aa..37d82914e 100644 --- a/resources/views/livewire/connection-hub.blade.php +++ b/resources/views/livewire/connection-hub.blade.php @@ -181,7 +181,22 @@ class="mb-4 rounded-lg border border-gray-200 bg-gray-50 p-3 dark:border-gray-70 @endif
-

Ao unificar, sua conta atual será absorvida por essa conta e você será relogado automaticamente.

+
+ +
+

+ A conta @ {{ $mergeTarget['username'] }} será mantida como principal. +

+

+ Sua conta atual @ {{ auth()->user()->username }} será absorvida e removida. O histórico já associado à conta mantida será preservado. Ao finalizar, você será autenticado novamente na conta @ {{ $mergeTarget['username'] }}. +

+
+
diff --git a/tests/Feature/ConnectionHubMergeModalTest.php b/tests/Feature/ConnectionHubMergeModalTest.php new file mode 100644 index 000000000..7dfb3136b --- /dev/null +++ b/tests/Feature/ConnectionHubMergeModalTest.php @@ -0,0 +1,53 @@ +create([ + 'username' => 'discord-user', + ]); + + $currentUser = User::factory()->create([ + 'username' => 'github-user', + ]); + + ExternalIdentity::factory()->create([ + 'model_type' => (new User)->getMorphClass(), + 'model_id' => $keptUser->id, + 'provider' => IdentityProvider::Discord, + 'external_account_id' => 'discord-123', + ]); + + $this->actingAs($currentUser); + Filament::setCurrentPanel(Filament::getPanel('app')); + + session()->put('oauth_merge_pending', [ + 'conflicting_user_id' => $keptUser->id, + 'provider' => IdentityProvider::Discord->value, + 'credentials' => [], + 'oauth_user' => [ + 'provider_id' => 'discord-123', + 'username' => 'discord-user', + 'name' => 'Discord User', + 'email' => null, + 'avatar_url' => null, + ], + ]); + + livewire(ConnectionHub::class) + ->assertSee('Conta existente encontrada') + ->assertSee('@ discord-user') + ->assertSee('@ github-user') + ->assertSee('será mantida como principal') + ->assertSee('será absorvida e removida') + ->assertSee('histórico já associado à conta mantida será preservado') + ->assertSee('será autenticado novamente'); +}); From 92849f8e5df69d39554d0586ed9390042fd8ae21 Mon Sep 17 00:00:00 2001 From: Yuri Souza Date: Mon, 3 Aug 2026 13:38:26 -0300 Subject: [PATCH 36/46] Add scroll-to-top dispatch after profile update --- app-modules/panel-app/src/Pages/ProfilePage.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app-modules/panel-app/src/Pages/ProfilePage.php b/app-modules/panel-app/src/Pages/ProfilePage.php index 491087189..14a0e632a 100644 --- a/app-modules/panel-app/src/Pages/ProfilePage.php +++ b/app-modules/panel-app/src/Pages/ProfilePage.php @@ -425,6 +425,8 @@ public function save(): void resolve(SyncProfileSkills::class)->handle($profile, $this->repeaterToSkills($formData['skills'] ?? [])); + $this->dispatch('scroll-to-top'); + $this->form->saveRelationships(); Notification::make() From 65781a79a08119e4ffeb54a3ecff86bafe91e5d9 Mon Sep 17 00:00:00 2001 From: fernanduandrade Date: Mon, 3 Aug 2026 14:33:20 -0300 Subject: [PATCH 37/46] feat: incluir steps de quality gate no test plan --- .github/pull_request_template.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 280e580f8..52b94f3e7 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,4 +1,4 @@ -## Summary +## Contexto -- [ ] ... +- [ ] Executar `make check` +- [ ] Executar `make test` - [ ] ... - [ ] ... - [ ] ... @@ -61,6 +62,6 @@ Closes #123 Fixes #123 Resolves #123 Related to #123 ---> -Closes # +Exemplo: Closes #123 +--> From 44fe06782d9a8702f8ff36b4e1c71402679a5e7e Mon Sep 17 00:00:00 2001 From: fernanduandrade Date: Mon, 3 Aug 2026 14:38:15 -0300 Subject: [PATCH 38/46] feat: adicionar template pr para agentes de IA --- .../workflow/05-pull-requests.blade.php | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .ai/guidelines/workflow/05-pull-requests.blade.php diff --git a/.ai/guidelines/workflow/05-pull-requests.blade.php b/.ai/guidelines/workflow/05-pull-requests.blade.php new file mode 100644 index 000000000..698f198fe --- /dev/null +++ b/.ai/guidelines/workflow/05-pull-requests.blade.php @@ -0,0 +1,23 @@ +@php +/** @var \Laravel\Boost\Install\GuidelineAssist $assist */ +@endphp + +# Pull Requests + +When creating or updating a GitHub pull request, agents MUST use the repository PR template at `.github/pull_request_template.md` as the source of truth for the PR body. + +## Required behavior + +- Fill the PR body using the template sections: `Contexto`, `Alterações`, `Plano de Testes`, `Evidências` and `Issues Relacionadas`. +- Preserve the template structure and headings instead of writing a free-form PR description. +- Populate the checklist in `Plano de Testes` with the validation steps that were actually run. +- Include the relevant validation commands from the project workflow, especially `make check` and `make test`, when applicable. +- Add issue references in the `Issues Relacionadas` section using the repository's expected format (for example: `Closes #123`). +- If the change has no visible UI impact, keep the `Evidências` section concise or leave it empty rather than inventing screenshots. + +## Expectations for agents + +- Do not create a PR body from scratch when the template exists. +- Adapt the template content to the specific change, but do not remove required sections unless the repository template already says they are optional. +- Prefer clear, concise Portuguese when the repository and existing templates are written in Portuguese. +- If the PR is for a change that affects behavior, include enough detail for reviewers to understand the impact, the validation performed, and the related issues. From c57cf89b978d435519be3768b55ac6170b7c8568 Mon Sep 17 00:00:00 2001 From: fernanduandrade Date: Mon, 3 Aug 2026 15:15:12 -0300 Subject: [PATCH 39/46] =?UTF-8?q?fix:=20ajutar=20guideline=20para=20n?= =?UTF-8?q?=C3=A3o=20ser=20um=20requisito=20obrig=C3=A1torio=20seguir=20o?= =?UTF-8?q?=20modelo=20da=20PR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/05-pull-requests.blade.php | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/.ai/guidelines/workflow/05-pull-requests.blade.php b/.ai/guidelines/workflow/05-pull-requests.blade.php index 698f198fe..12fd4a9b1 100644 --- a/.ai/guidelines/workflow/05-pull-requests.blade.php +++ b/.ai/guidelines/workflow/05-pull-requests.blade.php @@ -4,20 +4,18 @@ # Pull Requests -When creating or updating a GitHub pull request, agents MUST use the repository PR template at `.github/pull_request_template.md` as the source of truth for the PR body. +When creating or updating a GitHub pull request, agents should consider the repository PR template at `.github/pull_request_template.md` as a helpful reference for structuring the PR body. -## Required behavior +## Guidance -- Fill the PR body using the template sections: `Contexto`, `Alterações`, `Plano de Testes`, `Evidências` and `Issues Relacionadas`. -- Preserve the template structure and headings instead of writing a free-form PR description. -- Populate the checklist in `Plano de Testes` with the validation steps that were actually run. -- Include the relevant validation commands from the project workflow, especially `make check` and `make test`, when applicable. -- Add issue references in the `Issues Relacionadas` section using the repository's expected format (for example: `Closes #123`). +- Prefer using the template sections `Contexto`, `Alterações`, `Plano de Testes`, `Evidências` and `Issues Relacionadas` when they fit the change. +- Keep the structure clear and review-friendly, rather than writing a completely free-form PR description. +- Populate the checklist in `Plano de Testes` with the validation steps that were actually run, including relevant commands such as `make check` and `make test` when applicable. +- Add issue references in the `Issues Relacionadas` section using the repository's expected format (for example: `Closes #123`) when there is a related issue to link. - If the change has no visible UI impact, keep the `Evidências` section concise or leave it empty rather than inventing screenshots. ## Expectations for agents -- Do not create a PR body from scratch when the template exists. -- Adapt the template content to the specific change, but do not remove required sections unless the repository template already says they are optional. -- Prefer clear, concise Portuguese when the repository and existing templates are written in Portuguese. +- It is fine to draft a PR body without the template; the absence of the template does not block the PR. +- Adapt the content to the specific change and prefer clear, concise Portuguese when the repository and existing templates are written in Portuguese. - If the PR is for a change that affects behavior, include enough detail for reviewers to understand the impact, the validation performed, and the related issues. From 6350329cf05a84b591c222331e2259075240a6c3 Mon Sep 17 00:00:00 2001 From: Bruna Domingues Leite Date: Mon, 10 Aug 2026 20:36:33 -0300 Subject: [PATCH 40/46] =?UTF-8?q?fix(panel-app):=20DatePicker=20n=C3=A3o-n?= =?UTF-8?q?ativo=20para=20data=20de=20nascimento=20(#457)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - Substitui o `` nativo do perfil por um `DatePicker` do Filament (`native(false)`), na seção Pessoal, junto com o nickname. - Destaca o dia atual no calendário para melhorar o contraste, especialmente no dark mode. - Adiciona ícone de calendário no campo e abre o picker ao clicar nele. Fixes #397 ## Test plan - [ ] Abrir `/app/profile` e confirmar que "Data de Nascimento" usa o DatePicker do Filament (não o nativo do browser) - [ ] Abrir o calendário e confirmar que dias de meses adjacentes não aparecem como números ambíguos - [ ] No dark mode, confirmar que o dia de hoje fica visualmente distinto - [ ] Clicar no ícone de calendário e confirmar que o painel abre - [ ] Salvar uma data de nascimento e confirmar que persiste após reload Mergir o PR #401 antes e resolver conflitos!!!! --------- Co-authored-by: Cursor --- .../components/profile-media-header.blade.php | 15 +++------- .../resources/views/pages/profile.blade.php | 3 +- .../panel-app/src/Pages/ProfilePage.php | 29 +++++++++++++++++-- .../tests/Feature/ProfilePageTest.php | 14 +++++++++ resources/css/filament/app/theme.css | 10 +++++++ 5 files changed, 57 insertions(+), 14 deletions(-) diff --git a/app-modules/panel-app/resources/views/components/profile-media-header.blade.php b/app-modules/panel-app/resources/views/components/profile-media-header.blade.php index d10570033..e4fe4c211 100644 --- a/app-modules/panel-app/resources/views/components/profile-media-header.blade.php +++ b/app-modules/panel-app/resources/views/components/profile-media-header.blade.php @@ -2,7 +2,8 @@ 'avatarPreviewUrl' => null, 'coverPreviewUrl' => null, 'initials' => '', - 'name' => '' + 'name' => '', + 'birthdateForm' => null, ])
@@ -100,7 +101,7 @@ class="absolute -top-1 -right-1 z-20 rounded-full bg-red-500 p-1 text-white shad
{{-- Nickname + Birthdate --}} -
+
- - + {{ $birthdateForm }}
diff --git a/app-modules/panel-app/resources/views/pages/profile.blade.php b/app-modules/panel-app/resources/views/pages/profile.blade.php index e1a495de3..e2403e56d 100644 --- a/app-modules/panel-app/resources/views/pages/profile.blade.php +++ b/app-modules/panel-app/resources/views/pages/profile.blade.php @@ -11,7 +11,8 @@ 'avatarPreviewUrl' => $this->avatarPreviewUrl, 'coverPreviewUrl' => $this->coverPreviewUrl, 'initials' => $this->initials, - 'name' => auth()->user()->name + 'name' => auth()->user()->name, + 'birthdateForm' => $this->birthdateForm, ]) {{ $this->form }} diff --git a/app-modules/panel-app/src/Pages/ProfilePage.php b/app-modules/panel-app/src/Pages/ProfilePage.php index 14a0e632a..8b1f07228 100644 --- a/app-modules/panel-app/src/Pages/ProfilePage.php +++ b/app-modules/panel-app/src/Pages/ProfilePage.php @@ -46,6 +46,7 @@ /** * @property-read Schema $form + * @property-read Schema $birthdateForm */ class ProfilePage extends Page { @@ -54,6 +55,9 @@ class ProfilePage extends Page /** @var array|null */ public ?array $data = []; + /** @var array|null */ + public ?array $birthdateData = []; + protected static string|null|BackedEnum $navigationIcon = 'heroicon-o-user-circle'; protected static ?string $title = 'Profile'; @@ -72,7 +76,6 @@ public function mount(): void $this->form->fill([ 'nickname' => $profile->nickname, - 'birthdate' => $profile->birthdate?->format('Y-m-d'), 'headline' => $profile->headline, 'seniority_level' => $profile->seniority_level, 'years_experience' => $profile->years_experience, @@ -91,6 +94,27 @@ public function mount(): void $profile->preferences->employmentTypes, ), ]); + + $this->birthdateForm->fill([ + 'birthdate' => $profile->birthdate?->format('Y-m-d'), + ]); + } + + public function birthdateForm(Schema $schema): Schema + { + return $schema + ->components([ + DatePicker::make('birthdate') + ->label(__('panel-app::profile.fields.birthdate')) + ->native(condition: false) + ->displayFormat('d/m/Y') + ->format('Y-m-d') + ->minDate(now()->subYears(120)) + ->maxDate(now()), + ]) + // Own state path: fill() replaces the whole path, so sharing `data` with + // the main form wiped headline/seniority/etc. on mount. + ->statePath('birthdateData'); } public function form(Schema $schema): Schema @@ -387,6 +411,7 @@ public function form(Schema $schema): Schema public function save(): void { + $birthdateData = $this->birthdateForm->getState(); $formData = $this->form->getState(); $profile = $this->getRecord(); @@ -394,7 +419,7 @@ public function save(): void $dto = UpsertProfileDTO::fromArray([ 'nickname' => $this->data['nickname'] ?? null, - 'birthdate' => $this->data['birthdate'] ?? null, + 'birthdate' => $birthdateData['birthdate'] ?? null, 'about' => $formData['about'] ?? null, 'headline' => $formData['headline'] ?? null, 'seniority_level' => $formData['seniority_level'] ?? null, diff --git a/app-modules/panel-app/tests/Feature/ProfilePageTest.php b/app-modules/panel-app/tests/Feature/ProfilePageTest.php index aa6fcff6e..0014d8e38 100644 --- a/app-modules/panel-app/tests/Feature/ProfilePageTest.php +++ b/app-modules/panel-app/tests/Feature/ProfilePageTest.php @@ -95,6 +95,20 @@ ->and($this->profile->about)->toBe('Dev PHP apaixonado por Laravel'); }); +test('profile page saves birthdate from date picker', function (): void { + livewire(ProfilePage::class) + ->fillForm([ + 'birthdate' => '1996-02-15', + ], 'birthdateForm') + ->call('save') + ->assertHasNoFormErrors([], 'birthdateForm') + ->assertNotified(); + + $this->profile->refresh(); + + expect($this->profile->birthdate?->format('Y-m-d'))->toBe('1996-02-15'); +}); + test('profile page saves social links from repeater', function (): void { livewire(ProfilePage::class) ->fillForm([ diff --git a/resources/css/filament/app/theme.css b/resources/css/filament/app/theme.css index 0d56f1f59..5fc7ba0e4 100644 --- a/resources/css/filament/app/theme.css +++ b/resources/css/filament/app/theme.css @@ -69,3 +69,13 @@ .fi-sidebar { @apply border-e border-gray-200 dark:border-white/10; } + +/* Make "today" stand out in date pickers (esp. dark mode) */ +.fi-fo-date-time-picker-calendar-day.fi-fo-date-time-picker-calendar-day-today:not(.fi-selected):not(.fi-disabled) { + @apply font-semibold text-primary-600 ring-1 ring-inset ring-primary-500/50 dark:text-primary-300 dark:ring-primary-400/60; +} + +/* Calendar suffix icon should feel clickable */ +.fi-fo-date-time-picker .fi-input-wrp-suffix { + @apply cursor-pointer; +} From 3ea1f455d8cd9c3e122d960c53d13b02aceca44b Mon Sep 17 00:00:00 2001 From: Elves Santos <168841287+sirelves@users.noreply.github.com> Date: Mon, 10 Aug 2026 20:53:27 -0300 Subject: [PATCH 41/46] chore(makefile): conserta os targets de qualidade (#470) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #471 `make check`, `make pint` e `make format` estavam quebrados. O `CLAUDE.md` manda rodar `make check` antes de commitar — quem segue a doc bate num erro que não é dele. ## O bug ```make pint: @export XDEBUG_MODE=off # morre aqui: não alcança a linha de baixo @$(CURDIR)/vendor/bin/pint --parallel @unset XDEBUG_MODE # ← e esta linha mata o target ``` Cada linha de receita do make roda no **próprio shell**, então o `export` nunca teve efeito nenhum sobre o Pint. E o `unset` derruba o target: o make executa a linha direto, sem shell, e `unset` é builtin, não binário — `make: unset: No such file or directory` → `Error 1`. Reproduzi isolado: acontece **mesmo com a sintaxe correta** (`unset XDEBUG_MODE`). O `=off` sobrando no `test-pint` era só o segundo erro na mesma linha, não a causa. Por isso `make pint` e `make format` caíam junto, não só o `test-pint`. A variável agora vai inline no comando, que é onde ela precisa valer: ```make test-pint: @XDEBUG_MODE=off $(CURDIR)/vendor/bin/pint --test --parallel ``` ## Também neste PR - **`test-phpstan` ganha `--memory-limit=2G`**, que o target `phpstan` já tinha. Sem ele o `make check` estoura os 128M padrão do PHP CLI e morre com fatal de memória — ou seja, `make check` tinha *dois* motivos independentes pra falhar. - **Help do `env-down`** dizia "Start the development environment" (cópia do `env-up`). ## Por que o CI não pegou Os workflows chamam `vendor/bin/pint`, `vendor/bin/phpstan` e `vendor/bin/pest` direto — nenhum passa pelo Makefile. O pipeline seguia verde com o gate local quebrado. Vale considerar se o CI deveria consumir os mesmos targets, pra não haver duas definições de "checar o projeto" que podem divergir de novo. ## Verificação Todos exit 0, e nenhum arquivo tocado além do Makefile: | | | |---|---| | `make check` | ✅ 0 | | `make test-pint` | ✅ 0 | | `make test-phpstan` | ✅ 0 | | `make pint` | ✅ 0 | | `make format` | ✅ 0 | ## Pergunta — `env-down` é destrutivo de propósito? ```make @docker compose --file docker-compose.yml down --rmi all --volumes ``` `--volumes` apaga o banco de desenvolvimento e `--rmi all` remove as imagens. Quem digita `make env-down` esperando só parar os containers perde o Postgres local e paga o download/build de novo no próximo `env-up`. Se for intencional, o help novo já avisa e tá resolvido. Se não for, eu proporia `env-down` = `down` puro e um `env-destroy` separado pro comportamento atual — mas não mudei nada aqui porque é decisão de vocês. --- Makefile | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index c97453650..8bb67106d 100644 --- a/Makefile +++ b/Makefile @@ -10,15 +10,11 @@ route-list: ## List all registered routes .PHONY: pint pint: ## Run Pint code style fixer - @export XDEBUG_MODE=off - @$(CURDIR)/vendor/bin/pint --parallel - @unset XDEBUG_MODE + @XDEBUG_MODE=off $(CURDIR)/vendor/bin/pint --parallel .PHONY: test-pint test-pint: ## Run Pint code style fixer in test mode - @export XDEBUG_MODE=off - @$(CURDIR)/vendor/bin/pint --test --parallel - @unset XDEBUG_MODE=off + @XDEBUG_MODE=off $(CURDIR)/vendor/bin/pint --test --parallel .PHONY: rector rector: ## Run Rector @@ -37,7 +33,7 @@ p: phpstan ## Alias for phpstan .PHONY: test-phpstan test-phpstan: ## Run PHPStan in test mode - @$(CURDIR)/vendor/bin/phpstan analyse --ansi + @$(CURDIR)/vendor/bin/phpstan analyse --ansi --memory-limit=2G .PHONY: format format: rector pint ## Run Pint and Rector and try to fixes the source code @@ -76,7 +72,7 @@ env-up: ## Start the development environment @docker compose --file docker-compose.yml up --detach .PHONY: env-down -env-down: ## Start the development environment +env-down: ## Stop the development environment (removes images and volumes) @docker compose --file docker-compose.yml down --rmi all --volumes .PHONY: dev From 65f9fcda2cca95ec007b73aed5f1e27cc4af761b Mon Sep 17 00:00:00 2001 From: Henrique Leme de Brito Date: Mon, 10 Aug 2026 20:54:28 -0300 Subject: [PATCH 42/46] fix(marketing): corrige participantes ausentes no Meeting Showcase (#478) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Contexto O Meeting Showcase podia encontrar a mensagem no período informado e ainda assim não identificar corretamente o participante. Isso acontecia porque os dados do Discord chegam em formatos diferentes e a tela só tratava parte deles. Também existia um corte no último minuto escolhido. Ao informar 23:40 como horário final, por exemplo, mensagens enviadas depois de 23:40:00 ficavam fora da consulta. Este PR corrige a leitura e exibição dos participantes que já foram ingeridos. O fluxo de ingestão das mensagens não foi alterado. ### Alterações - Suporte aos formatos de metadata na raiz, em `metadata.user` e em `metadata.author` - Fallback para o usuário vinculado quando a identidade não possui metadata suficiente - Inclusão de identidades desconectadas que ainda possuem mensagens históricas - Inclusão de todo o último minuto selecionado no filtro de período - Testes cobrindo os formatos de metadata, fallback de usuário, identidade desconectada e mensagens dentro e fora do limite final --- ## Plano de Testes - [x] Rector nos arquivos alterados sem sugestões - [x] Pint completo aprovado - [x] PHPStan completo sem erros - [x] Testes de Marketing com 8 testes e 69 assertions - [x] Teste da importação de `metadata.author` com 1 teste e 4 assertions - [x] Testes da persistência de mensagens com 3 testes e 9 assertions - [x] Validação local da tela com participantes nos diferentes formatos de metadata A suíte completa local executou 933 testes. Foram 931 aprovados e 2 falhas preexistentes em `MergeDuplicateDiscordProfilesTest`, causadas pelo tratamento de caminho absoluto do Windows no parâmetro `--pairs-file`. Esses testes ficam fora dos arquivos e do fluxo alterado neste PR. O CI em Linux fará a validação completa novamente. --- ## Issues Relacionadas Closes #477 --- .../Marketing/Pages/MeetingShowcasePage.php | 29 ++- .../Marketing/MeetingShowcasePageTest.php | 186 ++++++++++++++++++ 2 files changed, 198 insertions(+), 17 deletions(-) create mode 100644 app-modules/panel-admin/tests/Feature/Marketing/MeetingShowcasePageTest.php diff --git a/app-modules/panel-admin/src/Marketing/Pages/MeetingShowcasePage.php b/app-modules/panel-admin/src/Marketing/Pages/MeetingShowcasePage.php index e9869d625..354c7b1bb 100644 --- a/app-modules/panel-admin/src/Marketing/Pages/MeetingShowcasePage.php +++ b/app-modules/panel-admin/src/Marketing/Pages/MeetingShowcasePage.php @@ -58,7 +58,7 @@ public function loadParticipants(): void $tz = config('app.display_timezone'); $start = Date::parse($this->startDate, $tz)->utc(); - $end = Date::parse($this->endDate, $tz)->utc(); + $end = Date::parse($this->endDate, $tz)->endOfMinute()->utc(); /** @var Collection $messageStats */ $messageStats = Message::query() @@ -73,6 +73,8 @@ public function loadParticipants(): void $identityIds = $messageStats->pluck('external_identity_id'); $identities = ExternalIdentity::query() + ->withTrashed() + ->with('user') ->whereIn('id', $identityIds) ->get() ->keyBy('id'); @@ -102,25 +104,18 @@ private function extractDiscordData(?ExternalIdentity $identity, int $totalMessa } $metadata = $identity->metadata ?? []; + $discordUser = $metadata['user'] ?? $metadata['author'] ?? []; - $username = $metadata['username'] ?? null; - $avatar = $metadata['avatar'] ?? null; - $globalName = $metadata['global_name'] ?? null; - - if (isset($metadata['user'])) { - $discordUser = $metadata['user']; - $username ??= $discordUser['username'] ?? null; - $globalName ??= $discordUser['global_name'] ?? null; - - if (!$avatar && isset($discordUser['avatar'])) { - $avatar = sprintf( - 'https://cdn.discordapp.com/avatars/%s/%s.png?size=128', - $identity->external_account_id, - $discordUser['avatar'], - ); - } + if (!is_array($discordUser)) { + $discordUser = []; } + $linkedUser = $identity->user; + + $username = $metadata['username'] ?? $discordUser['username'] ?? $linkedUser?->username; + $avatar = $metadata['avatar'] ?? $discordUser['avatar'] ?? null; + $globalName = $metadata['global_name'] ?? $discordUser['global_name'] ?? $linkedUser?->name; + if ($avatar && !str_starts_with((string) $avatar, 'http')) { $avatar = sprintf( 'https://cdn.discordapp.com/avatars/%s/%s.png?size=128', diff --git a/app-modules/panel-admin/tests/Feature/Marketing/MeetingShowcasePageTest.php b/app-modules/panel-admin/tests/Feature/Marketing/MeetingShowcasePageTest.php new file mode 100644 index 000000000..3301a131d --- /dev/null +++ b/app-modules/panel-admin/tests/Feature/Marketing/MeetingShowcasePageTest.php @@ -0,0 +1,186 @@ + 'America/Sao_Paulo']); + + $admin = User::factory()->create(); + + $this->actingAs($admin); + Filament::setCurrentPanel(Filament::getPanel('admin')); +}); + +test('it loads Discord participant data from every supported metadata shape', function (): void { + $metadataByAccount = [ + '111' => [ + 'username' => 'root-user', + 'global_name' => 'Root User', + 'avatar' => 'https://cdn.example.com/root.png', + ], + '222' => [ + 'user' => [ + 'username' => 'profile-user', + 'global_name' => 'Profile User', + 'avatar' => 'profile-avatar', + ], + ], + '333' => [ + 'author' => [ + 'username' => 'message-user', + 'global_name' => 'Message User', + 'avatar' => 'message-avatar', + ], + ], + ]; + + foreach ($metadataByAccount as $accountId => $metadata) { + $identity = ExternalIdentity::factory()->create([ + 'provider' => IdentityProvider::Discord, + 'external_account_id' => $accountId, + 'metadata' => $metadata, + ]); + + Message::factory()->create([ + 'external_identity_id' => $identity->id, + 'channel_id' => 'meeting-channel', + 'sent_at' => Date::parse('2026-08-03 22:30:00', 'America/Sao_Paulo')->utc(), + ]); + + if ((string) $accountId === '111') { + Message::factory()->create([ + 'external_identity_id' => $identity->id, + 'channel_id' => 'meeting-channel', + 'sent_at' => Date::parse('2026-08-03 22:31:00', 'America/Sao_Paulo')->utc(), + ]); + } + } + + $linkedUser = User::factory()->create([ + 'username' => 'linked-user', + 'name' => 'Linked User', + ]); + + $identityWithoutMetadata = ExternalIdentity::factory()->create([ + 'model_id' => $linkedUser->id, + 'provider' => IdentityProvider::Discord, + 'external_account_id' => '444', + 'metadata' => [], + ]); + + Message::factory()->create([ + 'external_identity_id' => $identityWithoutMetadata->id, + 'channel_id' => 'meeting-channel', + 'sent_at' => Date::parse('2026-08-03 22:45:00', 'America/Sao_Paulo')->utc(), + ]); + + $disconnectedIdentity = ExternalIdentity::factory()->create([ + 'provider' => IdentityProvider::Discord, + 'external_account_id' => '555', + 'metadata' => [ + 'author' => [ + 'username' => 'disconnected-user', + 'global_name' => 'Disconnected User', + ], + ], + ]); + + Message::factory()->create([ + 'external_identity_id' => $disconnectedIdentity->id, + 'channel_id' => 'meeting-channel', + 'sent_at' => Date::parse('2026-08-03 23:00:00', 'America/Sao_Paulo')->utc(), + ]); + + $disconnectedIdentity->delete(); + + $component = livewire(MeetingShowcasePage::class) + ->set('channelId', 'meeting-channel') + ->set('startDate', '2026-08-03T22:00') + ->set('endDate', '2026-08-03T23:40') + ->call('loadParticipants') + ->assertSet('loaded', value: true); + + /** @var array $participants */ + $participants = $component->get('participants'); + $participantsByAccount = collect($participants)->keyBy('discord_id'); + + expect($participants)->toHaveCount(5) + ->and($participantsByAccount->get('111'))->toMatchArray([ + 'username' => 'root-user', + 'global_name' => 'Root User', + 'avatar_url' => 'https://cdn.example.com/root.png', + 'total_messages' => 2, + ]) + ->and($participantsByAccount->get('222'))->toMatchArray([ + 'username' => 'profile-user', + 'global_name' => 'Profile User', + 'avatar_url' => 'https://cdn.discordapp.com/avatars/222/profile-avatar.png?size=128', + ]) + ->and($participantsByAccount->get('333'))->toMatchArray([ + 'username' => 'message-user', + 'global_name' => 'Message User', + 'avatar_url' => 'https://cdn.discordapp.com/avatars/333/message-avatar.png?size=128', + ]) + ->and($participantsByAccount->get('444'))->toMatchArray([ + 'username' => 'linked-user', + 'global_name' => 'Linked User', + ]) + ->and($participantsByAccount->get('555'))->toMatchArray([ + 'username' => 'disconnected-user', + 'global_name' => 'Disconnected User', + ]); +}); + +test('it includes messages sent during the selected end minute', function (): void { + $identity = ExternalIdentity::factory()->create([ + 'provider' => IdentityProvider::Discord, + 'external_account_id' => '444', + 'metadata' => ['username' => 'last-minute-user'], + ]); + + Message::factory()->create([ + 'external_identity_id' => $identity->id, + 'channel_id' => 'meeting-channel', + 'sent_at' => Date::parse('2026-08-03 23:40:59', 'America/Sao_Paulo')->utc(), + ]); + + livewire(MeetingShowcasePage::class) + ->set('channelId', 'meeting-channel') + ->set('startDate', '2026-08-03T22:00') + ->set('endDate', '2026-08-03T23:40') + ->call('loadParticipants') + ->assertSet('loaded', value: true) + ->assertSet('participants.0.username', 'last-minute-user'); +}); + +test('it excludes messages sent after the selected end minute', function (): void { + $identity = ExternalIdentity::factory()->create([ + 'provider' => IdentityProvider::Discord, + 'external_account_id' => '445', + 'metadata' => ['username' => 'too-late-user'], + ]); + + Message::factory()->create([ + 'external_identity_id' => $identity->id, + 'channel_id' => 'meeting-channel', + 'sent_at' => Date::parse('2026-08-03 23:41:00', 'America/Sao_Paulo')->utc(), + ]); + + livewire(MeetingShowcasePage::class) + ->set('channelId', 'meeting-channel') + ->set('startDate', '2026-08-03T22:00') + ->set('endDate', '2026-08-03T23:40') + ->call('loadParticipants') + ->assertSet('loaded', value: true) + ->assertSet('participants', []); +}); From bb86b7f6e58433a635b579cf0cee953d8714ceb5 Mon Sep 17 00:00:00 2001 From: Bruna Domingues Leite Date: Mon, 10 Aug 2026 21:15:19 -0300 Subject: [PATCH 43/46] fix(panel): corrigir contraste da logo no login em dark mode (#476) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Contexto No login do painel (`/app/login`), a logo mobile da He4rt ficava preta sobre fundo escuro no dark mode, com contraste baixo e quase invisível. Isso acontecia porque o SVG é carregado via `` com `fill="currentColor"`, e classes como `text-purple-500` não alteram a cor nesse caso. A alteração aplica filtro CSS apenas no dark mode (`dark:brightness-0 dark:invert`), tornando a logo branca no dark e mantendo a preta no light. O impacto esperado é melhorar a legibilidade da marca na tela de login sem mudar o comportamento no tema claro. ### Alterações - Ajuste da classe CSS da logo mobile em `app-modules/panel-app/resources/views/auth/login.blade.php` - Troca de `text-purple-500` por `dark:brightness-0 dark:invert` - Light mode preservado; dark mode passa a exibir a logo com contraste adequado --- ## Plano de Testes - [ ] Executar `make check` - [ ] Executar `make test` - [ ] Abrir `/app/login` em viewport mobile (< `lg`) no **dark mode** e confirmar que a logo fica visível (branca) - [ ] Abrir `/app/login` em viewport mobile (< `lg`) no **light mode** e confirmar que a logo preta original permanece - [ ] Confirmar no desktop (`lg+`) que o painel esquerdo com a logo branca não foi alterado --- ## Evidências ### Antes image ### Depois image --- ## Issues Relacionadas Fixes #468 --- app-modules/panel-app/resources/views/auth/login.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app-modules/panel-app/resources/views/auth/login.blade.php b/app-modules/panel-app/resources/views/auth/login.blade.php index 8ecddb087..054eeae39 100644 --- a/app-modules/panel-app/resources/views/auth/login.blade.php +++ b/app-modules/panel-app/resources/views/auth/login.blade.php @@ -72,7 +72,7 @@ class="absolute right-0 bottom-0 left-0 h-px bg-gradient-to-r from-transparent v He4rt Developers
From 021bc456713945ab9f811b1ae6a7755ec809ab33 Mon Sep 17 00:00:00 2001 From: Sther <72408918+stherzada@users.noreply.github.com> Date: Mon, 10 Aug 2026 21:24:12 -0300 Subject: [PATCH 44/46] docs(issues): update templates issues (#473) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #467 Neste PR estou adicionando templates para as principais frentes que hoje abordados, que são features, bug's e PRD. --------- Signed-off-by: Sther <72408918+stherzada@users.noreply.github.com> Co-authored-by: Tiago Góes --- .github/ISSUE_TEMPLATE/bug_report.md | 48 ++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 56 +++++++++ .../prd---m\303\263dulo-de-dom\303\255nio.md" | 106 ++++++++++++++++++ 3 files changed, 210 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 ".github/ISSUE_TEMPLATE/prd---m\303\263dulo-de-dom\303\255nio.md" diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000..f448ab548 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,48 @@ +--- +name: Bug report +about: Reporte um comportamento inesperado para nos ajudar a melhorar +title: '' +labels: bug +assignees: '' +type: Bug + +--- + +## Descrição do problema + + + +## Comportamento esperado + + + +## Comportamento atual + + + +## Passos para reproduzir + +1. Vá até '...' +2. Clique em '...' +3. Preencha '...' +4. Veja o erro + + +## Ambiente + +- **Sistema operacional:** +- **Navegador / versão:** +- **Ambiente:** + + +## Evidências + + + +## Sugestão de correção (opcional) + + + +## Contexto adicional + diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 000000000..9ec38b660 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,56 @@ +--- +name: Feature request +about: Descreva uma feature a ser construída, com critérios de aceite e testes +title: '' +labels: type:feat +assignees: '' +type: Feature + +--- + +## Parent + + + + +## O que construir + +- +- +- + + +## Critérios de aceite + +- [ ] +- [ ] +- [ ] + + +## Teste + +### BDD + +```gherkin +# language: pt + +Funcionalidade: + + Cenário: + Dado + E + Quando + Então + E + + Cenário: + Dado + Então +``` + + +## Bloqueada por + +- [ ] # +- [ ] # diff --git "a/.github/ISSUE_TEMPLATE/prd---m\303\263dulo-de-dom\303\255nio.md" "b/.github/ISSUE_TEMPLATE/prd---m\303\263dulo-de-dom\303\255nio.md" new file mode 100644 index 000000000..cd2396f29 --- /dev/null +++ "b/.github/ISSUE_TEMPLATE/prd---m\303\263dulo-de-dom\303\255nio.md" @@ -0,0 +1,106 @@ +--- +name: PRD / Módulo de Domínio +about: Documento de requisitos para uma nova feature ou módulo de domínio +title: '' +labels: prd +assignees: '' + +--- + +# + +> Uma linha resumindo o que este documento entrega. + +--- + +## Descrição do problema + + + +## Solução + + + +## User Stories + + +- Como ****, quero ****, para que ****. +- Como ****, quero ****, para que ****. +- Como ****, quero ****, para que ****. + + +## Decisões de implementação + + +### Módulo / Namespace + + +### Autoridade & Autorização + + +### Modelo de dados + + +| Tabela | Colunas-chave | Constraints / Índices | Observações | +|--------|---------------|-----------------------|-------------| +| `` | `` | `` | `` | + +### Enums + + +### Gates / Pré-condições + + +### Actions + + +### Invariantes + + + +## Decisões de teste + + +- **:** +- **:** +- **:** + +**Prior art / referências:** + + +## Fora de escopo + + +- +- + + +## 📝 Notas adicionais + + +- **Follow-up:** +- **Evolução:** + + +## Subtarefas + + +## Dúvidas/Incertezas + + +--- + +### 🔗 Referências + + +- ADR-XXXX — +- From ecdabd1ca1dabb749e5421eda0b97be24764d649 Mon Sep 17 00:00:00 2001 From: Fernando Andrade Date: Wed, 12 Aug 2026 18:58:19 -0300 Subject: [PATCH 45/46] fix(login): ajustar background e texto para systemas com light theme (#481) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Contexto Esta alteração visa corrigir a omissão do texto "Entrar" na tela de login para usuários que usam light theme. Foi aplicado suporte para o texto ser visivél tanto em light/dark theme ### Alterações - O login.blade.php foi alterado garantindo suporte para os dois temas. - Ajustado background para o span "ou" que também não estava de acordo para usuários light theme ## Plano de Testes - [x] Executar `make check` - [x] Executar `make test` - [x] Abrir /app/login usando light theme e confirmar que o texto "Entrar" é exibido ## Evidências ### Antes image ### Depois image ## Issues Relacionadas Fixes #480 --- app-modules/panel-app/resources/views/auth/login.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app-modules/panel-app/resources/views/auth/login.blade.php b/app-modules/panel-app/resources/views/auth/login.blade.php index 054eeae39..5ef1432a0 100644 --- a/app-modules/panel-app/resources/views/auth/login.blade.php +++ b/app-modules/panel-app/resources/views/auth/login.blade.php @@ -76,7 +76,7 @@ class="h-12 w-auto dark:brightness-0 dark:invert" />
-

Entrar

+

Entrar

Acesse sua conta He4rt Developers

{{-- OAuth --}} @@ -146,7 +146,7 @@ class="absolute -top-2 right-2 z-10 rounded-full border border-zinc-600 bg-zinc-
- ou + ou
From 58af2f5057a37c80e66481d3e137bd4a7cfb4ce6 Mon Sep 17 00:00:00 2001 From: danielhe4rt Date: Thu, 13 Aug 2026 14:04:03 -0300 Subject: [PATCH 46/46] =?UTF-8?q?chore(tests):=20atualiza=20timings=20de?= =?UTF-8?q?=20shard=20p=C3=B3s-merge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/.pest/shards.json | 317 ++++++++++++++++++++++------------------ 1 file changed, 176 insertions(+), 141 deletions(-) diff --git a/tests/.pest/shards.json b/tests/.pest/shards.json index d236796df..ff54ca8ab 100644 --- a/tests/.pest/shards.json +++ b/tests/.pest/shards.json @@ -1,145 +1,180 @@ { "timings": { - "Appmodules\\activity\\tests\\Unit\\Actions\\NewMessageTest": 3.9043, - "Appmodules\\activity\\tests\\Unit\\Actions\\NewVoiceMessageTest": 3.8752, - "Appmodules\\activity\\tests\\Unit\\Actions\\RecordVoicePresenceTest": 4.2547, - "Appmodules\\activity\\tests\\Unit\\Queries\\GetCurrentVoiceChannelTest": 4.0627, - "Appmodules\\activity\\tests\\Unit\\Timeline\\CreatePostTest": 3.948, - "Appmodules\\activity\\tests\\Unit\\Timeline\\CreateReplyTest": 3.8226, - "Appmodules\\activity\\tests\\Unit\\Timeline\\DeleteReplyTest": 3.9267, - "Appmodules\\activity\\tests\\Unit\\Timeline\\PublishModerationEntryTest": 3.9842, - "Appmodules\\activity\\tests\\Unit\\Timeline\\TimelineFeedQueryTest": 3.9709, - "Appmodules\\activity\\tests\\Unit\\Timeline\\TimelineModelTest": 3.7927, - "Appmodules\\activity\\tests\\Unit\\Timeline\\TogglePinPostTest": 3.9422, - "Appmodules\\activity\\tests\\Unit\\Tracking\\ApproveInteractionTest": 3.6076, - "Appmodules\\activity\\tests\\Unit\\Tracking\\CalculateRewardTest": 3.797, - "Appmodules\\activity\\tests\\Unit\\Tracking\\ClassifyActivityTest": 0.403, - "Appmodules\\activity\\tests\\Unit\\Tracking\\RejectInteractionTest": 3.6361, - "Appmodules\\activity\\tests\\Unit\\Tracking\\TrackActivityTest": 3.7589, - "Appmodules\\botdiscord\\tests\\Feature\\Actions\\VoiceChannel\\HandleStateChannelActionTest": 0.2152, - "Appmodules\\botdiscord\\tests\\Feature\\Events\\RawGatewayEventTest": 3.3814, - "Appmodules\\botdiscord\\tests\\Feature\\Listeners\\AutoExecuteActionTest": 3.4091, - "Appmodules\\botdiscord\\tests\\Feature\\Listeners\\NotifyModerationChannelTest": 3.5494, - "Appmodules\\botdiscord\\tests\\Feature\\Moderation\\DiscordModerationAdapterTest": 4.6603, - "Appmodules\\botdiscord\\tests\\Feature\\SlashCommands\\EditProfileCommandTest": 0.2537, - "Appmodules\\botdiscord\\tests\\Feature\\SlashCommands\\IntroductionCommandTest": 0.2022, - "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceChannel\\JoiningChannelActionTest": 0.3009, - "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceChannel\\LeftChannelActionTest": 0.3513, - "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceTransitionResolverTest": 0.5496, - "Appmodules\\botdiscord\\tests\\Unit\\Moderation\\ModerationEmbedBuilderTest": 3.9503, - "Appmodules\\botdiscord\\tests\\Unit\\SlashCommands\\EditProfileModalValidationTest": 0.7093, - "Appmodules\\docs\\tests\\Feature\\Discovery\\CacheDocsCommandTest": 1.2652, - "Appmodules\\docs\\tests\\Feature\\Discovery\\DocsRoutingTest": 1.1655, - "Appmodules\\docs\\tests\\Unit\\Discovery\\BuildTreeTest": 0.7031, - "Appmodules\\docs\\tests\\Unit\\Discovery\\DiscoveryIntegrationTest": 0.4487, - "Appmodules\\docs\\tests\\Unit\\Discovery\\DocumentTierTest": 0.7343, - "Appmodules\\docs\\tests\\Unit\\Discovery\\FoundationsTest": 1.1644, - "Appmodules\\docs\\tests\\Unit\\Discovery\\ParsingTest": 0.5828, - "Appmodules\\docs\\tests\\Unit\\Discovery\\StrategiesTest": 0.6144, - "Appmodules\\economy\\tests\\Feature\\EconomyFlowTest": 0.1799, - "Appmodules\\economy\\tests\\Unit\\CreditTest": 3.7002, - "Appmodules\\economy\\tests\\Unit\\DebitTest": 3.6779, - "Appmodules\\economy\\tests\\Unit\\TransferTest": 3.6386, - "Appmodules\\gamification\\tests\\Unit\\Character\\GenerateTextExperienceTest": 0.9166, - "Appmodules\\gamification\\tests\\Unit\\Character\\LevelCalculationTest": 4.6872, - "Appmodules\\gamification\\tests\\Unit\\Character\\VoiceExperienceTest": 3.6324, - "Appmodules\\identity\\tests\\Feature\\Auth\\DetectMergeConflictTest": 0.2577, - "Appmodules\\identity\\tests\\Feature\\Auth\\EnrichUserOnFirstLoginTest": 0.4119, - "Appmodules\\identity\\tests\\Feature\\Auth\\FindOrCreateUserByProviderTest": 0.5467, - "Appmodules\\identity\\tests\\Feature\\Auth\\HandleOAuthCallbackActionTest": 0.2127, - "Appmodules\\identity\\tests\\Feature\\Auth\\MergeAccountsActionTest": 0.8937, - "Appmodules\\identity\\tests\\Unit\\ExternalIdentity\\FindExternalIdentityTest": 3.3506, - "Appmodules\\integrationdevto\\tests\\Feature\\DevToOAuthTest": 0.1914, - "Appmodules\\integrationdevto\\tests\\Feature\\SyncDevToArticlesTest": 0.2153, - "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\ImportDiscordMessageTest": 4.1618, - "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\ImportDiscordProfileTest": 1.5793, - "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\MergeDuplicateDiscordProfilesTest": 1.2966, - "Appmodules\\integrationdiscord\\tests\\Feature\\Models\\DiscordEventLogTest": 0.165, - "Appmodules\\integrationdiscord\\tests\\Feature\\OAuth\\DiscordOAuthClientTest": 0.1935, - "Appmodules\\integrationdiscord\\tests\\Unit\\DiscordMessageAdapterTest": 1.9435, - "Appmodules\\integrationdiscord\\tests\\Unit\\Enums\\DiscordEventTypeTest": 0.1252, - "Appmodules\\integrationdiscord\\tests\\Unit\\Sync\\PurgeUnusedInvitesActionTest": 15.0809, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\DiscordConnectorTest": 0.1302, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\DiscordRoleResolverTest": 0.2888, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateBanTest": 0.15, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateDmChannelTest": 0.2045, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateMessageTest": 0.1873, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\DeleteInviteTest": 0.1355, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\DeleteMessageTest": 0.1302, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ExchangeCodeForTokenTest": 0.138, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\GetCurrentUserTest": 0.1363, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\GetMemberTest": 0.0803, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ListGuildInvitesTest": 0.0895, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ModifyMemberTest": 0.12, - "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\RemoveMemberTest": 0.0858, - "Appmodules\\integrationgithub\\tests\\Feature\\BackfillGithubCommandTest": 0.366, - "Appmodules\\integrationgithub\\tests\\Feature\\BackfillGithubRepositoryJobTest": 0.1667, - "Appmodules\\integrationgithub\\tests\\Feature\\BackfillRepositoryTest": 1.4162, - "Appmodules\\integrationgithub\\tests\\Feature\\GitHubOAuthClientTest": 0.3698, - "Appmodules\\integrationgithub\\tests\\Feature\\GithubContributionTest": 0.2144, - "Appmodules\\integrationgithub\\tests\\Feature\\GithubRepositoryTest": 0.3746, - "Appmodules\\integrationgithub\\tests\\Feature\\GithubWebhookTest": 0.8879, - "Appmodules\\integrationtwitch\\tests\\Feature\\LinkTwitchChannelCommandTest": 0.2097, - "Appmodules\\integrationtwitch\\tests\\Feature\\SubscribeTwitchEventsCommandTest": 0.5968, - "Appmodules\\integrationtwitch\\tests\\Feature\\TwitchWebhookTest": 0.7296, - "Appmodules\\integrationwhatsapp\\tests\\Feature\\Ingest\\StoreWhatsAppEventActionTest": 0.563, - "Appmodules\\integrationwhatsapp\\tests\\Feature\\Ingest\\WebhookIngestTest": 1.0307, - "Appmodules\\moderation\\tests\\Feature\\AppealWorkflowTest": 0.5448, - "Appmodules\\moderation\\tests\\Feature\\Appeals\\FileAppealTest": 0.6838, - "Appmodules\\moderation\\tests\\Feature\\Appeals\\ReviewAppealTest": 0.5577, - "Appmodules\\moderation\\tests\\Feature\\Audit\\AuditLogTest": 0.3476, - "Appmodules\\moderation\\tests\\Feature\\CaseWorkflowTest": 0.4533, - "Appmodules\\moderation\\tests\\Feature\\Cases\\SubmitReportTest": 1.2618, - "Appmodules\\moderation\\tests\\Feature\\Classification\\RouteDecisionTest": 2.3194, - "Appmodules\\moderation\\tests\\Feature\\Classification\\RuleBasedClassifierTest": 0.7837, - "Appmodules\\moderation\\tests\\Feature\\Enforcement\\ExecuteActionTest": 0.6521, - "Appmodules\\moderation\\tests\\Feature\\ModelRelationshipTest": 0.8576, - "Appmodules\\moderation\\tests\\Feature\\PipelineTest": 0.8989, - "Appmodules\\moderation\\tests\\Feature\\Pipeline\\ClassifyAndRouteTest": 0.2658, - "Appmodules\\moderation\\tests\\Feature\\Pipeline\\ScreenContentTest": 0.2824, - "Appmodules\\moderation\\tests\\Feature\\Pipeline\\SubmitForModerationTest": 0.2613, - "Appmodules\\moderation\\tests\\Feature\\Platform\\WebAdapterTest": 1.1279, - "Appmodules\\moderation\\tests\\Unit\\ClassifierTest": 3.5423, - "Appmodules\\moderation\\tests\\Unit\\DTOTest": 0.3059, - "Appmodules\\moderation\\tests\\Unit\\EnumTest": 0.2715, - "Appmodules\\moderation\\tests\\Unit\\ModerationRuleMatchTest": 3.3568, - "Appmodules\\moderation\\tests\\Unit\\PenaltyAdvisorTest": 3.9867, - "Appmodules\\moderation\\tests\\Unit\\PlatformRegistryTest": 0.1637, - "Appmodules\\moderation\\tests\\Unit\\RouteCaseActionTest": 3.4342, - "Appmodules\\paneladmin\\tests\\Feature\\AdminPanelAccessTest": 0.707, - "Appmodules\\paneladmin\\tests\\Feature\\Discord\\DiscordClusterSmokeTest": 1.8994, - "Appmodules\\paneladmin\\tests\\Feature\\Github\\GithubRepositoryResourceTest": 0.9664, - "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\CommunityActivityStatsTest": 0.1369, - "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\LocationDashboardTest": 0.1817, - "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\MembersByStateTest": 0.2887, - "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\PeriodStatsTest": 0.1406, - "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\AppealQueueTest": 1.2258, - "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\ModerationDashboardTest": 1.5421, - "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\ModerationQueueTest": 1.3104, - "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\TestRuleActionTest": 0.9155, - "Appmodules\\panelapp\\tests\\Feature\\ProfilePageTest": 3.6607, - "Appmodules\\panelapp\\tests\\Feature\\Timeline\\ThreadPageTest": 0.831, - "Appmodules\\portal\\tests\\Feature\\CommunityRetrospectivePageTest": 0.9096, - "Appmodules\\portal\\tests\\Feature\\CommunityRetrospectiveTest": 1.1354, - "Appmodules\\portal\\tests\\Feature\\HomepageTest": 0.4371, - "Appmodules\\portal\\tests\\Feature\\RetrospectiveFiltersTest": 0.2177, - "Appmodules\\portal\\tests\\Feature\\SocialLinksPageTest": 0.6846, - "Appmodules\\profile\\tests\\Feature\\ProfileCreationTest": 0.3282, - "Appmodules\\profile\\tests\\Feature\\ProfilePreferencesTest": 0.3067, - "Appmodules\\profile\\tests\\Feature\\ProfileWorkExperiencesTest": 0.2303, - "Appmodules\\profile\\tests\\Feature\\SkillSearchTest": 0.1811, - "Appmodules\\profile\\tests\\Feature\\SyncProfileSkillsTest": 0.623, - "Appmodules\\profile\\tests\\Feature\\ToggleAvailabilityTest": 0.3915, - "Appmodules\\profile\\tests\\Feature\\UpsertProfileTest": 0.8321, - "Appmodules\\profile\\tests\\Feature\\WorkExperienceFactoryTest": 0.4544, - "Appmodules\\profile\\tests\\Unit\\ProfileEnumTest": 0.256, - "Appmodules\\profile\\tests\\Unit\\ProfileSocialLinksTest": 0.0505, - "Appmodules\\profile\\tests\\Unit\\SkillEnumTest": 0.12, - "Appmodules\\profile\\tests\\Unit\\WorkExperienceTest": 0.1613, - "Appmodules\\profile\\tests\\Unit\\WorkPreferencesTest": 0.2874, - "Tests\\Feature\\AddressTest": 3.4927, - "Tests\\Feature\\Geo\\GeoLocationTest": 0.3964 + "Appmodules\\activity\\tests\\Unit\\Actions\\NewMessageTest": 5.438, + "Appmodules\\activity\\tests\\Unit\\Actions\\NewVoiceMessageTest": 5.653, + "Appmodules\\activity\\tests\\Unit\\Actions\\RecordVoicePresenceTest": 6.0604, + "Appmodules\\activity\\tests\\Unit\\Queries\\GetCurrentVoiceChannelTest": 5.9881, + "Appmodules\\activity\\tests\\Unit\\Timeline\\CreatePostTest": 5.3923, + "Appmodules\\activity\\tests\\Unit\\Timeline\\CreateReplyTest": 5.4171, + "Appmodules\\activity\\tests\\Unit\\Timeline\\DeleteReplyTest": 5.4119, + "Appmodules\\activity\\tests\\Unit\\Timeline\\PublishModerationEntryTest": 5.5709, + "Appmodules\\activity\\tests\\Unit\\Timeline\\TimelineFeedQueryTest": 5.388, + "Appmodules\\activity\\tests\\Unit\\Timeline\\TimelineModelTest": 5.2705, + "Appmodules\\activity\\tests\\Unit\\Timeline\\TogglePinPostTest": 5.4434, + "Appmodules\\activity\\tests\\Unit\\Tracking\\ApproveInteractionTest": 4.9252, + "Appmodules\\activity\\tests\\Unit\\Tracking\\CalculateRewardTest": 5.2209, + "Appmodules\\activity\\tests\\Unit\\Tracking\\ClassifyActivityTest": 0.3568, + "Appmodules\\activity\\tests\\Unit\\Tracking\\RejectInteractionTest": 4.8662, + "Appmodules\\activity\\tests\\Unit\\Tracking\\TrackActivityTest": 5.3035, + "Appmodules\\botdiscord\\tests\\Feature\\Actions\\VoiceChannel\\HandleStateChannelActionTest": 0.1835, + "Appmodules\\botdiscord\\tests\\Feature\\Events\\RawGatewayEventTest": 4.1908, + "Appmodules\\botdiscord\\tests\\Feature\\Listeners\\AutoExecuteActionTest": 4.4401, + "Appmodules\\botdiscord\\tests\\Feature\\Listeners\\NotifyModerationChannelTest": 0.565, + "Appmodules\\botdiscord\\tests\\Feature\\Moderation\\DiscordModerationAdapterTest": 4.3953, + "Appmodules\\botdiscord\\tests\\Feature\\SlashCommands\\EditProfileCommandTest": 0.4504, + "Appmodules\\botdiscord\\tests\\Feature\\SlashCommands\\IntroductionCommandTest": 0.2536, + "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceChannel\\ConfigureEmpresarialRoomActionTest": 0.5551, + "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceChannel\\JoiningChannelActionTest": 0.2453, + "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceChannel\\LeftChannelActionTest": 0.315, + "Appmodules\\botdiscord\\tests\\Unit\\Actions\\VoiceTransitionResolverTest": 0.4874, + "Appmodules\\botdiscord\\tests\\Unit\\Enums\\EmpresarialRejectionReasonTest": 0.338, + "Appmodules\\botdiscord\\tests\\Unit\\Events\\WelcomeMemberGuildIconTest": 0.4035, + "Appmodules\\botdiscord\\tests\\Unit\\Moderation\\ModerationEmbedBuilderTest": 5.4053, + "Appmodules\\botdiscord\\tests\\Unit\\SlashCommands\\EditProfileModalValidationTest": 0.6391, + "Appmodules\\docs\\tests\\Feature\\Discovery\\CacheDocsCommandTest": 0.935, + "Appmodules\\docs\\tests\\Feature\\Discovery\\DocsRoutingTest": 1.0553, + "Appmodules\\docs\\tests\\Unit\\Discovery\\BuildTreeTest": 0.6784, + "Appmodules\\docs\\tests\\Unit\\Discovery\\DiscoveryIntegrationTest": 0.3933, + "Appmodules\\docs\\tests\\Unit\\Discovery\\DocumentTierTest": 0.6524, + "Appmodules\\docs\\tests\\Unit\\Discovery\\FoundationsTest": 0.9631, + "Appmodules\\docs\\tests\\Unit\\Discovery\\ParsingTest": 0.5018, + "Appmodules\\docs\\tests\\Unit\\Discovery\\StrategiesTest": 0.5591, + "Appmodules\\economy\\tests\\Feature\\EconomyFlowTest": 0.3518, + "Appmodules\\economy\\tests\\Unit\\CreditTest": 4.9328, + "Appmodules\\economy\\tests\\Unit\\DebitTest": 4.9478, + "Appmodules\\economy\\tests\\Unit\\TransferTest": 4.9688, + "Appmodules\\events\\tests\\Feature\\CheckInActionTest": 1.219, + "Appmodules\\events\\tests\\Feature\\Closure\\CloseEventActionTest": 45.8109, + "Appmodules\\events\\tests\\Feature\\Closure\\ClosePendingEventsCommandTest": 0.6967, + "Appmodules\\events\\tests\\Feature\\Closure\\OverrideEnrollmentStatusActionTest": 1.3989, + "Appmodules\\events\\tests\\Feature\\Closure\\ProcessEventClosureJobTest": 0.4182, + "Appmodules\\events\\tests\\Feature\\EnrollUserActionTest": 3.5382, + "Appmodules\\events\\tests\\Feature\\Enrollment\\ApproveApplicationActionTest": 1.3107, + "Appmodules\\events\\tests\\Feature\\Enrollment\\EnrollmentPolicyTest": 0.7833, + "Appmodules\\events\\tests\\Feature\\Enrollment\\RejectApplicationActionTest": 0.6208, + "Appmodules\\events\\tests\\Feature\\EventFactoriesTest": 1.6052, + "Appmodules\\events\\tests\\Feature\\EventResourceTest": 3.2068, + "Appmodules\\events\\tests\\Feature\\HandleBotCheckInTest": 2.4185, + "Appmodules\\events\\tests\\Feature\\NumericCodeCheckInActionTest": 1.5898, + "Appmodules\\events\\tests\\Feature\\QrCheckInActionTest": 1.9344, + "Appmodules\\events\\tests\\Unit\\EnrollmentScopeTest": 4.8469, + "Appmodules\\events\\tests\\Unit\\EnrollmentStatusTest": 0.6188, + "Appmodules\\events\\tests\\Unit\\EventStatusTest": 0.2886, + "Appmodules\\gamification\\tests\\Unit\\Character\\GenerateTextExperienceTest": 0.5647, + "Appmodules\\gamification\\tests\\Unit\\Character\\LevelCalculationTest": 6.3331, + "Appmodules\\gamification\\tests\\Unit\\Character\\VoiceExperienceTest": 5.1418, + "Appmodules\\identity\\tests\\Feature\\Auth\\DetectMergeConflictTest": 0.5633, + "Appmodules\\identity\\tests\\Feature\\Auth\\EnrichUserOnFirstLoginTest": 0.7239, + "Appmodules\\identity\\tests\\Feature\\Auth\\FindOrCreateUserByProviderTest": 0.9715, + "Appmodules\\identity\\tests\\Feature\\Auth\\HandleOAuthCallbackActionTest": 0.3039, + "Appmodules\\identity\\tests\\Feature\\Auth\\MergeAccountsActionTest": 1.7794, + "Appmodules\\identity\\tests\\Feature\\Auth\\OAuthControllerTest": 0.165, + "Appmodules\\identity\\tests\\Unit\\ExternalIdentity\\FindExternalIdentityTest": 4.7357, + "Appmodules\\integrationdevto\\tests\\Feature\\DevToOAuthTest": 0.1849, + "Appmodules\\integrationdevto\\tests\\Feature\\SyncDevToArticlesTest": 0.4383, + "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\ImportDiscordMessageTest": 4.515, + "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\ImportDiscordProfileTest": 1.9195, + "Appmodules\\integrationdiscord\\tests\\Feature\\ETL\\MergeDuplicateDiscordProfilesTest": 2.7987, + "Appmodules\\integrationdiscord\\tests\\Feature\\Models\\DiscordEventLogTest": 0.1552, + "Appmodules\\integrationdiscord\\tests\\Feature\\OAuth\\DiscordOAuthClientTest": 0.1851, + "Appmodules\\integrationdiscord\\tests\\Unit\\DiscordMessageAdapterTest": 1.4227, + "Appmodules\\integrationdiscord\\tests\\Unit\\Enums\\DiscordEventTypeTest": 0.0959, + "Appmodules\\integrationdiscord\\tests\\Unit\\Sync\\PurgeUnusedInvitesActionTest": 12.1636, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\DiscordConnectorTest": 0.1726, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\DiscordRoleResolverTest": 0.2292, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateBanTest": 0.1658, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateDmChannelTest": 0.1547, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\CreateMessageTest": 0.0931, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\DeleteInviteTest": 0.0613, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\DeleteMessageTest": 0.0555, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ExchangeCodeForTokenTest": 0.0828, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\GetCurrentUserTest": 0.0801, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\GetMemberTest": 0.0556, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ListGuildInvitesTest": 0.0519, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\ModifyMemberTest": 0.0843, + "Appmodules\\integrationdiscord\\tests\\Unit\\Transport\\Requests\\RemoveMemberTest": 0.0562, + "Appmodules\\integrationgithub\\tests\\Feature\\BackfillGithubCommandTest": 0.3947, + "Appmodules\\integrationgithub\\tests\\Feature\\BackfillGithubRepositoryJobTest": 0.1827, + "Appmodules\\integrationgithub\\tests\\Feature\\BackfillRepositoryTest": 1.3948, + "Appmodules\\integrationgithub\\tests\\Feature\\GitHubOAuthClientTest": 0.3398, + "Appmodules\\integrationgithub\\tests\\Feature\\GithubContributionTest": 0.2545, + "Appmodules\\integrationgithub\\tests\\Feature\\GithubRepositoryTest": 0.3304, + "Appmodules\\integrationgithub\\tests\\Feature\\GithubWebhookTest": 0.999, + "Appmodules\\integrationtwitch\\tests\\Feature\\LinkTwitchChannelCommandTest": 0.2324, + "Appmodules\\integrationtwitch\\tests\\Feature\\RegisterTwitchSubscriptionsActionTest": 0.201, + "Appmodules\\integrationtwitch\\tests\\Feature\\SubscribeTwitchEventsCommandTest": 0.5374, + "Appmodules\\integrationtwitch\\tests\\Feature\\TwitchAppTokenServiceTest": 0.1595, + "Appmodules\\integrationtwitch\\tests\\Feature\\TwitchWebhookTest": 0.7294, + "Appmodules\\integrationwhatsapp\\tests\\Feature\\Ingest\\StoreWhatsAppEventActionTest": 0.5916, + "Appmodules\\integrationwhatsapp\\tests\\Feature\\Ingest\\WebhookIngestTest": 0.9335, + "Appmodules\\moderation\\tests\\Feature\\AppealWorkflowTest": 1.0991, + "Appmodules\\moderation\\tests\\Feature\\Appeals\\FileAppealTest": 1.3761, + "Appmodules\\moderation\\tests\\Feature\\Appeals\\ReviewAppealTest": 1.3462, + "Appmodules\\moderation\\tests\\Feature\\Audit\\AuditLogTest": 0.6843, + "Appmodules\\moderation\\tests\\Feature\\CaseWorkflowTest": 0.7281, + "Appmodules\\moderation\\tests\\Feature\\Cases\\SubmitReportTest": 1.7601, + "Appmodules\\moderation\\tests\\Feature\\Classification\\RouteDecisionTest": 3.3103, + "Appmodules\\moderation\\tests\\Feature\\Classification\\RuleBasedClassifierTest": 0.6902, + "Appmodules\\moderation\\tests\\Feature\\Enforcement\\ExecuteActionTest": 1.2289, + "Appmodules\\moderation\\tests\\Feature\\ModelRelationshipTest": 1.586, + "Appmodules\\moderation\\tests\\Feature\\PipelineTest": 1.0774, + "Appmodules\\moderation\\tests\\Feature\\Pipeline\\ClassifyAndRouteTest": 0.4357, + "Appmodules\\moderation\\tests\\Feature\\Pipeline\\ScreenContentTest": 0.374, + "Appmodules\\moderation\\tests\\Feature\\Pipeline\\SubmitForModerationTest": 0.3458, + "Appmodules\\moderation\\tests\\Feature\\Platform\\WebAdapterTest": 1.8932, + "Appmodules\\moderation\\tests\\Unit\\ClassifierTest": 4.3806, + "Appmodules\\moderation\\tests\\Unit\\DTOTest": 0.205, + "Appmodules\\moderation\\tests\\Unit\\EnumTest": 0.1819, + "Appmodules\\moderation\\tests\\Unit\\ModerationRuleMatchTest": 4.1081, + "Appmodules\\moderation\\tests\\Unit\\PenaltyAdvisorTest": 6.0206, + "Appmodules\\moderation\\tests\\Unit\\PlatformRegistryTest": 0.1087, + "Appmodules\\moderation\\tests\\Unit\\RouteCaseActionTest": 4.6916, + "Appmodules\\paneladmin\\tests\\Feature\\AdminPanelAccessTest": 0.6084, + "Appmodules\\paneladmin\\tests\\Feature\\Discord\\DiscordClusterSmokeTest": 2.3111, + "Appmodules\\paneladmin\\tests\\Feature\\Github\\GithubRepositoryResourceTest": 0.9081, + "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\CommunityActivityStatsTest": 0.3695, + "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\LocationDashboardTest": 0.1621, + "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\MeetingShowcasePageTest": 1.3113, + "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\MembersByStateTest": 0.382, + "Appmodules\\paneladmin\\tests\\Feature\\Marketing\\PeriodStatsTest": 0.2993, + "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\AppealQueueTest": 2.5558, + "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\ModerationDashboardTest": 2.4277, + "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\ModerationQueueTest": 2.1165, + "Appmodules\\paneladmin\\tests\\Feature\\Moderation\\TestRuleActionTest": 0.7781, + "Appmodules\\paneladmin\\tests\\Feature\\Twitch\\ConnectTwitchActionTest": 0.39, + "Appmodules\\paneladmin\\tests\\Feature\\Twitch\\RegisterSubscriptionsActionTest": 0.286, + "Appmodules\\panelapp\\tests\\Feature\\Auth\\LastAuthProviderTest": 0.608, + "Appmodules\\panelapp\\tests\\Feature\\ConnectionHubTest": 0.2006, + "Appmodules\\panelapp\\tests\\Feature\\Events\\ApplicationEnrollmentTest": 1.3402, + "Appmodules\\panelapp\\tests\\Feature\\Events\\NumericCodeCheckInTest": 0.4423, + "Appmodules\\panelapp\\tests\\Feature\\Events\\RsvpEnrollmentTest": 1.8104, + "Appmodules\\panelapp\\tests\\Feature\\ProfilePageTest": 3.8524, + "Appmodules\\panelapp\\tests\\Feature\\Timeline\\ThreadPageTest": 1.0706, + "Appmodules\\portal\\tests\\Feature\\CommunityRetrospectivePageTest": 0.8452, + "Appmodules\\portal\\tests\\Feature\\CommunityRetrospectiveTest": 1.2094, + "Appmodules\\portal\\tests\\Feature\\HeroAvatarsTest": 0.8082, + "Appmodules\\portal\\tests\\Feature\\HomepageTest": 0.3304, + "Appmodules\\portal\\tests\\Feature\\RetrospectiveFiltersTest": 0.1073, + "Appmodules\\portal\\tests\\Feature\\SocialLinksPageTest": 0.579, + "Appmodules\\profile\\tests\\Feature\\ProfileCreationTest": 0.3673, + "Appmodules\\profile\\tests\\Feature\\ProfilePreferencesTest": 0.3593, + "Appmodules\\profile\\tests\\Feature\\ProfileWorkExperiencesTest": 0.2544, + "Appmodules\\profile\\tests\\Feature\\SkillSearchTest": 0.162, + "Appmodules\\profile\\tests\\Feature\\SyncProfileSkillsTest": 0.915, + "Appmodules\\profile\\tests\\Feature\\ToggleAvailabilityTest": 0.5595, + "Appmodules\\profile\\tests\\Feature\\UpsertProfileTest": 1.216, + "Appmodules\\profile\\tests\\Feature\\WorkExperienceFactoryTest": 2.639, + "Appmodules\\profile\\tests\\Unit\\ProfileEnumTest": 0.1376, + "Appmodules\\profile\\tests\\Unit\\ProfileSocialLinksTest": 0.0276, + "Appmodules\\profile\\tests\\Unit\\SkillEnumTest": 0.0565, + "Appmodules\\profile\\tests\\Unit\\SocialPlatformTest": 0.396, + "Appmodules\\profile\\tests\\Unit\\WorkExperienceTest": 0.1012, + "Appmodules\\profile\\tests\\Unit\\WorkPreferencesTest": 0.1698, + "Tests\\Feature\\AddressTest": 4.3728, + "Tests\\Feature\\ConnectionHubMergeModalTest": 3.8064, + "Tests\\Feature\\Geo\\GeoLocationTest": 0.3028, + "Tests\\Feature\\LocaleSwitcherTest": 0.2809 }, - "checksum": "f89272e74ccc3eb727377ca567c67828", - "updated_at": "2026-07-12T21:38:59+00:00" + "checksum": "3552aea7c18e5ccefedff7d5eda788c3", + "updated_at": "2026-08-13T17:03:48+00:00" }