diff --git a/scripts/attendance.py b/scripts/attendance.py index b1389a3..cdd285f 100644 --- a/scripts/attendance.py +++ b/scripts/attendance.py @@ -10,8 +10,11 @@ from config import ATTENDANCE_SHEET_ID as SHEET_ID, JUNIOR_SHEET_GID EXPORT_URL = f"https://docs.google.com/spreadsheets/d/{SHEET_ID}/export?format=csv&gid=0" JUNIOR_EXPORT_URL = f"https://docs.google.com/spreadsheets/d/{SHEET_ID}/export?format=csv&gid={JUNIOR_SHEET_GID}" -FEE_FULL = 750 # CZK, for 2+ practices in a month -FEE_SINGLE = 200 # CZK, for exactly 1 practice in a month +ADULT_FEE_DEFAULT = 750 # CZK, for 2+ practices in a month +ADULT_FEE_SINGLE = 200 # CZK, for exactly 1 practice in a month +ADULT_FEE_MONTHLY_RATE = { + "2026-03": 350 +} JUNIOR_FEE_DEFAULT = 500 # CZK for 2+ practices JUNIOR_MONTHLY_RATE = { @@ -76,13 +79,13 @@ def group_by_month(dates: list[tuple[int, datetime]], merged_months: dict[str, s return months -def calculate_fee(attendance_count: int) -> int: - """Apply fee rules: 0 → 0, 1 → 200, 2+ → 750.""" +def calculate_fee(attendance_count: int, month_key: str) -> int: + """Apply fee rules: 0 → 0, 1 → 200, 2+ → configured rate (default 750).""" if attendance_count == 0: return 0 if attendance_count == 1: - return FEE_SINGLE - return FEE_FULL + return ADULT_FEE_SINGLE + return ADULT_FEE_MONTHLY_RATE.get(month_key, ADULT_FEE_DEFAULT) def calculate_junior_fee(attendance_count: int, month_key: str) -> str | int: @@ -186,7 +189,7 @@ def get_members_with_fees() -> tuple[list[tuple[str, str, dict[str, int]]], list for c in cols if c < len(row) and row[c].strip().upper() == "TRUE" ) - fee = calculate_fee(count) if tier == "A" else 0 + fee = calculate_fee(count, month_key) if tier == "A" else 0 month_fees[month_key] = (fee, count) members.append((name, tier, month_fees))