From 25143497839a4add1535e501d29a5560f432f93b Mon Sep 17 00:00:00 2001 From: salam Date: Mon, 4 May 2026 14:32:40 +0200 Subject: [PATCH] wip newsletter --- SNIPPETS.md | 3 + .../Clusters/Newsletter/NewsletterCluster.php | 5 +- .../MailAdressens/MailAdressenResource.php | 51 +++ .../Pages/CreateMailAdressen.php | 11 + .../MailAdressens/Pages/EditMailAdressen.php | 19 ++ .../MailAdressens/Pages/ListMailAdressens.php | 19 ++ .../Schemas/MailAdressenForm.php | 69 +++++ .../Tables/MailAdressensTable.php | 99 ++++++ .../Orientierungs/OrientierungResource.php | 7 - app/Models/MailAdressen.php | 24 ++ bootstrap/cache/filament/panels/admin.php | 8 + bootstrap/cache/routes-v7.php | 292 +++++++++++++++--- ..._04_070425_create_mail_adressens_table.php | 40 +++ 13 files changed, 604 insertions(+), 43 deletions(-) create mode 100644 app/Filament/Resources/MailAdressens/MailAdressenResource.php create mode 100644 app/Filament/Resources/MailAdressens/Pages/CreateMailAdressen.php create mode 100644 app/Filament/Resources/MailAdressens/Pages/EditMailAdressen.php create mode 100644 app/Filament/Resources/MailAdressens/Pages/ListMailAdressens.php create mode 100644 app/Filament/Resources/MailAdressens/Schemas/MailAdressenForm.php create mode 100644 app/Filament/Resources/MailAdressens/Tables/MailAdressensTable.php create mode 100644 app/Models/MailAdressen.php create mode 100644 database/migrations/2026_05_04_070425_create_mail_adressens_table.php diff --git a/SNIPPETS.md b/SNIPPETS.md index b24ccee..fc44984 100644 --- a/SNIPPETS.md +++ b/SNIPPETS.md @@ -28,3 +28,6 @@ TextColumn::make('flaeche') GOOD TURORIAL AND WIKI https://mintlify.wiki/filamentphp/filament/advanced/custom-actions + +MAIL +https://medium.com/@maitrikt1998/send-email-using-3-ways-in-laravel-12-0d0ff6977ac4 \ No newline at end of file diff --git a/app/Filament/Clusters/Newsletter/NewsletterCluster.php b/app/Filament/Clusters/Newsletter/NewsletterCluster.php index 67f9a6e..8bdf0a8 100644 --- a/app/Filament/Clusters/Newsletter/NewsletterCluster.php +++ b/app/Filament/Clusters/Newsletter/NewsletterCluster.php @@ -4,9 +4,12 @@ namespace App\Filament\Clusters\Newsletter; use BackedEnum; use Filament\Clusters\Cluster; +use Filament\Pages\Enums\SubNavigationPosition; use Filament\Support\Icons\Heroicon; class NewsletterCluster extends Cluster { - protected static string|BackedEnum|null $navigationIcon = Heroicon::Envelope; + protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedEnvelope; + + protected static ?SubNavigationPosition $subNavigationPosition = SubNavigationPosition::Top; } diff --git a/app/Filament/Resources/MailAdressens/MailAdressenResource.php b/app/Filament/Resources/MailAdressens/MailAdressenResource.php new file mode 100644 index 0000000..b250603 --- /dev/null +++ b/app/Filament/Resources/MailAdressens/MailAdressenResource.php @@ -0,0 +1,51 @@ + ListMailAdressens::route('/'), + ]; + } + + public static function getNavigationBadge(): ?string + { + return parent::getEloquentQuery()->count(); + } +} diff --git a/app/Filament/Resources/MailAdressens/Pages/CreateMailAdressen.php b/app/Filament/Resources/MailAdressens/Pages/CreateMailAdressen.php new file mode 100644 index 0000000..7d1a147 --- /dev/null +++ b/app/Filament/Resources/MailAdressens/Pages/CreateMailAdressen.php @@ -0,0 +1,11 @@ +components([ + Section::make('Newsletter') + ->columns(2) + ->columnSpanFull() + ->schema([ + TextInput::make('company') + ->label('Firma') + ->required(), + TextInput::make('email') + ->prefixIcon(Heroicon::OutlinedEnvelope) + ->required(), + Toggle::make('im_newsletter')->label('Im Newsletter'), + ]), + Section::make('Persönliche Anrede') + ->columns(2) + ->columnSpanFull() + ->schema([ + Select::make('gender') + ->label('Geschlecht') + ->options([ + '0' => 'Herr', + '1' => 'Frau', + '2' => 'Diverse', + ]), + DatePicker::make('vereidigung')->required() + ->prefixIcon('heroicon-o-calendar') + ->native(false), + TextInput::make('first_name') + ->label('Vorname') + ->required(), + TextInput::make('last_name') + ->label('Nachname') + ->required(), + ]), + Section::make('Adresse') + ->columns(3) + ->columnSpanFull() + ->schema([ + TextInput::make('address') + ->label('Straße'), + TextInput::make('zip') + ->label('Zip'), + TextInput::make('city') + ->label('Ort'), + ]), + ]); + } +} +// `address` varchar(255) DEFAULT NULL, +// `zip` varchar(255) DEFAULT NULL, +// `city` varchar(255) DEFAULT NULL, +// `vereidigung` t diff --git a/app/Filament/Resources/MailAdressens/Tables/MailAdressensTable.php b/app/Filament/Resources/MailAdressens/Tables/MailAdressensTable.php new file mode 100644 index 0000000..e7e51ea --- /dev/null +++ b/app/Filament/Resources/MailAdressens/Tables/MailAdressensTable.php @@ -0,0 +1,99 @@ +columns([ + ToggleColumn::make('im_newsletter') + ->onColor('success') + ->label('Senden'), + TextColumn::make('company')->label('Firma'), + TextColumn::make('email'), + TextColumn::make('vereidigung')->date(), + TextColumn::make('gender') + ->label('Geschlecht') + ->formatStateUsing(fn (string $state): string => match ($state) { + '0' => 'Herr', + '1' => 'Frau', + '2' => 'Diverse', + }), + TextColumn::make('first_name')->label('Vorname'), + TextColumn::make('last_name')->label('Nachname'), + ]) + ->filters([ + TernaryFilter::make('im_newsletter')->label('Im Newsletter'), + Filter::make('vereidigung') + ->schema([ + DatePicker::make('vereidigung_von')->native(false), + DatePicker::make('vereidigung_bis')->native(false), + ]) + ->query(function (Builder $query, array $data): Builder { + return $query + ->when( + $data['vereidigung_von'], + fn (Builder $query, $date): Builder => $query->whereDate('vereidigung', '>=', $date), + ) + ->when( + $data['vereidigung_bis'], + fn (Builder $query, $date): Builder => $query->whereDate('vereidigung', '<=', $date), + ); + }), + ], layout: FiltersLayout::Modal) + ->recordActions([ + EditAction::make()->iconButton(), + DeleteAction::make()->iconButton(), + ]) + ->toolbarActions([ + BulkActionGroup::make([ + BulkAction::make('im_newsletter_on') + ->label('An Adressen senden') + ->tooltip('Ausgewählte Adressen dem Newsletter hinzufügen') + ->icon('heroicon-o-envelope') + ->color('success') + ->action(function (Collection $records, array $data): void { + foreach ($records as $record) { + /** @var object $record */ + MailAdressen::where('id', '=', $record->id) + ->update( + ['im_newsletter' => 1] + ); + } + }), + BulkAction::make('im_newsletter_off') + ->label('Nicht an Adressen senden') + ->tooltip('Ausgewählte Adressen aus dem Newsletter herausnehmen') + ->icon('heroicon-o-envelope') + ->action(function (Collection $records, array $data): void { + foreach ($records as $record) { + /** @var object $record */ + MailAdressen::where('id', '=', $record->id) + ->update( + ['im_newsletter' => 0] + ); + } + }), + DeleteBulkAction::make(), + ]), + ]); + } +} diff --git a/app/Filament/Resources/Orientierungs/OrientierungResource.php b/app/Filament/Resources/Orientierungs/OrientierungResource.php index 816029a..c04d8ce 100644 --- a/app/Filament/Resources/Orientierungs/OrientierungResource.php +++ b/app/Filament/Resources/Orientierungs/OrientierungResource.php @@ -41,13 +41,6 @@ class OrientierungResource extends Resource return OrientierungsTable::configure($table); } - public static function getRelations(): array - { - return [ - // - ]; - } - public static function getPages(): array { return [ diff --git a/app/Models/MailAdressen.php b/app/Models/MailAdressen.php new file mode 100644 index 0000000..6eca484 --- /dev/null +++ b/app/Models/MailAdressen.php @@ -0,0 +1,24 @@ + 'App\\Filament\\Resources\\Kontos\\Pages\\CreateKonto', 'app.filament.resources.kontos.pages.edit-konto' => 'App\\Filament\\Resources\\Kontos\\Pages\\EditKonto', 'app.filament.resources.kontos.pages.list-kontos' => 'App\\Filament\\Resources\\Kontos\\Pages\\ListKontos', + 'app.filament.resources.mail-adressens.pages.create-mail-adressen' => 'App\\Filament\\Resources\\MailAdressens\\Pages\\CreateMailAdressen', + 'app.filament.resources.mail-adressens.pages.edit-mail-adressen' => 'App\\Filament\\Resources\\MailAdressens\\Pages\\EditMailAdressen', + 'app.filament.resources.mail-adressens.pages.list-mail-adressens' => 'App\\Filament\\Resources\\MailAdressens\\Pages\\ListMailAdressens', 'app.filament.resources.methodes.pages.create-methode' => 'App\\Filament\\Resources\\Methodes\\Pages\\CreateMethode', 'app.filament.resources.methodes.pages.edit-methode' => 'App\\Filament\\Resources\\Methodes\\Pages\\EditMethode', 'app.filament.resources.methodes.pages.list-methodes' => 'App\\Filament\\Resources\\Methodes\\Pages\\ListMethodes', @@ -97,6 +100,10 @@ 5 => 'App\\Filament\\Resources\\Textblocks\\TextblockResource', 6 => 'BezhanSalleh\\FilamentShield\\Resources\\Roles\\RoleResource', ), + 'App\\Filament\\Clusters\\Newsletter\\NewsletterCluster' => + array ( + 0 => 'App\\Filament\\Resources\\MailAdressens\\MailAdressenResource', + ), ), 'clusterDirectories' => array ( @@ -133,6 +140,7 @@ '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Inhaltsverzeichnis/InhaltsverzeichnisResource.php' => 'App\\Filament\\Resources\\Inhaltsverzeichnis\\InhaltsverzeichnisResource', '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/KontoTextblocks/KontoTextblockResource.php' => 'App\\Filament\\Resources\\KontoTextblocks\\KontoTextblockResource', '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Kontos/KontoResource.php' => 'App\\Filament\\Resources\\Kontos\\KontoResource', + '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/MailAdressens/MailAdressenResource.php' => 'App\\Filament\\Resources\\MailAdressens\\MailAdressenResource', '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Methodes/MethodeResource.php' => 'App\\Filament\\Resources\\Methodes\\MethodeResource', '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Orientierungs/OrientierungResource.php' => 'App\\Filament\\Resources\\Orientierungs\\OrientierungResource', '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Permissions/PermissionResource.php' => 'App\\Filament\\Resources\\Permissions\\PermissionResource', diff --git a/bootstrap/cache/routes-v7.php b/bootstrap/cache/routes-v7.php index dcb581d..d5924dc 100644 --- a/bootstrap/cache/routes-v7.php +++ b/bootstrap/cache/routes-v7.php @@ -366,6 +366,46 @@ app('router')->setCompiledRoutes( 6 => NULL, ), ), + '/app/newsletter/mail-adressens' => + array ( + 0 => + array ( + 0 => + array ( + '_route' => 'filament.admin.newsletter.resources.mail-adressens.index', + ), + 1 => NULL, + 2 => + array ( + 'GET' => 0, + 'HEAD' => 1, + ), + 3 => NULL, + 4 => false, + 5 => false, + 6 => NULL, + ), + ), + '/app/newsletter/mail-adressens/create' => + array ( + 0 => + array ( + 0 => + array ( + '_route' => 'filament.admin.newsletter.resources.mail-adressens.create', + ), + 1 => NULL, + 2 => + array ( + 'GET' => 0, + 'HEAD' => 1, + ), + 3 => NULL, + 4 => false, + 5 => false, + 6 => NULL, + ), + ), '/app/administration/methodes' => array ( 0 => @@ -551,7 +591,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::6YYyahMFDoqTmNCy', + '_route' => 'generated::c8Aa0gB5BhsyJxz2', ), 1 => NULL, 2 => @@ -571,7 +611,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::uPFpzDrX62b55R0k', + '_route' => 'generated::1gix3NM8CNsYg1oM', ), 1 => NULL, 2 => @@ -629,7 +669,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::8vxCBRFgKJnIKw8z', + '_route' => 'generated::4ALnCKgsRg5pNXr4', ), 1 => NULL, 2 => @@ -649,7 +689,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::j5C04dYevQlSMFt8', + '_route' => 'generated::9tM0beuDkUZJcW3v', ), 1 => NULL, 2 => @@ -669,7 +709,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::9Kv82QZZVXCKxQUz', + '_route' => 'generated::TggslUndiRqH7lMm', ), 1 => NULL, 2 => @@ -689,7 +729,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::f7MHRRwLGpeqdN7H', + '_route' => 'generated::8pknM1HUqBZ8CD0A', ), 1 => NULL, 2 => @@ -709,7 +749,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::GVbV1gIyWnW3UTzK', + '_route' => 'generated::fsCBG8FQNzd5aUQx', ), 1 => NULL, 2 => @@ -726,7 +766,7 @@ app('router')->setCompiledRoutes( ), 2 => array ( - 0 => '{^(?|/filament/(?|exports/([^/]++)/download(*:45)|imports/([^/]++)/failed\\-rows/download(*:90))|/app/(?|e(?|mail\\-(?|verification/verify/([^/]++)/([^/]++)(*:156)|change\\-verification/verify/([^/]++)/([^/]++)(?|(*:212)|/block(*:226)))|xcel(?|nutzwerte/([^/]++)(*:261)|aufstellung/([^/]++)(*:289)))|p(?|rojektes/([^/]++)/edit(*:325)|df/([^/]++)/([^/]++)(*:353))|administration/shield/roles/([^/]++)(?|(*:401)|/edit(*:414)))|/livewire/preview\\-file/([^/]++)(*:456)|/storage/(.*)(?|(*:480)))/?$}sDu', + 0 => '{^(?|/filament/(?|exports/([^/]++)/download(*:45)|imports/([^/]++)/failed\\-rows/download(*:90))|/app/(?|e(?|mail\\-(?|verification/verify/([^/]++)/([^/]++)(*:156)|change\\-verification/verify/([^/]++)/([^/]++)(?|(*:212)|/block(*:226)))|xcel(?|nutzwerte/([^/]++)(*:261)|aufstellung/([^/]++)(*:289)))|newsletter/mail\\-adressens/([^/]++)/edit(*:339)|p(?|rojektes/([^/]++)/edit(*:373)|df/([^/]++)/([^/]++)(*:401))|administration/shield/roles/([^/]++)(?|(*:449)|/edit(*:462)))|/livewire/preview\\-file/([^/]++)(*:504)|/storage/(.*)(?|(*:528)))/?$}sDu', ), 3 => array ( @@ -894,7 +934,30 @@ app('router')->setCompiledRoutes( 6 => NULL, ), ), - 325 => + 339 => + array ( + 0 => + array ( + 0 => + array ( + '_route' => 'filament.admin.newsletter.resources.mail-adressens.edit', + ), + 1 => + array ( + 0 => 'record', + ), + 2 => + array ( + 'GET' => 0, + 'HEAD' => 1, + ), + 3 => NULL, + 4 => false, + 5 => false, + 6 => NULL, + ), + ), + 373 => array ( 0 => array ( @@ -917,7 +980,7 @@ app('router')->setCompiledRoutes( 6 => NULL, ), ), - 353 => + 401 => array ( 0 => array ( @@ -941,7 +1004,7 @@ app('router')->setCompiledRoutes( 6 => NULL, ), ), - 401 => + 449 => array ( 0 => array ( @@ -964,7 +1027,7 @@ app('router')->setCompiledRoutes( 6 => NULL, ), ), - 414 => + 462 => array ( 0 => array ( @@ -987,7 +1050,7 @@ app('router')->setCompiledRoutes( 6 => NULL, ), ), - 456 => + 504 => array ( 0 => array ( @@ -1010,7 +1073,7 @@ app('router')->setCompiledRoutes( 6 => NULL, ), ), - 480 => + 528 => array ( 0 => array ( @@ -2216,6 +2279,165 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), + 'filament.admin.newsletter.resources.mail-adressens.index' => + array ( + 'methods' => + array ( + 0 => 'GET', + 1 => 'HEAD', + ), + 'uri' => 'app/newsletter/mail-adressens', + 'action' => + array ( + 'domain' => NULL, + 'middleware' => + array ( + 0 => 'panel:admin', + 1 => 'Illuminate\\Cookie\\Middleware\\EncryptCookies', + 2 => 'Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse', + 3 => 'Illuminate\\Session\\Middleware\\StartSession', + 4 => 'Filament\\Http\\Middleware\\AuthenticateSession', + 5 => 'Illuminate\\View\\Middleware\\ShareErrorsFromSession', + 6 => 'Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken', + 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', + 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', + 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', + 11 => 'Filament\\Http\\Middleware\\Authenticate', + 12 => 'verified:filament.admin.auth.email-verification.prompt', + ), + 'excluded_middleware' => + array ( + ), + 'uses' => 'App\\Filament\\Resources\\MailAdressens\\Pages\\ListMailAdressens@__invoke', + 'controller' => 'App\\Filament\\Resources\\MailAdressens\\Pages\\ListMailAdressens', + 'as' => 'filament.admin.newsletter.resources.mail-adressens.index', + 'namespace' => NULL, + 'prefix' => 'app/newsletter/mail-adressens', + 'where' => + array ( + ), + ), + 'fallback' => false, + 'defaults' => + array ( + ), + 'wheres' => + array ( + ), + 'bindingFields' => + array ( + ), + 'lockSeconds' => NULL, + 'waitSeconds' => NULL, + 'withTrashed' => false, + ), + 'filament.admin.newsletter.resources.mail-adressens.create' => + array ( + 'methods' => + array ( + 0 => 'GET', + 1 => 'HEAD', + ), + 'uri' => 'app/newsletter/mail-adressens/create', + 'action' => + array ( + 'domain' => NULL, + 'middleware' => + array ( + 0 => 'panel:admin', + 1 => 'Illuminate\\Cookie\\Middleware\\EncryptCookies', + 2 => 'Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse', + 3 => 'Illuminate\\Session\\Middleware\\StartSession', + 4 => 'Filament\\Http\\Middleware\\AuthenticateSession', + 5 => 'Illuminate\\View\\Middleware\\ShareErrorsFromSession', + 6 => 'Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken', + 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', + 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', + 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', + 11 => 'Filament\\Http\\Middleware\\Authenticate', + 12 => 'verified:filament.admin.auth.email-verification.prompt', + ), + 'excluded_middleware' => + array ( + ), + 'uses' => 'App\\Filament\\Resources\\MailAdressens\\Pages\\CreateMailAdressen@__invoke', + 'controller' => 'App\\Filament\\Resources\\MailAdressens\\Pages\\CreateMailAdressen', + 'as' => 'filament.admin.newsletter.resources.mail-adressens.create', + 'namespace' => NULL, + 'prefix' => 'app/newsletter/mail-adressens', + 'where' => + array ( + ), + ), + 'fallback' => false, + 'defaults' => + array ( + ), + 'wheres' => + array ( + ), + 'bindingFields' => + array ( + ), + 'lockSeconds' => NULL, + 'waitSeconds' => NULL, + 'withTrashed' => false, + ), + 'filament.admin.newsletter.resources.mail-adressens.edit' => + array ( + 'methods' => + array ( + 0 => 'GET', + 1 => 'HEAD', + ), + 'uri' => 'app/newsletter/mail-adressens/{record}/edit', + 'action' => + array ( + 'domain' => NULL, + 'middleware' => + array ( + 0 => 'panel:admin', + 1 => 'Illuminate\\Cookie\\Middleware\\EncryptCookies', + 2 => 'Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse', + 3 => 'Illuminate\\Session\\Middleware\\StartSession', + 4 => 'Filament\\Http\\Middleware\\AuthenticateSession', + 5 => 'Illuminate\\View\\Middleware\\ShareErrorsFromSession', + 6 => 'Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken', + 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', + 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', + 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', + 11 => 'Filament\\Http\\Middleware\\Authenticate', + 12 => 'verified:filament.admin.auth.email-verification.prompt', + ), + 'excluded_middleware' => + array ( + ), + 'uses' => 'App\\Filament\\Resources\\MailAdressens\\Pages\\EditMailAdressen@__invoke', + 'controller' => 'App\\Filament\\Resources\\MailAdressens\\Pages\\EditMailAdressen', + 'as' => 'filament.admin.newsletter.resources.mail-adressens.edit', + 'namespace' => NULL, + 'prefix' => 'app/newsletter/mail-adressens', + 'where' => + array ( + ), + ), + 'fallback' => false, + 'defaults' => + array ( + ), + 'wheres' => + array ( + ), + 'bindingFields' => + array ( + ), + 'lockSeconds' => NULL, + 'waitSeconds' => NULL, + 'withTrashed' => false, + ), 'filament.admin.administration.resources.methodes.index' => array ( 'methods' => @@ -2830,7 +3052,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::6YYyahMFDoqTmNCy' => + 'generated::c8Aa0gB5BhsyJxz2' => array ( 'methods' => array ( @@ -2842,7 +3064,7 @@ app('router')->setCompiledRoutes( array ( 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', - 'as' => 'generated::6YYyahMFDoqTmNCy', + 'as' => 'generated::c8Aa0gB5BhsyJxz2', ), 'fallback' => false, 'defaults' => @@ -2858,7 +3080,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::uPFpzDrX62b55R0k' => + 'generated::1gix3NM8CNsYg1oM' => array ( 'methods' => array ( @@ -2870,7 +3092,7 @@ app('router')->setCompiledRoutes( array ( 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', - 'as' => 'generated::uPFpzDrX62b55R0k', + 'as' => 'generated::1gix3NM8CNsYg1oM', ), 'fallback' => false, 'defaults' => @@ -2972,7 +3194,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::8vxCBRFgKJnIKw8z' => + 'generated::4ALnCKgsRg5pNXr4' => array ( 'methods' => array ( @@ -3000,8 +3222,8 @@ app('router')->setCompiledRoutes( return response(\\Illuminate\\Support\\Facades\\View::file(\'/Users/hermanntelser/Sites/nutzwerte_fi4/vendor/laravel/framework/src/Illuminate/Foundation/Configuration\'.\'/../resources/health-up.blade.php\', [ \'exception\' => $exception, ]), status: $exception ? 500 : 200); - }";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"0000000000000f360000000000000000";}}', - 'as' => 'generated::8vxCBRFgKJnIKw8z', + }";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"0000000000000f390000000000000000";}}', + 'as' => 'generated::4ALnCKgsRg5pNXr4', ), 'fallback' => false, 'defaults' => @@ -3017,7 +3239,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::j5C04dYevQlSMFt8' => + 'generated::9tM0beuDkUZJcW3v' => array ( 'methods' => array ( @@ -3033,13 +3255,13 @@ app('router')->setCompiledRoutes( ), 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:50:"function () { return \\view(\'pages.welcome\'); -}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f3b0000000000000000";}}', +}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f3e0000000000000000";}}', 'namespace' => NULL, 'prefix' => '', 'where' => array ( ), - 'as' => 'generated::j5C04dYevQlSMFt8', + 'as' => 'generated::9tM0beuDkUZJcW3v', ), 'fallback' => false, 'defaults' => @@ -3055,7 +3277,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::9Kv82QZZVXCKxQUz' => + 'generated::TggslUndiRqH7lMm' => array ( 'methods' => array ( @@ -3071,13 +3293,13 @@ app('router')->setCompiledRoutes( ), 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:52:"function () { return \\view(\'pages.nutzwerte\'); -}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f3f0000000000000000";}}', +}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f420000000000000000";}}', 'namespace' => NULL, 'prefix' => '', 'where' => array ( ), - 'as' => 'generated::9Kv82QZZVXCKxQUz', + 'as' => 'generated::TggslUndiRqH7lMm', ), 'fallback' => false, 'defaults' => @@ -3093,7 +3315,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::f7MHRRwLGpeqdN7H' => + 'generated::8pknM1HUqBZ8CD0A' => array ( 'methods' => array ( @@ -3109,13 +3331,13 @@ app('router')->setCompiledRoutes( ), 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:51:"function () { return \\view(\'pages.programm\'); -}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f410000000000000000";}}', +}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f440000000000000000";}}', 'namespace' => NULL, 'prefix' => '', 'where' => array ( ), - 'as' => 'generated::f7MHRRwLGpeqdN7H', + 'as' => 'generated::8pknM1HUqBZ8CD0A', ), 'fallback' => false, 'defaults' => @@ -3131,7 +3353,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::GVbV1gIyWnW3UTzK' => + 'generated::fsCBG8FQNzd5aUQx' => array ( 'methods' => array ( @@ -3147,13 +3369,13 @@ app('router')->setCompiledRoutes( ), 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:52:"function () { return \\view(\'pages.impressum\'); -}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f430000000000000000";}}', +}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f460000000000000000";}}', 'namespace' => NULL, 'prefix' => '', 'where' => array ( ), - 'as' => 'generated::GVbV1gIyWnW3UTzK', + 'as' => 'generated::fsCBG8FQNzd5aUQx', ), 'fallback' => false, 'defaults' => @@ -3299,7 +3521,7 @@ app('router')->setCompiledRoutes( $config, $isProduction ))($request, $path); - }";s:5:"scope";s:47:"Illuminate\\Filesystem\\FilesystemServiceProvider";s:4:"this";N;s:4:"self";s:32:"0000000000000f4f0000000000000000";}}', + }";s:5:"scope";s:47:"Illuminate\\Filesystem\\FilesystemServiceProvider";s:4:"this";N;s:4:"self";s:32:"0000000000000f520000000000000000";}}', 'as' => 'storage.local', ), 'fallback' => false, @@ -3332,7 +3554,7 @@ app('router')->setCompiledRoutes( $config, $isProduction ))($request, $path); - }";s:5:"scope";s:47:"Illuminate\\Filesystem\\FilesystemServiceProvider";s:4:"this";N;s:4:"self";s:32:"0000000000000f500000000000000000";}}', + }";s:5:"scope";s:47:"Illuminate\\Filesystem\\FilesystemServiceProvider";s:4:"this";N;s:4:"self";s:32:"0000000000000f530000000000000000";}}', 'as' => 'storage.local.upload', ), 'fallback' => false, diff --git a/database/migrations/2026_05_04_070425_create_mail_adressens_table.php b/database/migrations/2026_05_04_070425_create_mail_adressens_table.php new file mode 100644 index 0000000..097107f --- /dev/null +++ b/database/migrations/2026_05_04_070425_create_mail_adressens_table.php @@ -0,0 +1,40 @@ +id(); + $table->string('email')->unique(); + $table->string('company'); + $table->string('gender')->nullable(); + $table->string('first_name')->nullable(); + $table->string('last_name')->nullable(); + $table->string('teilhaber')->nullable(); + $table->string('address')->nullable(); + $table->string('zip')->nullable(); + $table->string('city')->nullable(); + $table->timestamp('vereidigung')->nullable(); + $table->boolean('im_newsletter')->default(false); + $table->boolean('istpartner')->default(false); + $table->boolean('burogemeinschaft')->default(false); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('mail_adressens'); + } +};