*/ public function toArray(Request $request): array { $contract = $this->whenLoaded('contract'); $signatureDate = $contract?->signature_date; $validityMonths = $contract?->validity_months; $monthsElapsed = $signatureDate ? (int) Carbon::parse($signatureDate)->diffInMonths(Carbon::now()) : null; return [ 'id' => $this->id, 'franchisee_id' => $this->franchisee_id, 'contract_id' => $this->contract_id, 'inhabitant_classification_id' => $this->inhabitant_classification_id, 'year' => $this->year, 'tbr_value' => $this->tbr_value, 'start_date' => $this->start_date?->format('Y-m-d'), 'invoice_due_day' => $this->invoice_due_day, 'base_royalties_percentage' => $this->base_royalties_percentage, 'base_fnm_percentage' => $this->base_fnm_percentage, 'maintenance_percentage' => $this->whenLoaded('maintenanceBracket')?->percentage, 'franchisee_royalties_bracket_id' => $this->franchisee_royalties_bracket_id, 'franchisee_fnm_bracket_id' => $this->franchisee_fnm_bracket_id, 'franchisee_maintenance_bracket_id' => $this->franchisee_maintenance_bracket_id, 'unit_name' => $contract?->unit?->fantasy_name, 'contract_month_current' => $monthsElapsed, 'contract_validity_months' => $validityMonths, 'created_at' => Carbon::parse($this->created_at)->format('Y-m-d H:i:s'), 'updated_at' => Carbon::parse($this->updated_at)->format('Y-m-d H:i:s'), 'inhabitant_classification' => new InhabitantClassificationResource($this->whenLoaded('inhabitantClassification')), ]; } /** * @param \Illuminate\Database\Eloquent\Collection $resource * @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection */ public static function collection($resource): AnonymousResourceCollection { return parent::collection($resource); } }