diff --git a/database/seeders/TenantSeeder.php b/database/seeders/TenantSeeder.php index 33ecb24..84d39ef 100644 --- a/database/seeders/TenantSeeder.php +++ b/database/seeders/TenantSeeder.php @@ -6,6 +6,7 @@ use App\Domains\Attachable\Models\Attachment; use App\Domains\Attachable\Services\AttachmentService; use App\Domains\Client\Models\Client; use App\Domains\Tenant\Models\Tenant; +use App\Domains\Tenant\Models\WebsiteType; use App\Domains\Tenant\Services\TenantService; use Illuminate\Database\Seeder; use Illuminate\Http\UploadedFile; @@ -55,6 +56,52 @@ class TenantSeeder extends Seeder ['name' => 'OnTicket'], ); + $onTicketType = WebsiteType::query()->where('codigo', 'onticket')->firstOrFail(); + + $onTicketTenant = Tenant::query()->where('codigo', 'onticket')->first(); + + if ($onTicketTenant === null) { + $this->tenantService->create([ + 'client_id' => $onTicketClient->id, + 'codigo' => 'onticket', + 'nombre' => $onTicketType->nombre, + 'dominio' => $onTicketType->dominio, + 'site_title' => $onTicketType->site_title, + 'primary_color' => $onTicketType->primary_color, + 'secondary_color' => $onTicketType->secondary_color, + 'danger_color' => $onTicketType->danger_color, + 'success_color' => $onTicketType->success_color, + 'header_bg_color' => $onTicketType->surface_color, + 'footer_bg_color' => $onTicketType->surface_color, + 'display_categories' => false, + 'display_seach_bar' => false, + 'website_type_code' => $onTicketType->codigo, + 'header_logo' => $this->uploadedImage( + 'images/tennants/onticket/onticket_logo.png', + 'onticket_logo.png', + ), + 'footer_logo' => $this->uploadedImage( + 'images/tennants/onticket/onticket_footer_logo.png', + 'onticket_footer_logo.png', + ), + 'favicon' => $this->uploadedImage( + 'images/tennants/onticket/onticket_favicon.svg', + 'onticket_favicon.svg', + ), + 'header_bg_image' => $this->uploadedImage( + 'images/tennants/onticket/onticket_header_background.png', + 'onticket_header_background.png', + ), + ]); + } elseif ($onTicketTenant->header_bg_image_id === null) { + $this->tenantService->update($onTicketTenant, [ + 'header_bg_image' => $this->uploadedImage( + 'images/tennants/onticket/onticket_header_background.png', + 'onticket_header_background.png', + ), + ]); + } + $this->deleteTenant('sonder'); Tenant::query() @@ -282,6 +329,7 @@ class TenantSeeder extends Seeder 'jpg', 'jpeg' => 'image/jpeg', 'gif' => 'image/gif', 'webp' => 'image/webp', + 'svg' => 'image/svg+xml', default => 'image/png', }; diff --git a/public/images/tennants/onticket/onticket_favicon.svg b/public/images/tennants/onticket/onticket_favicon.svg new file mode 100644 index 0000000..30502c6 --- /dev/null +++ b/public/images/tennants/onticket/onticket_favicon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/tennants/onticket/onticket_footer_logo.png b/public/images/tennants/onticket/onticket_footer_logo.png new file mode 100644 index 0000000..dd86921 Binary files /dev/null and b/public/images/tennants/onticket/onticket_footer_logo.png differ diff --git a/public/images/tennants/onticket/onticket_header_background.png b/public/images/tennants/onticket/onticket_header_background.png new file mode 100644 index 0000000..d8c168f Binary files /dev/null and b/public/images/tennants/onticket/onticket_header_background.png differ diff --git a/public/images/tennants/onticket/onticket_logo.png b/public/images/tennants/onticket/onticket_logo.png new file mode 100644 index 0000000..12cd594 Binary files /dev/null and b/public/images/tennants/onticket/onticket_logo.png differ diff --git a/tests/Feature/Seeders/TenantSeederTest.php b/tests/Feature/Seeders/TenantSeederTest.php index 8dbd747..6136bc0 100644 --- a/tests/Feature/Seeders/TenantSeederTest.php +++ b/tests/Feature/Seeders/TenantSeederTest.php @@ -3,6 +3,7 @@ namespace Tests\Feature\Seeders; use App\Domains\Tenant\Models\Tenant; +use App\Domains\Tenant\Models\WebsiteType; use Database\Seeders\SocialMediaSeeder; use Database\Seeders\TenantSeeder; use Database\Seeders\WebsiteTypeSeeder; @@ -14,6 +15,39 @@ class TenantSeederTest extends TestCase { use RefreshDatabase; + public function test_it_creates_the_onticket_tenant_with_website_type_branding(): void + { + Storage::fake('s3'); + + $this->seed([ + WebsiteTypeSeeder::class, + SocialMediaSeeder::class, + TenantSeeder::class, + ]); + + $websiteType = WebsiteType::query()->where('codigo', 'onticket')->sole(); + $tenant = Tenant::query()->where('codigo', 'onticket')->sole(); + + $this->assertSame('onticket', $tenant->client->code); + $this->assertSame($websiteType->codigo, $tenant->website_type_code); + $this->assertSame($websiteType->nombre, $tenant->nombre); + $this->assertSame($websiteType->dominio, $tenant->dominio); + $this->assertSame($websiteType->site_title, $tenant->site_title); + + foreach (['primary_color', 'secondary_color', 'danger_color', 'success_color'] as $color) { + $this->assertSame($websiteType->{$color}, $tenant->{$color}); + } + + $this->assertSame('onticket_logo.png', $tenant->headerLogo->filename); + $this->assertSame('onticket_footer_logo.png', $tenant->footerLogo->filename); + $this->assertSame('onticket_favicon.svg', $tenant->favicon->filename); + $this->assertSame('onticket_header_background.png', $tenant->headerBackgroundImage->filename); + + foreach ([$tenant->headerLogo, $tenant->footerLogo, $tenant->favicon, $tenant->headerBackgroundImage] as $attachment) { + Storage::disk('s3')->assertExists($attachment->path); + } + } + public function test_it_assigns_social_media_to_both_tenants_in_order(): void { Storage::fake('s3');