From 7969376dce84c11769f136a6757ef0d47a857fa6 Mon Sep 17 00:00:00 2001 From: Roland Geider Date: Fri, 24 Oct 2025 01:21:13 +0200 Subject: [PATCH] Test how feasible it is to load exercises via powersync as well --- lib/database/powersync/database.dart | 27 +- lib/database/powersync/database.g.dart | 4626 ++++++++++++++++- lib/database/powersync/tables/exercise.dart | 114 + lib/database/powersync/tables/language.dart | 12 + .../tables/weight.dart} | 0 lib/models/exercises/exercise.dart | 15 +- lib/models/exercises/exercise.g.dart | 12 +- lib/models/exercises/video.dart | 6 +- lib/models/exercises/video.g.dart | 4 +- lib/powersync.dart | 46 - lib/powersync/api_client.dart | 6 +- lib/powersync/schema.dart | 114 +- lib/providers/core_data.dart | 14 + lib/providers/core_data.g.dart | 55 + lib/providers/exercise_data.dart | 116 + lib/providers/exercise_data.g.dart | 100 + 16 files changed, 5194 insertions(+), 73 deletions(-) create mode 100644 lib/database/powersync/tables/exercise.dart create mode 100644 lib/database/powersync/tables/language.dart rename lib/database/{weight/database.dart => powersync/tables/weight.dart} (100%) delete mode 100644 lib/powersync.dart create mode 100644 lib/providers/core_data.dart create mode 100644 lib/providers/core_data.g.dart create mode 100644 lib/providers/exercise_data.dart create mode 100644 lib/providers/exercise_data.g.dart diff --git a/lib/database/powersync/database.dart b/lib/database/powersync/database.dart index 0a06b9a1..f3014f95 100644 --- a/lib/database/powersync/database.dart +++ b/lib/database/powersync/database.dart @@ -2,15 +2,40 @@ import 'package:drift/drift.dart'; import 'package:drift_sqlite_async/drift_sqlite_async.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:powersync/powersync.dart' show uuid; -import 'package:wger/database/weight/database.dart'; import 'package:wger/models/body_weight/weight_entry.dart'; +import 'package:wger/models/exercises/category.dart'; +import 'package:wger/models/exercises/equipment.dart'; +import 'package:wger/models/exercises/exercise.dart'; +import 'package:wger/models/exercises/image.dart'; +import 'package:wger/models/exercises/language.dart'; +import 'package:wger/models/exercises/muscle.dart'; +import 'package:wger/models/exercises/translation.dart'; +import 'package:wger/models/exercises/video.dart'; import 'powersync.dart'; +import 'tables/exercise.dart'; +import 'tables/language.dart'; +import 'tables/weight.dart'; part 'database.g.dart'; @DriftDatabase( tables: [ + // Core + LanguageTable, + + // Exercises + ExerciseTable, + ExerciseTranslationTable, + MuscleTable, + ExerciseMuscleM2N, + ExerciseSecondaryMuscleM2N, + EquipmentTable, + ExerciseCategoryTable, + ExerciseImageTable, + ExerciseVideoTable, + + // User data WeightEntryTable, ], //include: {'queries.drift'}, diff --git a/lib/database/powersync/database.g.dart b/lib/database/powersync/database.g.dart index 09976329..3f7bc64f 100644 --- a/lib/database/powersync/database.g.dart +++ b/lib/database/powersync/database.g.dart @@ -3,6 +3,2596 @@ part of 'database.dart'; // ignore_for_file: type=lint +class $LanguageTableTable extends LanguageTable with TableInfo<$LanguageTableTable, Language> { + @override + final GeneratedDatabase attachedDatabase; + final String? _alias; + $LanguageTableTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _idMeta = const VerificationMeta('id'); + @override + late final GeneratedColumn id = GeneratedColumn( + 'id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _shortNameMeta = const VerificationMeta( + 'shortName', + ); + @override + late final GeneratedColumn shortName = GeneratedColumn( + 'short_name', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _fullNameMeta = const VerificationMeta( + 'fullName', + ); + @override + late final GeneratedColumn fullName = GeneratedColumn( + 'full_name', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + @override + List get $columns => [id, shortName, fullName]; + @override + String get aliasedName => _alias ?? actualTableName; + @override + String get actualTableName => $name; + static const String $name = 'core_language'; + @override + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { + final context = VerificationContext(); + final data = instance.toColumns(true); + if (data.containsKey('id')) { + context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta)); + } else if (isInserting) { + context.missing(_idMeta); + } + if (data.containsKey('short_name')) { + context.handle( + _shortNameMeta, + shortName.isAcceptableOrUnknown(data['short_name']!, _shortNameMeta), + ); + } else if (isInserting) { + context.missing(_shortNameMeta); + } + if (data.containsKey('full_name')) { + context.handle( + _fullNameMeta, + fullName.isAcceptableOrUnknown(data['full_name']!, _fullNameMeta), + ); + } else if (isInserting) { + context.missing(_fullNameMeta); + } + return context; + } + + @override + Set get $primaryKey => const {}; + @override + Language map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return Language( + id: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}id'], + )!, + shortName: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}short_name'], + )!, + fullName: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}full_name'], + )!, + ); + } + + @override + $LanguageTableTable createAlias(String alias) { + return $LanguageTableTable(attachedDatabase, alias); + } +} + +class LanguageTableCompanion extends UpdateCompanion { + final Value id; + final Value shortName; + final Value fullName; + final Value rowid; + const LanguageTableCompanion({ + this.id = const Value.absent(), + this.shortName = const Value.absent(), + this.fullName = const Value.absent(), + this.rowid = const Value.absent(), + }); + LanguageTableCompanion.insert({ + required int id, + required String shortName, + required String fullName, + this.rowid = const Value.absent(), + }) : id = Value(id), + shortName = Value(shortName), + fullName = Value(fullName); + static Insertable custom({ + Expression? id, + Expression? shortName, + Expression? fullName, + Expression? rowid, + }) { + return RawValuesInsertable({ + if (id != null) 'id': id, + if (shortName != null) 'short_name': shortName, + if (fullName != null) 'full_name': fullName, + if (rowid != null) 'rowid': rowid, + }); + } + + LanguageTableCompanion copyWith({ + Value? id, + Value? shortName, + Value? fullName, + Value? rowid, + }) { + return LanguageTableCompanion( + id: id ?? this.id, + shortName: shortName ?? this.shortName, + fullName: fullName ?? this.fullName, + rowid: rowid ?? this.rowid, + ); + } + + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + if (id.present) { + map['id'] = Variable(id.value); + } + if (shortName.present) { + map['short_name'] = Variable(shortName.value); + } + if (fullName.present) { + map['full_name'] = Variable(fullName.value); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); + } + return map; + } + + @override + String toString() { + return (StringBuffer('LanguageTableCompanion(') + ..write('id: $id, ') + ..write('shortName: $shortName, ') + ..write('fullName: $fullName, ') + ..write('rowid: $rowid') + ..write(')')) + .toString(); + } +} + +class $ExerciseTableTable extends ExerciseTable with TableInfo<$ExerciseTableTable, Exercise> { + @override + final GeneratedDatabase attachedDatabase; + final String? _alias; + $ExerciseTableTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _idMeta = const VerificationMeta('id'); + @override + late final GeneratedColumn id = GeneratedColumn( + 'id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _uuidMeta = const VerificationMeta('uuid'); + @override + late final GeneratedColumn uuid = GeneratedColumn( + 'uuid', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _variationIdMeta = const VerificationMeta( + 'variationId', + ); + @override + late final GeneratedColumn variationId = GeneratedColumn( + 'variation_id', + aliasedName, + true, + type: DriftSqlType.int, + requiredDuringInsert: false, + ); + static const VerificationMeta _categoryIdMeta = const VerificationMeta( + 'categoryId', + ); + @override + late final GeneratedColumn categoryId = GeneratedColumn( + 'category_id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _createdMeta = const VerificationMeta( + 'created', + ); + @override + late final GeneratedColumn created = GeneratedColumn( + 'created', + aliasedName, + false, + type: DriftSqlType.dateTime, + requiredDuringInsert: true, + ); + static const VerificationMeta _lastUpdateMeta = const VerificationMeta( + 'lastUpdate', + ); + @override + late final GeneratedColumn lastUpdate = GeneratedColumn( + 'last_update', + aliasedName, + false, + type: DriftSqlType.dateTime, + requiredDuringInsert: true, + ); + @override + List get $columns => [ + id, + uuid, + variationId, + categoryId, + created, + lastUpdate, + ]; + @override + String get aliasedName => _alias ?? actualTableName; + @override + String get actualTableName => $name; + static const String $name = 'exercises_exercise'; + @override + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { + final context = VerificationContext(); + final data = instance.toColumns(true); + if (data.containsKey('id')) { + context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta)); + } else if (isInserting) { + context.missing(_idMeta); + } + if (data.containsKey('uuid')) { + context.handle( + _uuidMeta, + uuid.isAcceptableOrUnknown(data['uuid']!, _uuidMeta), + ); + } else if (isInserting) { + context.missing(_uuidMeta); + } + if (data.containsKey('variation_id')) { + context.handle( + _variationIdMeta, + variationId.isAcceptableOrUnknown( + data['variation_id']!, + _variationIdMeta, + ), + ); + } + if (data.containsKey('category_id')) { + context.handle( + _categoryIdMeta, + categoryId.isAcceptableOrUnknown(data['category_id']!, _categoryIdMeta), + ); + } else if (isInserting) { + context.missing(_categoryIdMeta); + } + if (data.containsKey('created')) { + context.handle( + _createdMeta, + created.isAcceptableOrUnknown(data['created']!, _createdMeta), + ); + } else if (isInserting) { + context.missing(_createdMeta); + } + if (data.containsKey('last_update')) { + context.handle( + _lastUpdateMeta, + lastUpdate.isAcceptableOrUnknown(data['last_update']!, _lastUpdateMeta), + ); + } else if (isInserting) { + context.missing(_lastUpdateMeta); + } + return context; + } + + @override + Set get $primaryKey => const {}; + @override + Exercise map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return Exercise( + id: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}id'], + )!, + uuid: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}uuid'], + )!, + created: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}created'], + )!, + lastUpdate: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}last_update'], + )!, + variationId: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}variation_id'], + ), + categoryId: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}category_id'], + )!, + ); + } + + @override + $ExerciseTableTable createAlias(String alias) { + return $ExerciseTableTable(attachedDatabase, alias); + } +} + +class ExerciseTableCompanion extends UpdateCompanion { + final Value id; + final Value uuid; + final Value variationId; + final Value categoryId; + final Value created; + final Value lastUpdate; + final Value rowid; + const ExerciseTableCompanion({ + this.id = const Value.absent(), + this.uuid = const Value.absent(), + this.variationId = const Value.absent(), + this.categoryId = const Value.absent(), + this.created = const Value.absent(), + this.lastUpdate = const Value.absent(), + this.rowid = const Value.absent(), + }); + ExerciseTableCompanion.insert({ + required int id, + required String uuid, + this.variationId = const Value.absent(), + required int categoryId, + required DateTime created, + required DateTime lastUpdate, + this.rowid = const Value.absent(), + }) : id = Value(id), + uuid = Value(uuid), + categoryId = Value(categoryId), + created = Value(created), + lastUpdate = Value(lastUpdate); + static Insertable custom({ + Expression? id, + Expression? uuid, + Expression? variationId, + Expression? categoryId, + Expression? created, + Expression? lastUpdate, + Expression? rowid, + }) { + return RawValuesInsertable({ + if (id != null) 'id': id, + if (uuid != null) 'uuid': uuid, + if (variationId != null) 'variation_id': variationId, + if (categoryId != null) 'category_id': categoryId, + if (created != null) 'created': created, + if (lastUpdate != null) 'last_update': lastUpdate, + if (rowid != null) 'rowid': rowid, + }); + } + + ExerciseTableCompanion copyWith({ + Value? id, + Value? uuid, + Value? variationId, + Value? categoryId, + Value? created, + Value? lastUpdate, + Value? rowid, + }) { + return ExerciseTableCompanion( + id: id ?? this.id, + uuid: uuid ?? this.uuid, + variationId: variationId ?? this.variationId, + categoryId: categoryId ?? this.categoryId, + created: created ?? this.created, + lastUpdate: lastUpdate ?? this.lastUpdate, + rowid: rowid ?? this.rowid, + ); + } + + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + if (id.present) { + map['id'] = Variable(id.value); + } + if (uuid.present) { + map['uuid'] = Variable(uuid.value); + } + if (variationId.present) { + map['variation_id'] = Variable(variationId.value); + } + if (categoryId.present) { + map['category_id'] = Variable(categoryId.value); + } + if (created.present) { + map['created'] = Variable(created.value); + } + if (lastUpdate.present) { + map['last_update'] = Variable(lastUpdate.value); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); + } + return map; + } + + @override + String toString() { + return (StringBuffer('ExerciseTableCompanion(') + ..write('id: $id, ') + ..write('uuid: $uuid, ') + ..write('variationId: $variationId, ') + ..write('categoryId: $categoryId, ') + ..write('created: $created, ') + ..write('lastUpdate: $lastUpdate, ') + ..write('rowid: $rowid') + ..write(')')) + .toString(); + } +} + +class $ExerciseTranslationTableTable extends ExerciseTranslationTable + with TableInfo<$ExerciseTranslationTableTable, Translation> { + @override + final GeneratedDatabase attachedDatabase; + final String? _alias; + $ExerciseTranslationTableTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _idMeta = const VerificationMeta('id'); + @override + late final GeneratedColumn id = GeneratedColumn( + 'id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _uuidMeta = const VerificationMeta('uuid'); + @override + late final GeneratedColumn uuid = GeneratedColumn( + 'uuid', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _exerciseIdMeta = const VerificationMeta( + 'exerciseId', + ); + @override + late final GeneratedColumn exerciseId = GeneratedColumn( + 'exercise_id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _languageIdMeta = const VerificationMeta( + 'languageId', + ); + @override + late final GeneratedColumn languageId = GeneratedColumn( + 'language_id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _nameMeta = const VerificationMeta('name'); + @override + late final GeneratedColumn name = GeneratedColumn( + 'name', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _descriptionMeta = const VerificationMeta( + 'description', + ); + @override + late final GeneratedColumn description = GeneratedColumn( + 'description', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _createdMeta = const VerificationMeta( + 'created', + ); + @override + late final GeneratedColumn created = GeneratedColumn( + 'created', + aliasedName, + false, + type: DriftSqlType.dateTime, + requiredDuringInsert: true, + ); + static const VerificationMeta _lastUpdateMeta = const VerificationMeta( + 'lastUpdate', + ); + @override + late final GeneratedColumn lastUpdate = GeneratedColumn( + 'last_update', + aliasedName, + false, + type: DriftSqlType.dateTime, + requiredDuringInsert: true, + ); + @override + List get $columns => [ + id, + uuid, + exerciseId, + languageId, + name, + description, + created, + lastUpdate, + ]; + @override + String get aliasedName => _alias ?? actualTableName; + @override + String get actualTableName => $name; + static const String $name = 'exercises_translation'; + @override + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { + final context = VerificationContext(); + final data = instance.toColumns(true); + if (data.containsKey('id')) { + context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta)); + } else if (isInserting) { + context.missing(_idMeta); + } + if (data.containsKey('uuid')) { + context.handle( + _uuidMeta, + uuid.isAcceptableOrUnknown(data['uuid']!, _uuidMeta), + ); + } else if (isInserting) { + context.missing(_uuidMeta); + } + if (data.containsKey('exercise_id')) { + context.handle( + _exerciseIdMeta, + exerciseId.isAcceptableOrUnknown(data['exercise_id']!, _exerciseIdMeta), + ); + } else if (isInserting) { + context.missing(_exerciseIdMeta); + } + if (data.containsKey('language_id')) { + context.handle( + _languageIdMeta, + languageId.isAcceptableOrUnknown(data['language_id']!, _languageIdMeta), + ); + } else if (isInserting) { + context.missing(_languageIdMeta); + } + if (data.containsKey('name')) { + context.handle( + _nameMeta, + name.isAcceptableOrUnknown(data['name']!, _nameMeta), + ); + } else if (isInserting) { + context.missing(_nameMeta); + } + if (data.containsKey('description')) { + context.handle( + _descriptionMeta, + description.isAcceptableOrUnknown( + data['description']!, + _descriptionMeta, + ), + ); + } else if (isInserting) { + context.missing(_descriptionMeta); + } + if (data.containsKey('created')) { + context.handle( + _createdMeta, + created.isAcceptableOrUnknown(data['created']!, _createdMeta), + ); + } else if (isInserting) { + context.missing(_createdMeta); + } + if (data.containsKey('last_update')) { + context.handle( + _lastUpdateMeta, + lastUpdate.isAcceptableOrUnknown(data['last_update']!, _lastUpdateMeta), + ); + } else if (isInserting) { + context.missing(_lastUpdateMeta); + } + return context; + } + + @override + Set get $primaryKey => const {}; + @override + Translation map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return Translation( + id: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}id'], + )!, + uuid: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}uuid'], + )!, + created: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}created'], + )!, + name: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}name'], + )!, + description: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}description'], + )!, + exerciseId: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}exercise_id'], + )!, + ); + } + + @override + $ExerciseTranslationTableTable createAlias(String alias) { + return $ExerciseTranslationTableTable(attachedDatabase, alias); + } +} + +class ExerciseTranslationTableCompanion extends UpdateCompanion { + final Value id; + final Value uuid; + final Value exerciseId; + final Value languageId; + final Value name; + final Value description; + final Value created; + final Value lastUpdate; + final Value rowid; + const ExerciseTranslationTableCompanion({ + this.id = const Value.absent(), + this.uuid = const Value.absent(), + this.exerciseId = const Value.absent(), + this.languageId = const Value.absent(), + this.name = const Value.absent(), + this.description = const Value.absent(), + this.created = const Value.absent(), + this.lastUpdate = const Value.absent(), + this.rowid = const Value.absent(), + }); + ExerciseTranslationTableCompanion.insert({ + required int id, + required String uuid, + required int exerciseId, + required int languageId, + required String name, + required String description, + required DateTime created, + required DateTime lastUpdate, + this.rowid = const Value.absent(), + }) : id = Value(id), + uuid = Value(uuid), + exerciseId = Value(exerciseId), + languageId = Value(languageId), + name = Value(name), + description = Value(description), + created = Value(created), + lastUpdate = Value(lastUpdate); + static Insertable custom({ + Expression? id, + Expression? uuid, + Expression? exerciseId, + Expression? languageId, + Expression? name, + Expression? description, + Expression? created, + Expression? lastUpdate, + Expression? rowid, + }) { + return RawValuesInsertable({ + if (id != null) 'id': id, + if (uuid != null) 'uuid': uuid, + if (exerciseId != null) 'exercise_id': exerciseId, + if (languageId != null) 'language_id': languageId, + if (name != null) 'name': name, + if (description != null) 'description': description, + if (created != null) 'created': created, + if (lastUpdate != null) 'last_update': lastUpdate, + if (rowid != null) 'rowid': rowid, + }); + } + + ExerciseTranslationTableCompanion copyWith({ + Value? id, + Value? uuid, + Value? exerciseId, + Value? languageId, + Value? name, + Value? description, + Value? created, + Value? lastUpdate, + Value? rowid, + }) { + return ExerciseTranslationTableCompanion( + id: id ?? this.id, + uuid: uuid ?? this.uuid, + exerciseId: exerciseId ?? this.exerciseId, + languageId: languageId ?? this.languageId, + name: name ?? this.name, + description: description ?? this.description, + created: created ?? this.created, + lastUpdate: lastUpdate ?? this.lastUpdate, + rowid: rowid ?? this.rowid, + ); + } + + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + if (id.present) { + map['id'] = Variable(id.value); + } + if (uuid.present) { + map['uuid'] = Variable(uuid.value); + } + if (exerciseId.present) { + map['exercise_id'] = Variable(exerciseId.value); + } + if (languageId.present) { + map['language_id'] = Variable(languageId.value); + } + if (name.present) { + map['name'] = Variable(name.value); + } + if (description.present) { + map['description'] = Variable(description.value); + } + if (created.present) { + map['created'] = Variable(created.value); + } + if (lastUpdate.present) { + map['last_update'] = Variable(lastUpdate.value); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); + } + return map; + } + + @override + String toString() { + return (StringBuffer('ExerciseTranslationTableCompanion(') + ..write('id: $id, ') + ..write('uuid: $uuid, ') + ..write('exerciseId: $exerciseId, ') + ..write('languageId: $languageId, ') + ..write('name: $name, ') + ..write('description: $description, ') + ..write('created: $created, ') + ..write('lastUpdate: $lastUpdate, ') + ..write('rowid: $rowid') + ..write(')')) + .toString(); + } +} + +class $MuscleTableTable extends MuscleTable with TableInfo<$MuscleTableTable, Muscle> { + @override + final GeneratedDatabase attachedDatabase; + final String? _alias; + $MuscleTableTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _idMeta = const VerificationMeta('id'); + @override + late final GeneratedColumn id = GeneratedColumn( + 'id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _nameMeta = const VerificationMeta('name'); + @override + late final GeneratedColumn name = GeneratedColumn( + 'name', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _nameEnMeta = const VerificationMeta('nameEn'); + @override + late final GeneratedColumn nameEn = GeneratedColumn( + 'name_en', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _isFrontMeta = const VerificationMeta( + 'isFront', + ); + @override + late final GeneratedColumn isFront = GeneratedColumn( + 'is_front', + aliasedName, + false, + type: DriftSqlType.bool, + requiredDuringInsert: true, + defaultConstraints: GeneratedColumn.constraintIsAlways( + 'CHECK ("is_front" IN (0, 1))', + ), + ); + @override + List get $columns => [id, name, nameEn, isFront]; + @override + String get aliasedName => _alias ?? actualTableName; + @override + String get actualTableName => $name; + static const String $name = 'exercises_muscle'; + @override + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { + final context = VerificationContext(); + final data = instance.toColumns(true); + if (data.containsKey('id')) { + context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta)); + } else if (isInserting) { + context.missing(_idMeta); + } + if (data.containsKey('name')) { + context.handle( + _nameMeta, + name.isAcceptableOrUnknown(data['name']!, _nameMeta), + ); + } else if (isInserting) { + context.missing(_nameMeta); + } + if (data.containsKey('name_en')) { + context.handle( + _nameEnMeta, + nameEn.isAcceptableOrUnknown(data['name_en']!, _nameEnMeta), + ); + } else if (isInserting) { + context.missing(_nameEnMeta); + } + if (data.containsKey('is_front')) { + context.handle( + _isFrontMeta, + isFront.isAcceptableOrUnknown(data['is_front']!, _isFrontMeta), + ); + } else if (isInserting) { + context.missing(_isFrontMeta); + } + return context; + } + + @override + Set get $primaryKey => const {}; + @override + Muscle map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return Muscle( + id: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}id'], + )!, + name: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}name'], + )!, + nameEn: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}name_en'], + )!, + isFront: attachedDatabase.typeMapping.read( + DriftSqlType.bool, + data['${effectivePrefix}is_front'], + )!, + ); + } + + @override + $MuscleTableTable createAlias(String alias) { + return $MuscleTableTable(attachedDatabase, alias); + } +} + +class MuscleTableCompanion extends UpdateCompanion { + final Value id; + final Value name; + final Value nameEn; + final Value isFront; + final Value rowid; + const MuscleTableCompanion({ + this.id = const Value.absent(), + this.name = const Value.absent(), + this.nameEn = const Value.absent(), + this.isFront = const Value.absent(), + this.rowid = const Value.absent(), + }); + MuscleTableCompanion.insert({ + required int id, + required String name, + required String nameEn, + required bool isFront, + this.rowid = const Value.absent(), + }) : id = Value(id), + name = Value(name), + nameEn = Value(nameEn), + isFront = Value(isFront); + static Insertable custom({ + Expression? id, + Expression? name, + Expression? nameEn, + Expression? isFront, + Expression? rowid, + }) { + return RawValuesInsertable({ + if (id != null) 'id': id, + if (name != null) 'name': name, + if (nameEn != null) 'name_en': nameEn, + if (isFront != null) 'is_front': isFront, + if (rowid != null) 'rowid': rowid, + }); + } + + MuscleTableCompanion copyWith({ + Value? id, + Value? name, + Value? nameEn, + Value? isFront, + Value? rowid, + }) { + return MuscleTableCompanion( + id: id ?? this.id, + name: name ?? this.name, + nameEn: nameEn ?? this.nameEn, + isFront: isFront ?? this.isFront, + rowid: rowid ?? this.rowid, + ); + } + + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + if (id.present) { + map['id'] = Variable(id.value); + } + if (name.present) { + map['name'] = Variable(name.value); + } + if (nameEn.present) { + map['name_en'] = Variable(nameEn.value); + } + if (isFront.present) { + map['is_front'] = Variable(isFront.value); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); + } + return map; + } + + @override + String toString() { + return (StringBuffer('MuscleTableCompanion(') + ..write('id: $id, ') + ..write('name: $name, ') + ..write('nameEn: $nameEn, ') + ..write('isFront: $isFront, ') + ..write('rowid: $rowid') + ..write(')')) + .toString(); + } +} + +class $ExerciseMuscleM2NTable extends ExerciseMuscleM2N + with TableInfo<$ExerciseMuscleM2NTable, ExerciseMuscleM2NData> { + @override + final GeneratedDatabase attachedDatabase; + final String? _alias; + $ExerciseMuscleM2NTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _idMeta = const VerificationMeta('id'); + @override + late final GeneratedColumn id = GeneratedColumn( + 'id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _exerciseIdMeta = const VerificationMeta( + 'exerciseId', + ); + @override + late final GeneratedColumn exerciseId = GeneratedColumn( + 'exercise_id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _muscleIdMeta = const VerificationMeta( + 'muscleId', + ); + @override + late final GeneratedColumn muscleId = GeneratedColumn( + 'muscle_id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + @override + List get $columns => [id, exerciseId, muscleId]; + @override + String get aliasedName => _alias ?? actualTableName; + @override + String get actualTableName => $name; + static const String $name = 'exercises_exercise_muscles'; + @override + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { + final context = VerificationContext(); + final data = instance.toColumns(true); + if (data.containsKey('id')) { + context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta)); + } else if (isInserting) { + context.missing(_idMeta); + } + if (data.containsKey('exercise_id')) { + context.handle( + _exerciseIdMeta, + exerciseId.isAcceptableOrUnknown(data['exercise_id']!, _exerciseIdMeta), + ); + } else if (isInserting) { + context.missing(_exerciseIdMeta); + } + if (data.containsKey('muscle_id')) { + context.handle( + _muscleIdMeta, + muscleId.isAcceptableOrUnknown(data['muscle_id']!, _muscleIdMeta), + ); + } else if (isInserting) { + context.missing(_muscleIdMeta); + } + return context; + } + + @override + Set get $primaryKey => const {}; + @override + ExerciseMuscleM2NData map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return ExerciseMuscleM2NData( + id: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}id'], + )!, + exerciseId: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}exercise_id'], + )!, + muscleId: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}muscle_id'], + )!, + ); + } + + @override + $ExerciseMuscleM2NTable createAlias(String alias) { + return $ExerciseMuscleM2NTable(attachedDatabase, alias); + } +} + +class ExerciseMuscleM2NData extends DataClass implements Insertable { + final int id; + final int exerciseId; + final int muscleId; + const ExerciseMuscleM2NData({ + required this.id, + required this.exerciseId, + required this.muscleId, + }); + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + map['id'] = Variable(id); + map['exercise_id'] = Variable(exerciseId); + map['muscle_id'] = Variable(muscleId); + return map; + } + + ExerciseMuscleM2NCompanion toCompanion(bool nullToAbsent) { + return ExerciseMuscleM2NCompanion( + id: Value(id), + exerciseId: Value(exerciseId), + muscleId: Value(muscleId), + ); + } + + factory ExerciseMuscleM2NData.fromJson( + Map json, { + ValueSerializer? serializer, + }) { + serializer ??= driftRuntimeOptions.defaultSerializer; + return ExerciseMuscleM2NData( + id: serializer.fromJson(json['id']), + exerciseId: serializer.fromJson(json['exerciseId']), + muscleId: serializer.fromJson(json['muscleId']), + ); + } + @override + Map toJson({ValueSerializer? serializer}) { + serializer ??= driftRuntimeOptions.defaultSerializer; + return { + 'id': serializer.toJson(id), + 'exerciseId': serializer.toJson(exerciseId), + 'muscleId': serializer.toJson(muscleId), + }; + } + + ExerciseMuscleM2NData copyWith({int? id, int? exerciseId, int? muscleId}) => + ExerciseMuscleM2NData( + id: id ?? this.id, + exerciseId: exerciseId ?? this.exerciseId, + muscleId: muscleId ?? this.muscleId, + ); + ExerciseMuscleM2NData copyWithCompanion(ExerciseMuscleM2NCompanion data) { + return ExerciseMuscleM2NData( + id: data.id.present ? data.id.value : this.id, + exerciseId: data.exerciseId.present ? data.exerciseId.value : this.exerciseId, + muscleId: data.muscleId.present ? data.muscleId.value : this.muscleId, + ); + } + + @override + String toString() { + return (StringBuffer('ExerciseMuscleM2NData(') + ..write('id: $id, ') + ..write('exerciseId: $exerciseId, ') + ..write('muscleId: $muscleId') + ..write(')')) + .toString(); + } + + @override + int get hashCode => Object.hash(id, exerciseId, muscleId); + @override + bool operator ==(Object other) => + identical(this, other) || + (other is ExerciseMuscleM2NData && + other.id == this.id && + other.exerciseId == this.exerciseId && + other.muscleId == this.muscleId); +} + +class ExerciseMuscleM2NCompanion extends UpdateCompanion { + final Value id; + final Value exerciseId; + final Value muscleId; + final Value rowid; + const ExerciseMuscleM2NCompanion({ + this.id = const Value.absent(), + this.exerciseId = const Value.absent(), + this.muscleId = const Value.absent(), + this.rowid = const Value.absent(), + }); + ExerciseMuscleM2NCompanion.insert({ + required int id, + required int exerciseId, + required int muscleId, + this.rowid = const Value.absent(), + }) : id = Value(id), + exerciseId = Value(exerciseId), + muscleId = Value(muscleId); + static Insertable custom({ + Expression? id, + Expression? exerciseId, + Expression? muscleId, + Expression? rowid, + }) { + return RawValuesInsertable({ + if (id != null) 'id': id, + if (exerciseId != null) 'exercise_id': exerciseId, + if (muscleId != null) 'muscle_id': muscleId, + if (rowid != null) 'rowid': rowid, + }); + } + + ExerciseMuscleM2NCompanion copyWith({ + Value? id, + Value? exerciseId, + Value? muscleId, + Value? rowid, + }) { + return ExerciseMuscleM2NCompanion( + id: id ?? this.id, + exerciseId: exerciseId ?? this.exerciseId, + muscleId: muscleId ?? this.muscleId, + rowid: rowid ?? this.rowid, + ); + } + + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + if (id.present) { + map['id'] = Variable(id.value); + } + if (exerciseId.present) { + map['exercise_id'] = Variable(exerciseId.value); + } + if (muscleId.present) { + map['muscle_id'] = Variable(muscleId.value); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); + } + return map; + } + + @override + String toString() { + return (StringBuffer('ExerciseMuscleM2NCompanion(') + ..write('id: $id, ') + ..write('exerciseId: $exerciseId, ') + ..write('muscleId: $muscleId, ') + ..write('rowid: $rowid') + ..write(')')) + .toString(); + } +} + +class $ExerciseSecondaryMuscleM2NTable extends ExerciseSecondaryMuscleM2N + with TableInfo<$ExerciseSecondaryMuscleM2NTable, ExerciseSecondaryMuscleM2NData> { + @override + final GeneratedDatabase attachedDatabase; + final String? _alias; + $ExerciseSecondaryMuscleM2NTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _idMeta = const VerificationMeta('id'); + @override + late final GeneratedColumn id = GeneratedColumn( + 'id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _exerciseIdMeta = const VerificationMeta( + 'exerciseId', + ); + @override + late final GeneratedColumn exerciseId = GeneratedColumn( + 'exercise_id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _muscleIdMeta = const VerificationMeta( + 'muscleId', + ); + @override + late final GeneratedColumn muscleId = GeneratedColumn( + 'muscle_id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + @override + List get $columns => [id, exerciseId, muscleId]; + @override + String get aliasedName => _alias ?? actualTableName; + @override + String get actualTableName => $name; + static const String $name = 'exercises_exercise_muscles_secondary'; + @override + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { + final context = VerificationContext(); + final data = instance.toColumns(true); + if (data.containsKey('id')) { + context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta)); + } else if (isInserting) { + context.missing(_idMeta); + } + if (data.containsKey('exercise_id')) { + context.handle( + _exerciseIdMeta, + exerciseId.isAcceptableOrUnknown(data['exercise_id']!, _exerciseIdMeta), + ); + } else if (isInserting) { + context.missing(_exerciseIdMeta); + } + if (data.containsKey('muscle_id')) { + context.handle( + _muscleIdMeta, + muscleId.isAcceptableOrUnknown(data['muscle_id']!, _muscleIdMeta), + ); + } else if (isInserting) { + context.missing(_muscleIdMeta); + } + return context; + } + + @override + Set get $primaryKey => const {}; + @override + ExerciseSecondaryMuscleM2NData map( + Map data, { + String? tablePrefix, + }) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return ExerciseSecondaryMuscleM2NData( + id: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}id'], + )!, + exerciseId: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}exercise_id'], + )!, + muscleId: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}muscle_id'], + )!, + ); + } + + @override + $ExerciseSecondaryMuscleM2NTable createAlias(String alias) { + return $ExerciseSecondaryMuscleM2NTable(attachedDatabase, alias); + } +} + +class ExerciseSecondaryMuscleM2NData extends DataClass + implements Insertable { + final int id; + final int exerciseId; + final int muscleId; + const ExerciseSecondaryMuscleM2NData({ + required this.id, + required this.exerciseId, + required this.muscleId, + }); + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + map['id'] = Variable(id); + map['exercise_id'] = Variable(exerciseId); + map['muscle_id'] = Variable(muscleId); + return map; + } + + ExerciseSecondaryMuscleM2NCompanion toCompanion(bool nullToAbsent) { + return ExerciseSecondaryMuscleM2NCompanion( + id: Value(id), + exerciseId: Value(exerciseId), + muscleId: Value(muscleId), + ); + } + + factory ExerciseSecondaryMuscleM2NData.fromJson( + Map json, { + ValueSerializer? serializer, + }) { + serializer ??= driftRuntimeOptions.defaultSerializer; + return ExerciseSecondaryMuscleM2NData( + id: serializer.fromJson(json['id']), + exerciseId: serializer.fromJson(json['exerciseId']), + muscleId: serializer.fromJson(json['muscleId']), + ); + } + @override + Map toJson({ValueSerializer? serializer}) { + serializer ??= driftRuntimeOptions.defaultSerializer; + return { + 'id': serializer.toJson(id), + 'exerciseId': serializer.toJson(exerciseId), + 'muscleId': serializer.toJson(muscleId), + }; + } + + ExerciseSecondaryMuscleM2NData copyWith({ + int? id, + int? exerciseId, + int? muscleId, + }) => ExerciseSecondaryMuscleM2NData( + id: id ?? this.id, + exerciseId: exerciseId ?? this.exerciseId, + muscleId: muscleId ?? this.muscleId, + ); + ExerciseSecondaryMuscleM2NData copyWithCompanion( + ExerciseSecondaryMuscleM2NCompanion data, + ) { + return ExerciseSecondaryMuscleM2NData( + id: data.id.present ? data.id.value : this.id, + exerciseId: data.exerciseId.present ? data.exerciseId.value : this.exerciseId, + muscleId: data.muscleId.present ? data.muscleId.value : this.muscleId, + ); + } + + @override + String toString() { + return (StringBuffer('ExerciseSecondaryMuscleM2NData(') + ..write('id: $id, ') + ..write('exerciseId: $exerciseId, ') + ..write('muscleId: $muscleId') + ..write(')')) + .toString(); + } + + @override + int get hashCode => Object.hash(id, exerciseId, muscleId); + @override + bool operator ==(Object other) => + identical(this, other) || + (other is ExerciseSecondaryMuscleM2NData && + other.id == this.id && + other.exerciseId == this.exerciseId && + other.muscleId == this.muscleId); +} + +class ExerciseSecondaryMuscleM2NCompanion extends UpdateCompanion { + final Value id; + final Value exerciseId; + final Value muscleId; + final Value rowid; + const ExerciseSecondaryMuscleM2NCompanion({ + this.id = const Value.absent(), + this.exerciseId = const Value.absent(), + this.muscleId = const Value.absent(), + this.rowid = const Value.absent(), + }); + ExerciseSecondaryMuscleM2NCompanion.insert({ + required int id, + required int exerciseId, + required int muscleId, + this.rowid = const Value.absent(), + }) : id = Value(id), + exerciseId = Value(exerciseId), + muscleId = Value(muscleId); + static Insertable custom({ + Expression? id, + Expression? exerciseId, + Expression? muscleId, + Expression? rowid, + }) { + return RawValuesInsertable({ + if (id != null) 'id': id, + if (exerciseId != null) 'exercise_id': exerciseId, + if (muscleId != null) 'muscle_id': muscleId, + if (rowid != null) 'rowid': rowid, + }); + } + + ExerciseSecondaryMuscleM2NCompanion copyWith({ + Value? id, + Value? exerciseId, + Value? muscleId, + Value? rowid, + }) { + return ExerciseSecondaryMuscleM2NCompanion( + id: id ?? this.id, + exerciseId: exerciseId ?? this.exerciseId, + muscleId: muscleId ?? this.muscleId, + rowid: rowid ?? this.rowid, + ); + } + + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + if (id.present) { + map['id'] = Variable(id.value); + } + if (exerciseId.present) { + map['exercise_id'] = Variable(exerciseId.value); + } + if (muscleId.present) { + map['muscle_id'] = Variable(muscleId.value); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); + } + return map; + } + + @override + String toString() { + return (StringBuffer('ExerciseSecondaryMuscleM2NCompanion(') + ..write('id: $id, ') + ..write('exerciseId: $exerciseId, ') + ..write('muscleId: $muscleId, ') + ..write('rowid: $rowid') + ..write(')')) + .toString(); + } +} + +class $EquipmentTableTable extends EquipmentTable with TableInfo<$EquipmentTableTable, Equipment> { + @override + final GeneratedDatabase attachedDatabase; + final String? _alias; + $EquipmentTableTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _idMeta = const VerificationMeta('id'); + @override + late final GeneratedColumn id = GeneratedColumn( + 'id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _nameMeta = const VerificationMeta('name'); + @override + late final GeneratedColumn name = GeneratedColumn( + 'name', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + @override + List get $columns => [id, name]; + @override + String get aliasedName => _alias ?? actualTableName; + @override + String get actualTableName => $name; + static const String $name = 'exercises_equipment'; + @override + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { + final context = VerificationContext(); + final data = instance.toColumns(true); + if (data.containsKey('id')) { + context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta)); + } else if (isInserting) { + context.missing(_idMeta); + } + if (data.containsKey('name')) { + context.handle( + _nameMeta, + name.isAcceptableOrUnknown(data['name']!, _nameMeta), + ); + } else if (isInserting) { + context.missing(_nameMeta); + } + return context; + } + + @override + Set get $primaryKey => const {}; + @override + Equipment map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return Equipment( + id: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}id'], + )!, + name: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}name'], + )!, + ); + } + + @override + $EquipmentTableTable createAlias(String alias) { + return $EquipmentTableTable(attachedDatabase, alias); + } +} + +class EquipmentTableCompanion extends UpdateCompanion { + final Value id; + final Value name; + final Value rowid; + const EquipmentTableCompanion({ + this.id = const Value.absent(), + this.name = const Value.absent(), + this.rowid = const Value.absent(), + }); + EquipmentTableCompanion.insert({ + required int id, + required String name, + this.rowid = const Value.absent(), + }) : id = Value(id), + name = Value(name); + static Insertable custom({ + Expression? id, + Expression? name, + Expression? rowid, + }) { + return RawValuesInsertable({ + if (id != null) 'id': id, + if (name != null) 'name': name, + if (rowid != null) 'rowid': rowid, + }); + } + + EquipmentTableCompanion copyWith({ + Value? id, + Value? name, + Value? rowid, + }) { + return EquipmentTableCompanion( + id: id ?? this.id, + name: name ?? this.name, + rowid: rowid ?? this.rowid, + ); + } + + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + if (id.present) { + map['id'] = Variable(id.value); + } + if (name.present) { + map['name'] = Variable(name.value); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); + } + return map; + } + + @override + String toString() { + return (StringBuffer('EquipmentTableCompanion(') + ..write('id: $id, ') + ..write('name: $name, ') + ..write('rowid: $rowid') + ..write(')')) + .toString(); + } +} + +class $ExerciseCategoryTableTable extends ExerciseCategoryTable + with TableInfo<$ExerciseCategoryTableTable, ExerciseCategory> { + @override + final GeneratedDatabase attachedDatabase; + final String? _alias; + $ExerciseCategoryTableTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _idMeta = const VerificationMeta('id'); + @override + late final GeneratedColumn id = GeneratedColumn( + 'id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _nameMeta = const VerificationMeta('name'); + @override + late final GeneratedColumn name = GeneratedColumn( + 'name', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + @override + List get $columns => [id, name]; + @override + String get aliasedName => _alias ?? actualTableName; + @override + String get actualTableName => $name; + static const String $name = 'exercises_exercisecategory'; + @override + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { + final context = VerificationContext(); + final data = instance.toColumns(true); + if (data.containsKey('id')) { + context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta)); + } else if (isInserting) { + context.missing(_idMeta); + } + if (data.containsKey('name')) { + context.handle( + _nameMeta, + name.isAcceptableOrUnknown(data['name']!, _nameMeta), + ); + } else if (isInserting) { + context.missing(_nameMeta); + } + return context; + } + + @override + Set get $primaryKey => const {}; + @override + ExerciseCategory map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return ExerciseCategory( + id: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}id'], + )!, + name: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}name'], + )!, + ); + } + + @override + $ExerciseCategoryTableTable createAlias(String alias) { + return $ExerciseCategoryTableTable(attachedDatabase, alias); + } +} + +class ExerciseCategoryTableCompanion extends UpdateCompanion { + final Value id; + final Value name; + final Value rowid; + const ExerciseCategoryTableCompanion({ + this.id = const Value.absent(), + this.name = const Value.absent(), + this.rowid = const Value.absent(), + }); + ExerciseCategoryTableCompanion.insert({ + required int id, + required String name, + this.rowid = const Value.absent(), + }) : id = Value(id), + name = Value(name); + static Insertable custom({ + Expression? id, + Expression? name, + Expression? rowid, + }) { + return RawValuesInsertable({ + if (id != null) 'id': id, + if (name != null) 'name': name, + if (rowid != null) 'rowid': rowid, + }); + } + + ExerciseCategoryTableCompanion copyWith({ + Value? id, + Value? name, + Value? rowid, + }) { + return ExerciseCategoryTableCompanion( + id: id ?? this.id, + name: name ?? this.name, + rowid: rowid ?? this.rowid, + ); + } + + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + if (id.present) { + map['id'] = Variable(id.value); + } + if (name.present) { + map['name'] = Variable(name.value); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); + } + return map; + } + + @override + String toString() { + return (StringBuffer('ExerciseCategoryTableCompanion(') + ..write('id: $id, ') + ..write('name: $name, ') + ..write('rowid: $rowid') + ..write(')')) + .toString(); + } +} + +class $ExerciseImageTableTable extends ExerciseImageTable + with TableInfo<$ExerciseImageTableTable, ExerciseImage> { + @override + final GeneratedDatabase attachedDatabase; + final String? _alias; + $ExerciseImageTableTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _idMeta = const VerificationMeta('id'); + @override + late final GeneratedColumn id = GeneratedColumn( + 'id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _uuidMeta = const VerificationMeta('uuid'); + @override + late final GeneratedColumn uuid = GeneratedColumn( + 'uuid', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _exerciseIdMeta = const VerificationMeta( + 'exerciseId', + ); + @override + late final GeneratedColumn exerciseId = GeneratedColumn( + 'exercise_id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _urlMeta = const VerificationMeta('url'); + @override + late final GeneratedColumn url = GeneratedColumn( + 'url', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _isMainMeta = const VerificationMeta('isMain'); + @override + late final GeneratedColumn isMain = GeneratedColumn( + 'is_main', + aliasedName, + false, + type: DriftSqlType.bool, + requiredDuringInsert: true, + defaultConstraints: GeneratedColumn.constraintIsAlways( + 'CHECK ("is_main" IN (0, 1))', + ), + ); + @override + List get $columns => [id, uuid, exerciseId, url, isMain]; + @override + String get aliasedName => _alias ?? actualTableName; + @override + String get actualTableName => $name; + static const String $name = 'exercises_exerciseimage'; + @override + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { + final context = VerificationContext(); + final data = instance.toColumns(true); + if (data.containsKey('id')) { + context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta)); + } else if (isInserting) { + context.missing(_idMeta); + } + if (data.containsKey('uuid')) { + context.handle( + _uuidMeta, + uuid.isAcceptableOrUnknown(data['uuid']!, _uuidMeta), + ); + } else if (isInserting) { + context.missing(_uuidMeta); + } + if (data.containsKey('exercise_id')) { + context.handle( + _exerciseIdMeta, + exerciseId.isAcceptableOrUnknown(data['exercise_id']!, _exerciseIdMeta), + ); + } else if (isInserting) { + context.missing(_exerciseIdMeta); + } + if (data.containsKey('url')) { + context.handle( + _urlMeta, + url.isAcceptableOrUnknown(data['url']!, _urlMeta), + ); + } else if (isInserting) { + context.missing(_urlMeta); + } + if (data.containsKey('is_main')) { + context.handle( + _isMainMeta, + isMain.isAcceptableOrUnknown(data['is_main']!, _isMainMeta), + ); + } else if (isInserting) { + context.missing(_isMainMeta); + } + return context; + } + + @override + Set get $primaryKey => const {}; + @override + ExerciseImage map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return ExerciseImage( + id: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}id'], + )!, + uuid: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}uuid'], + )!, + exerciseId: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}exercise_id'], + )!, + url: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}url'], + )!, + isMain: attachedDatabase.typeMapping.read( + DriftSqlType.bool, + data['${effectivePrefix}is_main'], + )!, + ); + } + + @override + $ExerciseImageTableTable createAlias(String alias) { + return $ExerciseImageTableTable(attachedDatabase, alias); + } +} + +class ExerciseImageTableCompanion extends UpdateCompanion { + final Value id; + final Value uuid; + final Value exerciseId; + final Value url; + final Value isMain; + final Value rowid; + const ExerciseImageTableCompanion({ + this.id = const Value.absent(), + this.uuid = const Value.absent(), + this.exerciseId = const Value.absent(), + this.url = const Value.absent(), + this.isMain = const Value.absent(), + this.rowid = const Value.absent(), + }); + ExerciseImageTableCompanion.insert({ + required int id, + required String uuid, + required int exerciseId, + required String url, + required bool isMain, + this.rowid = const Value.absent(), + }) : id = Value(id), + uuid = Value(uuid), + exerciseId = Value(exerciseId), + url = Value(url), + isMain = Value(isMain); + static Insertable custom({ + Expression? id, + Expression? uuid, + Expression? exerciseId, + Expression? url, + Expression? isMain, + Expression? rowid, + }) { + return RawValuesInsertable({ + if (id != null) 'id': id, + if (uuid != null) 'uuid': uuid, + if (exerciseId != null) 'exercise_id': exerciseId, + if (url != null) 'url': url, + if (isMain != null) 'is_main': isMain, + if (rowid != null) 'rowid': rowid, + }); + } + + ExerciseImageTableCompanion copyWith({ + Value? id, + Value? uuid, + Value? exerciseId, + Value? url, + Value? isMain, + Value? rowid, + }) { + return ExerciseImageTableCompanion( + id: id ?? this.id, + uuid: uuid ?? this.uuid, + exerciseId: exerciseId ?? this.exerciseId, + url: url ?? this.url, + isMain: isMain ?? this.isMain, + rowid: rowid ?? this.rowid, + ); + } + + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + if (id.present) { + map['id'] = Variable(id.value); + } + if (uuid.present) { + map['uuid'] = Variable(uuid.value); + } + if (exerciseId.present) { + map['exercise_id'] = Variable(exerciseId.value); + } + if (url.present) { + map['url'] = Variable(url.value); + } + if (isMain.present) { + map['is_main'] = Variable(isMain.value); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); + } + return map; + } + + @override + String toString() { + return (StringBuffer('ExerciseImageTableCompanion(') + ..write('id: $id, ') + ..write('uuid: $uuid, ') + ..write('exerciseId: $exerciseId, ') + ..write('url: $url, ') + ..write('isMain: $isMain, ') + ..write('rowid: $rowid') + ..write(')')) + .toString(); + } +} + +class $ExerciseVideoTableTable extends ExerciseVideoTable + with TableInfo<$ExerciseVideoTableTable, Video> { + @override + final GeneratedDatabase attachedDatabase; + final String? _alias; + $ExerciseVideoTableTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _idMeta = const VerificationMeta('id'); + @override + late final GeneratedColumn id = GeneratedColumn( + 'id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _uuidMeta = const VerificationMeta('uuid'); + @override + late final GeneratedColumn uuid = GeneratedColumn( + 'uuid', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _exerciseIdMeta = const VerificationMeta( + 'exerciseId', + ); + @override + late final GeneratedColumn exerciseId = GeneratedColumn( + 'exercise_id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _urlMeta = const VerificationMeta('url'); + @override + late final GeneratedColumn url = GeneratedColumn( + 'url', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _sizeMeta = const VerificationMeta('size'); + @override + late final GeneratedColumn size = GeneratedColumn( + 'size', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _durationMeta = const VerificationMeta( + 'duration', + ); + @override + late final GeneratedColumn duration = GeneratedColumn( + 'duration', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _widthMeta = const VerificationMeta('width'); + @override + late final GeneratedColumn width = GeneratedColumn( + 'width', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _heightMeta = const VerificationMeta('height'); + @override + late final GeneratedColumn height = GeneratedColumn( + 'height', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _codecMeta = const VerificationMeta('codec'); + @override + late final GeneratedColumn codec = GeneratedColumn( + 'codec', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _codecLongMeta = const VerificationMeta( + 'codecLong', + ); + @override + late final GeneratedColumn codecLong = GeneratedColumn( + 'codec_long', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _licenseIdMeta = const VerificationMeta( + 'licenseId', + ); + @override + late final GeneratedColumn licenseId = GeneratedColumn( + 'license_id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _licenseAuthorMeta = const VerificationMeta( + 'licenseAuthor', + ); + @override + late final GeneratedColumn licenseAuthor = GeneratedColumn( + 'license_author', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + @override + List get $columns => [ + id, + uuid, + exerciseId, + url, + size, + duration, + width, + height, + codec, + codecLong, + licenseId, + licenseAuthor, + ]; + @override + String get aliasedName => _alias ?? actualTableName; + @override + String get actualTableName => $name; + static const String $name = 'exercises_exercisevideo'; + @override + VerificationContext validateIntegrity( + Insertable