diff --git a/CHANGELOG.md b/CHANGELOG.md index a2f5324..6fb2990 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## 2026-05-04 23:08 CEST — fix: payment inference exact-match short-circuit + +- `match_members()` now short-circuits on whole-word full-name hits; nickname/partial checks only run when no full name is present. +- Replaced bare `in` substring checks with `_word_in()` word-boundary regex throughout, closing the class of bugs where a short nickname (e.g. `tov`) matches inside another member's surname (`ottova`). +- Added `tests/test_match_members.py` (6 cases). Affects `scripts/match_payments.py`. + +## 2026-05-04 23:08 CEST — feat: lower adult monthly fee to 700 CZK from April 2026 + +- `ADULT_FEE_DEFAULT` reduced from 750 → 700 CZK. +- `ADULT_FEE_MONTHLY_RATE` now pins Sep 2025 – Feb 2026 at 750 to preserve historical billing; Mar 2026 stays 350; Apr–May 2026 at 700. Affects `scripts/attendance.py`. + ## 2026-05-04 12:02 CEST — Go rewrite M1: skeleton + tooling - Created `go/` tree with module `fuj-management/go` (Go 1.26). diff --git a/scripts/attendance.py b/scripts/attendance.py index 61f9eab..c6886d2 100644 --- a/scripts/attendance.py +++ b/scripts/attendance.py @@ -10,10 +10,18 @@ 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}" -ADULT_FEE_DEFAULT = 750 # CZK, for 2+ practices in a month +ADULT_FEE_DEFAULT = 700 # 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 + "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": 700, } JUNIOR_FEE_DEFAULT = 500 # CZK for 2+ practices