diff --git a/app/Http/Requests/Bo/Brands/StoreBrandRequest.php b/app/Http/Requests/Bo/Brands/StoreBrandRequest.php index afdf694..eca4c1e 100644 --- a/app/Http/Requests/Bo/Brands/StoreBrandRequest.php +++ b/app/Http/Requests/Bo/Brands/StoreBrandRequest.php @@ -37,10 +37,11 @@ class StoreBrandRequest extends FormRequest public function rules(): array { $rules = [ - 'name' => 'required|unique:brands,name|string|min:5|max:255', - 'url' => 'required|url|min:5|max:255', - 'url_claim' => 'required|url|min:5|max:255', - 'domain' => 'required|unique:brands,domain|string|min:5|max:255', + 'name' => 'required|unique:brands,name|string|min:5|max:255', + 'url' => 'required|url|min:5|max:255', + 'url_claim' => 'required|url|min:5|max:255', + 'domain' => 'required|unique:brands,domain|string|min:5|max:255', + 'newsletter_email' => 'nullable|email:rfc,strict,dns,spoof,filter', ]; return \array_merge( $rules, diff --git a/app/Models/Brand.php b/app/Models/Brand.php index 6381858..a9e65f9 100644 --- a/app/Models/Brand.php +++ b/app/Models/Brand.php @@ -48,6 +48,7 @@ class Brand extends Model 'url', 'url_claim', 'domain', + 'newsletter_email', ]; /** diff --git a/database/migrations/2026_04_03_152802_alter_brands_table.php b/database/migrations/2026_04_03_152802_alter_brands_table.php new file mode 100644 index 0000000..1a7ef69 --- /dev/null +++ b/database/migrations/2026_04_03_152802_alter_brands_table.php @@ -0,0 +1,28 @@ +string('newsletter_email')->nullable()->comment('Brand associative newsletter email.')->after('domain'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('brands', function (Blueprint $table) { + $table->dropColumn('newsletter_email'); + }); + } +}; diff --git a/resources/views/bo/pages/brands/form.blade.php b/resources/views/bo/pages/brands/form.blade.php index 8b55632..11c4e80 100644 --- a/resources/views/bo/pages/brands/form.blade.php +++ b/resources/views/bo/pages/brands/form.blade.php @@ -89,6 +89,29 @@ + {{-- NEWSLETTER_EMAIL --}} +
+
+ {{ str(__('validation.custom.newsletter_email'))->ucfirst() }} +
+
+ @include('bo.partials.inputs.varchar', [ + 'id' => 'brandNewsletterEmail', + 'label' => __(':field de la :model', [ + 'field' => str(__('validation.custom.newsletter_email'))->ucfirst(), + 'model' => str(__('models.classes.brands'))->singular(), + ]), + 'hasWordCounter' => true, + 'name' => 'newsletter_email', + 'required' => false, + 'model' => $brandModel ?? null, + 'placeholder' => 'no-reply@example.com', + 'helper' => __('Adresse email utilisée pour l\'envoi de la newsletter.'), + ]) +
+
+
+
{{-- IMAGE --}}