Greenlens/types.ts

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';