import { z } from 'zod';
import { WORK_ORDER_STATUSES } from '../exploitation';

/** Recherche globale (topbar ⌘K) — chaque famille de résultats n'apparaît
 *  que si l'appelant a la permission `view` du domaine ; les OT respectent
 *  en plus l'invariant « voir autre ». */

export const SEARCH_MIN_CHARS = 2;
export const SEARCH_MAX_PER_KIND = 5;

export const SearchResponseSchema = z.object({
  workOrders: z.array(
    z.object({
      id: z.uuid(),
      reference: z.string(),
      title: z.string(),
      status: z.enum(WORK_ORDER_STATUSES),
    }),
  ),
  assets: z.array(
    z.object({
      id: z.uuid(),
      reference: z.string(),
      brand: z.string(),
      model: z.string().nullable(),
      siteName: z.string(),
    }),
  ),
  sites: z.array(
    z.object({
      id: z.uuid(),
      name: z.string(),
      city: z.string().nullable(),
    }),
  ),
});
export type SearchResponse = z.infer<typeof SearchResponseSchema>;
