export interface ClientOptions {
partnerId?: string;
accessToken?: string;
version?: number;
prefix?: string;
url?: string | URL;
}
export interface Client {
addPartner(partner: PartnerData): Promise<Partner>;
listPartners(): Promise<Partner[]>;
listSystemLogs(): Promise<SystemLog[]>;
background(query: Record<string, string> | URLSearchParams): Promise<void>;
}
export interface Expiring {
expiresAt?: string;
}
export interface PartnerData extends Record<string, unknown> {
partnerName: string;
countryCode?: string; // "NZ"
location?: string;
remote?: boolean;
onsite?: boolean;
pharmacy?: boolean;
delivery?: boolean;
clinic?: boolean;
website?: string;
}
export interface Partner extends PartnerData {
partnerId: string;
accessToken?: string;
createdAt: string;
updatedAt: string;
approved?: boolean;
approvedAt?: string;
approvedByUserId?: string;
}
export interface SystemLogData extends Record<string, unknown> {
uniqueCode?: string;
value?: number;
partnerId: string;
message: string;
timestamp?: string;
action?: string;
}
export interface SystemLog extends SystemLogData {
systemLogId: string;
timestamp: string;
}