'loadFormModel', 'confirmDeletionUsers' => 'loadFormModelForDeletion', ]; /** * Definición de tipos de datos que se deben castear. * * @var array */ protected $casts = [ 'status' => 'boolean', ]; /** * Define el modelo Eloquent asociado con el formulario. * * @return string */ protected function model(): string { return User::class; } /** * Campo que se debe enfocar cuando se abra el formulario. * * @return string */ protected function focusOnOpen(): string { return 'name'; } // ===================== VALIDACIONES ===================== /** * Define reglas de validación dinámicas basadas en el modo actual. * * @param string $mode El modo actual del formulario ('create', 'edit', 'delete'). * @return array */ protected function dynamicRules(string $mode): array { switch ($mode) { case 'create': case 'edit': return [ 'email' => ['required', 'string', 'email', 'max:255', 'unique:users,email'], 'name' => ['required', 'string', 'max:96'], ]; case 'delete': return [ 'confirmDeletion' => 'accepted', // Asegura que el usuario confirme la eliminación ]; default: return []; } } /** * Get custom attributes for validator errors. * * @return array */ protected function attributes(): array { return [ 'code' => 'código de usuario', 'name' => 'nombre del usuario', ]; } /** * Get the error messages for the defined validation rules. * * @return array */ protected function messages(): array { return [ 'name.required' => 'El nombre del usuario es obligatorio.', ]; } /** * Ruta de la vista asociada con este formulario. * * @return string */ protected function viewPath(): string { return 'vuexy-admin::livewire.users.offcanvas-form'; } }