feat: reseller self-service portal (clients + licenses + tickets)

- ResellerPortalView with 3 tabs:
  1. Kunden: list agency's clients + create new client (POST /api/aos/clients)
  2. Lizenzen: list agency-filtered licenses + create new license with
     live pricing preview (base + agency discount + yearly discount = net)
  3. Tickets: agency-scoped ticket inbox + escalate button
- Top: agency selector (pick which approved reseller to act as)
- Full integration: store, sidebar, top-bar, command-menu, i18n, app-shell
- Mobile responsive, German labels, no indigo/blue
This commit is contained in:
Z User committed 2026-10-28 23:46:54 +00:00
1 parent ec5e6b1629
commit 39b3636333
9 files changed
+3071

No files matched your search

+2
View File
@@ -19,6 +19,7 @@ import { TimesheetView } from './views/timesheet'
import { SupportView } from './views/support'
import { LicensesView } from './views/licenses'
import { AgencyView } from './views/agency'
import { ResellerPortalView } from './views/reseller-portal'
import { InstancesView } from './views/instances'
import { ContractsView } from './views/contracts'
import { ExpensesView } from './views/expenses'
@@ -97,6 +98,7 @@ export function AppShell() {
{view === 'support' && <SupportView />}
{view === 'licenses' && <LicensesView />}
{view === 'agency' && <AgencyView />}
{view === 'reseller_portal' && <ResellerPortalView />}
{view === 'instances' && <InstancesView />}
{view === 'contracts' && <ContractsView />}
{view === 'expenses' && <ExpensesView />}