This repository has been archived on 2026-02-01. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
synthetic-consumer-data/src/persona/types.ts

119 lines
2.1 KiB
TypeScript

interface Pet {
[key: string]: any;
}
interface FrequencyObject {
name: string;
frequency: number;
}
interface SubscriptionBill {
name: string;
amount: number;
date: string | Date;
}
interface ActivityObject {
name: string;
frequency: number;
schedule?: string[];
}
interface BrandLoyalty {
name: string;
loyaltyScore: number;
}
interface Event {
name: string;
date: string | Date;
details?: string;
}
interface TimelineActivity {
activity: string;
duration: string;
location?: string;
}
interface RegularStop {
location: string;
purpose: string;
frequency: string;
}
interface SpendingCategories {
[category: string]: {
preference: number;
frequency: number;
};
}
export interface Persona {
core: {
age: number;
name: string;
occupation: {
title: string;
level: string;
income: number;
location: string;
schedule: string[];
};
home: {
type: string;
ownership: string;
location: string;
commute_distance_km: number;
};
household: {
status: string;
members: string[];
pets: Pet[];
};
};
routines: {
weekday: {
[hour: string]: TimelineActivity;
};
weekend: ActivityObject[];
commute: {
method: string;
route: string[];
regular_stops: RegularStop[];
};
};
preferences: {
diet: string[];
brands: BrandLoyalty[];
price_sensitivity: number;
payment_methods: string[];
shopping: {
grocery_stores: FrequencyObject[];
coffee_shops: FrequencyObject[];
restaurants: FrequencyObject[];
retail: FrequencyObject[];
};
};
finances: {
subscriptions: SubscriptionBill[];
regular_bills: SubscriptionBill[];
spending_patterns: {
impulsive_score: number;
categories: SpendingCategories;
};
};
habits: {
exercise: ActivityObject[];
social: ActivityObject[];
entertainment: ActivityObject[];
vices: ActivityObject[];
};
context: {
stress_triggers: string[];
reward_behaviors: string[];
upcoming_events: Event[];
recent_changes: string[];
};
}