// gets all quotes from the database and returns them in a list import 'package:flutter/material.dart'; import 'package:frontend/model/quote.dart'; import 'package:frontend/repository/quote_repository.dart'; class QuoteProvider extends ChangeNotifier { List _quotes = []; bool _loading = false; String? _error; List get quotes => _quotes; bool get loading => _loading; String? get error => _error; final QuoteRepository repo = QuoteRepository(); QuoteProvider() { readQuotes(); // auto-load on creation } Future readQuotes() async { _loading = true; _error = null; notifyListeners(); try { _quotes = await repo.readQuotes(); } catch (e) { _error = e.toString(); } _loading = false; notifyListeners(); } Future createQuote(Quote quote) async { final newQuote = await repo.createQuote(quote); _quotes.add(newQuote); notifyListeners(); } Future updateQuote(Quote quote) async { try { _loading = true; notifyListeners(); final updated = await repo.updateQuote(quote); final index = _quotes.indexWhere((q) => q.id == quote.id); if (index != -1) { final newList = List.from(_quotes); newList[index] = updated; _quotes = newList; } } finally { _loading = false; notifyListeners(); } } Future deleteQuote(Quote quote) async { await repo.deleteQuote(quote); _quotes.removeWhere((q) => q.id == quote.id); notifyListeners(); } }