All files / lib/packages/shared-types/events seatool.ts

100% Statements 4/4
100% Branches 0/0
100% Functions 0/0
100% Lines 2/2

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65      186x               186x                                                                                                          
import { z } from "zod";
 
// Reusable schema for officer data.
export const seatoolOfficerSchema = z.object({
  OFFICER_ID: z.number(),
  FIRST_NAME: z.string(),
  LAST_NAME: z.string(),
  EMAIL: z.string().nullish(),
});
export type SeatoolOfficer = z.infer<typeof seatoolOfficerSchema>;
 
export const seatoolSchema = z.object({
  ACTION_OFFICERS: z.array(seatoolOfficerSchema).nullish(),
  LEAD_ANALYST: z.array(seatoolOfficerSchema).nullable(),
  STATE_PLAN_SERVICETYPES: z.array(
    z
      .object({
        SPA_TYPE_ID: z.number(),
        SPA_TYPE_NAME: z.string(),
      })
      .nullable(),
  ),
  STATE_PLAN_SERVICE_SUBTYPES: z.array(
    z
      .object({
        TYPE_ID: z.number(),
        TYPE_NAME: z.string(),
      })
      .nullable(),
  ),
  STATE_PLAN: z.object({
    SUBMISSION_DATE: z.number().nullable(),
    PLAN_TYPE: z.number().nullable(),
    LEAD_ANALYST_ID: z.number().nullable(),
    APPROVED_EFFECTIVE_DATE: z.number().nullable(),
    ACTUAL_EFFECTIVE_DATE: z.number().nullable(), // This is only set for waivers
    PROPOSED_DATE: z.number().nullable(),
    SPW_STATUS_ID: z.number().nullable(),
    STATE_CODE: z.string().nullish(),
    STATUS_DATE: z.number().nullish(),
    SUMMARY_MEMO: z.string().nullish(),
    TITLE_NAME: z.string().nullish(),
    CHANGED_DATE: z.number().optional(),
  }),
  RAI: z
    .array(
      z.object({
        RAI_RECEIVED_DATE: z.number().nullable(),
        RAI_REQUESTED_DATE: z.number().nullable(),
        RAI_WITHDRAWN_DATE: z.number().nullable(),
      }),
    )
    .nullable(),
  ACTIONTYPES: z
    .array(
      z.object({
        ACTION_ID: z.number(),
        ACTION_NAME: z.string(),
        PLAN_TYPE_ID: z.number(),
      }),
    )
    .nullable(),
});
export type SeaTool = z.infer<typeof seatoolSchema>;