*/ use HasFactory; /** * 允许批量赋值的字段。 * * @var array */ protected $fillable = [ 'user_id', 'room_id', 'is_makeup', 'makeup_purchase_id', 'makeup_at', 'sign_in_date', 'streak_days', 'reward_rule_id', 'gold_reward', 'exp_reward', 'charm_reward', 'identity_badge_code', 'identity_badge_name', 'identity_badge_icon', 'identity_badge_color', ]; /** * 属性类型转换。 * * @return array */ protected function casts(): array { return [ 'room_id' => 'integer', 'is_makeup' => 'boolean', 'makeup_purchase_id' => 'integer', 'makeup_at' => 'datetime', 'sign_in_date' => 'date', 'streak_days' => 'integer', 'reward_rule_id' => 'integer', 'gold_reward' => 'integer', 'exp_reward' => 'integer', 'charm_reward' => 'integer', ]; } /** * 关联:签到记录所属用户。 */ public function user(): BelongsTo { return $this->belongsTo(User::class); } /** * 关联:本次签到命中的奖励规则。 */ public function rewardRule(): BelongsTo { return $this->belongsTo(SignInRewardRule::class, 'reward_rule_id'); } }