'datetime', 'ends_at' => 'datetime', 'voting_starts_at' => 'datetime', 'voting_ends_at' => 'datetime', 'required_tags' => 'array', 'allowed_categories' => 'array', 'featured' => 'boolean', 'active' => 'boolean', ]; public function scopeActive(Builder $query): Builder { return $query->where('active', true); } public function scopePubliclyVisible(Builder $query): Builder { return $query->active()->whereIn('status', [ self::STATUS_ACTIVE, self::STATUS_VOTING, self::STATUS_COMPLETED, self::STATUS_ARCHIVED, self::STATUS_SCHEDULED, ]); } public function submissions(): HasMany { return $this->hasMany(AcademyChallengeSubmission::class, 'challenge_id'); } }