Files
Mav-Mobile-UI/src/types/types.ts

163 lines
3.3 KiB
TypeScript
Raw Normal View History

export type SightingType = {
2025-08-13 14:23:48 +01:00
ref: number;
SaFID: string;
overviewUrl: string;
plateUrlInfrared: string;
plateUrlColour: string;
vrm: string;
vrmSecondary: string;
countryCode: string;
timeStamp: string;
detailsUrl: string;
overviewPlateRect: number[];
plateTrack: Array<number[]>;
make: string;
model: string;
color: string;
category: string;
charHeight: string;
seenCount: string;
timeStampMillis: number;
motion: string;
debug: string;
srcCam: number;
locationName: string;
laneID: string;
plateSize: string;
overviewSize: string;
radarSpeed: string;
trackSpeed: string;
};
export type CameraSettingValues = {
friendlyName: string;
cameraAddress: string;
userName: string;
password: string;
setupCamera: number;
};
export type CameraSettingErrorValues = Partial<
Record<keyof CameraSettingValues, string>
>;
2025-08-18 12:53:30 +01:00
export type BearerTypeFieldType = {
format: string;
enabled: boolean;
verbose: boolean;
};
export type InitialValuesForm = {
format: string;
enabled: boolean;
verbose: boolean;
backOfficeURL: string;
username: string;
password: string;
connectTimeoutSeconds: number;
readTimeoutSeconds: number;
};
2025-08-18 16:04:03 +01:00
export type NPEDFieldType = {
2025-08-29 10:07:59 +01:00
frontId: string;
2025-08-18 16:04:03 +01:00
username: string;
password: string;
clientId: string;
2025-08-29 10:07:59 +01:00
rearId: string;
2025-08-18 16:04:03 +01:00
};
export type HotlistUploadType = {
file: string | null;
};
2025-08-20 08:27:05 +01:00
export type SightingWidgetType = {
ref: number; // unique, increasing
idx?: number; // client-side slot index
vrm: string;
vrmSecondary?: string; // empty string means missing
countryCode?: string;
timeStamp?: string; // formatted string
timeStampMillis: number; // epoch millis
motion: string; // e.g., "AWAY" or "TOWARDS"
seenCount: number;
charHeight: string | number;
overviewUrl: string;
detailsUrl?: string;
make?: string;
model?: string;
color?: string;
category?: string;
plateSize?: string | number;
overviewSize?: string | number;
locationName?: string;
laneID?: string | number;
radarSpeed?: string | number;
trackSpeed?: string | number;
srcCam?: 0 | 1;
plateUrlInfrared?: string;
plateUrlColour?: string;
overviewPlateRect?: [number, number, number, number]; // [x,y,w,h] normalized 0..1
2025-08-29 14:55:37 +01:00
plateTrack?: [number, number, number, number][];
metadata?: Metadata;
// list of rects normalized 0..1
};
export type VersionFieldType = {
version: string;
revision: string;
buildtime: string;
MAC: string;
timeStamp: number;
UUID: string;
"Serial No.": string;
"Model No.": string;
};
2025-08-29 14:55:37 +01:00
export type Metadata = {
npedJSON: NpedJSON;
"hotlist-matches": HotlistMatches;
};
export type HotlistMatches = {
Hotlist0: boolean;
Hotlist1: boolean;
Hotlist2: boolean;
};
export type NpedJSON = {
status_code: number;
reason_phrase: string;
2025-08-20 08:27:05 +01:00
};
2025-08-29 10:07:59 +01:00
export type NPEDUser = {
username: string;
clientId: string;
password?: string;
};
export type NPEDErrorValues = {
username?: string | undefined;
password?: string | undefined;
clientId?: string | undefined;
};
2025-08-29 14:55:37 +01:00
export type NPEDCameraConfig = {
id: string;
configHash: string;
propEnabled: Prop;
propUsername: Prop;
propPassword: Prop;
propClientID: Prop;
propConnectTimeoutSeconds: Prop;
propReadTimeoutSeconds: Prop;
propNPEDAuthTokenURL: Prop;
propNPEDLookupURL: Prop;
propVerbose: Prop;
};
export interface Prop {
value: string;
datatype: string;
}