'date', 'is_active' => 'boolean', 'metadata' => 'json', 'synced_at' => 'datetime', ]; } public function violations(): HasMany { return $this->hasMany(Violation::class); } public function spLetters(): HasMany { return $this->hasMany(SpLetter::class); } public function class() { return $this->belongsTo(Classes::class, 'class_id'); } public function getTotalPointsAttribute(): int { return $this->violations() ->whereNull('deleted_at') ->sum('points'); } }