import 'package:parse_server_sdk_flutter/parse_server_sdk.dart'; class Accuracy { late String? objectId; late String value; late bool forCarbsRatio = false; late bool forPortionSize = false; late int? confidenceRating; late String? notes; Accuracy(ParseObject? object) { if (object != null) { objectId = object.get('objectId'); value = object.get('value')!; forCarbsRatio = object.get('forCarbsRatio')!; forPortionSize = object.get('forPortionSize')!; confidenceRating = object.get('confidenceRating') != null ? object.get('confidenceRating')!.toInt() : null; notes = object.get('notes'); } } static Future> fetchAll() async { QueryBuilder query = QueryBuilder(ParseObject('Accuracy')); final ParseResponse apiResponse = await query.query(); if (apiResponse.success && apiResponse.results != null) { return apiResponse.results! .map((e) => Accuracy(e as ParseObject)) .toList(); } else { return []; } } static Future> fetchAllForCarbsRatio() async { QueryBuilder query = QueryBuilder(ParseObject('Accuracy')) ..whereEqualTo('forCarbsRatio', true); final ParseResponse apiResponse = await query.query(); if (apiResponse.success && apiResponse.results != null) { return apiResponse.results! .map((e) => Accuracy(e as ParseObject)) .toList(); } else { return []; } } static Future> fetchAllForPortionSize() async { QueryBuilder query = QueryBuilder(ParseObject('Accuracy')) ..whereEqualTo('forPortionSize', true); final ParseResponse apiResponse = await query.query(); if (apiResponse.success && apiResponse.results != null) { return apiResponse.results! .map((e) => Accuracy(e as ParseObject)) .toList(); } else { return []; } } static Future get(String objectId) async { QueryBuilder query = QueryBuilder(ParseObject('Accuracy')) ..whereEqualTo('objectId', objectId); final ParseResponse apiResponse = await query.query(); if (apiResponse.success && apiResponse.results != null) { return Accuracy(apiResponse.result.first); } } static Future save({ required String value, bool forCarbsRatio = false, bool forPortionSize = false, int? confidenceRating, String? notes, }) async { final accuracy = ParseObject('Accuracy') ..set('value', value) ..set('forCarbsRatio', forCarbsRatio) ..set('forPortionSize', forPortionSize) ..set('confidenceRating', confidenceRating) ..set('notes', notes); await accuracy.save(); } static Future update( String objectId, { String? value, bool? forCarbsRatio, bool? forPortionSize, int? confidenceRating, String? notes, }) async { var accuracy = ParseObject('Accuracy')..objectId = objectId; if (value != null) { accuracy.set('value', value); } if (forCarbsRatio != null) { accuracy.set('forCarbsRatio', forCarbsRatio); } if (forPortionSize != null) { accuracy.set('forPortionSize', forPortionSize); } if (confidenceRating != null) { accuracy.set('confidenceRating', confidenceRating); } if (notes != null) { accuracy.set('notes', notes); } await accuracy.save(); } Future delete() async { var accuracy = ParseObject('Accuracy')..objectId = objectId; await accuracy.delete(); } }