// import 'package:diameter/models/accuracy.dart'; // import 'package:diameter/models/meal_category.dart'; // import 'package:diameter/models/meal_portion_type.dart'; import 'package:parse_server_sdk_flutter/parse_server_sdk.dart'; class MealSource { late String? objectId; late String value; late String? defaultCarbsRatioAccuracy; late String? defaultPortionSizeAccuracy; late String? defaultMealCategory; late String? defaultMealPortionType; late String? notes; MealSource(ParseObject? object) { if (object != null) { objectId = object.get('objectId'); value = object.get('value')!; defaultCarbsRatioAccuracy = object.get('defaultCarbsRatioAccuracy') != null ? object .get('defaultCarbsRatioAccuracy')! .get('objectId') : null; defaultPortionSizeAccuracy = object.get('defaultPortionSizeAccuracy') != null ? object .get('defaultPortionSizeAccuracy')! .get('objectId') : null; defaultMealCategory = object.get('defaultMealCategory') != null ? object .get('defaultMealCategory')! .get('objectId') : null; defaultMealPortionType = object.get('defaultMealPortionType') != null ? object .get('defaultMealPortionType')! .get('objectId') : null; notes = object.get('notes'); } } static Future> fetchAll() async { QueryBuilder query = QueryBuilder(ParseObject('MealSource')); final ParseResponse apiResponse = await query.query(); if (apiResponse.success && apiResponse.results != null) { return apiResponse.results! .map((e) => MealSource(e as ParseObject)) .toList(); } else { return []; } } static Future get(String objectId) async { QueryBuilder query = QueryBuilder(ParseObject('MealSource')) ..whereEqualTo('objectId', objectId); final ParseResponse apiResponse = await query.query(); if (apiResponse.success && apiResponse.results != null) { return MealSource(apiResponse.result.first); } } static Future save({ required String value, String? defaultCarbsRatioAccuracy, String? defaultPortionSizeAccuracy, String? defaultMealCategory, String? defaultMealPortionType, String? notes, }) async { final mealSource = ParseObject('MealSource') ..set('value', value) ..set('notes', notes); if (defaultCarbsRatioAccuracy != null) { mealSource.set( 'defaultCarbsRatioAccuracy', (ParseObject('Accuracy')..objectId = defaultCarbsRatioAccuracy) .toPointer()); } if (defaultPortionSizeAccuracy != null) { mealSource.set( 'defaultCarbsRatioAccuracy', (ParseObject('Accuracy')..objectId = defaultPortionSizeAccuracy) .toPointer()); } if (defaultMealCategory != null) { mealSource.set( 'defaultMealCategory', (ParseObject('MealCategory')..objectId = defaultMealCategory) .toPointer()); } if (defaultMealPortionType != null) { mealSource.set( 'defaultMealPortionType', (ParseObject('MealPortionType')..objectId = defaultMealPortionType) .toPointer()); } await mealSource.save(); } static Future update( String objectId, { String? value, String? defaultCarbsRatioAccuracy, String? defaultPortionSizeAccuracy, String? defaultMealCategory, String? defaultMealPortionType, String? notes, }) async { final mealSource = ParseObject('MealSource')..objectId = objectId; if (value != null) { mealSource.set('value', value); } if (defaultCarbsRatioAccuracy != null) { mealSource.set( 'defaultCarbsRatioAccuracy', (ParseObject('Accuracy')..objectId = defaultCarbsRatioAccuracy) .toPointer()); } if (defaultPortionSizeAccuracy != null) { mealSource.set( 'defaultCarbsRatioAccuracy', (ParseObject('Accuracy')..objectId = defaultPortionSizeAccuracy) .toPointer()); } if (defaultMealCategory != null) { mealSource.set( 'defaultMealCategory', (ParseObject('MealCategory')..objectId = defaultMealCategory) .toPointer()); } if (defaultMealPortionType != null) { mealSource.set( 'defaultMealPortionType', (ParseObject('MealPortionType')..objectId = defaultMealPortionType) .toPointer()); } if (notes != null) { mealSource.set('notes', notes); } await mealSource.save(); } Future delete() async { var mealSource = ParseObject('MealSource')..objectId = objectId; await mealSource.delete(); } }