This website requires JavaScript.
7624047a95
ci: use sh default shell for alpine runner
popertots
2026-06-25 00:40:02 +01:00
2ecc9a798c
ci: add bash to apk install for alpine runner
popertots
2026-06-25 00:38:04 +01:00
a27fc9205e
ci: remove host port mapping from PG service container
popertots
2026-06-25 00:33:46 +01:00
43ea0b2366
ci: fix yaml and disable setup-go cache
popertots
2026-06-25 00:31:20 +01:00
69b3a179f4
ci: disable setup-go cache to prevent hanging
popertots
2026-06-25 00:29:46 +01:00
8b47234f3b
chore: bump workflow description to trigger fresh run
popertots
2026-06-25 00:22:54 +01:00
ae151cb197
ci: fix actions runtime - use node base image for JS action support
popertots
2026-06-25 00:20:10 +01:00
f9ebfe8a5d
ci: switch runner to golang alpine image, drop apt for apk
popertots
2026-06-25 00:15:45 +01:00
2bd5ea2354
fix(docs): correct test counts to actual verified numbers (1,169/1,169, 4 skipped)
popertots and Sisyphus
2026-06-24 23:53:29 +01:00
29ae113901
docs: update README and obsidian docs to reflect timezone/tx/VAT/middleware changes
popertots and Sisyphus
2026-06-24 23:50:28 +01:00
32e47b06be
chore: add .gitea and .sisyphus config directories
popertots and Sisyphus
2026-06-24 23:44:14 +01:00
5de0d49454
chore: update README, init-script SQL, and obsidian documentation
popertots and Sisyphus
2026-06-24 23:44:06 +01:00
4ac7768070
refactor(frontend): timezone-safe date handling with London-aware utilities
popertots and Sisyphus
2026-06-24 23:43:58 +01:00
e4b9003439
refactor(handlers): migrate remaining backend handlers to clock.Now() and transaction patterns
popertots and Sisyphus
2026-06-24 23:43:50 +01:00
7b24f8e484
refactor(payments): integrate VAT into gift card buy flow and wrap in transactions
popertots and Sisyphus
2026-06-24 23:43:40 +01:00
40bbd9ba49
refactor(bookings): migrate remaining handlers and tests to clock.Now()
popertots and Sisyphus
2026-06-24 23:43:32 +01:00
0ea1bb64b4
feat(bookings): add closing_time validation and repo layer
popertots and Sisyphus
2026-06-24 23:43:23 +01:00
58996c553a
refactor(internal): replace log.Fatal with panic, add timezone to DSN, add empty S3 bucket check
popertots and Sisyphus
2026-06-24 23:43:14 +01:00
e95b1a65af
refactor(auth): wrap JWT operations in transactions and migrate to clock.Now()
popertots and Sisyphus
2026-06-24 23:43:07 +01:00
da0e64c02b
feat(mw): add content-type and response middleware
popertots and Sisyphus
2026-06-24 23:42:57 +01:00
08c8828bb0
refactor(db): set UTC timezone in pool config and add Querier docs
popertots and Sisyphus
2026-06-24 23:42:49 +01:00
6ec2cf1d69
feat(clock): add clock package for testable time
popertots and Sisyphus
2026-06-24 23:42:41 +01:00
d71373c7f2
feat(frontend): add VAT breakdown, print receipt, and VAT indicators
popertots and Sisyphus
2026-06-22 17:06:38 +01:00
194aacf68c
feat(frontend): add test deps, VAT types, and business info store
popertots and Sisyphus
2026-06-22 17:06:31 +01:00
21560ea451
chore: reduce test count in dev script
popertots and Sisyphus
2026-06-22 17:06:24 +01:00
37a9ba3517
fix(bookings): use transaction context for discount check in approve edit
popertots and Sisyphus
2026-06-22 17:06:18 +01:00
80b9877686
feat(api): add public business info route and TotalVATCollected to daily summary
popertots and Sisyphus
2026-06-22 17:06:12 +01:00
7756f3af96
test(scheduling): add exhaustive blocker, gap, and cross-day tests
popertots and Sisyphus
2026-06-22 17:06:05 +01:00
edc7d833ea
refactor(scheduling): split multi-day blockers and normalize time strings
popertots and Sisyphus
2026-06-22 17:05:58 +01:00
9d70d42bd4
test(admin): add settings validation, public info, and out_of_hours tests
popertots and Sisyphus
2026-06-22 17:05:52 +01:00
280b05bd34
feat(admin): add public business info, input validation, and VAT enable
popertots and Sisyphus
2026-06-22 17:05:45 +01:00
6561ceb7a9
feat(payments): integrate VAT into gift cards, payment handlers, and till sales
popertots and Sisyphus
2026-06-22 17:05:39 +01:00
7cd71e4485
feat(payments): add VAT config helper and apply functions
popertots and Sisyphus
2026-06-22 17:05:31 +01:00
818f9ead4e
feat(db): add till_sales VAT and voucher_type_at_purchase to gift_cards
popertots and Sisyphus
2026-06-22 17:05:25 +01:00
bb7de6640c
chore: increase test count from 1 to 3 in dev script
popertots and Sisyphus
2026-06-22 12:56:04 +01:00
1187577864
fix(frontend): dynamic time range in schedule week view
popertots and Sisyphus
2026-06-22 12:55:56 +01:00
c4f1535ad4
feat(frontend): add BusinessSettings component to admin page
popertots and Sisyphus
2026-06-22 12:55:48 +01:00
5523672b6a
feat(frontend): add out-of-hours booking UI components
popertots and Sisyphus
2026-06-22 12:55:40 +01:00
08d62080c1
feat(frontend): add out_of_hours booking type and timeSlots utils
popertots and Sisyphus
2026-06-22 12:55:32 +01:00
34aba319f1
test(admin): add t.Parallel() to exceptional hours test
popertots and Sisyphus
2026-06-22 12:55:24 +01:00
b4f70ada49
fix(today): use date string instead of time.Date for exceptional hours query
popertots and Sisyphus
2026-06-22 12:55:16 +01:00
8ad0111954
feat(scheduling): add out_of_hours override and fix timezone handling
popertots and Sisyphus
2026-06-22 12:55:08 +01:00
8ab7408e00
feat(bookings): support out_of_hours flag in admin create booking
popertots and Sisyphus
2026-06-22 12:55:00 +01:00
7698ca636b
feat(bookings): support out_of_hours flag in admin reserve handler
popertots and Sisyphus
2026-06-22 12:54:52 +01:00
260c760971
feat(bookings): add out_of_hours field to Booking struct and admin queries
popertots and Sisyphus
2026-06-22 12:54:44 +01:00
b4c1e98176
feat(db): add out_of_hours column to bookings table
popertots and Sisyphus
2026-06-22 12:54:35 +01:00
8b703a19ba
refactor(today): consolidate aggregate summary into single query
popertots and Sisyphus
2026-06-22 00:57:59 +01:00
0d940e8608
refactor(bookings): use computed booking fields and LATERAL joins
popertots and Sisyphus
2026-06-22 00:57:55 +01:00
bdee60d34f
refactor(scheduling): batch queries and DRY retention filter
popertots and Sisyphus
2026-06-22 00:57:51 +01:00
1485b55d92
refactor(db): drop end_time DEFAULT and add booking/payment indexes
popertots and Sisyphus
2026-06-22 00:57:45 +01:00
5bdac7d275
feat(bookings): add trigger tests for booking computed fields
popertots and Sisyphus
2026-06-21 21:47:35 +01:00
1564f93d25
fix(user): fix column aliases and replace SELECT * with explicit columns
popertots and Sisyphus
2026-06-21 21:47:31 +01:00
95e0384f90
refactor(today): replace inline duration queries with booking.end_time
popertots and Sisyphus
2026-06-21 21:47:26 +01:00
741107df89
refactor(scheduling): replace inline duration queries with booking fields
popertots and Sisyphus
2026-06-21 21:47:22 +01:00
14df08e129
refactor(payments): replace inline total_amount queries with booking field
popertots and Sisyphus
2026-06-21 21:47:16 +01:00
7ea6fab3af
refactor(bookings): replace inline computed queries with booking fields
popertots and Sisyphus
2026-06-21 21:47:12 +01:00
2e231eea4c
feat(db): add computed booking fields with triggers and indexes
popertots and Sisyphus
2026-06-21 21:47:06 +01:00
96dd9e191c
refactor(bookings): remove AdminEditBookingHandler and streamline booking creation/edit overlap checks
popertots and Sisyphus
2026-06-21 21:01:27 +01:00
ed14df9a99
fix(bookings): add error handling for unchecked QueryRow and improve overlap detection
popertots and Sisyphus
2026-06-21 21:01:22 +01:00
e23cc3cc6f
feat(bookings): add comprehensive overlap detection tests
popertots and Sisyphus
2026-06-21 21:01:17 +01:00
88892059c5
fix(scheduling): include reservations in GetTimeBlockersInRange and fix booking overlap query
popertots and Sisyphus
2026-06-21 21:00:47 +01:00
0c1e1d7be4
feat(testutils): add CreateTestServiceWithDuration fixture
popertots and Sisyphus
2026-06-21 21:00:45 +01:00
b292eaac99
chore: remove stale sisyphus plan files
popertots and Sisyphus
2026-06-21 21:00:44 +01:00
d171117e53
docs: update README, obsidian docs, dev scripts, and SQL init
popertots and Sisyphus
2026-06-21 19:29:32 +01:00
220a0ef6e8
refactor(backend): update test files for PoolProxy and per-test transactions
popertots and Sisyphus
2026-06-21 19:29:24 +01:00
3d0e2afc4c
refactor(backend): migrate db.DB to db.Conn PoolProxy across all handlers
popertots and Sisyphus
2026-06-21 19:28:54 +01:00
c69a243f75
feat(backend): add PoolProxy, Querier, and per-test transaction infrastructure
popertots and Sisyphus
2026-06-21 19:28:18 +01:00
f2e8e3eb77
docs: update README, dev scripts, and documentation
popertots and Sisyphus
2026-06-20 16:59:56 +01:00
39ac944994
chore(frontend): add @types/geojson dependency
popertots and Sisyphus
2026-06-20 16:59:51 +01:00
059c578775
feat(frontend): add name editing and GDPR export page
popertots and Sisyphus
2026-06-20 16:59:35 +01:00
1a3829b4d9
feat(frontend): add former name display, referral discount type, and refunds to bookings
popertots and Sisyphus
2026-06-20 16:59:31 +01:00
1cf7083bcc
feat(backend): add today handler tests
popertots and Sisyphus
2026-06-20 16:59:14 +01:00
9f9899354c
feat(backend): add time blocker management and name history cleanup
popertots and Sisyphus
2026-06-20 16:58:59 +01:00
fb910bf60d
feat(backend): migrate notification IDs from int to string and update cursor format
popertots and Sisyphus
2026-06-20 16:58:51 +01:00
0beaa6e117
feat(backend): add referral discount preview and transactional campaign safety
popertots and Sisyphus
2026-06-20 16:58:46 +01:00
8efb8d93bf
feat(backend): add name history tracking, booking pagination, and CardDAV improvements
popertots and Sisyphus
2026-06-20 16:58:29 +01:00
efd3ad5405
refactor(backend): migrate from sql.ErrNoRows to pgx.ErrNoRows
popertots and Sisyphus
2026-06-20 16:58:08 +01:00
b03c4f6247
refactor(backend): replace resetTestData with SetupTestDB and add new tests
popertots and Sisyphus
2026-06-20 16:57:36 +01:00
9c68918c20
refactor(backend): migrate test infrastructure to isolated databases
popertots and Sisyphus
2026-06-20 16:56:57 +01:00
482958584a
chore(db): migrate tables to CHAR(12) short ID primary keys and add new tables
popertots and Sisyphus
2026-06-20 16:56:37 +01:00
7f9c246818
refactor(frontend): remove gradient backgrounds for flat colors
popertots and Sisyphus
2026-06-19 11:34:47 +01:00
895d5dd5e9
feat(frontend): redesign loyalty stamp card on account page
popertots and Sisyphus
2026-06-19 11:34:42 +01:00
0e727818e1
feat(frontend): add loyalty checkbox to admin and customer payment modals
popertots and Sisyphus
2026-06-19 11:34:36 +01:00
e74f190cdd
feat(backend): update loyalty tests for manual redemption model
popertots and Sisyphus
2026-06-19 11:34:31 +01:00
1e100e4db7
feat(backend): remove auto loyalty redemption from booking progress
popertots and Sisyphus
2026-06-19 11:34:26 +01:00
19996c1e08
feat(backend): add loyalty constants and first-payment guard
popertots and Sisyphus
2026-06-19 11:34:20 +01:00
df6c0dece5
fix(frontend): update token refresh threshold and fix race condition
popertots and Sisyphus
2026-06-18 16:34:35 +01:00
96ec3f3e33
docs: update README and obsidian documentation
popertots and Sisyphus
2026-06-18 16:27:22 +01:00
bac7cab4a0
feat(frontend): update page routes
popertots and Sisyphus
2026-06-18 16:27:17 +01:00
05690af87e
feat(frontend): update layout, UI components, stores, and API route
popertots and Sisyphus
2026-06-18 16:27:15 +01:00
fa51c6b2f9
feat(frontend): update payments and today components
popertots and Sisyphus
2026-06-18 16:27:04 +01:00
2ad3c01a80
feat(frontend): update booking flow and account components
popertots and Sisyphus
2026-06-18 16:27:02 +01:00
b23a8b89c4
feat(frontend): update admin components
popertots and Sisyphus
2026-06-18 16:26:58 +01:00
165d3d6c38
feat(frontend): add new UI components and utilities
popertots and Sisyphus
2026-06-18 16:26:56 +01:00
3ff14fdd5a
chore: update SQL script, dev script, and add zxcvbnjs
popertots and Sisyphus
2026-06-18 16:26:52 +01:00
f7cc278423
feat(backend): update main entry and test DB utilities
popertots and Sisyphus
2026-06-18 16:26:50 +01:00
2dbb1486b0
feat(backend): update Square integration, validators, and image validation
popertots and Sisyphus
2026-06-18 16:26:47 +01:00
bc6a5461c1
feat(backend): update webhooks and DAV service
popertots and Sisyphus
2026-06-18 16:26:45 +01:00
cd12317ff7
feat(backend): update user handlers and tests
popertots and Sisyphus
2026-06-18 16:26:44 +01:00
5e795b6291
feat(backend): update services and today handlers
popertots and Sisyphus
2026-06-18 16:26:40 +01:00