TX-2538

Tixora Web Client

React and Next.js foundation for the admin and public surfaces.

The repository now has a dedicated TypeScript web workspace ready for auth, active-organization context, and feature delivery work.

Foundation

Next.js App Router workspace

Typed app shell, strict TypeScript config, and baseline lint/typecheck scripts are in place.

Contracts

Client integration boundary

Environment-based API entrypoint and room for auth, org-context, and transport adapters are defined.

Delivery

Sprint-ready web surface

This shell is intentionally minimal so the next stories can wire real admin flows without re-bootstrap work.

Next Story Slice

Organization admin UI baseline is available.

Integration Baseline

Auth session, API metadata, and active-org context are wired.

The client now has a session model, persistent auth seed, API request metadata for x-user-id, x-org-id, and x-request-id, plus typed wrappers for organization, membership, and invitation flows.

Session

demo@tixora.local

Current user identity for API metadata propagation.

Active Org

unset

The baseline consumes and updates active organization state client-side.

Transport

REST gateway baseline

Typed wrappers map to the current HTTP annotations exposed from proto contracts.

{
  "session": {
    "userId": "demo-user",
    "email": "demo@tixora.local",
    "activeOrgId": null,
    "role": null
  },
  "apiBaseUrl": "https://api.tixora.life",
  "availableClients": [
    "api",
    "events",
    "organizations",
    "memberships",
    "invitations",
    "ownershipTransfers",
    "scannerActivation",
    "scannerManagement",
    "ticketTemplates"
  ]
}