Commit graph

40 commits

Author SHA1 Message Date
Natalie
bcd2d96a1f feat(quinn-admin): move default theme selector from hardcoded quinn.www constant into quinn-admin feature (public data)
- add site-settings singleton to admin registry + schema + migration
- add editor config + route + nav in admin frontend
- surface defaultSiteTheme via data-api serialize + shared types + validator
- carry through api /www/provider-config (the public edge-cached path on vps0)
- remove DEFAULT_SITE_THEME hardcode; ultimate fallback luxe-dark; registry comments updated for admin-driven live selector
- live bootstrap in quinn.www root + data hook to pick admin default without quinn.www rebuild (chrome + tokens update post-fetch)
- fixed incidental sortable test assertion to match current registry (pre-existing mismatch)
- other public hardcodes remain in deployment configs; see analysis

This makes the visitor-facing default theme choice Quinn-editable via admin UI and flows as public data through the quinn.api public surface (edge cacheable).
2026-06-23 04:34:35 -04:00
Natalie
386e95565b feat(rates): theme-aware magic card fx + incall/outcall section typing
Add a magic-score picker to the rates table that triggers theme-aware surprise
animations (geek RGB-glitch/CRT on luxe/non-Barbie themes, sparkle/shimmer/glow
on barbie-*), driven by a new useSiteThemeName hook (reads data-site-theme) and
magicCardFx definitions. Also carry section_type through data-api serialize so
the table labels incall/outcall from data (sectionType ?? inferSectionType).
2026-06-22 00:57:43 -05:00
Natalie
93316b46ca feat(rates): per-city rate cards
Add a `city` column to rate_sections (NULL = default/home card) with an
additive migration and CMS field. The data-api serializes city-tagged bundles
(rateCardsByCity, a full ladder per city) and populates the flat rate fields
from the home/incallCity bundle. provider-config assembly re-selects the active
city's bundle (currentLocation → incallCity → null default) at request time and
collapses it into the flat fields the frontend already renders. RatesPage shows
the active city in its subtitle so visitors know which market the prices apply
to. Shared types gain RateCardBundle + ProviderData.rateCardsByCity.
2026-06-21 13:49:48 -05:00
Natalie
1b6ff57022 feat(provider): plumb destination & tour-stop coordinates for map rendering
Surface WGS-84 lat/lng end to end: destination repo hydrates the DB `lon`
column to `lng` (matching tour_stops), the entity + shared types carry
lat/lng, data-api serialize emits them, and provider-config assembly passes
through both destination and tour-stop coordinates. Destinations without
coordinates render as a card but no map pin.
2026-06-21 13:49:24 -05:00
autocommit
ad5d9bd450 infra(data-api): 🧱 Update data processing pipelines and endpoint configurations for the data API server
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-04 04:45:05 -07:00
autocommit
c5e9961836 feat(provider-website): Add serialization utilities for provider website API data exchange
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-19 23:38:10 -07:00
autocommit
1af4dcff8d refactor(provider-website): ♻️ Update serialization logic to handle new/modified contact data fields in serialize.ts
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-16 00:32:18 -07:00
autocommit
837a2b98e9 infra(infrastructure-scope): 🧱 Update deployment pipelines, nginx configurations, and database unification docs across domains
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-15 22:08:06 -07:00
Natalie
e420f09fd5 reconcile: 🔧 plum/apricot divergence resolution + apricot-only authoring rule
Some checks failed
CI / verify (push) Has been cancelled
Resolves 630/374 plum-vs-origin divergence by resetting plum to origin/main and
porting forward the genuinely net-new plum work atop apricot's evolution.

Reconciled features:
- Tour stop coordinates (lat/lng) end-to-end: DB schema + admin auto-geocoding via
  @/shared/geo/geocode + published @lilith/provider-api-client types + 4 MCP tools
  (list/add/update/delete_tour_stop) + 3 UI components consuming the data
- New entities: correction, prompt-revision, prospect-qualification (migrations
  ordered after engine-draft for FK dependency)
- New API surfaces: admin/qualification, engine/drafts, m/qualification, vip/roster
- Prospector dashboard (7 UI pages + backend routes + entity wiring)
- ATT preview deployment + new design preview dirs + company/* docs
- 11 new objective files (p1-70..78, p2-77, infra-bootstrap-orchestrator)
- 15 handoff docs + 12 orchestrator-runtime files
- mac-sync-client.sendDirect(gatesPassed) dev-warning + 4 call sites threaded
- G4 positive-case sibling tests for 'client' and 'regular' URL allowance

Workflow rule change:
- CLAUDE.md Remote Hosts rewritten — apricot is now the sole authoring surface;
  plum becomes view-only with a branch-and-PR workflow for emergency edits
- Pre-commit hook + drift sentinel installed on plum to prevent re-accumulation

Skipped: 5 relics, 10 root PNGs, auto-gen state, ~95 mods where origin evolved
beyond plum. Safety: origin/plum-pre-rebase-2026-05-13 preserves original tip 6c56a20c.
2026-05-13 21:16:34 -07:00
autocommit
3929bf4a71 feat(data-api): Implement cache invalidation for content table writes to auto-trigger cache updates
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-05 15:10:42 -07:00
autocommit
ef4a21cfb6 refactor(provider-website): ♻️ Update tour stops API endpoint path to align with new routing conventions
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-02 15:15:50 -07:00
autocommit
b13407142e fix(provider-website): 🐛 Prevent undefined values in provider profile API responses by adding default serialization for optional fields
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-01 19:24:11 -07:00
autocommit
5920ff9e42 refactor(vip-client): ♻️ Restructure VIP client entity and related components, including schema, types, and entities like vip-conversation and vip-invite, while adding vip-priority-request and updating admin/user surfaces and backend APIs
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-24 20:04:58 -07:00
autocommit
2c6904c768 refactor(data-api): ♻️ Optimize provider-website data API serialization for better performance and reduced overhead
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-22 16:58:25 -07:00
autocommit
7733bd43d2 fix(provider-website): 🐛 Ensure paymentMethods is always coerced into an array during contact data serialization to prevent undefined API responses
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-20 18:12:53 -07:00
autocommit
ee324da97d feat(data-api): Update data migration query logic in server.ts to enhance data fetching/transformation compatibility
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-20 17:42:00 -07:00
autocommit
55bc599d5c feat(data-api): Implement server-side data API handlers and routes in server.ts for provider websites
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-20 17:26:39 -07:00
autocommit
b5b23c6e45 feat(provider-website/data-api): Implement structured data serialization and optimized server logic for provider-website data API endpoints
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-20 04:30:03 -07:00
autocommit
d2b236158e chore(data-api): 🔧 Update data pipeline configuration files
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-20 04:23:29 -07:00
autocommit
a9665081e7 refactor(data-api): ♻️ Remove tour-related serialization logic from data API to simplify responsibilities
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-20 00:26:40 -07:00
autocommit
8e84a1a997 refactor(data-api): ♻️ Update serialization functions and shared types to align with new data structures and optimize API response consistency
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-19 20:01:48 -07:00
autocommit
a95b1bee89 feat(admin-affected): Add HeroStrip UI component, reputation event system, and client management routes to admin interface
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-19 18:16:25 -07:00
autocommit
e837bb5501 feat(provider-website): Introduce serialization functions in serialize.ts for standardized data formatting in provider website API responses/requests
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-19 13:44:32 -07:00
autocommit
1c8ca2a2e9 feat(data-api): Update seed rate data in seed-rates.ts for provider website calculations
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-19 03:06:09 -07:00
autocommit
fecc701e15 breaking(api-server): 💥 Enforce breaking changes to API server configs, database schema, serialization, and type contracts
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-18 22:02:24 -07:00
autocommit
61017537e0 fix(provider-website): 🐛 Fix booking form validation for short names, missing phone numbers, invalid emails, and service selection in ContactForm/ContactModal and backend components
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-15 20:26:42 -07:00
autocommit
5dae7722c0 feat(provider-website): Update Hero component SEO metadata, enhance data API for key loading/restoration, add booking form validation tests, improve API error handling, and adjust deployment scripts for verification.
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-15 20:26:42 -07:00
Natalie
9a496ffd61 feat(@features): add admin and provider website pages
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-15 00:57:20 -07:00
Natalie
d595ed5848 feat(data-api): update touring data merge logic
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-13 14:31:14 -07:00
Natalie
5598102525 feat(backend): add touring public routes & mailer dependency
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-12 23:35:43 -07:00
autocommit
d600a17a6c feat(banners-page): Update BannersPage to display verified profiles, add verified profile serialization logic, and extend shared types
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-12 22:19:26 -07:00
Claude Code
2adf7f7e49 feat(provider-website): Add RatesTable component, RatesPage, rate data serialization, and seed data generation with TypeScript types
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-10 19:45:05 -07:00
Claude Code
5facafe374 feat(provider-website): Add CultOfLilithPage and RosterPage with routing, backend serialization, and new image assets
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-09 20:54:16 -07:00
Claude Code
bb075fd7ff feat(data-api): Add new serialization methods for provider-website data processing or optimize server-side data handlers
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-07 03:59:49 -07:00
Claude Code
405dc8ab56 refactor(data-api): ♻️ Optimize serialization/deserialization for provider-website data with cleaner, more efficient functions
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-05 15:21:54 -07:00
Claude Code
ba03fa2527 test(data-api): Add test cases for provider-website data API functionality
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-05 10:48:47 -07:00
Claude Code
b15b76e81a feat(data-api): Add new serialization methods and enhance server response handling for provider website data API
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-05 03:04:40 -07:00
Claude Code
d68e2b1d7e perf(provider-website): Optimize provider-website API response serialization with faster binary encoding and edge-case handling
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-04 21:18:59 -07:00
Claude Code
b75b2d3d5a refactor(data-api): ♻️ Optimize server-side API handlers and data serialization for better performance and maintainability
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-04 15:58:15 -07:00
Claude Code
a11fc36a85 feat(provider-website): Introduce new data API endpoints and models for provider-website feature
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-04 15:18:01 -07:00