-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtypes.ts
More file actions
57 lines (49 loc) · 1.45 KB
/
Copy pathtypes.ts
File metadata and controls
57 lines (49 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
export type Category = 'Shelter' | 'Sleep' | 'Clothing' | 'Cooking' | 'Water' | 'Safety' | 'Electronics' | 'Misc';
export interface GearItem {
id: string;
name: string;
category: Category;
weight: number; // in grams
isConsumable: boolean; // food, water, fuel
isWorn: boolean; // clothes worn
notes?: string;
}
export interface TripSettings {
tripType: 'Day Hike' | 'Overnight' | 'Multi-day';
environment: 'Forest' | 'Desert' | 'Alpine' | 'Coastal' | 'Mixed';
season: 'Summer' | 'Shoulder' | 'Winter';
lowTemp: number; // Celsius
distancePerDay: number; // km
waterAvailability: 'Frequent' | 'Occasional' | 'Rare';
location: string;
packStyle: 'Ultralight' | 'Balanced' | 'Comfort';
weatherCondition: 'Clear' | 'Rainy' | 'Stormy' | 'Snowy';
partySize: number;
}
export interface ChatMessage {
id: string;
role: 'user' | 'model';
content: string;
timestamp: number;
}
export type AIStatus = 'idle' | 'loading' | 'thinking';
export interface PackAnalysis {
essentialItemIds: string[];
missingCategories: string[];
redFlags: string[];
weightAssessment: string;
}
export interface SuggestedItem {
name: string;
category: Category;
weight: number; // Approximate numeric weight for adding to pack (average)
weightDisplay: string; // Text description like "~450g" or "400-500g"
reason: string;
}
export interface Preset {
id: string;
name: string;
description: string;
settings: TripSettings;
itemIds: string[];
}