83 lines
1.7 KiB
TypeScript
83 lines
1.7 KiB
TypeScript
|
|
export interface LocalizedPlantContent {
|
|
name: string;
|
|
description: string;
|
|
light: string;
|
|
}
|
|
|
|
export interface MultilingualPlantEntry {
|
|
botanicalName: string;
|
|
confidence: number;
|
|
careInfo: {
|
|
waterIntervalDays: number;
|
|
temp: string;
|
|
};
|
|
imageUri: string;
|
|
categories: string[];
|
|
translations: {
|
|
de: LocalizedPlantContent;
|
|
en: LocalizedPlantContent;
|
|
es: LocalizedPlantContent;
|
|
};
|
|
}
|
|
|
|
export interface CareInfo {
|
|
waterIntervalDays: number;
|
|
light: string;
|
|
temp: string;
|
|
}
|
|
|
|
export interface PlantHealthIssue {
|
|
title: string;
|
|
confidence: number;
|
|
details: string;
|
|
}
|
|
|
|
export interface PlantHealthCheck {
|
|
generatedAt: string;
|
|
overallHealthScore: number;
|
|
status: 'healthy' | 'watch' | 'critical';
|
|
likelyIssues: PlantHealthIssue[];
|
|
actionsNow: string[];
|
|
plan7Days: string[];
|
|
creditsCharged: number;
|
|
imageUri?: string;
|
|
}
|
|
|
|
export interface Plant {
|
|
id: string;
|
|
name: string;
|
|
botanicalName: string;
|
|
imageUri: string;
|
|
dateAdded: string; // Serialized Date
|
|
careInfo: CareInfo;
|
|
lastWatered: string; // Serialized Date
|
|
wateringHistory?: string[]; // Array of serialized dates
|
|
gallery?: string[]; // Array of image URIs
|
|
description?: string;
|
|
notificationsEnabled?: boolean;
|
|
healthChecks?: PlantHealthCheck[];
|
|
}
|
|
|
|
export interface IdentificationResult {
|
|
name: string;
|
|
botanicalName: string;
|
|
confidence: number;
|
|
careInfo: CareInfo;
|
|
description?: string;
|
|
}
|
|
|
|
export enum Tab {
|
|
HOME = 'home',
|
|
SEARCH = 'search',
|
|
SETTINGS = 'settings',
|
|
}
|
|
|
|
export type Language = 'de' | 'en' | 'es';
|
|
|
|
export type AppearanceMode = 'system' | 'light' | 'dark';
|
|
|
|
export type AppColorScheme = 'light' | 'dark';
|
|
|
|
export type ColorPalette = 'forest' | 'ocean' | 'sunset' | 'mono';
|