leafittome/lib/features/locations/domain/plant_location.dart
cschlaefke f0b420b656 V3: Stellplatz-Bewertung (Standort-Analyse per Foto + Eignungs-Sterne auf Abruf)
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>
2026-07-24 00:17:18 +02:00

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