'integer', 'balance_after' => 'integer', 'room_id' => 'integer', 'created_at' => 'datetime', ]; // ─── 关联 ───────────────────────────────────────────────── /** * 关联用户(流水属于哪个用户) */ public function user(): BelongsTo { return $this->belongsTo(User::class); } // ─── 作用域(Scope)快捷查询 ────────────────────────────── /** * 按货币类型过滤 */ public function scopeCurrency(Builder $query, string $currency): Builder { return $query->where('currency', $currency); } /** * 今日数据 */ public function scopeToday(Builder $query): Builder { return $query->whereDate('created_at', today()); } /** * 指定日期数据 */ public function scopeOnDate(Builder $query, string $date): Builder { return $query->whereDate('created_at', $date); } /** * 仅正向增加(用于排行榜,不算消耗) */ public function scopeGain(Builder $query): Builder { return $query->where('amount', '>', 0); } /** * 按来源过滤 */ public function scopeSource(Builder $query, string $source): Builder { return $query->where('source', $source); } }