<?php
 namespace App\Http\Requests\Admin; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Rule; class InvoiceBillingStoreRequest extends FormRequest { public function authorize(): bool { return $this->user()->can('create', \App\Models\InvoiceBilling::class); } public function rules(): array { return [ 'name' => [ 'required', 'string', 'max:50', 'regex:/^[a-z0-9_-]+$/', Rule::unique('invoice_billings', 'name'), ], 'display_name' => 'required|string|max:255', 'type' => ['required', 'string', Rule::in(['e-invoice', 'e-archive'])], 'is_active' => 'boolean', 'is_automatic' => 'boolean', 'status' => ['nullable', 'string', Rule::in(['active', 'inactive', 'error'])], 'settings' => 'nullable|array', 'mapping_fields' => 'nullable|array', ]; } public function messages(): array { return [ 'name.required' => 'Modül adı zorunludur.', 'name.string' => 'Modül adı metin olmalıdır.', 'name.max' => 'Modül adı en fazla 50 karakter olabilir.', 'name.regex' => 'Modül adı sadece küçük harf, rakam, tire ve alt çizgi içerebilir.', 'name.unique' => 'Bu modül adı zaten kullanılıyor.', 'display_name.required' => 'Görünen ad zorunludur.', 'display_name.string' => 'Görünen ad metin olmalıdır.', 'display_name.max' => 'Görünen ad en fazla 255 karakter olabilir.', 'type.required' => 'Modül tipi zorunludur.', 'type.in' => 'Geçersiz modül tipi.', 'is_active.boolean' => 'Aktif durumu boolean olmalıdır.', 'is_automatic.boolean' => 'Otomatik durumu boolean olmalıdır.', 'status.in' => 'Geçersiz durum.', 'settings.array' => 'Ayarlar dizi olmalıdır.', 'mapping_fields.array' => 'Eşleştirme alanları dizi olmalıdır.', ]; } public function attributes(): array { return [ 'name' => 'modül adı', 'display_name' => 'görünen ad', 'type' => 'modül tipi', 'is_active' => 'aktif durumu', 'is_automatic' => 'otomatik durumu', 'status' => 'durum', 'settings' => 'ayarlar', 'mapping_fields' => 'eşleştirme alanları', ]; } } 