// Copyright 2020, the Flutter project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. /// Manipulates app data, abstract class DashboardApi { ItemApi get items; EntryApi get entries; } /// Manipulates [Item] data. abstract class ItemApi { Future delete(String id); Future get(String id); Future insert(Item item); Future> list(); Future update(Item item, String id); Stream> allItemsStream(); } /// Something being tracked. class Item { final String name; String id; Item(this.name); } /// Manipulates [Entry] data. abstract class EntryApi { Future delete(String itemId, String id); Future insert(String itemId, Entry entry); Future> list(String itemId); Future update(String itemId, String id, Entry entry); Stream> allEntriesStream(String itemId); } /// A number tracked at a point in time. class Entry { final int value; final DateTime time; String id; Entry(this.value, this.time); }