Letzter Roadmap-Punkt von V3. Foto-basierte Lichtverhältnis-Analyse pro Stellplatz (Cloud Function analyzeLocation) und darauf aufbauende, rein textbasierte Eignungs-Bewertung einer Pflanze (assessPlantFit) — beides ausschließlich auf Abruf, nicht automatisch (Kostenkontrolle, eigener Anthropic-Key). Neue Stellplatz-Detailseite, Verlinkung im Pflanzen-Detail, Erkennung veralteter Bewertungen bei Umzug/Neuanalyse. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
38 lines
1.2 KiB
Dart
38 lines
1.2 KiB
Dart
import 'package:flutter/foundation.dart';
|
|
|
|
/// Ein benannter Stellplatz im Haushalt, z. B. "Wohnzimmer-Fensterbank".
|
|
///
|
|
/// V3: Standort-Analyse per Foto (Lichtverhältnisse). Die
|
|
/// Eignungs-Bewertung pro zugeordneter Pflanze liegt dagegen auf der
|
|
/// Pflanze selbst (`Plant.fitStars` etc.), da sie eine Pflanze-Stellplatz-
|
|
/// Paarung beschreibt.
|
|
@immutable
|
|
class PlantLocation {
|
|
const PlantLocation({
|
|
required this.id,
|
|
required this.name,
|
|
this.photoUrl,
|
|
this.lightCategory,
|
|
this.lightAssessment,
|
|
this.analyzedAt,
|
|
});
|
|
|
|
final String id;
|
|
final String name;
|
|
|
|
/// Download-URL des Stellplatz-Fotos in Firebase Storage (optional).
|
|
final String? photoUrl;
|
|
|
|
/// Kurzes Label, eines von vier festen Werten (siehe Cloud Function
|
|
/// `analyzeLocation`): "Volle Sonne", "Hell, indirekt", "Halbschatten",
|
|
/// "Schatten".
|
|
final String? lightCategory;
|
|
|
|
/// Freitext-Begründung der Licht-Einschätzung (1-2 Sätze).
|
|
final String? lightAssessment;
|
|
|
|
/// Wann die Standort-Analyse zuletzt durchgeführt wurde. Dient dazu,
|
|
/// veraltete Eignungs-Sterne einer Pflanze zu erkennen (Pflanze wurde
|
|
/// vor der letzten Analyse bewertet).
|
|
final DateTime? analyzedAt;
|
|
}
|