9 Commits

Author SHA1 Message Date
belviskhoremk
1181d9a3be feat: add Supabase seed script for products, services, and default schedule
The brief's literal script copies source fields verbatim, but src/data
uses camelCase (inStock, durationMinutes, priceFrom) while the DB
columns are snake_case (in_stock, duration_minutes, price_from), so
that version fails with PGRST204. Map fields explicitly instead of
spreading the rest.
2026-08-08 13:35:14 +00:00
belviskhoremk
d98d66b066 feat: add Supabase CLI scaffold and client SDK setup
Initializes the local Supabase project (supabase/config.toml) and adds
a thin src/lib/supabase.ts wrapper around @supabase/supabase-js that
reads connection details from Vite env vars, tested with a mocked
createClient.
2026-08-08 12:46:42 +00:00
belviskhoremk
7d8d89d0fc chore: remove Firebase backend code, replaced by Supabase (see 2026-08-08 spec)
Deleted all Firebase-specific files and directories:
- Configuration: .firebaserc, firebase.json, firestore.* files, storage.rules
- Cloud Functions: functions/ directory (package.json, source, config)
- Tests: firebase-tests/, vitest.rules.config.ts
- Scripts: scripts/seed.ts
- Source: src/lib/firebase.ts and .test.ts
- Environment: .env.example

Removed dependencies:
- firebase (main package)
- firebase-admin, firebase-tools (dev)
- @firebase/rules-unit-testing (dev)

Removed scripts:
- test:rules (Firebase emulator tests)
- seed (Firestore seed script)

Updated package.json via npm install (729 packages removed)
Updated .gitignore (removed functions/ entries)
Updated vite.config.ts (removed firebase-tests and functions exclusions)

All tests, builds, and lints pass cleanly. No Firebase references remain in
the codebase (only in historical spec documents in docs/).

Claude-Session: https://claude.ai/code/session_01NhxA4npAXAxmCDEJt6kxSH
2026-08-08 12:39:39 +00:00
belviskhoremk
95485ea12b feat: add Firestore seed script for products, services, and default schedule 2026-08-05 00:23:19 +00:00
belviskhoremk
ffd31ca1da test: add Firestore/Storage security rules tests
Adds emulator-backed rules-unit tests verifying the Firestore rules
committed in Task 3, including the global constraint that
bookings/inquiries are never publicly readable. Excludes
firebase-tests/ from the default vitest run since it needs the
emulator (via `npm run test:rules`) rather than jsdom.
2026-08-05 00:09:57 +00:00
belviskhoremk
257e47c2a1 feat: add Firebase client SDK setup
- Install firebase package
- Add environment variable configuration (.env.example)
- Create firebase.ts module that initializes Firebase app, Firestore, Auth, and Storage
- Add comprehensive test coverage for Firebase initialization with mocked Firebase modules
- Update .gitignore to exclude local environment files
2026-08-04 23:59:59 +00:00
belviskhoremk
c4180a90bf fix: address final review findings — code-split Home's 3D bundle, bound card widths, fix Book step transition, cleanup
- Lazy-load Home in App.tsx so three/@react-three/fiber (~238 kB gzip) only ships to the
  Home route, not to Shop/Book/Rules.
- Add max-width: 260px to ProductCard/ServiceCard so real images won't collapse Home/Book
  grid layouts.
- Restore AnimatePresence mode="wait" in Book.tsx to eliminate the exit/enter double-stack
  during step transitions, updating the three Book.test.tsx assertions that raced the
  transition to findBy* queries.
- Hero3DScene: drop the meaningless "static" className string in favor of a dedicated
  data-testid, add aria-hidden to the reduced-motion fallback branch, and remove the
  unused @react-three/drei dependency (adding @types/three directly since it was only
  present transitively via drei).
2026-08-03 23:40:32 +00:00
belviskhoremk
6244ef11ce chore: add three, @react-three/fiber, @react-three/drei for the 3D hero 2026-08-03 22:41:39 +00:00
belviskhoremk
adaaa8a3f2 chore: set up Vitest, routing, and design tokens 2026-08-03 16:42:58 +00:00