migrants-nt-web/src/types/search.ts

84 lines
1.8 KiB
TypeScript

export interface SearchParams {
firstName?: string;
lastName?: string;
ageAtMigration?: string;
yearOfArrival?: string;
regionOfOrigin?: string;
settlementLocation?: string;
}
// Pagination metadata structure
export interface Pagination {
total: number;
currentPage: number;
totalPages: number;
perPage: number;
}
// Migration details for a person
export interface Migration {
date_of_arrival_aus?: string;
date_of_arrival_nt?: string;
arrival_period?: string;
data_source?: string;
}
// Naturalization details for a person
export interface Naturalization {
certificate_number?: string;
date_of_naturalization?: string;
previous_nationality?: string;
place_of_naturalization?: string;
}
// Residence details for a person
export interface Residence {
town_or_city?: string;
home_at_death?: string;
}
// Family details for a person
export interface Family {
spouse_name?: string;
spouse_origin?: string;
number_of_children?: number;
names_of_children?: string;
additional_notes?: string;
}
// Internment details for a person
export interface Internment {
was_interned: boolean;
camp_name?: string;
date_of_internment?: string;
date_of_release?: string;
additional_notes?: string;
}
// A single search result representing a person record
export interface SearchResult {
person_id: string;
surname: string;
christian_name: string;
full_name: string;
date_of_birth?: string;
place_of_birth?: string;
date_of_death?: string;
occupation?: string;
additional_notes?: string;
reference?: string;
id_card_no?: string;
migration: Migration;
naturalization: Naturalization;
residence: Residence;
family: Family;
internment: Internment;
}
// The overall search response from the API
export interface SearchResponse {
data: SearchResult[];
pagination: Pagination;
success: boolean;
message: string;
}