This repository has been archived on 2024-03-27. You can view files and clone it, but cannot push or open issues/pull-requests.
encrateia/lib/models/weight.dart

60 lines
1.4 KiB
Dart

import 'package:flutter/material.dart';
import 'package:sqfentity_gen/sqfentity_gen.dart';
import '/model/model.dart';
import '/models/athlete.dart';
class Weight {
Weight({@required Athlete athlete}) {
_db = DbWeight()
..athletesId = athlete.id
..value = 70
..date = DateTime.now();
}
Weight._fromDb(this._db);
DbWeight _db;
int get id => _db?.id;
DateTime get date => _db.date;
double get value => _db.value;
set date(DateTime value) => _db.date = value;
set value(double value) => _db.value = value;
@override
String toString() => '< Weight | $date | $value >';
Future<BoolResult> delete() async => await _db.delete();
Future<int> save() async => await _db.save();
static Future<Weight> getBy({int athletesId, DateTime date}) async {
List<DbWeight> dbWeights;
dbWeights = await DbWeight()
.select()
.athletesId
.equals(athletesId)
.and
.date
.lessThanOrEquals(date)
.orderByDesc('date')
.top(1)
.toList();
if (dbWeights.isNotEmpty) {
return Weight._fromDb(dbWeights.first);
} else {
dbWeights = await DbWeight()
.select()
.athletesId
.equals(athletesId)
.orderBy('date')
.top(1)
.toList();
}
return (dbWeights.isNotEmpty) ? Weight._fromDb(dbWeights.first) : null;
}
static Weight exDb(DbWeight db) => Weight._fromDb(db);
}