$pointsLogs * * @mixin \Eloquent */ class IncentiveNewPartner extends Model { use HasFactory; protected $table = 'incentive_new_partners'; protected $casts = [ 'participant_id' => 'int', 'user_id' => 'int', 'registered_at' => 'datetime', 'cancelled_at' => 'datetime', ]; protected $fillable = [ 'participant_id', 'user_id', 'registered_at', 'cancelled_at', ]; /** * Nur Neupartner, die zaehlen (Starterpaket-Bestellung nicht storniert). */ public function scopeCounting(Builder $query): Builder { return $query->whereNull($query->getModel()->qualifyColumn('cancelled_at')); } public function isCancelled(): bool { return $this->cancelled_at !== null; } public function participant() { return $this->belongsTo(IncentiveParticipant::class, 'participant_id'); } public function user() { return $this->belongsTo(User::class); } public function pointsLogs() { return $this->hasMany(IncentivePointsLog::class, 'incentive_new_partner_id'); } }