'integer', 'unit_amount' => 'decimal:2', 'validity_days' => 'integer', 'is_active' => 'boolean', ]; /** * 取得有效規則 */ public function scopeActive($query) { return $query->where('is_active', true); } /** * 根據金額計算可獲得點數 */ public function calculatePoints(float $amount): int { if ($this->unit_amount <= 0) { return 0; } return (int) floor($amount / $this->unit_amount) * $this->points_per_unit; } }