cleanup
CI / Frontend (push) Successful in 11m7s
CI / Go - apps/auth-service (push) Failing after 8s
CI / Go - apps/backend (push) Failing after 2s
CI / Docker publish - auth-service (push) Has been skipped
CI / Docker publish - backend (push) Has been skipped

This commit is contained in:
Tomas Dvorak
2026-05-05 09:48:15 +02:00
parent 48c3e15a38
commit cf3315e8fc
155 changed files with 70334 additions and 19015 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
{"0": "Neon Database Core", "1": "Paddle Billing & Dashboard", "2": "Memory Repository", "3": "PostgreSQL Repository", "4": "Domain Models", "5": "Server & Main Entry", "6": "Admin Dashboard", "7": "Test Suite", "8": "Database Records", "9": "Widget Builder & Icons", "10": "Email Templates Service", "11": "Notification Service", "12": "Database Connection", "13": "UI Icons Library", "14": "Email Provider", "15": "Auth & Magic Links", "16": "Business Service", "17": "Shell & Auth UI", "18": "Landing Page UI", "19": "Email Localization", "20": "Customer Notifications", "21": "Maps & Geocoding", "22": "Brand Profile Service", "23": "Dialog Component", "24": "Google OAuth", "25": "Card Component", "26": "Map URL Parsing", "27": "Location Map", "28": "Tabs Component", "29": "Legal Pages", "30": "Auth Provider", "31": "Skeleton Component", "32": "Theme Provider", "33": "User Repository", "34": "Paddle Config Tests", "35": "App Root", "36": "Public Booking", "37": "Bookra Character", "38": "Booking Types", "39": "Contact Map", "40": "About Page", "41": "Auth Callback", "42": "Contact Page", "43": "Not Found Page", "44": "Integration Modal", "45": "Tooltip Component", "46": "Input Component", "47": "Badge Component", "48": "Select Component", "49": "Textarea Component", "50": "Avatar Component", "51": "Vite Config", "52": "Main Entry", "53": "API Index", "54": "Button Component", "55": "Repository Index", "56": "I18n Provider", "57": "API Client", "58": "Shared Types", "59": "Index Export", "60": "Repository Export", "61": "Types Export", "62": "Generate Script"}
+1
View File
@@ -0,0 +1 @@
{"nodes": [], "edges": [], "hyperedges": [], "input_tokens": 0, "output_tokens": 0}
+221
View File
@@ -0,0 +1,221 @@
# Graph Report - /home/tdvorak/Desktop/PROG+HTML/Bookra (2026-04-30)
## Corpus Check
- 166 files · ~380,279 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 794 nodes · 1114 edges · 29 communities detected
- Extraction: 87% EXTRACTED · 13% INFERRED · 0% AMBIGUOUS · INFERRED: 150 edges (avg confidence: 0.8)
- Token cost: 0 input · 0 output
## Community Hubs (Navigation)
- [[_COMMUNITY_Neon Database Core|Neon Database Core]]
- [[_COMMUNITY_Paddle Billing & Dashboard|Paddle Billing & Dashboard]]
- [[_COMMUNITY_Memory Repository|Memory Repository]]
- [[_COMMUNITY_PostgreSQL Repository|PostgreSQL Repository]]
- [[_COMMUNITY_Domain Models|Domain Models]]
- [[_COMMUNITY_Server & Main Entry|Server & Main Entry]]
- [[_COMMUNITY_Admin Dashboard|Admin Dashboard]]
- [[_COMMUNITY_Test Suite|Test Suite]]
- [[_COMMUNITY_Database Records|Database Records]]
- [[_COMMUNITY_Widget Builder & Icons|Widget Builder & Icons]]
- [[_COMMUNITY_Email Templates Service|Email Templates Service]]
- [[_COMMUNITY_Notification Service|Notification Service]]
- [[_COMMUNITY_Database Connection|Database Connection]]
- [[_COMMUNITY_Email Provider|Email Provider]]
- [[_COMMUNITY_Auth & Magic Links|Auth & Magic Links]]
- [[_COMMUNITY_Business Service|Business Service]]
- [[_COMMUNITY_Shell & Auth UI|Shell & Auth UI]]
- [[_COMMUNITY_Email Localization|Email Localization]]
- [[_COMMUNITY_Customer Notifications|Customer Notifications]]
- [[_COMMUNITY_Maps & Geocoding|Maps & Geocoding]]
- [[_COMMUNITY_Brand Profile Service|Brand Profile Service]]
- [[_COMMUNITY_Google OAuth|Google OAuth]]
- [[_COMMUNITY_Map URL Parsing|Map URL Parsing]]
- [[_COMMUNITY_Location Map|Location Map]]
- [[_COMMUNITY_Tabs Component|Tabs Component]]
- [[_COMMUNITY_Legal Pages|Legal Pages]]
- [[_COMMUNITY_Auth Provider|Auth Provider]]
- [[_COMMUNITY_User Repository|User Repository]]
- [[_COMMUNITY_Public Booking|Public Booking]]
## God Nodes (most connected - your core abstractions)
1. `trimSpace()` - 47 edges
2. `PGRepository` - 46 edges
3. `MemoryRepository` - 46 edges
4. `NewService()` - 28 edges
5. `NewMemoryRepository()` - 22 edges
6. `Handler` - 20 edges
7. `Service` - 20 edges
8. `DB` - 18 edges
9. `New()` - 17 edges
10. `NewServer()` - 17 edges
## Surprising Connections (you probably didn't know these)
- `New()` --calls--> `NewGoogleProvider()` [INFERRED]
apps/auth-service/internal/handlers/handlers.go → apps/auth-service/internal/oauth/google.go
- `NewServer()` --calls--> `NewCustomerService()` [INFERRED]
apps/backend/internal/api/server.go → apps/backend/internal/bookings/customer_service.go
- `main()` --calls--> `Load()` [INFERRED]
apps/backend/cmd/api/main.go → apps/backend/internal/config/config.go
- `main()` --calls--> `getEnv()` [INFERRED]
apps/backend/cmd/api/main.go → apps/auth-service/internal/config/config.go
- `main()` --calls--> `New()` [INFERRED]
apps/backend/cmd/api/main.go → apps/auth-service/internal/handlers/handlers.go
## Communities
### Community 0 - "Neon Database Core"
Cohesion: 0.06
Nodes (42): NewNeonVerifier(), NeonVerifier, CheckoutSession, PaymentMethod, Service, checkoutAvailable(), customDataString(), customerSnapshotKey() (+34 more)
### Community 1 - "Paddle Billing & Dashboard"
Cohesion: 0.04
Nodes (38): getPaddle(), paddleConfigured(), handleCancel(), handleReschedule(), reference(), token(), changeMonth(), demoData() (+30 more)
### Community 2 - "Memory Repository"
Cohesion: 0.04
Nodes (3): MemoryRepository, defaultAvailabilityBlocks(), maxInt()
### Community 3 - "PostgreSQL Repository"
Cohesion: 0.04
Nodes (2): PGRepository, firstNonEmpty()
### Community 4 - "Domain Models"
Cohesion: 0.05
Nodes (40): AvailabilityBlockRequest, BlockedDay, BookingDefaultsRequest, BrandProfile, CancelBookingRequest, CheckoutLaunchResponse, CheckoutSessionRequest, CreateBlockedDayRequest (+32 more)
### Community 5 - "Server & Main Entry"
Cohesion: 0.06
Nodes (22): main(), runMigrations(), Server, allowedOrigins(), authorizeJobRunner(), NewServer(), TestDispatchReminderJobsAcceptsConfiguredJobRunnerKey(), TestDispatchReminderJobsRequiresJobRunnerKey() (+14 more)
### Community 6 - "Admin Dashboard"
Cohesion: 0.06
Nodes (12): NewAdminDashboard(), AdminDashboard, CheckoutRequest, Handler, detectLocale(), generateState(), oauthCookieSecure(), LoginRequest (+4 more)
### Community 7 - "Test Suite"
Cohesion: 0.13
Nodes (28): TestGenerateTokensProducesVerifiableAccessAndRefreshTokens(), TestRefreshTokensRejectsInvalidToken(), TestRefreshTokensReturnsRotatedPair(), TestCheckoutAvailableForPlanRequiresConfiguredPlan(), TestCheckoutAvailableForPlanRequiresSecret(), testConfig(), TestCreateCheckoutRequiresPaddleConfig(), TestCreateCheckoutReturnsLaunchPayload() (+20 more)
### Community 8 - "Database Records"
Cohesion: 0.06
Nodes (31): AvailabilityBlockRecord, AvailabilityRuleRecord, BillingSnapshotRecord, BlockedDayRecord, BookingRecord, BrandProfileRecord, ClassSessionRecord, CreateBlockedDayParams (+23 more)
### Community 9 - "Widget Builder & Icons"
Cohesion: 0.08
Nodes (5): generateCode(), generatedMapElementId(), generateMapCode(), json(), safeHexColor()
### Community 10 - "Email Templates Service"
Cohesion: 0.14
Nodes (15): Config, EmailTemplate, Service, bookingConfirmationCS(), BookingConfirmationEmail(), bookingConfirmationEN(), MagicLinkEmail(), magicLinkEmailCS() (+7 more)
### Community 11 - "Notification Service"
Cohesion: 0.15
Nodes (13): noopNotifier, Notifier, Service, collides(), countClassBookings(), generateAppointmentSlots(), generateClassSlots(), normalizePlanCode() (+5 more)
### Community 12 - "Database Connection"
Cohesion: 0.1
Nodes (2): DB, Stats
### Community 14 - "Email Provider"
Cohesion: 0.18
Nodes (11): DeliveryReceipt, EmailMessage, EmailProvider, noopEmailProvider, Service, localizedStartsAt(), NewService(), reminderRecipient() (+3 more)
### Community 15 - "Auth & Magic Links"
Cohesion: 0.19
Nodes (4): Claims, Service, generateRandomToken(), TokenPair
### Community 16 - "Business Service"
Cohesion: 0.12
Nodes (1): Service
### Community 17 - "Shell & Auth UI"
Cohesion: 0.14
Nodes (2): submitSignIn(), translateAuthError()
### Community 19 - "Email Localization"
Cohesion: 0.3
Nodes (11): BookingEmailData, formatLocalizedDateTime(), formatLocalizedTime(), RenderEmailMessage(), renderHTMLBody(), RenderReminderEmail(), renderSubject(), renderTextBody() (+3 more)
### Community 20 - "Customer Notifications"
Cohesion: 0.26
Nodes (4): NewCustomerService(), customerNoopNotifier, CustomerNotifier, CustomerService
### Community 21 - "Maps & Geocoding"
Cohesion: 0.36
Nodes (11): resolveMapLocation(), geocodeLocation(), mapStyleById(), parseCoordinateText(), parseGoogleMapsUrl(), parseMapUrl(), parseMapyCzUrl(), resolveLocationInput() (+3 more)
### Community 22 - "Brand Profile Service"
Cohesion: 0.33
Nodes (7): Service, firstNonEmpty(), normalizeClock(), normalizePlanCode(), toAvailabilityBlocks(), toTeamInvites(), validateAvailabilityBlocks()
### Community 24 - "Google OAuth"
Cohesion: 0.25
Nodes (3): NewGoogleProvider(), GoogleProvider, GoogleUser
### Community 26 - "Map URL Parsing"
Cohesion: 0.47
Nodes (3): parseGoogleMapsUrl(), parseMapUrl(), parseMapyCzUrl()
### Community 27 - "Location Map"
Cohesion: 0.4
Nodes (2): createMarkerIcon(), safeMarkerColor()
### Community 28 - "Tabs Component"
Cohesion: 0.47
Nodes (3): TabsContent(), TabsTrigger(), useTabs()
### Community 29 - "Legal Pages"
Cohesion: 0.7
Nodes (4): helperPose(), heroPose(), kind(), sections()
### Community 30 - "Auth Provider"
Cohesion: 0.5
Nodes (2): parseJwtPayload(), sessionFromLocalToken()
### Community 33 - "User Repository"
Cohesion: 0.67
Nodes (2): MagicLink, User
### Community 36 - "Public Booking"
Cohesion: 1.0
Nodes (2): bookSlot(), tenantSlug()
## Knowledge Gaps
- **97 isolated node(s):** `EmailTemplate`, `Config`, `Stats`, `User`, `MagicLink` (+92 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **Thin community `PostgreSQL Repository`** (47 nodes): `.RecordBillingEvent()`, `PGRepository`, `.AppendWaitlistEntry()`, `.CreateBlockedDay()`, `.CreateBooking()`, `.CreateCustomer()`, `.CreateLocation()`, `.CreateNotificationDeliveryLog()`, `.CreateReminderJob()`, `.DeleteBlockedDay()`, `.DeleteCustomer()`, `.DeleteLocation()`, `.EnsureUserIdentity()`, `.GetBookingByReference()`, `.GetBrandProfile()`, `.GetCustomerBookingsCount()`, `.GetCustomerByEmail()`, `.GetCustomerByID()`, `.GetCustomerLastBooking()`, `.GetDashboardMetrics()`, `.GetLocationByID()`, `.GetSubscriptionSnapshot()`, `.GetTenantByBillingCustomerID()`, `.GetTenantByID()`, `.GetTenantBySlug()`, `.GetTenantMembershipByUserID()`, `.ListAvailabilityRulesByTenant()`, `.ListBlockedDaysByTenant()`, `.ListBookingsByTenantBetween()`, `.ListClassSessionsByTenant()`, `.ListCustomersByTenant()`, `.ListDueReminderJobs()`, `.ListLocationsByTenant()`, `.ListServicesByTenant()`, `.ListWorkingHoursByTenant()`, `.MarkReminderJobDispatched()`, `.RecordBillingEvent()`, `.RescheduleBooking()`, `.UpdateBlockedDay()`, `.UpdateBookingStatus()`, `.UpdateCustomer()`, `.UpdateLocation()`, `.UpdateTenantBillingCustomerID()`, `.UpdateTenantBillingState()`, `.UpdateWorkingHours()`, `.UpsertSubscriptionSnapshot()`, `firstNonEmpty()`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Database Connection`** (21 nodes): `db.go`, `DB`, `.Close()`, `.CreateMagicLink()`, `.CreateUser()`, `.Exec()`, `.GetKV()`, `.GetMagicLink()`, `.GetStats()`, `.GetUserByEmail()`, `.GetUserByID()`, `.GetUserByProviderID()`, `.MarkMagicLinkUsed()`, `New()`, `.Pool()`, `.PutKV()`, `.Query()`, `.QueryRow()`, `.UpdateLastLogin()`, `.UpdateUser()`, `Stats`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Business Service`** (17 nodes): `service.go`, `Service`, `.CreateBlockedDay()`, `.CreateCustomer()`, `.CreateLocation()`, `.DeleteBlockedDay()`, `.DeleteCustomer()`, `.DeleteLocation()`, `.ListBlockedDays()`, `.ListCustomers()`, `.ListLocations()`, `.ListWorkingHours()`, `NewService()`, `.UpdateBlockedDay()`, `.UpdateCustomer()`, `.UpdateLocation()`, `.UpdateWorkingHours()`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Shell & Auth UI`** (15 nodes): `shell.tsx`, `GlobeIcon()`, `GoogleIcon()`, `handleOpenAuth()`, `hideHeader()`, `isDemoMode()`, `MenuIcon()`, `MoonIcon()`, `sendMagicLink()`, `showGoogleSignIn()`, `signInWithGoogle()`, `submitSignIn()`, `SunIcon()`, `translateAuthError()`, `XIcon()`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Location Map`** (6 nodes): `location-map.tsx`, `createMarkerIcon()`, `escapeHtml()`, `loadLeaflet()`, `LocationMap()`, `safeMarkerColor()`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Auth Provider`** (5 nodes): `auth-provider.tsx`, `AuthProvider()`, `parseJwtPayload()`, `sessionFromLocalToken()`, `useAuth()`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `User Repository`** (3 nodes): `repository.go`, `MagicLink`, `User`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Public Booking`** (3 nodes): `public-booking-route.tsx`, `bookSlot()`, `tenantSlug()`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
- **Why does `trimSpace()` connect `Neon Database Core` to `Memory Repository`, `PostgreSQL Repository`, `Server & Main Entry`, `Admin Dashboard`, `Notification Service`, `Email Provider`, `Email Localization`, `Brand Profile Service`?**
_High betweenness centrality (0.246) - this node is a cross-community bridge._
- **Why does `NewServer()` connect `Server & Main Entry` to `Neon Database Core`, `Customer Notifications`, `Test Suite`?**
_High betweenness centrality (0.116) - this node is a cross-community bridge._
- **Why does `reference()` connect `Paddle Billing & Dashboard` to `Notification Service`?**
_High betweenness centrality (0.101) - this node is a cross-community bridge._
- **Are the 45 inferred relationships involving `trimSpace()` (e.g. with `.StripeSecretConfigured()` and `.StripeWebhookConfigured()`) actually correct?**
_`trimSpace()` has 45 INFERRED edges - model-reasoned connections that need verification._
- **Are the 27 inferred relationships involving `NewService()` (e.g. with `New()` and `TestPriceForPlanUsesConfiguredPlanCodesOnly()`) actually correct?**
_`NewService()` has 27 INFERRED edges - model-reasoned connections that need verification._
- **Are the 19 inferred relationships involving `NewMemoryRepository()` (e.g. with `TestDispatchDueProcessesPendingEmailReminders()` and `TestDispatchDueFailsUnknownChannel()`) actually correct?**
_`NewMemoryRepository()` has 19 INFERRED edges - model-reasoned connections that need verification._
- **What connects `EmailTemplate`, `Config`, `Stats` to the rest of the system?**
_97 weakly-connected nodes found - possible documentation gaps or missing edges._
+12
View File
@@ -0,0 +1,12 @@
{
"runs": [
{
"date": "2026-04-30T05:47:16.076690+00:00",
"input_tokens": 0,
"output_tokens": 0,
"files": 166
}
],
"total_input_tokens": 0,
"total_output_tokens": 0
}
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
+168
View File
@@ -0,0 +1,168 @@
{
"/home/tdvorak/Desktop/PROG+HTML/Bookra/generate_map.tsx": 1776666624.8887467,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/map.ts": 1776666624.9033415,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/auth-service/cmd/api/main.go": 1776752207.8631995,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/auth-service/internal/email/templates.go": 1776602005.9417026,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/auth-service/internal/email/service.go": 1776670728.696918,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/auth-service/internal/db/db.go": 1776673568.9536011,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/auth-service/internal/db/repository.go": 1776602985.9187567,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/auth-service/internal/config/config_test.go": 1776753441.2964497,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/auth-service/internal/config/config.go": 1776753433.2604668,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/auth-service/internal/oauth/google.go": 1776600255.6443596,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/auth-service/internal/handlers/handlers.go": 1776753485.007356,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/auth-service/internal/handlers/admin.go": 1776752223.8340588,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/auth-service/internal/billing/service.go": 1776753644.080393,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/auth-service/internal/billing/service_test.go": 1776753472.1483834,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/auth-service/internal/auth/service.go": 1776752246.6598577,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/auth-service/internal/auth/neon.go": 1776604492.8585796,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/auth-service/internal/auth/service_test.go": 1776752259.460893,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/cmd/api/main.go": 1776154845.3740513,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/catalog/service.go": 1776766156.708989,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/httpx/middleware.go": 1775805857.4949794,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/db/repository.go": 1776766029.7570255,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/db/pool.go": 1775805087.4963162,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/domain/models.go": 1776765331.3064964,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/config/config_test.go": 1776760126.2416844,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/config/config.go": 1776759750.1264958,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/notifications/service.go": 1776771186.9076862,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/notifications/email_templates.go": 1776771124.7805548,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/notifications/service_test.go": 1776604768.0589664,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/bookings/service.go": 1776771471.275241,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/bookings/customer_service.go": 1776771428.1311963,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/bookings/service_test.go": 1776784217.9115837,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/billing/service.go": 1776760009.5927346,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/billing/service_test.go": 1776760116.1976886,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/auth/middleware.go": 1776672549.3119998,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/auth/neon.go": 1776670077.8565476,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/api/server.go": 1776784168.2225142,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/api/server_test.go": 1776752223.8311362,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/tenancy/service.go": 1776604326.3473518,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/internal/tenancy/service_test.go": 1775808604.7880082,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/vite.config.ts": 1775804396.9782922,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/App.tsx": 1776673902.149617,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/main.tsx": 1777455784.3577452,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/routes/about-route.tsx": 1776752690.362625,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/routes/auth-callback-route.tsx": 1776760235.7786372,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/routes/public-booking-route.tsx": 1776674167.8148322,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/routes/dashboard-route.tsx": 1776797782.1085014,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/routes/contact-route.tsx": 1776674430.6888938,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/routes/home-route.tsx": 1777456312.473124,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/routes/not-found-route.tsx": 1776674381.8262,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/routes/legal-route.tsx": 1776752690.3636248,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/routes/booking-manage-route.tsx": 1776767972.4928482,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/bookra-character.tsx": 1776752690.3546247,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/index.ts": 1776760875.805695,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/integration-modal.tsx": 1776760859.2087228,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/location-map.tsx": 1776669785.3826764,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/shell.tsx": 1776782961.7637327,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/widget-builder.tsx": 1776669857.0035434,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/dashboard/icons.tsx": 1776789476.8345778,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/dashboard/types.ts": 1776789531.009494,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/ui/tooltip.tsx": 1776152848.7478018,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/ui/input.tsx": 1776148007.514892,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/ui/badge.tsx": 1776148004.4917321,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/ui/select.tsx": 1776152733.964673,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/ui/button.tsx": 1776147997.6907823,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/ui/textarea.tsx": 1776152781.1648598,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/ui/index.ts": 1776152961.1018794,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/ui/card.tsx": 1776148002.4907696,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/ui/skeleton.tsx": 1776148009.7859027,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/ui/avatar.tsx": 1776152787.4049883,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/ui/tabs.tsx": 1776152841.947702,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/components/ui/dialog.tsx": 1776152909.6496222,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/providers/theme-provider.tsx": 1776095550.9844944,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/providers/auth-provider.tsx": 1776760223.0926425,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/providers/i18n-provider.tsx": 1776760652.0982246,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/lib/map.ts": 1776669661.7833047,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/lib/api-client.ts": 1775804396.9789596,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/lib/types.ts": 1775807876.3199303,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/src/lib/paddle.ts": 1776760715.6411605,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/packages/shared-types/src/index.ts": 1776604570.1236856,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/packages/api-client/src/index.ts": 1775804396.9789596,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/packages/api-client/src/generated/types.ts": 1777456335.8890824,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/packages/api-client/scripts/generate.mjs": 1775805010.3883135,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/project.md": 1776760816.0081425,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/FRONTEND_ISSUES.md": 1776605116.9474611,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/prompt.md": 1776768681.7567835,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/README.md": 1777280416.8592253,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/auth-service/test-emails.html": 1776602140.645646,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/auth-service/README.md": 1776784168.2225142,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/backend/README.md": 1776784168.2225142,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/index.html": 1776155053.752991,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/docs/ci-cd.md": 1777455829.58997,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/docs/superpowers/specs/2026-04-21-paddle-billing-migration-design.md": 1776759387.7846043,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/favicon.svg": 1776155053.7538831,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-logo.svg": 1776608388.1235633,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/headphones.svg": 1776752581.4101584,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/clock.svg": 1776752581.4081745,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/walk.svg": 1776752581.4124937,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/logo_text_horizontal.svg": 1776752581.4109368,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/lookup.svg": 1776752581.4112468,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/happy-note.svg": 1776752581.4098568,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/like.svg": 1776752581.4107628,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/success.svg": 1776752581.4123247,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/maintenance.svg": 1776752581.4115665,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/coffee.svg": 1776752581.4084466,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/sad.svg": 1776752581.4118588,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/connection-error.svg": 1776752581.4087214,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/flag.svg": 1776752581.4093015,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/404.svg": 1776752581.4074118,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/announcement.svg": 1776752581.4080162,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/sleep.svg": 1776752581.4121594,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/educate.svg": 1776752581.4090226,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/laptop.svg": 1776752581.410602,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/main.svg": 1776752581.4114072,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/forbidden.svg": 1776752581.409577,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/hello.svg": 1776752581.410437,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/angry-bulb.svg": 1776752581.40772,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-illustrations/logo_text_vertical.svg": 1776752581.411093,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-characters/walk.svg": 1776606519.5665152,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-characters/logo_text_horizontal.svg": 1776606519.5637534,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-characters/lookup.svg": 1776606519.5642965,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-characters/like.svg": 1776606519.5623937,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-characters/success.svg": 1776606519.5659773,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-characters/announcement.svg": 1776606519.5606966,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-characters/sleep.svg": 1776606519.5655613,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-characters/laptop.svg": 1776606519.5619218,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-characters/main.svg": 1776606519.564816,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-characters/hello.svg": 1776606519.561268,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/apps/frontend/public/bookra-characters/logo_text_vertical.svg": 1776606519.5642073,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/output/playwright/privacy.png": 1776671490.3701248,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/output/playwright/auth-magic-link-sent.png": 1776671593.7941616,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/output/playwright/bookra-dashboard-check.png": 1777456216.1062973,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/output/playwright/home-mobile.png": 1776671653.0399165,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/output/playwright/home-desktop.png": 1776671305.7341623,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/output/playwright/contact-success.png": 1776671424.1384103,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/output/playwright/dashboard-magic-link.png": 1776671214.315326,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/output/playwright/terms.png": 1776671502.096919,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/output/playwright/bookra-home-check.png": 1777456059.8225186,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/output/playwright/booking-mobile.png": 1776671663.6709323,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/output/playwright/booking-confirmed.png": 1776671475.877128,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/output/playwright/dashboard-map-brno.png": 1776671259.678833,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/output/playwright/about-desktop.png": 1776671345.3982804,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/output/playwright/pricing-section.png": 1776671325.0954196,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/output/playwright/dashboard-after-magic-link.png": 1776671625.547864,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/headphones.svg": 1776693673.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/clock.svg": 1776693727.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/walk.svg": 1776605163.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/logo_text_horizontal.svg": 1776605698.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/lookup.svg": 1776605059.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/happy-note.svg": 1776694043.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/like.svg": 1776605122.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/success.svg": 1776604968.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/maintenance.svg": 1776693910.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/coffee.svg": 1776694073.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/sad.svg": 1776693708.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/connection-error.svg": 1776693861.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/flag.svg": 1776693653.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/404.svg": 1776693878.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/announcement.svg": 1776605100.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/sleep.svg": 1776604846.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/educate.svg": 1776694005.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/laptop.svg": 1776605043.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/main.svg": 1776604578.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/forbidden.svg": 1776693929.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/hello.svg": 1776605143.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/angry-bulb.svg": 1776694024.0,
"/home/tdvorak/Desktop/PROG+HTML/Bookra/bookra-img/logo_text_vertical.svg": 1776605520.0
}