188 lines
3.7 KiB
Dart
188 lines
3.7 KiB
Dart
import 'package:aitrainer_app/model/cache.dart';
|
|
import 'package:aitrainer_app/model/customer.dart';
|
|
import 'package:aitrainer_app/service/customer_service.dart';
|
|
|
|
class GenderItem {
|
|
GenderItem(this.dbValue,this.name);
|
|
final String dbValue;
|
|
String name;
|
|
}
|
|
|
|
class CustomerRepository {
|
|
Customer customer;
|
|
Customer _trainee;
|
|
List<Customer> _trainees;
|
|
|
|
//List<CustomerRepository> customerList = List<CustomerRepository>();
|
|
bool visibleDetails = false;
|
|
List<GenderItem> genders;
|
|
|
|
CustomerRepository({this.customer}) {
|
|
customer = Customer();
|
|
genders = [
|
|
GenderItem("m", "Man"),
|
|
GenderItem("w", "Woman"),
|
|
];
|
|
}
|
|
|
|
String getGenderByName(String name) {
|
|
String dbValue;
|
|
genders.forEach((element) {
|
|
if (element.name == name) {
|
|
dbValue = element.dbValue;
|
|
}
|
|
});
|
|
return dbValue;
|
|
}
|
|
|
|
String getGenderByDBValue(String dbValue) {
|
|
String name;
|
|
genders.forEach((element) {
|
|
if (element.dbValue == dbValue) {
|
|
name = element.name;
|
|
}
|
|
});
|
|
return name;
|
|
}
|
|
|
|
String get name {
|
|
return this.customer.name != null ? this.customer.name : "";
|
|
}
|
|
|
|
String get firstName {
|
|
return this.customer.firstname != null ? this.customer.firstname : "";
|
|
}
|
|
|
|
String get sex {
|
|
return this.customer.sex == "m" ? "Man" : "Woman";
|
|
}
|
|
|
|
int get birthYear {
|
|
return this.customer.birthYear;
|
|
}
|
|
|
|
String get goal {
|
|
return this.customer.goal;
|
|
}
|
|
|
|
String get fitnessLevel {
|
|
return this.customer.fitnessLevel;
|
|
}
|
|
|
|
String get bodyType {
|
|
return this.customer.bodyType;
|
|
}
|
|
|
|
setName(String name) {
|
|
this.customer.name = name;
|
|
}
|
|
setFirstName(String firstName) {
|
|
this.customer.firstname = firstName;
|
|
}
|
|
|
|
setPassword( String password ) {
|
|
this.customer.password = password;
|
|
}
|
|
|
|
setEmail(String email) {
|
|
this.customer.email = email;
|
|
}
|
|
|
|
|
|
setSex(String sex) {
|
|
this.customer.sex = sex;
|
|
}
|
|
|
|
setWeight( int weight) {
|
|
this.customer.weight = weight;
|
|
}
|
|
|
|
setBirthYear( int birthYear ) {
|
|
this.customer.birthYear = birthYear;
|
|
}
|
|
|
|
setFitnessLevel( String level ) {
|
|
this.customer.fitnessLevel = level;
|
|
}
|
|
|
|
setGoal( String goal ) {
|
|
this.customer.goal = goal;
|
|
}
|
|
|
|
setBodyType(String bodyType) {
|
|
this.customer.bodyType = bodyType;
|
|
}
|
|
|
|
createNew() {
|
|
this.customer = Customer();
|
|
}
|
|
|
|
Customer getCustomer() {
|
|
return this.customer;
|
|
}
|
|
|
|
void setCustomer ( Customer customer ) {
|
|
this.customer = customer;
|
|
}
|
|
|
|
Future<void> addCustomer() async {
|
|
final Customer modelCustomer = customer;
|
|
await CustomerApi().addCustomer(modelCustomer);
|
|
}
|
|
|
|
Future<void> saveCustomer() async {
|
|
final Customer modelCustomer = customer;
|
|
await CustomerApi().saveCustomer(modelCustomer);
|
|
}
|
|
|
|
Future<Customer> getTraineeAsCustomer() async {
|
|
this._trainee = await CustomerApi().getTrainee(
|
|
Cache().userLoggedIn.customerId
|
|
);
|
|
return _trainee;
|
|
}
|
|
|
|
Future<List<Customer>> getTrainees() async {
|
|
int trainerId = Cache().userLoggedIn.customerId;
|
|
final results = await CustomerApi().getTrainees(trainerId);
|
|
this._trainees = results;
|
|
return results;
|
|
}
|
|
|
|
List<Customer> getTraineesList() {
|
|
return _trainees;
|
|
}
|
|
|
|
void setTrainee(int traineeId ) {
|
|
if ( _trainees == null ) {
|
|
return;
|
|
}
|
|
_trainees.forEach((element) {
|
|
if ( traineeId == element.customerId) {
|
|
this._trainee = element;
|
|
}
|
|
});
|
|
}
|
|
|
|
void emptyTrainees() {
|
|
_trainees = null;
|
|
_trainee = null;
|
|
}
|
|
|
|
Customer getTrainee() {
|
|
return this._trainee;
|
|
}
|
|
|
|
Customer getTraineeById(int customerId) {
|
|
if (_trainees == null) {
|
|
return null;
|
|
}
|
|
_trainees.forEach((element) {
|
|
if ( customerId == element.customerId) {
|
|
this._trainee = element;
|
|
}
|
|
});
|
|
return _trainee;
|
|
}
|
|
}
|