'array', 'display_params' => 'array', 'is_active' => 'boolean', 'auto_accept' => 'boolean', 'auto_complete' => 'boolean', 'auto_reward' => 'boolean', 'auto_reset' => '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', 'consume_group_id', 'prerequisite_condition_group_id', 'achievement_condition_group_id', 'auto_accept', 'auto_complete', 'auto_reward', 'auto_reset', ]; // 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 BelongsTo */ public function consumeGroup(): BelongsTo { return $this->belongsTo(GameConsumeGroup::class, 'consume_group_id', 'id'); } /** * 获取任务关联的前置条件组 * * @return BelongsTo */ public function prerequisiteConditionGroup(): BelongsTo { return $this->belongsTo(GameConditionGroup::class, 'prerequisite_condition_group_id', 'id'); } /** * 获取任务关联的达成条件组 * * @return BelongsTo */ public function achievementConditionGroup(): BelongsTo { return $this->belongsTo(GameConditionGroup::class, 'achievement_condition_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'); } }