feat: host detail page + FM host context
Add /hosts/:id detail page with unified timeline (HostEvents + FMs + Repairs + part arrivals/departures) and a deployed-parts table. Hosts list rows now link to the page. FM list + detail surface inline State/Stack badges next to the asset ID, with the asset ID linking to the host page. HostEvent audit model added; create/update in the hosts service now diff and log state, stack, and field changes the same way parts.ts does. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -33,6 +33,14 @@ export const PartEventType = z.enum([
|
||||
]);
|
||||
export type PartEventType = z.infer<typeof PartEventType>;
|
||||
|
||||
export const HostEventType = z.enum([
|
||||
'CREATED',
|
||||
'STATE_CHANGED',
|
||||
'STACK_CHANGED',
|
||||
'FIELD_UPDATED',
|
||||
]);
|
||||
export type HostEventType = z.infer<typeof HostEventType>;
|
||||
|
||||
export const FmStatus = z.enum(['OPEN', 'CLOSED']);
|
||||
export type FmStatus = z.infer<typeof FmStatus>;
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
import { z } from 'zod';
|
||||
import { PaginationQuery } from './pagination.js';
|
||||
|
||||
export const HostTimelineQuery = PaginationQuery;
|
||||
export type HostTimelineQuery = z.infer<typeof HostTimelineQuery>;
|
||||
@@ -8,6 +8,7 @@ export * from './parts.js';
|
||||
export * from './env.js';
|
||||
export * from './pagination.js';
|
||||
export * from './hosts.js';
|
||||
export * from './host-events.js';
|
||||
export * from './fms.js';
|
||||
export * from './repairs.js';
|
||||
export * from './custody.js';
|
||||
|
||||
Reference in New Issue
Block a user