'integer', 'winners_count' => 'integer', 'prize_per_point' => 'decimal:2', // adjust precision if needed 'is_published' => 'boolean', 'is_locked' => 'boolean', // change to 'date' if your columns are DATE (not DATETIME) 'start_date' => 'date', 'end_date' => 'date', 'published_at' => 'datetime', 'locked_at' => 'datetime', 'locked_by' => 'integer', 'created_by' => 'integer', ]; /* Optional relationships */ public function classSection() { return $this->belongsTo(ClassSection::class, 'class_section_id'); } public function lockedByUser() { return $this->belongsTo(User::class, 'locked_by'); } public function createdByUser() { return $this->belongsTo(User::class, 'created_by'); } public function classWinners() { return $this->hasMany(CompetitionClassWinner::class, 'competition_id'); } }