imported excises, and modified seed/database to accomodate

This commit is contained in:
Joshua Burman 2025-01-05 22:01:38 -05:00
parent acab37eb60
commit a034c16160
22 changed files with 37983 additions and 187 deletions

22617
assets/exercises.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -35,7 +35,7 @@ class AppDatabase extends _$AppDatabase {
AppDatabase() : super(_openConnection()); AppDatabase() : super(_openConnection());
@override @override
int get schemaVersion => 13; int get schemaVersion => 19;
@override @override
MigrationStrategy get migration { MigrationStrategy get migration {
@ -75,8 +75,10 @@ class Sessions extends Table {
class SessionActivities extends Table { class SessionActivities extends Table {
IntColumn get id => integer().autoIncrement()(); IntColumn get id => integer().autoIncrement()();
IntColumn get sessionId => integer().references(Sessions, #id, onDelete: KeyAction.cascade)(); IntColumn get sessionId =>
IntColumn get activityId => integer().references(Activities, #id, onDelete: KeyAction.cascade)(); integer().references(Sessions, #id, onDelete: KeyAction.cascade)();
IntColumn get activityId =>
integer().references(Activities, #id, onDelete: KeyAction.cascade)();
IntColumn get position => integer()(); IntColumn get position => integer()();
TextColumn get results => text().nullable()(); TextColumn get results => text().nullable()();
DateTimeColumn get createdAt => DateTimeColumn get createdAt =>
@ -87,31 +89,76 @@ enum ActivityCategories { fundamentals, conditioning, advanced, custom, pro }
enum ActivityType { enum ActivityType {
strength, strength,
power, stretching,
conditioning, plyometrics,
hypertrophy, strongman,
endurance, powerlifting,
stability, cardio,
mobility, olympicWeightlifting
flexibility, }
rehabilitation,
technical enum ActivityLevel { beginner, intermediate, expert }
enum ActivityMechanic { compound, isolation }
enum ActivityEquipment {
bodyOnly,
machine,
other,
foamRoll,
kettlebells,
dumbbell,
cable,
barbell,
bands,
medicineBall,
exerciseBall,
eZCurlBar
}
enum ActivityMuscle {
abdominals,
hamstrings,
calves,
shoulders,
adductors,
glutes,
quadriceps,
biceps,
forearms,
abductors,
triceps,
chest,
lowerBack,
traps,
middleBack,
lats,
neck
} }
class Activities extends Table { class Activities extends Table {
IntColumn get id => integer().autoIncrement()(); IntColumn get id => integer().autoIncrement()();
TextColumn get title => text().withLength(min: 3, max: 32)(); TextColumn get title => text().withLength(min: 3, max: 100)();
TextColumn get type => textEnum<ActivityType>()(); TextColumn get type => textEnum<ActivityType>().nullable()();
TextColumn get description => text().named('body')(); TextColumn get description => text().named('body').nullable()();
TextColumn get category => textEnum<ActivityCategories>()(); TextColumn get category => textEnum<ActivityCategories>().nullable()();
// from exercises.json
TextColumn get force => text().nullable()();
TextColumn get level => textEnum<ActivityLevel>().nullable()();
TextColumn get mechanic => textEnum<ActivityMechanic>().nullable()();
TextColumn get equipment => textEnum<ActivityEquipment>().nullable()();
TextColumn get primaryMuscles => textEnum<ActivityMuscle>().nullable()();
TextColumn get secondaryMuscles => textEnum<ActivityMuscle>().nullable()();
DateTimeColumn get createdAt => DateTimeColumn get createdAt =>
dateTime().withDefault(Variable(DateTime.now()))(); dateTime().withDefault(Variable(DateTime.now()))();
} }
class ActivityActions extends Table { class ActivityActions extends Table {
IntColumn get id => integer().autoIncrement()(); IntColumn get id => integer().autoIncrement()();
IntColumn get activityId => integer().references(Activities, #id, onDelete: KeyAction.cascade)(); IntColumn get activityId =>
IntColumn get actionId => integer().references(Actions, #id, onDelete: KeyAction.cascade)(); integer().references(Activities, #id, onDelete: KeyAction.cascade)();
IntColumn get actionId =>
integer().references(Actions, #id, onDelete: KeyAction.cascade)();
IntColumn get position => integer()(); IntColumn get position => integer()();
DateTimeColumn get createdAt => DateTimeColumn get createdAt =>
dateTime().withDefault(Variable(DateTime.now()))(); dateTime().withDefault(Variable(DateTime.now()))();
@ -136,7 +183,8 @@ class ObjectMediaItems extends Table {
IntColumn get id => integer().autoIncrement()(); IntColumn get id => integer().autoIncrement()();
IntColumn get objectId => integer()(); IntColumn get objectId => integer()();
TextColumn get objectType => textEnum<ObjectType>()(); TextColumn get objectType => textEnum<ObjectType>()();
IntColumn get mediaId => integer().references(MediaItems, #id, onDelete: KeyAction.cascade)(); IntColumn get mediaId =>
integer().references(MediaItems, #id, onDelete: KeyAction.cascade)();
DateTimeColumn get createdAt => DateTimeColumn get createdAt =>
dateTime().withDefault(Variable(DateTime.now()))(); dateTime().withDefault(Variable(DateTime.now()))();
} }

View File

@ -447,29 +447,79 @@ class $ActivitiesTable extends Activities
late final GeneratedColumn<String> title = GeneratedColumn<String>( late final GeneratedColumn<String> title = GeneratedColumn<String>(
'title', aliasedName, false, 'title', aliasedName, false,
additionalChecks: additionalChecks:
GeneratedColumn.checkTextLength(minTextLength: 3, maxTextLength: 32), GeneratedColumn.checkTextLength(minTextLength: 3, maxTextLength: 100),
type: DriftSqlType.string, type: DriftSqlType.string,
requiredDuringInsert: true); requiredDuringInsert: true);
static const VerificationMeta _typeMeta = const VerificationMeta('type'); static const VerificationMeta _typeMeta = const VerificationMeta('type');
@override @override
late final GeneratedColumnWithTypeConverter<ActivityType, String> type = late final GeneratedColumnWithTypeConverter<ActivityType?, String> type =
GeneratedColumn<String>('type', aliasedName, false, GeneratedColumn<String>('type', aliasedName, true,
type: DriftSqlType.string, requiredDuringInsert: true) type: DriftSqlType.string, requiredDuringInsert: false)
.withConverter<ActivityType>($ActivitiesTable.$convertertype); .withConverter<ActivityType?>($ActivitiesTable.$convertertypen);
static const VerificationMeta _descriptionMeta = static const VerificationMeta _descriptionMeta =
const VerificationMeta('description'); const VerificationMeta('description');
@override @override
late final GeneratedColumn<String> description = GeneratedColumn<String>( late final GeneratedColumn<String> description = GeneratedColumn<String>(
'body', aliasedName, false, 'body', aliasedName, true,
type: DriftSqlType.string, requiredDuringInsert: true); type: DriftSqlType.string, requiredDuringInsert: false);
static const VerificationMeta _categoryMeta = static const VerificationMeta _categoryMeta =
const VerificationMeta('category'); const VerificationMeta('category');
@override @override
late final GeneratedColumnWithTypeConverter<ActivityCategories, String> late final GeneratedColumnWithTypeConverter<ActivityCategories?, String>
category = GeneratedColumn<String>('category', aliasedName, false, category = GeneratedColumn<String>('category', aliasedName, true,
type: DriftSqlType.string, requiredDuringInsert: true) type: DriftSqlType.string, requiredDuringInsert: false)
.withConverter<ActivityCategories>( .withConverter<ActivityCategories?>(
$ActivitiesTable.$convertercategory); $ActivitiesTable.$convertercategoryn);
static const VerificationMeta _forceMeta = const VerificationMeta('force');
@override
late final GeneratedColumn<String> force = GeneratedColumn<String>(
'force', aliasedName, true,
type: DriftSqlType.string, requiredDuringInsert: false);
static const VerificationMeta _levelMeta = const VerificationMeta('level');
@override
late final GeneratedColumnWithTypeConverter<ActivityLevel?, String> level =
GeneratedColumn<String>('level', aliasedName, true,
type: DriftSqlType.string, requiredDuringInsert: false)
.withConverter<ActivityLevel?>($ActivitiesTable.$converterleveln);
static const VerificationMeta _mechanicMeta =
const VerificationMeta('mechanic');
@override
late final GeneratedColumnWithTypeConverter<ActivityMechanic?, String>
mechanic = GeneratedColumn<String>('mechanic', aliasedName, true,
type: DriftSqlType.string, requiredDuringInsert: false)
.withConverter<ActivityMechanic?>(
$ActivitiesTable.$convertermechanicn);
static const VerificationMeta _equipmentMeta =
const VerificationMeta('equipment');
@override
late final GeneratedColumnWithTypeConverter<ActivityEquipment?, String>
equipment = GeneratedColumn<String>('equipment', aliasedName, true,
type: DriftSqlType.string, requiredDuringInsert: false)
.withConverter<ActivityEquipment?>(
$ActivitiesTable.$converterequipmentn);
static const VerificationMeta _primaryMusclesMeta =
const VerificationMeta('primaryMuscles');
@override
late final GeneratedColumnWithTypeConverter<ActivityMuscle?, String>
primaryMuscles = GeneratedColumn<String>(
'primary_muscles', aliasedName, true,
type: DriftSqlType.string, requiredDuringInsert: false)
.withConverter<ActivityMuscle?>(
$ActivitiesTable.$converterprimaryMusclesn);
static const VerificationMeta _secondaryMusclesMeta =
const VerificationMeta('secondaryMuscles');
@override
late final GeneratedColumnWithTypeConverter<ActivityMuscle?, String>
secondaryMuscles = GeneratedColumn<String>(
'secondary_muscles', aliasedName, true,
type: DriftSqlType.string, requiredDuringInsert: false)
.withConverter<ActivityMuscle?>(
$ActivitiesTable.$convertersecondaryMusclesn);
static const VerificationMeta _imagesMeta = const VerificationMeta('images');
@override
late final GeneratedColumn<String> images = GeneratedColumn<String>(
'images', aliasedName, true,
type: DriftSqlType.string, requiredDuringInsert: false);
static const VerificationMeta _createdAtMeta = static const VerificationMeta _createdAtMeta =
const VerificationMeta('createdAt'); const VerificationMeta('createdAt');
@override @override
@ -479,8 +529,21 @@ class $ActivitiesTable extends Activities
requiredDuringInsert: false, requiredDuringInsert: false,
defaultValue: Variable(DateTime.now())); defaultValue: Variable(DateTime.now()));
@override @override
List<GeneratedColumn> get $columns => List<GeneratedColumn> get $columns => [
[id, title, type, description, category, createdAt]; id,
title,
type,
description,
category,
force,
level,
mechanic,
equipment,
primaryMuscles,
secondaryMuscles,
images,
createdAt
];
@override @override
String get aliasedName => _alias ?? actualTableName; String get aliasedName => _alias ?? actualTableName;
@override @override
@ -504,10 +567,21 @@ class $ActivitiesTable extends Activities
if (data.containsKey('body')) { if (data.containsKey('body')) {
context.handle(_descriptionMeta, context.handle(_descriptionMeta,
description.isAcceptableOrUnknown(data['body']!, _descriptionMeta)); description.isAcceptableOrUnknown(data['body']!, _descriptionMeta));
} else if (isInserting) {
context.missing(_descriptionMeta);
} }
context.handle(_categoryMeta, const VerificationResult.success()); context.handle(_categoryMeta, const VerificationResult.success());
if (data.containsKey('force')) {
context.handle(
_forceMeta, force.isAcceptableOrUnknown(data['force']!, _forceMeta));
}
context.handle(_levelMeta, const VerificationResult.success());
context.handle(_mechanicMeta, const VerificationResult.success());
context.handle(_equipmentMeta, const VerificationResult.success());
context.handle(_primaryMusclesMeta, const VerificationResult.success());
context.handle(_secondaryMusclesMeta, const VerificationResult.success());
if (data.containsKey('images')) {
context.handle(_imagesMeta,
images.isAcceptableOrUnknown(data['images']!, _imagesMeta));
}
if (data.containsKey('created_at')) { if (data.containsKey('created_at')) {
context.handle(_createdAtMeta, context.handle(_createdAtMeta,
createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta)); createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta));
@ -525,13 +599,33 @@ class $ActivitiesTable extends Activities
.read(DriftSqlType.int, data['${effectivePrefix}id'])!, .read(DriftSqlType.int, data['${effectivePrefix}id'])!,
title: attachedDatabase.typeMapping title: attachedDatabase.typeMapping
.read(DriftSqlType.string, data['${effectivePrefix}title'])!, .read(DriftSqlType.string, data['${effectivePrefix}title'])!,
type: $ActivitiesTable.$convertertype.fromSql(attachedDatabase.typeMapping type: $ActivitiesTable.$convertertypen.fromSql(attachedDatabase
.read(DriftSqlType.string, data['${effectivePrefix}type'])!),
description: attachedDatabase.typeMapping
.read(DriftSqlType.string, data['${effectivePrefix}body'])!,
category: $ActivitiesTable.$convertercategory.fromSql(attachedDatabase
.typeMapping .typeMapping
.read(DriftSqlType.string, data['${effectivePrefix}category'])!), .read(DriftSqlType.string, data['${effectivePrefix}type'])),
description: attachedDatabase.typeMapping
.read(DriftSqlType.string, data['${effectivePrefix}body']),
category: $ActivitiesTable.$convertercategoryn.fromSql(attachedDatabase
.typeMapping
.read(DriftSqlType.string, data['${effectivePrefix}category'])),
force: attachedDatabase.typeMapping
.read(DriftSqlType.string, data['${effectivePrefix}force']),
level: $ActivitiesTable.$converterleveln.fromSql(attachedDatabase
.typeMapping
.read(DriftSqlType.string, data['${effectivePrefix}level'])),
mechanic: $ActivitiesTable.$convertermechanicn.fromSql(attachedDatabase
.typeMapping
.read(DriftSqlType.string, data['${effectivePrefix}mechanic'])),
equipment: $ActivitiesTable.$converterequipmentn.fromSql(attachedDatabase
.typeMapping
.read(DriftSqlType.string, data['${effectivePrefix}equipment'])),
primaryMuscles: $ActivitiesTable.$converterprimaryMusclesn.fromSql(
attachedDatabase.typeMapping.read(
DriftSqlType.string, data['${effectivePrefix}primary_muscles'])),
secondaryMuscles: $ActivitiesTable.$convertersecondaryMusclesn.fromSql(
attachedDatabase.typeMapping.read(DriftSqlType.string,
data['${effectivePrefix}secondary_muscles'])),
images: attachedDatabase.typeMapping
.read(DriftSqlType.string, data['${effectivePrefix}images']),
createdAt: attachedDatabase.typeMapping createdAt: attachedDatabase.typeMapping
.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!,
); );
@ -544,38 +638,110 @@ class $ActivitiesTable extends Activities
static JsonTypeConverter2<ActivityType, String, String> $convertertype = static JsonTypeConverter2<ActivityType, String, String> $convertertype =
const EnumNameConverter<ActivityType>(ActivityType.values); const EnumNameConverter<ActivityType>(ActivityType.values);
static JsonTypeConverter2<ActivityType?, String?, String?> $convertertypen =
JsonTypeConverter2.asNullable($convertertype);
static JsonTypeConverter2<ActivityCategories, String, String> static JsonTypeConverter2<ActivityCategories, String, String>
$convertercategory = $convertercategory =
const EnumNameConverter<ActivityCategories>(ActivityCategories.values); const EnumNameConverter<ActivityCategories>(ActivityCategories.values);
static JsonTypeConverter2<ActivityCategories?, String?, String?>
$convertercategoryn = JsonTypeConverter2.asNullable($convertercategory);
static JsonTypeConverter2<ActivityLevel, String, String> $converterlevel =
const EnumNameConverter<ActivityLevel>(ActivityLevel.values);
static JsonTypeConverter2<ActivityLevel?, String?, String?> $converterleveln =
JsonTypeConverter2.asNullable($converterlevel);
static JsonTypeConverter2<ActivityMechanic, String, String>
$convertermechanic =
const EnumNameConverter<ActivityMechanic>(ActivityMechanic.values);
static JsonTypeConverter2<ActivityMechanic?, String?, String?>
$convertermechanicn = JsonTypeConverter2.asNullable($convertermechanic);
static JsonTypeConverter2<ActivityEquipment, String, String>
$converterequipment =
const EnumNameConverter<ActivityEquipment>(ActivityEquipment.values);
static JsonTypeConverter2<ActivityEquipment?, String?, String?>
$converterequipmentn = JsonTypeConverter2.asNullable($converterequipment);
static JsonTypeConverter2<ActivityMuscle, String, String>
$converterprimaryMuscles =
const EnumNameConverter<ActivityMuscle>(ActivityMuscle.values);
static JsonTypeConverter2<ActivityMuscle?, String?, String?>
$converterprimaryMusclesn =
JsonTypeConverter2.asNullable($converterprimaryMuscles);
static JsonTypeConverter2<ActivityMuscle, String, String>
$convertersecondaryMuscles =
const EnumNameConverter<ActivityMuscle>(ActivityMuscle.values);
static JsonTypeConverter2<ActivityMuscle?, String?, String?>
$convertersecondaryMusclesn =
JsonTypeConverter2.asNullable($convertersecondaryMuscles);
} }
class Activity extends DataClass implements Insertable<Activity> { class Activity extends DataClass implements Insertable<Activity> {
final int id; final int id;
final String title; final String title;
final ActivityType type; final ActivityType? type;
final String description; final String? description;
final ActivityCategories category; final ActivityCategories? category;
final String? force;
final ActivityLevel? level;
final ActivityMechanic? mechanic;
final ActivityEquipment? equipment;
final ActivityMuscle? primaryMuscles;
final ActivityMuscle? secondaryMuscles;
final String? images;
final DateTime createdAt; final DateTime createdAt;
const Activity( const Activity(
{required this.id, {required this.id,
required this.title, required this.title,
required this.type, this.type,
required this.description, this.description,
required this.category, this.category,
this.force,
this.level,
this.mechanic,
this.equipment,
this.primaryMuscles,
this.secondaryMuscles,
this.images,
required this.createdAt}); required this.createdAt});
@override @override
Map<String, Expression> toColumns(bool nullToAbsent) { Map<String, Expression> toColumns(bool nullToAbsent) {
final map = <String, Expression>{}; final map = <String, Expression>{};
map['id'] = Variable<int>(id); map['id'] = Variable<int>(id);
map['title'] = Variable<String>(title); map['title'] = Variable<String>(title);
{ if (!nullToAbsent || type != null) {
map['type'] = map['type'] =
Variable<String>($ActivitiesTable.$convertertype.toSql(type)); Variable<String>($ActivitiesTable.$convertertypen.toSql(type));
} }
if (!nullToAbsent || description != null) {
map['body'] = Variable<String>(description); map['body'] = Variable<String>(description);
{ }
map['category'] = if (!nullToAbsent || category != null) {
Variable<String>($ActivitiesTable.$convertercategory.toSql(category)); map['category'] = Variable<String>(
$ActivitiesTable.$convertercategoryn.toSql(category));
}
if (!nullToAbsent || force != null) {
map['force'] = Variable<String>(force);
}
if (!nullToAbsent || level != null) {
map['level'] =
Variable<String>($ActivitiesTable.$converterleveln.toSql(level));
}
if (!nullToAbsent || mechanic != null) {
map['mechanic'] = Variable<String>(
$ActivitiesTable.$convertermechanicn.toSql(mechanic));
}
if (!nullToAbsent || equipment != null) {
map['equipment'] = Variable<String>(
$ActivitiesTable.$converterequipmentn.toSql(equipment));
}
if (!nullToAbsent || primaryMuscles != null) {
map['primary_muscles'] = Variable<String>(
$ActivitiesTable.$converterprimaryMusclesn.toSql(primaryMuscles));
}
if (!nullToAbsent || secondaryMuscles != null) {
map['secondary_muscles'] = Variable<String>(
$ActivitiesTable.$convertersecondaryMusclesn.toSql(secondaryMuscles));
}
if (!nullToAbsent || images != null) {
map['images'] = Variable<String>(images);
} }
map['created_at'] = Variable<DateTime>(createdAt); map['created_at'] = Variable<DateTime>(createdAt);
return map; return map;
@ -585,9 +751,31 @@ class Activity extends DataClass implements Insertable<Activity> {
return ActivitiesCompanion( return ActivitiesCompanion(
id: Value(id), id: Value(id),
title: Value(title), title: Value(title),
type: Value(type), type: type == null && nullToAbsent ? const Value.absent() : Value(type),
description: Value(description), description: description == null && nullToAbsent
category: Value(category), ? const Value.absent()
: Value(description),
category: category == null && nullToAbsent
? const Value.absent()
: Value(category),
force:
force == null && nullToAbsent ? const Value.absent() : Value(force),
level:
level == null && nullToAbsent ? const Value.absent() : Value(level),
mechanic: mechanic == null && nullToAbsent
? const Value.absent()
: Value(mechanic),
equipment: equipment == null && nullToAbsent
? const Value.absent()
: Value(equipment),
primaryMuscles: primaryMuscles == null && nullToAbsent
? const Value.absent()
: Value(primaryMuscles),
secondaryMuscles: secondaryMuscles == null && nullToAbsent
? const Value.absent()
: Value(secondaryMuscles),
images:
images == null && nullToAbsent ? const Value.absent() : Value(images),
createdAt: Value(createdAt), createdAt: Value(createdAt),
); );
} }
@ -598,11 +786,23 @@ class Activity extends DataClass implements Insertable<Activity> {
return Activity( return Activity(
id: serializer.fromJson<int>(json['id']), id: serializer.fromJson<int>(json['id']),
title: serializer.fromJson<String>(json['title']), title: serializer.fromJson<String>(json['title']),
type: $ActivitiesTable.$convertertype type: $ActivitiesTable.$convertertypen
.fromJson(serializer.fromJson<String>(json['type'])), .fromJson(serializer.fromJson<String?>(json['type'])),
description: serializer.fromJson<String>(json['description']), description: serializer.fromJson<String?>(json['description']),
category: $ActivitiesTable.$convertercategory category: $ActivitiesTable.$convertercategoryn
.fromJson(serializer.fromJson<String>(json['category'])), .fromJson(serializer.fromJson<String?>(json['category'])),
force: serializer.fromJson<String?>(json['force']),
level: $ActivitiesTable.$converterleveln
.fromJson(serializer.fromJson<String?>(json['level'])),
mechanic: $ActivitiesTable.$convertermechanicn
.fromJson(serializer.fromJson<String?>(json['mechanic'])),
equipment: $ActivitiesTable.$converterequipmentn
.fromJson(serializer.fromJson<String?>(json['equipment'])),
primaryMuscles: $ActivitiesTable.$converterprimaryMusclesn
.fromJson(serializer.fromJson<String?>(json['primaryMuscles'])),
secondaryMuscles: $ActivitiesTable.$convertersecondaryMusclesn
.fromJson(serializer.fromJson<String?>(json['secondaryMuscles'])),
images: serializer.fromJson<String?>(json['images']),
createdAt: serializer.fromJson<DateTime>(json['createdAt']), createdAt: serializer.fromJson<DateTime>(json['createdAt']),
); );
} }
@ -613,10 +813,23 @@ class Activity extends DataClass implements Insertable<Activity> {
'id': serializer.toJson<int>(id), 'id': serializer.toJson<int>(id),
'title': serializer.toJson<String>(title), 'title': serializer.toJson<String>(title),
'type': serializer 'type': serializer
.toJson<String>($ActivitiesTable.$convertertype.toJson(type)), .toJson<String?>($ActivitiesTable.$convertertypen.toJson(type)),
'description': serializer.toJson<String>(description), 'description': serializer.toJson<String?>(description),
'category': serializer 'category': serializer.toJson<String?>(
.toJson<String>($ActivitiesTable.$convertercategory.toJson(category)), $ActivitiesTable.$convertercategoryn.toJson(category)),
'force': serializer.toJson<String?>(force),
'level': serializer
.toJson<String?>($ActivitiesTable.$converterleveln.toJson(level)),
'mechanic': serializer.toJson<String?>(
$ActivitiesTable.$convertermechanicn.toJson(mechanic)),
'equipment': serializer.toJson<String?>(
$ActivitiesTable.$converterequipmentn.toJson(equipment)),
'primaryMuscles': serializer.toJson<String?>(
$ActivitiesTable.$converterprimaryMusclesn.toJson(primaryMuscles)),
'secondaryMuscles': serializer.toJson<String?>($ActivitiesTable
.$convertersecondaryMusclesn
.toJson(secondaryMuscles)),
'images': serializer.toJson<String?>(images),
'createdAt': serializer.toJson<DateTime>(createdAt), 'createdAt': serializer.toJson<DateTime>(createdAt),
}; };
} }
@ -624,16 +837,33 @@ class Activity extends DataClass implements Insertable<Activity> {
Activity copyWith( Activity copyWith(
{int? id, {int? id,
String? title, String? title,
ActivityType? type, Value<ActivityType?> type = const Value.absent(),
String? description, Value<String?> description = const Value.absent(),
ActivityCategories? category, Value<ActivityCategories?> category = const Value.absent(),
Value<String?> force = const Value.absent(),
Value<ActivityLevel?> level = const Value.absent(),
Value<ActivityMechanic?> mechanic = const Value.absent(),
Value<ActivityEquipment?> equipment = const Value.absent(),
Value<ActivityMuscle?> primaryMuscles = const Value.absent(),
Value<ActivityMuscle?> secondaryMuscles = const Value.absent(),
Value<String?> images = const Value.absent(),
DateTime? createdAt}) => DateTime? createdAt}) =>
Activity( Activity(
id: id ?? this.id, id: id ?? this.id,
title: title ?? this.title, title: title ?? this.title,
type: type ?? this.type, type: type.present ? type.value : this.type,
description: description ?? this.description, description: description.present ? description.value : this.description,
category: category ?? this.category, category: category.present ? category.value : this.category,
force: force.present ? force.value : this.force,
level: level.present ? level.value : this.level,
mechanic: mechanic.present ? mechanic.value : this.mechanic,
equipment: equipment.present ? equipment.value : this.equipment,
primaryMuscles:
primaryMuscles.present ? primaryMuscles.value : this.primaryMuscles,
secondaryMuscles: secondaryMuscles.present
? secondaryMuscles.value
: this.secondaryMuscles,
images: images.present ? images.value : this.images,
createdAt: createdAt ?? this.createdAt, createdAt: createdAt ?? this.createdAt,
); );
Activity copyWithCompanion(ActivitiesCompanion data) { Activity copyWithCompanion(ActivitiesCompanion data) {
@ -644,6 +874,17 @@ class Activity extends DataClass implements Insertable<Activity> {
description: description:
data.description.present ? data.description.value : this.description, data.description.present ? data.description.value : this.description,
category: data.category.present ? data.category.value : this.category, category: data.category.present ? data.category.value : this.category,
force: data.force.present ? data.force.value : this.force,
level: data.level.present ? data.level.value : this.level,
mechanic: data.mechanic.present ? data.mechanic.value : this.mechanic,
equipment: data.equipment.present ? data.equipment.value : this.equipment,
primaryMuscles: data.primaryMuscles.present
? data.primaryMuscles.value
: this.primaryMuscles,
secondaryMuscles: data.secondaryMuscles.present
? data.secondaryMuscles.value
: this.secondaryMuscles,
images: data.images.present ? data.images.value : this.images,
createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt,
); );
} }
@ -656,14 +897,33 @@ class Activity extends DataClass implements Insertable<Activity> {
..write('type: $type, ') ..write('type: $type, ')
..write('description: $description, ') ..write('description: $description, ')
..write('category: $category, ') ..write('category: $category, ')
..write('force: $force, ')
..write('level: $level, ')
..write('mechanic: $mechanic, ')
..write('equipment: $equipment, ')
..write('primaryMuscles: $primaryMuscles, ')
..write('secondaryMuscles: $secondaryMuscles, ')
..write('images: $images, ')
..write('createdAt: $createdAt') ..write('createdAt: $createdAt')
..write(')')) ..write(')'))
.toString(); .toString();
} }
@override @override
int get hashCode => int get hashCode => Object.hash(
Object.hash(id, title, type, description, category, createdAt); id,
title,
type,
description,
category,
force,
level,
mechanic,
equipment,
primaryMuscles,
secondaryMuscles,
images,
createdAt);
@override @override
bool operator ==(Object other) => bool operator ==(Object other) =>
identical(this, other) || identical(this, other) ||
@ -673,15 +933,29 @@ class Activity extends DataClass implements Insertable<Activity> {
other.type == this.type && other.type == this.type &&
other.description == this.description && other.description == this.description &&
other.category == this.category && other.category == this.category &&
other.force == this.force &&
other.level == this.level &&
other.mechanic == this.mechanic &&
other.equipment == this.equipment &&
other.primaryMuscles == this.primaryMuscles &&
other.secondaryMuscles == this.secondaryMuscles &&
other.images == this.images &&
other.createdAt == this.createdAt); other.createdAt == this.createdAt);
} }
class ActivitiesCompanion extends UpdateCompanion<Activity> { class ActivitiesCompanion extends UpdateCompanion<Activity> {
final Value<int> id; final Value<int> id;
final Value<String> title; final Value<String> title;
final Value<ActivityType> type; final Value<ActivityType?> type;
final Value<String> description; final Value<String?> description;
final Value<ActivityCategories> category; final Value<ActivityCategories?> category;
final Value<String?> force;
final Value<ActivityLevel?> level;
final Value<ActivityMechanic?> mechanic;
final Value<ActivityEquipment?> equipment;
final Value<ActivityMuscle?> primaryMuscles;
final Value<ActivityMuscle?> secondaryMuscles;
final Value<String?> images;
final Value<DateTime> createdAt; final Value<DateTime> createdAt;
const ActivitiesCompanion({ const ActivitiesCompanion({
this.id = const Value.absent(), this.id = const Value.absent(),
@ -689,25 +963,43 @@ class ActivitiesCompanion extends UpdateCompanion<Activity> {
this.type = const Value.absent(), this.type = const Value.absent(),
this.description = const Value.absent(), this.description = const Value.absent(),
this.category = const Value.absent(), this.category = const Value.absent(),
this.force = const Value.absent(),
this.level = const Value.absent(),
this.mechanic = const Value.absent(),
this.equipment = const Value.absent(),
this.primaryMuscles = const Value.absent(),
this.secondaryMuscles = const Value.absent(),
this.images = const Value.absent(),
this.createdAt = const Value.absent(), this.createdAt = const Value.absent(),
}); });
ActivitiesCompanion.insert({ ActivitiesCompanion.insert({
this.id = const Value.absent(), this.id = const Value.absent(),
required String title, required String title,
required ActivityType type, this.type = const Value.absent(),
required String description, this.description = const Value.absent(),
required ActivityCategories category, this.category = const Value.absent(),
this.force = const Value.absent(),
this.level = const Value.absent(),
this.mechanic = const Value.absent(),
this.equipment = const Value.absent(),
this.primaryMuscles = const Value.absent(),
this.secondaryMuscles = const Value.absent(),
this.images = const Value.absent(),
this.createdAt = const Value.absent(), this.createdAt = const Value.absent(),
}) : title = Value(title), }) : title = Value(title);
type = Value(type),
description = Value(description),
category = Value(category);
static Insertable<Activity> custom({ static Insertable<Activity> custom({
Expression<int>? id, Expression<int>? id,
Expression<String>? title, Expression<String>? title,
Expression<String>? type, Expression<String>? type,
Expression<String>? description, Expression<String>? description,
Expression<String>? category, Expression<String>? category,
Expression<String>? force,
Expression<String>? level,
Expression<String>? mechanic,
Expression<String>? equipment,
Expression<String>? primaryMuscles,
Expression<String>? secondaryMuscles,
Expression<String>? images,
Expression<DateTime>? createdAt, Expression<DateTime>? createdAt,
}) { }) {
return RawValuesInsertable({ return RawValuesInsertable({
@ -716,6 +1008,13 @@ class ActivitiesCompanion extends UpdateCompanion<Activity> {
if (type != null) 'type': type, if (type != null) 'type': type,
if (description != null) 'body': description, if (description != null) 'body': description,
if (category != null) 'category': category, if (category != null) 'category': category,
if (force != null) 'force': force,
if (level != null) 'level': level,
if (mechanic != null) 'mechanic': mechanic,
if (equipment != null) 'equipment': equipment,
if (primaryMuscles != null) 'primary_muscles': primaryMuscles,
if (secondaryMuscles != null) 'secondary_muscles': secondaryMuscles,
if (images != null) 'images': images,
if (createdAt != null) 'created_at': createdAt, if (createdAt != null) 'created_at': createdAt,
}); });
} }
@ -723,9 +1022,16 @@ class ActivitiesCompanion extends UpdateCompanion<Activity> {
ActivitiesCompanion copyWith( ActivitiesCompanion copyWith(
{Value<int>? id, {Value<int>? id,
Value<String>? title, Value<String>? title,
Value<ActivityType>? type, Value<ActivityType?>? type,
Value<String>? description, Value<String?>? description,
Value<ActivityCategories>? category, Value<ActivityCategories?>? category,
Value<String?>? force,
Value<ActivityLevel?>? level,
Value<ActivityMechanic?>? mechanic,
Value<ActivityEquipment?>? equipment,
Value<ActivityMuscle?>? primaryMuscles,
Value<ActivityMuscle?>? secondaryMuscles,
Value<String?>? images,
Value<DateTime>? createdAt}) { Value<DateTime>? createdAt}) {
return ActivitiesCompanion( return ActivitiesCompanion(
id: id ?? this.id, id: id ?? this.id,
@ -733,6 +1039,13 @@ class ActivitiesCompanion extends UpdateCompanion<Activity> {
type: type ?? this.type, type: type ?? this.type,
description: description ?? this.description, description: description ?? this.description,
category: category ?? this.category, category: category ?? this.category,
force: force ?? this.force,
level: level ?? this.level,
mechanic: mechanic ?? this.mechanic,
equipment: equipment ?? this.equipment,
primaryMuscles: primaryMuscles ?? this.primaryMuscles,
secondaryMuscles: secondaryMuscles ?? this.secondaryMuscles,
images: images ?? this.images,
createdAt: createdAt ?? this.createdAt, createdAt: createdAt ?? this.createdAt,
); );
} }
@ -748,14 +1061,42 @@ class ActivitiesCompanion extends UpdateCompanion<Activity> {
} }
if (type.present) { if (type.present) {
map['type'] = map['type'] =
Variable<String>($ActivitiesTable.$convertertype.toSql(type.value)); Variable<String>($ActivitiesTable.$convertertypen.toSql(type.value));
} }
if (description.present) { if (description.present) {
map['body'] = Variable<String>(description.value); map['body'] = Variable<String>(description.value);
} }
if (category.present) { if (category.present) {
map['category'] = Variable<String>( map['category'] = Variable<String>(
$ActivitiesTable.$convertercategory.toSql(category.value)); $ActivitiesTable.$convertercategoryn.toSql(category.value));
}
if (force.present) {
map['force'] = Variable<String>(force.value);
}
if (level.present) {
map['level'] = Variable<String>(
$ActivitiesTable.$converterleveln.toSql(level.value));
}
if (mechanic.present) {
map['mechanic'] = Variable<String>(
$ActivitiesTable.$convertermechanicn.toSql(mechanic.value));
}
if (equipment.present) {
map['equipment'] = Variable<String>(
$ActivitiesTable.$converterequipmentn.toSql(equipment.value));
}
if (primaryMuscles.present) {
map['primary_muscles'] = Variable<String>($ActivitiesTable
.$converterprimaryMusclesn
.toSql(primaryMuscles.value));
}
if (secondaryMuscles.present) {
map['secondary_muscles'] = Variable<String>($ActivitiesTable
.$convertersecondaryMusclesn
.toSql(secondaryMuscles.value));
}
if (images.present) {
map['images'] = Variable<String>(images.value);
} }
if (createdAt.present) { if (createdAt.present) {
map['created_at'] = Variable<DateTime>(createdAt.value); map['created_at'] = Variable<DateTime>(createdAt.value);
@ -771,6 +1112,13 @@ class ActivitiesCompanion extends UpdateCompanion<Activity> {
..write('type: $type, ') ..write('type: $type, ')
..write('description: $description, ') ..write('description: $description, ')
..write('category: $category, ') ..write('category: $category, ')
..write('force: $force, ')
..write('level: $level, ')
..write('mechanic: $mechanic, ')
..write('equipment: $equipment, ')
..write('primaryMuscles: $primaryMuscles, ')
..write('secondaryMuscles: $secondaryMuscles, ')
..write('images: $images, ')
..write('createdAt: $createdAt') ..write('createdAt: $createdAt')
..write(')')) ..write(')'))
.toString(); .toString();
@ -2760,17 +3108,31 @@ typedef $$SessionsTableProcessedTableManager = ProcessedTableManager<
typedef $$ActivitiesTableCreateCompanionBuilder = ActivitiesCompanion Function({ typedef $$ActivitiesTableCreateCompanionBuilder = ActivitiesCompanion Function({
Value<int> id, Value<int> id,
required String title, required String title,
required ActivityType type, Value<ActivityType?> type,
required String description, Value<String?> description,
required ActivityCategories category, Value<ActivityCategories?> category,
Value<String?> force,
Value<ActivityLevel?> level,
Value<ActivityMechanic?> mechanic,
Value<ActivityEquipment?> equipment,
Value<ActivityMuscle?> primaryMuscles,
Value<ActivityMuscle?> secondaryMuscles,
Value<String?> images,
Value<DateTime> createdAt, Value<DateTime> createdAt,
}); });
typedef $$ActivitiesTableUpdateCompanionBuilder = ActivitiesCompanion Function({ typedef $$ActivitiesTableUpdateCompanionBuilder = ActivitiesCompanion Function({
Value<int> id, Value<int> id,
Value<String> title, Value<String> title,
Value<ActivityType> type, Value<ActivityType?> type,
Value<String> description, Value<String?> description,
Value<ActivityCategories> category, Value<ActivityCategories?> category,
Value<String?> force,
Value<ActivityLevel?> level,
Value<ActivityMechanic?> mechanic,
Value<ActivityEquipment?> equipment,
Value<ActivityMuscle?> primaryMuscles,
Value<ActivityMuscle?> secondaryMuscles,
Value<String?> images,
Value<DateTime> createdAt, Value<DateTime> createdAt,
}); });
@ -2828,19 +3190,51 @@ class $$ActivitiesTableFilterComposer
ColumnFilters<String> get title => $composableBuilder( ColumnFilters<String> get title => $composableBuilder(
column: $table.title, builder: (column) => ColumnFilters(column)); column: $table.title, builder: (column) => ColumnFilters(column));
ColumnWithTypeConverterFilters<ActivityType, ActivityType, String> get type => ColumnWithTypeConverterFilters<ActivityType?, ActivityType, String>
$composableBuilder( get type => $composableBuilder(
column: $table.type, column: $table.type,
builder: (column) => ColumnWithTypeConverterFilters(column)); builder: (column) => ColumnWithTypeConverterFilters(column));
ColumnFilters<String> get description => $composableBuilder( ColumnFilters<String> get description => $composableBuilder(
column: $table.description, builder: (column) => ColumnFilters(column)); column: $table.description, builder: (column) => ColumnFilters(column));
ColumnWithTypeConverterFilters<ActivityCategories, ActivityCategories, String> ColumnWithTypeConverterFilters<ActivityCategories?, ActivityCategories,
String>
get category => $composableBuilder( get category => $composableBuilder(
column: $table.category, column: $table.category,
builder: (column) => ColumnWithTypeConverterFilters(column)); builder: (column) => ColumnWithTypeConverterFilters(column));
ColumnFilters<String> get force => $composableBuilder(
column: $table.force, builder: (column) => ColumnFilters(column));
ColumnWithTypeConverterFilters<ActivityLevel?, ActivityLevel, String>
get level => $composableBuilder(
column: $table.level,
builder: (column) => ColumnWithTypeConverterFilters(column));
ColumnWithTypeConverterFilters<ActivityMechanic?, ActivityMechanic, String>
get mechanic => $composableBuilder(
column: $table.mechanic,
builder: (column) => ColumnWithTypeConverterFilters(column));
ColumnWithTypeConverterFilters<ActivityEquipment?, ActivityEquipment, String>
get equipment => $composableBuilder(
column: $table.equipment,
builder: (column) => ColumnWithTypeConverterFilters(column));
ColumnWithTypeConverterFilters<ActivityMuscle?, ActivityMuscle, String>
get primaryMuscles => $composableBuilder(
column: $table.primaryMuscles,
builder: (column) => ColumnWithTypeConverterFilters(column));
ColumnWithTypeConverterFilters<ActivityMuscle?, ActivityMuscle, String>
get secondaryMuscles => $composableBuilder(
column: $table.secondaryMuscles,
builder: (column) => ColumnWithTypeConverterFilters(column));
ColumnFilters<String> get images => $composableBuilder(
column: $table.images, builder: (column) => ColumnFilters(column));
ColumnFilters<DateTime> get createdAt => $composableBuilder( ColumnFilters<DateTime> get createdAt => $composableBuilder(
column: $table.createdAt, builder: (column) => ColumnFilters(column)); column: $table.createdAt, builder: (column) => ColumnFilters(column));
@ -2911,6 +3305,29 @@ class $$ActivitiesTableOrderingComposer
ColumnOrderings<String> get category => $composableBuilder( ColumnOrderings<String> get category => $composableBuilder(
column: $table.category, builder: (column) => ColumnOrderings(column)); column: $table.category, builder: (column) => ColumnOrderings(column));
ColumnOrderings<String> get force => $composableBuilder(
column: $table.force, builder: (column) => ColumnOrderings(column));
ColumnOrderings<String> get level => $composableBuilder(
column: $table.level, builder: (column) => ColumnOrderings(column));
ColumnOrderings<String> get mechanic => $composableBuilder(
column: $table.mechanic, builder: (column) => ColumnOrderings(column));
ColumnOrderings<String> get equipment => $composableBuilder(
column: $table.equipment, builder: (column) => ColumnOrderings(column));
ColumnOrderings<String> get primaryMuscles => $composableBuilder(
column: $table.primaryMuscles,
builder: (column) => ColumnOrderings(column));
ColumnOrderings<String> get secondaryMuscles => $composableBuilder(
column: $table.secondaryMuscles,
builder: (column) => ColumnOrderings(column));
ColumnOrderings<String> get images => $composableBuilder(
column: $table.images, builder: (column) => ColumnOrderings(column));
ColumnOrderings<DateTime> get createdAt => $composableBuilder( ColumnOrderings<DateTime> get createdAt => $composableBuilder(
column: $table.createdAt, builder: (column) => ColumnOrderings(column)); column: $table.createdAt, builder: (column) => ColumnOrderings(column));
} }
@ -2930,15 +3347,38 @@ class $$ActivitiesTableAnnotationComposer
GeneratedColumn<String> get title => GeneratedColumn<String> get title =>
$composableBuilder(column: $table.title, builder: (column) => column); $composableBuilder(column: $table.title, builder: (column) => column);
GeneratedColumnWithTypeConverter<ActivityType, String> get type => GeneratedColumnWithTypeConverter<ActivityType?, String> get type =>
$composableBuilder(column: $table.type, builder: (column) => column); $composableBuilder(column: $table.type, builder: (column) => column);
GeneratedColumn<String> get description => $composableBuilder( GeneratedColumn<String> get description => $composableBuilder(
column: $table.description, builder: (column) => column); column: $table.description, builder: (column) => column);
GeneratedColumnWithTypeConverter<ActivityCategories, String> get category => GeneratedColumnWithTypeConverter<ActivityCategories?, String> get category =>
$composableBuilder(column: $table.category, builder: (column) => column); $composableBuilder(column: $table.category, builder: (column) => column);
GeneratedColumn<String> get force =>
$composableBuilder(column: $table.force, builder: (column) => column);
GeneratedColumnWithTypeConverter<ActivityLevel?, String> get level =>
$composableBuilder(column: $table.level, builder: (column) => column);
GeneratedColumnWithTypeConverter<ActivityMechanic?, String> get mechanic =>
$composableBuilder(column: $table.mechanic, builder: (column) => column);
GeneratedColumnWithTypeConverter<ActivityEquipment?, String> get equipment =>
$composableBuilder(column: $table.equipment, builder: (column) => column);
GeneratedColumnWithTypeConverter<ActivityMuscle?, String>
get primaryMuscles => $composableBuilder(
column: $table.primaryMuscles, builder: (column) => column);
GeneratedColumnWithTypeConverter<ActivityMuscle?, String>
get secondaryMuscles => $composableBuilder(
column: $table.secondaryMuscles, builder: (column) => column);
GeneratedColumn<String> get images =>
$composableBuilder(column: $table.images, builder: (column) => column);
GeneratedColumn<DateTime> get createdAt => GeneratedColumn<DateTime> get createdAt =>
$composableBuilder(column: $table.createdAt, builder: (column) => column); $composableBuilder(column: $table.createdAt, builder: (column) => column);
@ -3012,9 +3452,16 @@ class $$ActivitiesTableTableManager extends RootTableManager<
updateCompanionCallback: ({ updateCompanionCallback: ({
Value<int> id = const Value.absent(), Value<int> id = const Value.absent(),
Value<String> title = const Value.absent(), Value<String> title = const Value.absent(),
Value<ActivityType> type = const Value.absent(), Value<ActivityType?> type = const Value.absent(),
Value<String> description = const Value.absent(), Value<String?> description = const Value.absent(),
Value<ActivityCategories> category = const Value.absent(), Value<ActivityCategories?> category = const Value.absent(),
Value<String?> force = const Value.absent(),
Value<ActivityLevel?> level = const Value.absent(),
Value<ActivityMechanic?> mechanic = const Value.absent(),
Value<ActivityEquipment?> equipment = const Value.absent(),
Value<ActivityMuscle?> primaryMuscles = const Value.absent(),
Value<ActivityMuscle?> secondaryMuscles = const Value.absent(),
Value<String?> images = const Value.absent(),
Value<DateTime> createdAt = const Value.absent(), Value<DateTime> createdAt = const Value.absent(),
}) => }) =>
ActivitiesCompanion( ActivitiesCompanion(
@ -3023,14 +3470,28 @@ class $$ActivitiesTableTableManager extends RootTableManager<
type: type, type: type,
description: description, description: description,
category: category, category: category,
force: force,
level: level,
mechanic: mechanic,
equipment: equipment,
primaryMuscles: primaryMuscles,
secondaryMuscles: secondaryMuscles,
images: images,
createdAt: createdAt, createdAt: createdAt,
), ),
createCompanionCallback: ({ createCompanionCallback: ({
Value<int> id = const Value.absent(), Value<int> id = const Value.absent(),
required String title, required String title,
required ActivityType type, Value<ActivityType?> type = const Value.absent(),
required String description, Value<String?> description = const Value.absent(),
required ActivityCategories category, Value<ActivityCategories?> category = const Value.absent(),
Value<String?> force = const Value.absent(),
Value<ActivityLevel?> level = const Value.absent(),
Value<ActivityMechanic?> mechanic = const Value.absent(),
Value<ActivityEquipment?> equipment = const Value.absent(),
Value<ActivityMuscle?> primaryMuscles = const Value.absent(),
Value<ActivityMuscle?> secondaryMuscles = const Value.absent(),
Value<String?> images = const Value.absent(),
Value<DateTime> createdAt = const Value.absent(), Value<DateTime> createdAt = const Value.absent(),
}) => }) =>
ActivitiesCompanion.insert( ActivitiesCompanion.insert(
@ -3039,6 +3500,13 @@ class $$ActivitiesTableTableManager extends RootTableManager<
type: type, type: type,
description: description, description: description,
category: category, category: category,
force: force,
level: level,
mechanic: mechanic,
equipment: equipment,
primaryMuscles: primaryMuscles,
secondaryMuscles: secondaryMuscles,
images: images,
createdAt: createdAt, createdAt: createdAt,
), ),
withReferenceMapper: (p0) => p0 withReferenceMapper: (p0) => p0

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,7 @@
import 'dart:convert';
import 'dart:math'; import 'dart:math';
import 'package:dart_casing/dart_casing.dart';
import 'package:flutter/services.dart' as root_bundle;
import 'package:drift/drift.dart'; import 'package:drift/drift.dart';
import 'package:sendtrain/database/database.dart'; import 'package:sendtrain/database/database.dart';
@ -52,6 +54,93 @@ Future<void> seedDb(AppDatabase database) async {
final int totalMedia = 5; final int totalMedia = 5;
final random = Random(); final random = Random();
// we gotta build all the activities!
final jsondata =
await root_bundle.rootBundle.loadString('assets/exercises.json');
final exercises = json.decode(jsondata);
List<int> activityIds = [];
for (int i = 0; i < exercises.length; i++) {
var exercise = exercises[i];
var images = [];
if (exercise['images'] != null) {
for (int j = 0; j < exercise['images'].length; j++) {
var image = exercise['images'][j];
images.add(
"https://raw.githubusercontent.com/yuhonas/free-exercise-db/main/exercises/$image");
}
}
Map<Symbol, Value> payload = {
Symbol('title'): Value<String>(exercise['name']),
Symbol('description'): Value<String>(exercise['instructions'].toString()),
Symbol('force'): Value<String>(exercise['force'] ?? "")
};
// well this fucking sucks
if (exercise['category'] != null) {
payload[Symbol('type')] = Value<ActivityType>(ActivityType.values
.firstWhere((e) =>
e.toString() ==
"ActivityType.${Casing.camelCase(exercise['category'])}"));
}
if (exercise['level'] != null) {
payload[Symbol('level')] = Value<ActivityLevel>(ActivityLevel.values
.firstWhere((e) =>
e.toString() ==
"ActivityLevel.${Casing.camelCase(exercise['level'])}"));
}
if (exercise['mechanic'] != null) {
payload[Symbol('mechanic')] = Value<ActivityMechanic>(
ActivityMechanic.values.firstWhere((e) =>
e.toString() ==
"ActivityMechanic.${Casing.camelCase(exercise['mechanic'])}"));
}
if (exercise['equipment'] != null) {
payload[Symbol('equipment')] = Value<ActivityEquipment>(
ActivityEquipment.values.firstWhere((e) =>
e.toString() ==
"ActivityEquipment.${Casing.camelCase(exercise['equipment'])}"));
}
if (exercise['primaryMuscles'].isNotEmpty) {
payload[Symbol('primaryMuscles')] = Value<ActivityMuscle>(
ActivityMuscle.values.firstWhere((e) =>
e.toString() ==
"ActivityMuscle.${Casing.camelCase(exercise['primaryMuscles'].first)}"));
}
if (exercise['secondaryMuscles'].isNotEmpty) {
payload[Symbol('secondaryMuscles')] = Value<ActivityMuscle>(
ActivityMuscle.values.firstWhere((e) =>
e.toString() ==
"ActivityMuscle.${Casing.camelCase(exercise['secondaryMuscles'].first)}"));
}
activityIds.add(await database
.into(database.activities)
.insert(Function.apply(ActivitiesCompanion.new, [], payload))
.then((activityId) async {
for (int m = 0; m < images.length; m++) {
final mediaItem = images[m];
await database
.into(database.mediaItems)
.insert(MediaItemsCompanion.insert(
title: 'Media title $m',
description:
'Media description $m Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.',
reference: mediaItem,
type: MediaType.image))
.then((mediaId) async {
await database.into(database.objectMediaItems).insert(
ObjectMediaItemsCompanion.insert(
objectId: activityId,
mediaId: mediaId,
objectType: ObjectType.activities));
});
}
return activityId;
}));
}
// seed loop // seed loop
for (int i = 0; i < totalSessions; i++) { for (int i = 0; i < totalSessions; i++) {
// session things // session things
@ -67,23 +156,15 @@ Future<void> seedDb(AppDatabase database) async {
content: sessionValue[1], content: sessionValue[1],
status: status, status: status,
address: Value(sessionValue[2]), address: Value(sessionValue[2]),
achievements: Value("[\"achievement 1\", \"achievement 2\", \"achievement 3\"]"), achievements: Value(
"[\"achievement 1\", \"achievement 2\", \"achievement 3\"]"),
date: Value(DateTime.now()))) date: Value(DateTime.now())))
.then((sessionId) async { .then((sessionId) async {
// activities things // activities things
for (int j = 0; j <= random.nextInt(totalActivities); j++) { for (int j = 0; j <= random.nextInt(totalActivities); j++) {
await database int activityId = random.nextInt(activityIds.length);
.into(database.activities) activityIds.removeAt(activityId);
.insert(ActivitiesCompanion.insert(
title: "Test activity $j",
type: ActivityType
.values[random.nextInt(ActivityType.values.length)],
description:
"$j Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.",
category: ActivityCategories
.values[random.nextInt(ActivityCategories.values.length)]))
.then((activityId) async {
// session activity relationships
await database await database
.into(database.sessionActivities) .into(database.sessionActivities)
.insert(SessionActivitiesCompanion.insert( .insert(SessionActivitiesCompanion.insert(
@ -107,47 +188,8 @@ Future<void> seedDb(AppDatabase database) async {
await database.into(database.activityActions).insert( await database.into(database.activityActions).insert(
ActivityActionsCompanion.insert( ActivityActionsCompanion.insert(
activityId: activityId, actionId: actionId, position: k)); activityId: activityId, actionId: actionId, position: k));
for (int l = 0; l <= random.nextInt(totalMedia); l++) {
final mediaItem = mediaItems[random.nextInt(mediaItems.length)];
await database
.into(database.mediaItems)
.insert(MediaItemsCompanion.insert(
title: 'Media title $l',
description:
'Media description $l Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.',
reference: mediaItem[0],
type: mediaItem[1]))
.then((mediaId) async {
await database.into(database.objectMediaItems).insert(
ObjectMediaItemsCompanion.insert(
objectId: actionId,
mediaId: mediaId,
objectType: ObjectType.actions));
}); });
} }
});
}
for (int m = 0; m <= random.nextInt(totalMedia); m++) {
final mediaItem = mediaItems[random.nextInt(mediaItems.length)];
await database
.into(database.mediaItems)
.insert(MediaItemsCompanion.insert(
title: 'Media title $m',
description:
'Media description $m Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.',
reference: mediaItem[0],
type: mediaItem[1]))
.then((mediaId) async {
await database.into(database.objectMediaItems).insert(
ObjectMediaItemsCompanion.insert(
objectId: activityId,
mediaId: mediaId,
objectType: ObjectType.activities));
});
}
});
} }
for (int n = 0; n <= random.nextInt(totalMedia); n++) { for (int n = 0; n <= random.nextInt(totalMedia); n++) {

View File

@ -30,7 +30,7 @@ class ActivityFinderService {
// return ActivityCard(activity: activity, callback: callback); // return ActivityCard(activity: activity, callback: callback);
return ListTile( return ListTile(
title: Text(activity.title), title: Text(activity.title),
subtitle: Text(activity.description), subtitle: Text(activity.description ?? ""),
onTap: () { onTap: () {
if (callback != null) { if (callback != null) {
callback(); callback();

View File

@ -63,7 +63,7 @@ class ActivityCardState extends State<ActivityCard> {
}, },
), ),
subtitle: subtitle:
Text(maxLines: 2, widget.activity.description), Text(maxLines: 2, widget.activity.description ?? ""),
contentPadding: EdgeInsets.only(left: 13), contentPadding: EdgeInsets.only(left: 13),
trailing: Flex( trailing: Flex(
direction: Axis.vertical, direction: Axis.vertical,

View File

@ -86,8 +86,8 @@ class _ActivityViewState extends State<ActivityView> {
padding: const EdgeInsets.fromLTRB(10, 0, 0, 10), padding: const EdgeInsets.fromLTRB(10, 0, 0, 10),
child: Flex(direction: Axis.horizontal, children: [ child: Flex(direction: Axis.horizontal, children: [
ActivityViewCategories( ActivityViewCategories(
categories: [activity.category]), categories: activity.category != null ? [activity.category!] : []),
ActivityViewTypes(types: [activity.type]) ActivityViewTypes(types: [activity.type!])
])), ])),
Padding( Padding(
padding: const EdgeInsets.only( padding: const EdgeInsets.only(
@ -95,7 +95,7 @@ class _ActivityViewState extends State<ActivityView> {
child: Text( child: Text(
textAlign: TextAlign.left, textAlign: TextAlign.left,
style: const TextStyle(fontSize: 15), style: const TextStyle(fontSize: 15),
activity.description)), activity.description ?? "")),
const Padding( const Padding(
padding: EdgeInsets.fromLTRB(15, 20, 0, 10), padding: EdgeInsets.fromLTRB(15, 20, 0, 10),
child: Text( child: Text(

View File

@ -50,6 +50,7 @@ dependencies:
uuid: ^4.5.1 uuid: ^4.5.1
mime: ^2.0.0 mime: ^2.0.0
video_player: ^2.9.2 video_player: ^2.9.2
dart_casing: ^3.0.1
flutter_launcher_name: flutter_launcher_name:
name: "SendTrain" name: "SendTrain"
@ -86,6 +87,7 @@ flutter:
# - images/a_dot_ham.jpeg # - images/a_dot_ham.jpeg
assets: assets:
- assets/images/ - assets/images/
- assets/exercises.json
# An image asset can refer to one or more resolution-specific "variants", see # An image asset can refer to one or more resolution-specific "variants", see
# https://flutter.dev/assets-and-images/#resolution-aware # https://flutter.dev/assets-and-images/#resolution-aware

View File

@ -16,6 +16,12 @@ import 'schema_v10.dart' as v10;
import 'schema_v11.dart' as v11; import 'schema_v11.dart' as v11;
import 'schema_v12.dart' as v12; import 'schema_v12.dart' as v12;
import 'schema_v13.dart' as v13; import 'schema_v13.dart' as v13;
import 'schema_v14.dart' as v14;
import 'schema_v15.dart' as v15;
import 'schema_v16.dart' as v16;
import 'schema_v17.dart' as v17;
import 'schema_v18.dart' as v18;
import 'schema_v19.dart' as v19;
class GeneratedHelper implements SchemaInstantiationHelper { class GeneratedHelper implements SchemaInstantiationHelper {
@override @override
@ -47,10 +53,42 @@ class GeneratedHelper implements SchemaInstantiationHelper {
return v12.DatabaseAtV12(db); return v12.DatabaseAtV12(db);
case 13: case 13:
return v13.DatabaseAtV13(db); return v13.DatabaseAtV13(db);
case 14:
return v14.DatabaseAtV14(db);
case 15:
return v15.DatabaseAtV15(db);
case 16:
return v16.DatabaseAtV16(db);
case 17:
return v17.DatabaseAtV17(db);
case 18:
return v18.DatabaseAtV18(db);
case 19:
return v19.DatabaseAtV19(db);
default: default:
throw MissingSchemaException(version, versions); throw MissingSchemaException(version, versions);
} }
} }
static const versions = const [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]; static const versions = const [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19
];
} }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff