Documento di Progetto Feature: Modalità Utente (Produttore / Cliente) + Flusso Ordini Offline 1. Obiettivo Implementare un sistema di selezione modalità utente alla prima apertura dell’app, con possibilità di modifica successiva dalle impostazioni. Due modalità: - Produttore - Cliente 2. Requisiti Funzionali 2.1 Selezione iniziale Alla prima apertura: - mostrare schermata di scelta: - "Sono un Produttore" - "Sono un Cliente" - salvare scelta in storage locale (user_mode) 2.2 Modifica modalità - accessibile da Impostazioni - voce: Modalità utente - conferma cambio modalità 3. Architettura Variabile: userMode: "producer" | "client" Persistenza: - SharedPreferences / DataStore - chiave: user_mode 4. Modalità Cliente Flusso: - selezione tipo uova: Marans / Araucana / Olive - inserimento quantità - click “Prenota” Output JSON: { "order_id": "uuid", "timestamp": "ISO8601", "egg_type": "marans | araucana | olive", "quantity": 12, "client_note": "" } File: ordine_uova_.json Condivisione: - share system (Intent Android) 5. Modalità Produttore UI: - bottone "Importa ordine" Flusso: - apertura file picker - selezione file JSON - parsing Validazione: - order_id - timestamp - egg_type - quantity Errori: - formato non valido - duplicati Dopo import: - calcolo data consegna - inserimento in database 6. Struttura dati { "order_id": "string", "source": "imported | manual", "egg_type": "string", "quantity": "int", "created_at": "datetime", "delivery_date": "datetime" } 7. UX Cliente: - semplice - focus prenotazione Produttore: - UI esistente + import 8. Edge cases - cambio modalità - file corrotti - quantità non valida 9. Non obiettivi - cloud - login - notifiche 10. Priorità 1. selettore modalità 2. flusso cliente 3. import produttore 4. validazione 11. KPI - completamento prenotazioni - import corretti - tempo creazione ordine