Files
address-verification-app/src/screens/addresses/interfaces.ts
2025-06-02 17:47:18 +05:30

172 lines
3.7 KiB
TypeScript

import { IPredefinedAddressScreenTemplate } from '@interfaces/template.types';
import { CaseDetailStackEnum } from '@screens/caseDetails/CaseDetailStack';
import { StyleProp, ViewStyle } from 'react-native';
export interface ILabel {
label: string;
val: string;
}
export interface ILatestFeedback {
locationReferenceId: string;
latestFeedbackStatus: string;
latestFeedbackStatusTag: string;
latestFeedbackTimestamp: number;
feedbackColourCode: string;
feedbackBgColourCode: string;
isSuspicious: boolean;
feedbackPresent: boolean;
promiseToPayDate: string;
}
export interface ILocationData {
referenceId: string;
customerReferenceId: string;
addressText: string;
pinCode: string;
city: string;
latitude: number;
longitude: number;
visited: boolean;
rank: number;
timestamp: number;
similarLocationEntities: ISimilarAddressEntity[];
labels: ILabel[];
relatedLocationIds: string[];
latestFeedback: ILatestFeedback;
locationSubType: string;
isGeoCoordinatesReliable: boolean;
}
export interface ILocationDetails {
locationDetails: ILocationData;
}
export interface ITopAddressItem extends ILocationDetails {
caseId: string;
isCoachMarkVisible: boolean;
}
export interface ITopAddressItemHeader {
locationDetails: ILocationData;
isCoachMarkVisible?: boolean;
isOtherAddressView?: boolean;
containerStyle?: StyleProp<ViewStyle>;
addressItemRef?: React.MutableRefObject<null>;
isSimilarAddressPage?: boolean;
}
export interface ITopAddressItemFeedback {
latestFeedback: ILatestFeedback;
}
export interface ITopAddressItemTags {
clusterLabels: ILabel[];
}
export interface ITopAddressItemAddressString {
locationDetails: ILocationData;
showMapIcon?: boolean;
caseId: string;
actionContainerStyle?: StyleProp<ViewStyle>;
}
export interface ITopAddressItemBottomActions extends ILocationDetails {
caseId: string;
}
export interface ITopAddressItemRankTag {
rank: number;
visited: boolean;
}
export interface ITopAddressSimilarAddresses extends ILocationDetails {
caseId: string;
}
interface ISimilarAddressEntity {
id: string;
addressText: string;
pinCode: string;
city: string;
state: string;
source: string;
order: number;
capturedAt: number;
}
export interface ITopAddressSimilarAddressCard {
similarAddressDetails: ISimilarAddressEntity;
caseId: string;
}
export interface IOtherAddressItem extends ILocationDetails {
caseId: string;
}
export interface IFeedbackAddress {
referenceId: string;
addressText: string;
city: string;
pinCode: string;
rank: number;
source: string;
capturedAt: string;
locationType: string;
}
export interface IFeedbackAddressMap {
locationType: string;
}
export enum LocationType {
GEO_LOCATION = 'GEO_LOCATION',
SKIP_TRACE_ADDRESS = 'SKIP_TRACE_ADDRESS',
CUSTOMER_OUTREACH_ADDRESS = 'CUSTOMER_OUTREACH_ADDRESS',
}
export interface IOtherAddressActions extends ILocationDetails {
caseId: string;
}
export interface IOtherAddresses {
route: {
params: {
loanAccountNumber: string;
caseId: string;
};
};
}
export interface IOtherAddressList {
caseId: string;
}
export interface ITopAddress {
route: {
params: {
loanAccountNumber: string;
caseId: string;
scrollToIndex?: number;
};
};
}
export interface ITopAddressOtherAddressesItem {
caseId: string;
}
export interface IOpenOldFeedbacks {
loanAccountNumber: string;
addressText: string;
relatedLocationIds: string[];
referenceId: string;
caseId: string;
}
export interface INavigateToAddFeedbackScreen {
prefilledAddressScreenTemplate: IPredefinedAddressScreenTemplate | undefined;
caseId: string;
referenceId: string;
screen: CaseDetailStackEnum;
}