'date', 'scadenza_abbonamenti' => 'date', 'scadenza_pagamenti_uscita' => 'date', ]; /** * Valida i campi richiesti prima della generazione del PDF. * * @return array|bool true se valido, oppure array di errori se non valido */ public function validate() { $rules = [ 'ragione_sociale' => 'required|string|max:255', 'email' => 'required|email|max:255', 'pec' => 'required|email|max:255', 'cellulare' => 'required|string|max:20', ]; $rules_human = [ 'ragione_sociale' => "Ragione sociale", 'email' => "Email", 'pec' => "Pec", 'cellulare' => "Cellulare", ]; $validator = Validator::make($this->attributesToArray(), $rules); if ($validator->fails()) { $errors = []; foreach ($validator->errors()->messages() as $field => $error) { $errors[$field] = isset($rules_human[$field]) ? $rules_human[$field] : $field; } return $errors; } return true; } /** * Restituisce true se l'azienda รจ valida (tutti i campi richiesti presenti). */ public function isValid() { return $this->validate() === true; } /** * Get the logo URL attribute. * * @return string|null */ public function getLogoUrlAttribute() { if ($this->logo) { return asset('storage/' . $this->logo); } return null; } /** * Get a formatted list of discipline names. * * @return string */ public function getDisciplineListAttribute() { return $this->disciplines->pluck('name')->implode(', '); } }