feat(l1): drafts + tickets pages + coverage banner + seat counter widget
L1DraftsPage is a Phase 1 placeholder (AI drafts arrive in Phase 2). L1TicketsPage replaces the stub with a status-filterable internal-tickets queue. L1CoverageBanner renders inside L1RouteGuard so every /l1/* page shows it for engineer-coverers (hidden for native L1). SeatCounterWidget + /api/seats.ts surface engineer + L1 seat usage from the /accounts/me/ seats endpoint (T9). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
17
frontend/src/api/seats.ts
Normal file
17
frontend/src/api/seats.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import { apiClient } from './client'
|
||||
|
||||
export interface SeatCheck {
|
||||
available: boolean
|
||||
current: number
|
||||
limit: number | null
|
||||
role: 'engineer' | 'l1_tech'
|
||||
}
|
||||
|
||||
export interface SeatUsage {
|
||||
engineer: SeatCheck
|
||||
l1_tech: SeatCheck
|
||||
}
|
||||
|
||||
export const seatsApi = {
|
||||
getUsage: () => apiClient.get<SeatUsage>('/accounts/me/seats').then((r) => r.data),
|
||||
}
|
||||
Reference in New Issue
Block a user