'array', 'display_params' => 'array', 'is_active' => 'boolean', ]; /** * 应该被转换为日期的属性 * * @var array */ protected $dates = [ 'start_time', 'end_time', 'created_at', 'updated_at', ]; // attrlist start protected $fillable = [ 'id', 'category_id', 'name', 'description', 'type', 'prerequisite_tasks', 'level_required', 'time_limit', 'max_completions', 'reset_type', 'display_params', 'sort_order', 'is_active', 'start_time', 'end_time', 'reset_interval', 'reset_time_field', 'reward_group_id', ]; // attrlist end /** * 获取任务所属分类 * * @return BelongsTo */ public function category(): BelongsTo { return $this->belongsTo(TaskCategory::class, 'category_id', 'id'); } /** * 获取任务的奖励(已废弃,使用rewardGroup替代) * * @return HasMany * @deprecated */ public function rewards(): HasMany { return $this->hasMany(TaskReward::class, 'task_id', 'id'); } /** * 获取任务关联的奖励组 * * @return BelongsTo */ public function rewardGroup(): BelongsTo { return $this->belongsTo(GameRewardGroup::class, 'reward_group_id', 'id'); } /** * 获取任务的消耗 * * @return HasMany */ public function costs(): HasMany { return $this->hasMany(TaskCost::class, 'task_id', 'id'); } /** * 获取任务的达成条件 * * @return HasMany */ public function achievementConditions(): HasMany { return $this->hasMany(TaskAchievementCondition::class, 'task_id', 'id'); } /** * 获取用户任务关联 * * @return HasMany */ public function userTasks(): HasMany { return $this->hasMany(TaskUserTask::class, 'task_id', 'id'); } }