user()->hasPermissionTo('cancellations.cancel_constancia'); } /** * Get the validation rules that apply to the request. */ public function rules(): array { return [ 'new_folio' => 'required|string', 'cancellation_reason_id' => 'required|exists:catalog_cancellation_reasons,id', 'cancellation_observations' => 'nullable|string', 'new_tag_number' => 'nullable|exists:tags,tag_number', ]; } /** * Get custom messages for validator errors. */ public function messages(): array { return [ 'record_id.exists' => 'El expediente especificado no existe.', 'cancellation_reason_id.required' => 'El motivo de cancelación es obligatorio.', 'cancellation_reason_id.exists' => 'El motivo de cancelación no es válido.', 'new_tag_number.exists' => 'El nuevo tag no existe', 'folio.required_with' => 'El folio es requerido cuando se proporciona un nuevo tag', ]; } /** * Get custom attributes for validator errors. */ public function attributes(): array { return [ 'record_id' => 'id del expediente', 'cancellation_reason' => 'motivo de cancelación', 'cancellation_observations' => 'observaciones', ]; } }