popertots and Sisyphus
aeab289be9
feat(backend): add payment discount preview and status tests
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-06-18 16:26:34 +01:00
popertots and Sisyphus
3cb5a3e360
feat(backend): add loyalty and refund features
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-06-18 16:26:32 +01:00
popertots and Sisyphus
31cc3ef5c3
feat(backend): update payments handlers and service
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-06-18 16:26:29 +01:00
popertots and Sisyphus
ad0af39237
feat(backend): integrate custom services across booking, payment, scheduling, today, and user modules
...
Update booking create/confirm/progress/reserve handlers to support custom_service_ids and custom overrides. Add UNION ALL queries to include custom_services in booking detail, payment summary, scheduling availability, today dashboard, and customer relationship queries.
Ultraworked with Sisyphus (https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-06-15 16:58:10 +01:00
popertots and Sisyphus
3c447a5c33
fix(backend): address gift card review findings
...
Fix #1 : remove expiry_date from gift card INSERTs (rolling 24-month via last_used_at only)
Fix #2 : add FOR UPDATE to RedeemGiftCard SELECT (race condition)
Fix #6 : add ?type=customer|inventory filter to GetGiftCards
Fix #7 : add admin_audit_log INSERT to GetUserGiftCardBalanceAdmin
Fix #10 : refactor normalizeCode to validators.NormalizeGiftCardCode
Schema: add admin_audit_log table (GDPR Article 30), update testdb.go
Tests: expiry-date-null, inventory-filter, audit-log, db table references
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-06-12 10:50:49 +01:00
popertots and Sisyphus
30ded0bb95
feat(payments): add gift card system v2 with management, expiry, inventory, audit log
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-06-11 22:08:18 +01:00
popertots
4e174a6123
Fixes for giftcards and phone input
2026-06-06 15:10:48 +01:00
popertots
5258f90b06
Add giftcard management
2026-06-06 14:26:42 +01:00
popertots
310e6aaa80
Add giftcard management
2026-06-06 14:26:33 +01:00
popertots
0d4a74bd4a
feat: caret preservation and Luhn validation in card inputs
...
- Added generic formatAndPreserveCursor() helper on frontend to track
and restore selection caret position during dynamic input sanitization
- Applied to all card inputs, gift card code inputs, and expiry inputs
- Added Luhn validation (isValidLuhn) for saved cards and gift cards
- Rebuilt payments test DB and got 100% green tests
2026-06-05 21:05:36 +01:00
popertots and Sisyphus
b1847b4cfc
fix(payments,portfolio,scheduling): add ID validation hardening
...
Add validators.IsValidID() checks on URL param IDs to return 404 instead of 400 for invalid IDs. Add offset cap and query length limit in portfolio images handler.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-05-31 18:49:16 +01:00
popertots and Sisyphus
4a37fd6396
fix: payment API amount precision (pence), partial validation, and create payment method endpoint
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-05-25 18:03:55 +01:00
popertots
2e1ab9d745
feat: Square payment integration, booking flow redesign, and timezone/weekday fixes
...
- Add Square payment integration (mock + handlers + UI): terminal/online payments,
refunds, tips, saved cards, webhooks. Build-tagged dev/prod clients.
- Redesign booking flow: Step 4 conditional (deposit only), Step 5 confirmation
screen with booking ID, auto-submit on transition.
- Redesign schedule modal: 2x3 button grid with Pay Deposit/Pay Early logic.
- Add deposit warning banner at Step 1 for users with outstanding deposits.
- Fix weekday conversion bug: Go 0=Sunday vs DB 0=Monday mismatch in 6 locations.
- Fix timezone bug: UTC vs London time in closing hours validation.
- Fix frontend error parsing: plain text backend errors now displayed correctly.
- Fix crypto.randomUUID fallback for environments without Web Crypto.
- Add 7 new regression tests: closing hours, advance check, active booking limit,
weekday conversion, UTC/London, deposit snapshot, exceptional hours.
- Fix 3 flaky tests: dynamic dates instead of fixed, no-show timing.
2026-05-23 11:29:34 +01:00