'integer', 'num_unit_immobiliari' => 'integer', 'superficie_totale' => 'decimal:2', 'millesimi_totali' => 'decimal:3' ]; public function amministratore(): BelongsTo { return $this->belongsTo(Administrator::class); } public function annoGestione(): BelongsTo { return $this->belongsTo(AnnoGestione::class); } public function comune(): BelongsTo { return $this->belongsTo(Comune::class); } public function condomini(): HasMany { return $this->hasMany(CondominoStabile::class); } public function rateEmesse(): HasMany { return $this->hasMany(RataEmessa::class); } public function incassi(): HasMany { return $this->hasMany(IncassoPagamento::class); } public function fatture(): HasMany { return $this->hasMany(FatturaFornitore::class); } public function assemblee(): HasMany { return $this->hasMany(AssembleaVerbale::class); } public function scopeByComune($query, $comune) { return $query->whereHas('comune', function ($q) use ($comune) { $q->where('comune', 'like', "%{$comune}%"); }); } public function scopeByProvincia($query, $provincia) { return $query->where('provincia', $provincia); } public function getTotaleMilesimiAttribute() { return $this->condomini()->sum('millesimi_proprieta') + $this->condomini()->sum('millesimi_riscaldamento'); } }