All checks were successful
Deploy to K8s / deploy (push) Successful in 40s
- 2026-05: 700 → 450 CZK - 2026-06, 07, 08: 600 CZK (new months) Changes are mirrored in both Python (scripts/attendance.py) and Go (go/internal/domain/fees/fees.go). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
35 lines
1.1 KiB
Go
35 lines
1.1 KiB
Go
// Package fees ports fee calculation from scripts/attendance.py.
|
|
package fees
|
|
|
|
const (
|
|
AdultFeeDefault = 700 // CZK fallback for 2+ practices when month not in AdultFeeMonthlyRate
|
|
AdultFeeSingle = 200 // CZK for exactly 1 practice
|
|
)
|
|
|
|
// AdultFeeMonthlyRate mirrors ADULT_FEE_MONTHLY_RATE in scripts/attendance.py.
|
|
// Months absent from this map fall back to AdultFeeDefault.
|
|
var AdultFeeMonthlyRate = map[string]int{
|
|
"2025-09": 750, "2025-10": 750, "2025-11": 750, "2025-12": 750,
|
|
"2026-01": 750, "2026-02": 750, "2026-03": 350,
|
|
"2026-04": 700, "2026-05": 450, "2026-06": 600, "2026-07": 600, "2026-08": 600,
|
|
}
|
|
|
|
// CalculateFee returns the adult fee in CZK for attendanceCount practices in
|
|
// the given monthKey (format "YYYY-MM").
|
|
//
|
|
// 0 practices → 0
|
|
// 1 practice → AdultFeeSingle (200)
|
|
// 2+ → AdultFeeMonthlyRate[monthKey] or AdultFeeDefault
|
|
func CalculateFee(attendanceCount int, monthKey string) int {
|
|
if attendanceCount == 0 {
|
|
return 0
|
|
}
|
|
if attendanceCount == 1 {
|
|
return AdultFeeSingle
|
|
}
|
|
if rate, ok := AdultFeeMonthlyRate[monthKey]; ok {
|
|
return rate
|
|
}
|
|
return AdultFeeDefault
|
|
}
|