migration to move achievements to session, prep for achievement and media management

This commit is contained in:
Joshua Burman 2025-01-02 19:50:29 -05:00
parent 48f716cdb0
commit 2206720810
19 changed files with 6771 additions and 186 deletions

View File

@ -35,7 +35,7 @@ class AppDatabase extends _$AppDatabase {
AppDatabase() : super(_openConnection()); AppDatabase() : super(_openConnection());
@override @override
int get schemaVersion => 10; int get schemaVersion => 13;
@override @override
MigrationStrategy get migration { MigrationStrategy get migration {
@ -66,6 +66,7 @@ class Sessions extends Table {
TextColumn get title => text().withLength(min: 3, max: 32)(); TextColumn get title => text().withLength(min: 3, max: 32)();
TextColumn get content => text().named('body')(); TextColumn get content => text().named('body')();
TextColumn get status => textEnum<SessionStatus>()(); TextColumn get status => textEnum<SessionStatus>()();
TextColumn get achievements => text().nullable()();
TextColumn get address => text().withLength(min: 3, max: 256).nullable()(); TextColumn get address => text().withLength(min: 3, max: 256).nullable()();
DateTimeColumn get date => dateTime().nullable()(); DateTimeColumn get date => dateTime().nullable()();
DateTimeColumn get createdAt => DateTimeColumn get createdAt =>
@ -78,7 +79,6 @@ class SessionActivities extends Table {
IntColumn get activityId => integer().references(Activities, #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()();
TextColumn get achievements => text().nullable()();
DateTimeColumn get createdAt => DateTimeColumn get createdAt =>
dateTime().withDefault(Variable(DateTime.now()))(); dateTime().withDefault(Variable(DateTime.now()))();
} }

View File

@ -37,6 +37,12 @@ class $SessionsTable extends Sessions with TableInfo<$SessionsTable, Session> {
GeneratedColumn<String>('status', aliasedName, false, GeneratedColumn<String>('status', aliasedName, false,
type: DriftSqlType.string, requiredDuringInsert: true) type: DriftSqlType.string, requiredDuringInsert: true)
.withConverter<SessionStatus>($SessionsTable.$converterstatus); .withConverter<SessionStatus>($SessionsTable.$converterstatus);
static const VerificationMeta _achievementsMeta =
const VerificationMeta('achievements');
@override
late final GeneratedColumn<String> achievements = GeneratedColumn<String>(
'achievements', aliasedName, true,
type: DriftSqlType.string, requiredDuringInsert: false);
static const VerificationMeta _addressMeta = static const VerificationMeta _addressMeta =
const VerificationMeta('address'); const VerificationMeta('address');
@override @override
@ -61,7 +67,7 @@ class $SessionsTable extends Sessions with TableInfo<$SessionsTable, Session> {
defaultValue: Variable(DateTime.now())); defaultValue: Variable(DateTime.now()));
@override @override
List<GeneratedColumn> get $columns => List<GeneratedColumn> get $columns =>
[id, title, content, status, address, date, createdAt]; [id, title, content, status, achievements, address, date, createdAt];
@override @override
String get aliasedName => _alias ?? actualTableName; String get aliasedName => _alias ?? actualTableName;
@override @override
@ -88,6 +94,12 @@ class $SessionsTable extends Sessions with TableInfo<$SessionsTable, Session> {
context.missing(_contentMeta); context.missing(_contentMeta);
} }
context.handle(_statusMeta, const VerificationResult.success()); context.handle(_statusMeta, const VerificationResult.success());
if (data.containsKey('achievements')) {
context.handle(
_achievementsMeta,
achievements.isAcceptableOrUnknown(
data['achievements']!, _achievementsMeta));
}
if (data.containsKey('address')) { if (data.containsKey('address')) {
context.handle(_addressMeta, context.handle(_addressMeta,
address.isAcceptableOrUnknown(data['address']!, _addressMeta)); address.isAcceptableOrUnknown(data['address']!, _addressMeta));
@ -118,6 +130,8 @@ class $SessionsTable extends Sessions with TableInfo<$SessionsTable, Session> {
status: $SessionsTable.$converterstatus.fromSql(attachedDatabase status: $SessionsTable.$converterstatus.fromSql(attachedDatabase
.typeMapping .typeMapping
.read(DriftSqlType.string, data['${effectivePrefix}status'])!), .read(DriftSqlType.string, data['${effectivePrefix}status'])!),
achievements: attachedDatabase.typeMapping
.read(DriftSqlType.string, data['${effectivePrefix}achievements']),
address: attachedDatabase.typeMapping address: attachedDatabase.typeMapping
.read(DriftSqlType.string, data['${effectivePrefix}address']), .read(DriftSqlType.string, data['${effectivePrefix}address']),
date: attachedDatabase.typeMapping date: attachedDatabase.typeMapping
@ -141,6 +155,7 @@ class Session extends DataClass implements Insertable<Session> {
final String title; final String title;
final String content; final String content;
final SessionStatus status; final SessionStatus status;
final String? achievements;
final String? address; final String? address;
final DateTime? date; final DateTime? date;
final DateTime createdAt; final DateTime createdAt;
@ -149,6 +164,7 @@ class Session extends DataClass implements Insertable<Session> {
required this.title, required this.title,
required this.content, required this.content,
required this.status, required this.status,
this.achievements,
this.address, this.address,
this.date, this.date,
required this.createdAt}); required this.createdAt});
@ -162,6 +178,9 @@ class Session extends DataClass implements Insertable<Session> {
map['status'] = map['status'] =
Variable<String>($SessionsTable.$converterstatus.toSql(status)); Variable<String>($SessionsTable.$converterstatus.toSql(status));
} }
if (!nullToAbsent || achievements != null) {
map['achievements'] = Variable<String>(achievements);
}
if (!nullToAbsent || address != null) { if (!nullToAbsent || address != null) {
map['address'] = Variable<String>(address); map['address'] = Variable<String>(address);
} }
@ -178,6 +197,9 @@ class Session extends DataClass implements Insertable<Session> {
title: Value(title), title: Value(title),
content: Value(content), content: Value(content),
status: Value(status), status: Value(status),
achievements: achievements == null && nullToAbsent
? const Value.absent()
: Value(achievements),
address: address == null && nullToAbsent address: address == null && nullToAbsent
? const Value.absent() ? const Value.absent()
: Value(address), : Value(address),
@ -195,6 +217,7 @@ class Session extends DataClass implements Insertable<Session> {
content: serializer.fromJson<String>(json['content']), content: serializer.fromJson<String>(json['content']),
status: $SessionsTable.$converterstatus status: $SessionsTable.$converterstatus
.fromJson(serializer.fromJson<String>(json['status'])), .fromJson(serializer.fromJson<String>(json['status'])),
achievements: serializer.fromJson<String?>(json['achievements']),
address: serializer.fromJson<String?>(json['address']), address: serializer.fromJson<String?>(json['address']),
date: serializer.fromJson<DateTime?>(json['date']), date: serializer.fromJson<DateTime?>(json['date']),
createdAt: serializer.fromJson<DateTime>(json['createdAt']), createdAt: serializer.fromJson<DateTime>(json['createdAt']),
@ -209,6 +232,7 @@ class Session extends DataClass implements Insertable<Session> {
'content': serializer.toJson<String>(content), 'content': serializer.toJson<String>(content),
'status': serializer 'status': serializer
.toJson<String>($SessionsTable.$converterstatus.toJson(status)), .toJson<String>($SessionsTable.$converterstatus.toJson(status)),
'achievements': serializer.toJson<String?>(achievements),
'address': serializer.toJson<String?>(address), 'address': serializer.toJson<String?>(address),
'date': serializer.toJson<DateTime?>(date), 'date': serializer.toJson<DateTime?>(date),
'createdAt': serializer.toJson<DateTime>(createdAt), 'createdAt': serializer.toJson<DateTime>(createdAt),
@ -220,6 +244,7 @@ class Session extends DataClass implements Insertable<Session> {
String? title, String? title,
String? content, String? content,
SessionStatus? status, SessionStatus? status,
Value<String?> achievements = const Value.absent(),
Value<String?> address = const Value.absent(), Value<String?> address = const Value.absent(),
Value<DateTime?> date = const Value.absent(), Value<DateTime?> date = const Value.absent(),
DateTime? createdAt}) => DateTime? createdAt}) =>
@ -228,6 +253,8 @@ class Session extends DataClass implements Insertable<Session> {
title: title ?? this.title, title: title ?? this.title,
content: content ?? this.content, content: content ?? this.content,
status: status ?? this.status, status: status ?? this.status,
achievements:
achievements.present ? achievements.value : this.achievements,
address: address.present ? address.value : this.address, address: address.present ? address.value : this.address,
date: date.present ? date.value : this.date, date: date.present ? date.value : this.date,
createdAt: createdAt ?? this.createdAt, createdAt: createdAt ?? this.createdAt,
@ -238,6 +265,9 @@ class Session extends DataClass implements Insertable<Session> {
title: data.title.present ? data.title.value : this.title, title: data.title.present ? data.title.value : this.title,
content: data.content.present ? data.content.value : this.content, content: data.content.present ? data.content.value : this.content,
status: data.status.present ? data.status.value : this.status, status: data.status.present ? data.status.value : this.status,
achievements: data.achievements.present
? data.achievements.value
: this.achievements,
address: data.address.present ? data.address.value : this.address, address: data.address.present ? data.address.value : this.address,
date: data.date.present ? data.date.value : this.date, date: data.date.present ? data.date.value : this.date,
createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt,
@ -251,6 +281,7 @@ class Session extends DataClass implements Insertable<Session> {
..write('title: $title, ') ..write('title: $title, ')
..write('content: $content, ') ..write('content: $content, ')
..write('status: $status, ') ..write('status: $status, ')
..write('achievements: $achievements, ')
..write('address: $address, ') ..write('address: $address, ')
..write('date: $date, ') ..write('date: $date, ')
..write('createdAt: $createdAt') ..write('createdAt: $createdAt')
@ -259,8 +290,8 @@ class Session extends DataClass implements Insertable<Session> {
} }
@override @override
int get hashCode => int get hashCode => Object.hash(
Object.hash(id, title, content, status, address, date, createdAt); id, title, content, status, achievements, address, date, createdAt);
@override @override
bool operator ==(Object other) => bool operator ==(Object other) =>
identical(this, other) || identical(this, other) ||
@ -269,6 +300,7 @@ class Session extends DataClass implements Insertable<Session> {
other.title == this.title && other.title == this.title &&
other.content == this.content && other.content == this.content &&
other.status == this.status && other.status == this.status &&
other.achievements == this.achievements &&
other.address == this.address && other.address == this.address &&
other.date == this.date && other.date == this.date &&
other.createdAt == this.createdAt); other.createdAt == this.createdAt);
@ -279,6 +311,7 @@ class SessionsCompanion extends UpdateCompanion<Session> {
final Value<String> title; final Value<String> title;
final Value<String> content; final Value<String> content;
final Value<SessionStatus> status; final Value<SessionStatus> status;
final Value<String?> achievements;
final Value<String?> address; final Value<String?> address;
final Value<DateTime?> date; final Value<DateTime?> date;
final Value<DateTime> createdAt; final Value<DateTime> createdAt;
@ -287,6 +320,7 @@ class SessionsCompanion extends UpdateCompanion<Session> {
this.title = const Value.absent(), this.title = const Value.absent(),
this.content = const Value.absent(), this.content = const Value.absent(),
this.status = const Value.absent(), this.status = const Value.absent(),
this.achievements = const Value.absent(),
this.address = const Value.absent(), this.address = const Value.absent(),
this.date = const Value.absent(), this.date = const Value.absent(),
this.createdAt = const Value.absent(), this.createdAt = const Value.absent(),
@ -296,6 +330,7 @@ class SessionsCompanion extends UpdateCompanion<Session> {
required String title, required String title,
required String content, required String content,
required SessionStatus status, required SessionStatus status,
this.achievements = const Value.absent(),
this.address = const Value.absent(), this.address = const Value.absent(),
this.date = const Value.absent(), this.date = const Value.absent(),
this.createdAt = const Value.absent(), this.createdAt = const Value.absent(),
@ -307,6 +342,7 @@ class SessionsCompanion extends UpdateCompanion<Session> {
Expression<String>? title, Expression<String>? title,
Expression<String>? content, Expression<String>? content,
Expression<String>? status, Expression<String>? status,
Expression<String>? achievements,
Expression<String>? address, Expression<String>? address,
Expression<DateTime>? date, Expression<DateTime>? date,
Expression<DateTime>? createdAt, Expression<DateTime>? createdAt,
@ -316,6 +352,7 @@ class SessionsCompanion extends UpdateCompanion<Session> {
if (title != null) 'title': title, if (title != null) 'title': title,
if (content != null) 'body': content, if (content != null) 'body': content,
if (status != null) 'status': status, if (status != null) 'status': status,
if (achievements != null) 'achievements': achievements,
if (address != null) 'address': address, if (address != null) 'address': address,
if (date != null) 'date': date, if (date != null) 'date': date,
if (createdAt != null) 'created_at': createdAt, if (createdAt != null) 'created_at': createdAt,
@ -327,6 +364,7 @@ class SessionsCompanion extends UpdateCompanion<Session> {
Value<String>? title, Value<String>? title,
Value<String>? content, Value<String>? content,
Value<SessionStatus>? status, Value<SessionStatus>? status,
Value<String?>? achievements,
Value<String?>? address, Value<String?>? address,
Value<DateTime?>? date, Value<DateTime?>? date,
Value<DateTime>? createdAt}) { Value<DateTime>? createdAt}) {
@ -335,6 +373,7 @@ class SessionsCompanion extends UpdateCompanion<Session> {
title: title ?? this.title, title: title ?? this.title,
content: content ?? this.content, content: content ?? this.content,
status: status ?? this.status, status: status ?? this.status,
achievements: achievements ?? this.achievements,
address: address ?? this.address, address: address ?? this.address,
date: date ?? this.date, date: date ?? this.date,
createdAt: createdAt ?? this.createdAt, createdAt: createdAt ?? this.createdAt,
@ -357,6 +396,9 @@ class SessionsCompanion extends UpdateCompanion<Session> {
map['status'] = map['status'] =
Variable<String>($SessionsTable.$converterstatus.toSql(status.value)); Variable<String>($SessionsTable.$converterstatus.toSql(status.value));
} }
if (achievements.present) {
map['achievements'] = Variable<String>(achievements.value);
}
if (address.present) { if (address.present) {
map['address'] = Variable<String>(address.value); map['address'] = Variable<String>(address.value);
} }
@ -376,6 +418,7 @@ class SessionsCompanion extends UpdateCompanion<Session> {
..write('title: $title, ') ..write('title: $title, ')
..write('content: $content, ') ..write('content: $content, ')
..write('status: $status, ') ..write('status: $status, ')
..write('achievements: $achievements, ')
..write('address: $address, ') ..write('address: $address, ')
..write('date: $date, ') ..write('date: $date, ')
..write('createdAt: $createdAt') ..write('createdAt: $createdAt')
@ -779,12 +822,6 @@ class $SessionActivitiesTable extends SessionActivities
late final GeneratedColumn<String> results = GeneratedColumn<String>( late final GeneratedColumn<String> results = GeneratedColumn<String>(
'results', aliasedName, true, 'results', aliasedName, true,
type: DriftSqlType.string, requiredDuringInsert: false); type: DriftSqlType.string, requiredDuringInsert: false);
static const VerificationMeta _achievementsMeta =
const VerificationMeta('achievements');
@override
late final GeneratedColumn<String> achievements = GeneratedColumn<String>(
'achievements', aliasedName, true,
type: DriftSqlType.string, requiredDuringInsert: false);
static const VerificationMeta _createdAtMeta = static const VerificationMeta _createdAtMeta =
const VerificationMeta('createdAt'); const VerificationMeta('createdAt');
@override @override
@ -795,7 +832,7 @@ class $SessionActivitiesTable extends SessionActivities
defaultValue: Variable(DateTime.now())); defaultValue: Variable(DateTime.now()));
@override @override
List<GeneratedColumn> get $columns => List<GeneratedColumn> get $columns =>
[id, sessionId, activityId, position, results, achievements, createdAt]; [id, sessionId, activityId, position, results, createdAt];
@override @override
String get aliasedName => _alias ?? actualTableName; String get aliasedName => _alias ?? actualTableName;
@override @override
@ -833,12 +870,6 @@ class $SessionActivitiesTable extends SessionActivities
context.handle(_resultsMeta, context.handle(_resultsMeta,
results.isAcceptableOrUnknown(data['results']!, _resultsMeta)); results.isAcceptableOrUnknown(data['results']!, _resultsMeta));
} }
if (data.containsKey('achievements')) {
context.handle(
_achievementsMeta,
achievements.isAcceptableOrUnknown(
data['achievements']!, _achievementsMeta));
}
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));
@ -862,8 +893,6 @@ class $SessionActivitiesTable extends SessionActivities
.read(DriftSqlType.int, data['${effectivePrefix}position'])!, .read(DriftSqlType.int, data['${effectivePrefix}position'])!,
results: attachedDatabase.typeMapping results: attachedDatabase.typeMapping
.read(DriftSqlType.string, data['${effectivePrefix}results']), .read(DriftSqlType.string, data['${effectivePrefix}results']),
achievements: attachedDatabase.typeMapping
.read(DriftSqlType.string, data['${effectivePrefix}achievements']),
createdAt: attachedDatabase.typeMapping createdAt: attachedDatabase.typeMapping
.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!,
); );
@ -881,7 +910,6 @@ class SessionActivity extends DataClass implements Insertable<SessionActivity> {
final int activityId; final int activityId;
final int position; final int position;
final String? results; final String? results;
final String? achievements;
final DateTime createdAt; final DateTime createdAt;
const SessionActivity( const SessionActivity(
{required this.id, {required this.id,
@ -889,7 +917,6 @@ class SessionActivity extends DataClass implements Insertable<SessionActivity> {
required this.activityId, required this.activityId,
required this.position, required this.position,
this.results, this.results,
this.achievements,
required this.createdAt}); required this.createdAt});
@override @override
Map<String, Expression> toColumns(bool nullToAbsent) { Map<String, Expression> toColumns(bool nullToAbsent) {
@ -901,9 +928,6 @@ class SessionActivity extends DataClass implements Insertable<SessionActivity> {
if (!nullToAbsent || results != null) { if (!nullToAbsent || results != null) {
map['results'] = Variable<String>(results); map['results'] = Variable<String>(results);
} }
if (!nullToAbsent || achievements != null) {
map['achievements'] = Variable<String>(achievements);
}
map['created_at'] = Variable<DateTime>(createdAt); map['created_at'] = Variable<DateTime>(createdAt);
return map; return map;
} }
@ -917,9 +941,6 @@ class SessionActivity extends DataClass implements Insertable<SessionActivity> {
results: results == null && nullToAbsent results: results == null && nullToAbsent
? const Value.absent() ? const Value.absent()
: Value(results), : Value(results),
achievements: achievements == null && nullToAbsent
? const Value.absent()
: Value(achievements),
createdAt: Value(createdAt), createdAt: Value(createdAt),
); );
} }
@ -933,7 +954,6 @@ class SessionActivity extends DataClass implements Insertable<SessionActivity> {
activityId: serializer.fromJson<int>(json['activityId']), activityId: serializer.fromJson<int>(json['activityId']),
position: serializer.fromJson<int>(json['position']), position: serializer.fromJson<int>(json['position']),
results: serializer.fromJson<String?>(json['results']), results: serializer.fromJson<String?>(json['results']),
achievements: serializer.fromJson<String?>(json['achievements']),
createdAt: serializer.fromJson<DateTime>(json['createdAt']), createdAt: serializer.fromJson<DateTime>(json['createdAt']),
); );
} }
@ -946,7 +966,6 @@ class SessionActivity extends DataClass implements Insertable<SessionActivity> {
'activityId': serializer.toJson<int>(activityId), 'activityId': serializer.toJson<int>(activityId),
'position': serializer.toJson<int>(position), 'position': serializer.toJson<int>(position),
'results': serializer.toJson<String?>(results), 'results': serializer.toJson<String?>(results),
'achievements': serializer.toJson<String?>(achievements),
'createdAt': serializer.toJson<DateTime>(createdAt), 'createdAt': serializer.toJson<DateTime>(createdAt),
}; };
} }
@ -957,7 +976,6 @@ class SessionActivity extends DataClass implements Insertable<SessionActivity> {
int? activityId, int? activityId,
int? position, int? position,
Value<String?> results = const Value.absent(), Value<String?> results = const Value.absent(),
Value<String?> achievements = const Value.absent(),
DateTime? createdAt}) => DateTime? createdAt}) =>
SessionActivity( SessionActivity(
id: id ?? this.id, id: id ?? this.id,
@ -965,8 +983,6 @@ class SessionActivity extends DataClass implements Insertable<SessionActivity> {
activityId: activityId ?? this.activityId, activityId: activityId ?? this.activityId,
position: position ?? this.position, position: position ?? this.position,
results: results.present ? results.value : this.results, results: results.present ? results.value : this.results,
achievements:
achievements.present ? achievements.value : this.achievements,
createdAt: createdAt ?? this.createdAt, createdAt: createdAt ?? this.createdAt,
); );
SessionActivity copyWithCompanion(SessionActivitiesCompanion data) { SessionActivity copyWithCompanion(SessionActivitiesCompanion data) {
@ -977,9 +993,6 @@ class SessionActivity extends DataClass implements Insertable<SessionActivity> {
data.activityId.present ? data.activityId.value : this.activityId, data.activityId.present ? data.activityId.value : this.activityId,
position: data.position.present ? data.position.value : this.position, position: data.position.present ? data.position.value : this.position,
results: data.results.present ? data.results.value : this.results, results: data.results.present ? data.results.value : this.results,
achievements: data.achievements.present
? data.achievements.value
: this.achievements,
createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt,
); );
} }
@ -992,15 +1005,14 @@ class SessionActivity extends DataClass implements Insertable<SessionActivity> {
..write('activityId: $activityId, ') ..write('activityId: $activityId, ')
..write('position: $position, ') ..write('position: $position, ')
..write('results: $results, ') ..write('results: $results, ')
..write('achievements: $achievements, ')
..write('createdAt: $createdAt') ..write('createdAt: $createdAt')
..write(')')) ..write(')'))
.toString(); .toString();
} }
@override @override
int get hashCode => Object.hash( int get hashCode =>
id, sessionId, activityId, position, results, achievements, createdAt); Object.hash(id, sessionId, activityId, position, results, createdAt);
@override @override
bool operator ==(Object other) => bool operator ==(Object other) =>
identical(this, other) || identical(this, other) ||
@ -1010,7 +1022,6 @@ class SessionActivity extends DataClass implements Insertable<SessionActivity> {
other.activityId == this.activityId && other.activityId == this.activityId &&
other.position == this.position && other.position == this.position &&
other.results == this.results && other.results == this.results &&
other.achievements == this.achievements &&
other.createdAt == this.createdAt); other.createdAt == this.createdAt);
} }
@ -1020,7 +1031,6 @@ class SessionActivitiesCompanion extends UpdateCompanion<SessionActivity> {
final Value<int> activityId; final Value<int> activityId;
final Value<int> position; final Value<int> position;
final Value<String?> results; final Value<String?> results;
final Value<String?> achievements;
final Value<DateTime> createdAt; final Value<DateTime> createdAt;
const SessionActivitiesCompanion({ const SessionActivitiesCompanion({
this.id = const Value.absent(), this.id = const Value.absent(),
@ -1028,7 +1038,6 @@ class SessionActivitiesCompanion extends UpdateCompanion<SessionActivity> {
this.activityId = const Value.absent(), this.activityId = const Value.absent(),
this.position = const Value.absent(), this.position = const Value.absent(),
this.results = const Value.absent(), this.results = const Value.absent(),
this.achievements = const Value.absent(),
this.createdAt = const Value.absent(), this.createdAt = const Value.absent(),
}); });
SessionActivitiesCompanion.insert({ SessionActivitiesCompanion.insert({
@ -1037,7 +1046,6 @@ class SessionActivitiesCompanion extends UpdateCompanion<SessionActivity> {
required int activityId, required int activityId,
required int position, required int position,
this.results = const Value.absent(), this.results = const Value.absent(),
this.achievements = const Value.absent(),
this.createdAt = const Value.absent(), this.createdAt = const Value.absent(),
}) : sessionId = Value(sessionId), }) : sessionId = Value(sessionId),
activityId = Value(activityId), activityId = Value(activityId),
@ -1048,7 +1056,6 @@ class SessionActivitiesCompanion extends UpdateCompanion<SessionActivity> {
Expression<int>? activityId, Expression<int>? activityId,
Expression<int>? position, Expression<int>? position,
Expression<String>? results, Expression<String>? results,
Expression<String>? achievements,
Expression<DateTime>? createdAt, Expression<DateTime>? createdAt,
}) { }) {
return RawValuesInsertable({ return RawValuesInsertable({
@ -1057,7 +1064,6 @@ class SessionActivitiesCompanion extends UpdateCompanion<SessionActivity> {
if (activityId != null) 'activity_id': activityId, if (activityId != null) 'activity_id': activityId,
if (position != null) 'position': position, if (position != null) 'position': position,
if (results != null) 'results': results, if (results != null) 'results': results,
if (achievements != null) 'achievements': achievements,
if (createdAt != null) 'created_at': createdAt, if (createdAt != null) 'created_at': createdAt,
}); });
} }
@ -1068,7 +1074,6 @@ class SessionActivitiesCompanion extends UpdateCompanion<SessionActivity> {
Value<int>? activityId, Value<int>? activityId,
Value<int>? position, Value<int>? position,
Value<String?>? results, Value<String?>? results,
Value<String?>? achievements,
Value<DateTime>? createdAt}) { Value<DateTime>? createdAt}) {
return SessionActivitiesCompanion( return SessionActivitiesCompanion(
id: id ?? this.id, id: id ?? this.id,
@ -1076,7 +1081,6 @@ class SessionActivitiesCompanion extends UpdateCompanion<SessionActivity> {
activityId: activityId ?? this.activityId, activityId: activityId ?? this.activityId,
position: position ?? this.position, position: position ?? this.position,
results: results ?? this.results, results: results ?? this.results,
achievements: achievements ?? this.achievements,
createdAt: createdAt ?? this.createdAt, createdAt: createdAt ?? this.createdAt,
); );
} }
@ -1099,9 +1103,6 @@ class SessionActivitiesCompanion extends UpdateCompanion<SessionActivity> {
if (results.present) { if (results.present) {
map['results'] = Variable<String>(results.value); map['results'] = Variable<String>(results.value);
} }
if (achievements.present) {
map['achievements'] = Variable<String>(achievements.value);
}
if (createdAt.present) { if (createdAt.present) {
map['created_at'] = Variable<DateTime>(createdAt.value); map['created_at'] = Variable<DateTime>(createdAt.value);
} }
@ -1116,7 +1117,6 @@ class SessionActivitiesCompanion extends UpdateCompanion<SessionActivity> {
..write('activityId: $activityId, ') ..write('activityId: $activityId, ')
..write('position: $position, ') ..write('position: $position, ')
..write('results: $results, ') ..write('results: $results, ')
..write('achievements: $achievements, ')
..write('createdAt: $createdAt') ..write('createdAt: $createdAt')
..write(')')) ..write(')'))
.toString(); .toString();
@ -2465,6 +2465,7 @@ typedef $$SessionsTableCreateCompanionBuilder = SessionsCompanion Function({
required String title, required String title,
required String content, required String content,
required SessionStatus status, required SessionStatus status,
Value<String?> achievements,
Value<String?> address, Value<String?> address,
Value<DateTime?> date, Value<DateTime?> date,
Value<DateTime> createdAt, Value<DateTime> createdAt,
@ -2474,6 +2475,7 @@ typedef $$SessionsTableUpdateCompanionBuilder = SessionsCompanion Function({
Value<String> title, Value<String> title,
Value<String> content, Value<String> content,
Value<SessionStatus> status, Value<SessionStatus> status,
Value<String?> achievements,
Value<String?> address, Value<String?> address,
Value<DateTime?> date, Value<DateTime?> date,
Value<DateTime> createdAt, Value<DateTime> createdAt,
@ -2524,6 +2526,9 @@ class $$SessionsTableFilterComposer
column: $table.status, column: $table.status,
builder: (column) => ColumnWithTypeConverterFilters(column)); builder: (column) => ColumnWithTypeConverterFilters(column));
ColumnFilters<String> get achievements => $composableBuilder(
column: $table.achievements, builder: (column) => ColumnFilters(column));
ColumnFilters<String> get address => $composableBuilder( ColumnFilters<String> get address => $composableBuilder(
column: $table.address, builder: (column) => ColumnFilters(column)); column: $table.address, builder: (column) => ColumnFilters(column));
@ -2576,6 +2581,10 @@ class $$SessionsTableOrderingComposer
ColumnOrderings<String> get status => $composableBuilder( ColumnOrderings<String> get status => $composableBuilder(
column: $table.status, builder: (column) => ColumnOrderings(column)); column: $table.status, builder: (column) => ColumnOrderings(column));
ColumnOrderings<String> get achievements => $composableBuilder(
column: $table.achievements,
builder: (column) => ColumnOrderings(column));
ColumnOrderings<String> get address => $composableBuilder( ColumnOrderings<String> get address => $composableBuilder(
column: $table.address, builder: (column) => ColumnOrderings(column)); column: $table.address, builder: (column) => ColumnOrderings(column));
@ -2607,6 +2616,9 @@ class $$SessionsTableAnnotationComposer
GeneratedColumnWithTypeConverter<SessionStatus, String> get status => GeneratedColumnWithTypeConverter<SessionStatus, String> get status =>
$composableBuilder(column: $table.status, builder: (column) => column); $composableBuilder(column: $table.status, builder: (column) => column);
GeneratedColumn<String> get achievements => $composableBuilder(
column: $table.achievements, builder: (column) => column);
GeneratedColumn<String> get address => GeneratedColumn<String> get address =>
$composableBuilder(column: $table.address, builder: (column) => column); $composableBuilder(column: $table.address, builder: (column) => column);
@ -2666,6 +2678,7 @@ class $$SessionsTableTableManager extends RootTableManager<
Value<String> title = const Value.absent(), Value<String> title = const Value.absent(),
Value<String> content = const Value.absent(), Value<String> content = const Value.absent(),
Value<SessionStatus> status = const Value.absent(), Value<SessionStatus> status = const Value.absent(),
Value<String?> achievements = const Value.absent(),
Value<String?> address = const Value.absent(), Value<String?> address = const Value.absent(),
Value<DateTime?> date = const Value.absent(), Value<DateTime?> date = const Value.absent(),
Value<DateTime> createdAt = const Value.absent(), Value<DateTime> createdAt = const Value.absent(),
@ -2675,6 +2688,7 @@ class $$SessionsTableTableManager extends RootTableManager<
title: title, title: title,
content: content, content: content,
status: status, status: status,
achievements: achievements,
address: address, address: address,
date: date, date: date,
createdAt: createdAt, createdAt: createdAt,
@ -2684,6 +2698,7 @@ class $$SessionsTableTableManager extends RootTableManager<
required String title, required String title,
required String content, required String content,
required SessionStatus status, required SessionStatus status,
Value<String?> achievements = const Value.absent(),
Value<String?> address = const Value.absent(), Value<String?> address = const Value.absent(),
Value<DateTime?> date = const Value.absent(), Value<DateTime?> date = const Value.absent(),
Value<DateTime> createdAt = const Value.absent(), Value<DateTime> createdAt = const Value.absent(),
@ -2693,6 +2708,7 @@ class $$SessionsTableTableManager extends RootTableManager<
title: title, title: title,
content: content, content: content,
status: status, status: status,
achievements: achievements,
address: address, address: address,
date: date, date: date,
createdAt: createdAt, createdAt: createdAt,
@ -3093,7 +3109,6 @@ typedef $$SessionActivitiesTableCreateCompanionBuilder
required int activityId, required int activityId,
required int position, required int position,
Value<String?> results, Value<String?> results,
Value<String?> achievements,
Value<DateTime> createdAt, Value<DateTime> createdAt,
}); });
typedef $$SessionActivitiesTableUpdateCompanionBuilder typedef $$SessionActivitiesTableUpdateCompanionBuilder
@ -3103,7 +3118,6 @@ typedef $$SessionActivitiesTableUpdateCompanionBuilder
Value<int> activityId, Value<int> activityId,
Value<int> position, Value<int> position,
Value<String?> results, Value<String?> results,
Value<String?> achievements,
Value<DateTime> createdAt, Value<DateTime> createdAt,
}); });
@ -3157,9 +3171,6 @@ class $$SessionActivitiesTableFilterComposer
ColumnFilters<String> get results => $composableBuilder( ColumnFilters<String> get results => $composableBuilder(
column: $table.results, builder: (column) => ColumnFilters(column)); column: $table.results, builder: (column) => ColumnFilters(column));
ColumnFilters<String> get achievements => $composableBuilder(
column: $table.achievements, 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));
@ -3222,10 +3233,6 @@ class $$SessionActivitiesTableOrderingComposer
ColumnOrderings<String> get results => $composableBuilder( ColumnOrderings<String> get results => $composableBuilder(
column: $table.results, builder: (column) => ColumnOrderings(column)); column: $table.results, builder: (column) => ColumnOrderings(column));
ColumnOrderings<String> get achievements => $composableBuilder(
column: $table.achievements,
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));
@ -3288,9 +3295,6 @@ class $$SessionActivitiesTableAnnotationComposer
GeneratedColumn<String> get results => GeneratedColumn<String> get results =>
$composableBuilder(column: $table.results, builder: (column) => column); $composableBuilder(column: $table.results, builder: (column) => column);
GeneratedColumn<String> get achievements => $composableBuilder(
column: $table.achievements, 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);
@ -3365,7 +3369,6 @@ class $$SessionActivitiesTableTableManager extends RootTableManager<
Value<int> activityId = const Value.absent(), Value<int> activityId = const Value.absent(),
Value<int> position = const Value.absent(), Value<int> position = const Value.absent(),
Value<String?> results = const Value.absent(), Value<String?> results = const Value.absent(),
Value<String?> achievements = const Value.absent(),
Value<DateTime> createdAt = const Value.absent(), Value<DateTime> createdAt = const Value.absent(),
}) => }) =>
SessionActivitiesCompanion( SessionActivitiesCompanion(
@ -3374,7 +3377,6 @@ class $$SessionActivitiesTableTableManager extends RootTableManager<
activityId: activityId, activityId: activityId,
position: position, position: position,
results: results, results: results,
achievements: achievements,
createdAt: createdAt, createdAt: createdAt,
), ),
createCompanionCallback: ({ createCompanionCallback: ({
@ -3383,7 +3385,6 @@ class $$SessionActivitiesTableTableManager extends RootTableManager<
required int activityId, required int activityId,
required int position, required int position,
Value<String?> results = const Value.absent(), Value<String?> results = const Value.absent(),
Value<String?> achievements = const Value.absent(),
Value<DateTime> createdAt = const Value.absent(), Value<DateTime> createdAt = const Value.absent(),
}) => }) =>
SessionActivitiesCompanion.insert( SessionActivitiesCompanion.insert(
@ -3392,7 +3393,6 @@ class $$SessionActivitiesTableTableManager extends RootTableManager<
activityId: activityId, activityId: activityId,
position: position, position: position,
results: results, results: results,
achievements: achievements,
createdAt: createdAt, createdAt: createdAt,
), ),
withReferenceMapper: (p0) => p0 withReferenceMapper: (p0) => p0

View File

@ -1488,6 +1488,444 @@ final class Schema10 extends i0.VersionedSchema {
alias: null); alias: null);
} }
final class Schema11 extends i0.VersionedSchema {
Schema11({required super.database}) : super(version: 11);
@override
late final List<i1.DatabaseSchemaEntity> entities = [
sessions,
activities,
sessionActivities,
actions,
activityActions,
mediaItems,
objectMediaItems,
];
late final Shape12 sessions = Shape12(
source: i0.VersionedTable(
entityName: 'sessions',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_1,
_column_2,
_column_3,
_column_11,
_column_20,
_column_4,
_column_5,
],
attachedDatabase: database,
),
alias: null);
late final Shape1 activities = Shape1(
source: i0.VersionedTable(
entityName: 'activities',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_1,
_column_6,
_column_2,
_column_7,
_column_5,
],
attachedDatabase: database,
),
alias: null);
late final Shape13 sessionActivities = Shape13(
source: i0.VersionedTable(
entityName: 'session_activities',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_21,
_column_22,
_column_19,
_column_10,
_column_5,
],
attachedDatabase: database,
),
alias: null);
late final Shape3 actions = Shape3(
source: i0.VersionedTable(
entityName: 'actions',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_1,
_column_2,
_column_12,
_column_5,
],
attachedDatabase: database,
),
alias: null);
late final Shape10 activityActions = Shape10(
source: i0.VersionedTable(
entityName: 'activity_actions',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_22,
_column_23,
_column_19,
_column_5,
],
attachedDatabase: database,
),
alias: null);
late final Shape5 mediaItems = Shape5(
source: i0.VersionedTable(
entityName: 'media_items',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_1,
_column_2,
_column_25,
_column_6,
_column_5,
],
attachedDatabase: database,
),
alias: null);
late final Shape6 objectMediaItems = Shape6(
source: i0.VersionedTable(
entityName: 'object_media_items',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_15,
_column_16,
_column_24,
_column_5,
],
attachedDatabase: database,
),
alias: null);
}
class Shape12 extends i0.VersionedTable {
Shape12({required super.source, required super.alias}) : super.aliased();
i1.GeneratedColumn<int> get id =>
columnsByName['id']! as i1.GeneratedColumn<int>;
i1.GeneratedColumn<String> get title =>
columnsByName['title']! as i1.GeneratedColumn<String>;
i1.GeneratedColumn<String> get content =>
columnsByName['body']! as i1.GeneratedColumn<String>;
i1.GeneratedColumn<String> get status =>
columnsByName['status']! as i1.GeneratedColumn<String>;
i1.GeneratedColumn<String> get achievements =>
columnsByName['achievements']! as i1.GeneratedColumn<String>;
i1.GeneratedColumn<String> get address =>
columnsByName['address']! as i1.GeneratedColumn<String>;
i1.GeneratedColumn<DateTime> get date =>
columnsByName['date']! as i1.GeneratedColumn<DateTime>;
i1.GeneratedColumn<DateTime> get createdAt =>
columnsByName['created_at']! as i1.GeneratedColumn<DateTime>;
}
class Shape13 extends i0.VersionedTable {
Shape13({required super.source, required super.alias}) : super.aliased();
i1.GeneratedColumn<int> get id =>
columnsByName['id']! as i1.GeneratedColumn<int>;
i1.GeneratedColumn<int> get sessionId =>
columnsByName['session_id']! as i1.GeneratedColumn<int>;
i1.GeneratedColumn<int> get activityId =>
columnsByName['activity_id']! as i1.GeneratedColumn<int>;
i1.GeneratedColumn<int> get position =>
columnsByName['position']! as i1.GeneratedColumn<int>;
i1.GeneratedColumn<String> get results =>
columnsByName['results']! as i1.GeneratedColumn<String>;
i1.GeneratedColumn<DateTime> get createdAt =>
columnsByName['created_at']! as i1.GeneratedColumn<DateTime>;
}
final class Schema12 extends i0.VersionedSchema {
Schema12({required super.database}) : super(version: 12);
@override
late final List<i1.DatabaseSchemaEntity> entities = [
sessions,
activities,
sessionActivities,
actions,
activityActions,
mediaItems,
objectMediaItems,
];
late final Shape12 sessions = Shape12(
source: i0.VersionedTable(
entityName: 'sessions',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_1,
_column_2,
_column_3,
_column_26,
_column_20,
_column_4,
_column_5,
],
attachedDatabase: database,
),
alias: null);
late final Shape1 activities = Shape1(
source: i0.VersionedTable(
entityName: 'activities',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_1,
_column_6,
_column_2,
_column_7,
_column_5,
],
attachedDatabase: database,
),
alias: null);
late final Shape13 sessionActivities = Shape13(
source: i0.VersionedTable(
entityName: 'session_activities',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_21,
_column_22,
_column_19,
_column_10,
_column_5,
],
attachedDatabase: database,
),
alias: null);
late final Shape3 actions = Shape3(
source: i0.VersionedTable(
entityName: 'actions',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_1,
_column_2,
_column_12,
_column_5,
],
attachedDatabase: database,
),
alias: null);
late final Shape10 activityActions = Shape10(
source: i0.VersionedTable(
entityName: 'activity_actions',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_22,
_column_23,
_column_19,
_column_5,
],
attachedDatabase: database,
),
alias: null);
late final Shape5 mediaItems = Shape5(
source: i0.VersionedTable(
entityName: 'media_items',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_1,
_column_2,
_column_25,
_column_6,
_column_5,
],
attachedDatabase: database,
),
alias: null);
late final Shape6 objectMediaItems = Shape6(
source: i0.VersionedTable(
entityName: 'object_media_items',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_15,
_column_16,
_column_24,
_column_5,
],
attachedDatabase: database,
),
alias: null);
}
i1.GeneratedColumn<String> _column_26(String aliasedName) =>
i1.GeneratedColumn<String>('achievements', aliasedName, true,
additionalChecks: i1.GeneratedColumn.checkTextLength(
minTextLength: 3, maxTextLength: 32),
type: i1.DriftSqlType.string);
final class Schema13 extends i0.VersionedSchema {
Schema13({required super.database}) : super(version: 13);
@override
late final List<i1.DatabaseSchemaEntity> entities = [
sessions,
activities,
sessionActivities,
actions,
activityActions,
mediaItems,
objectMediaItems,
];
late final Shape12 sessions = Shape12(
source: i0.VersionedTable(
entityName: 'sessions',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_1,
_column_2,
_column_3,
_column_11,
_column_20,
_column_4,
_column_5,
],
attachedDatabase: database,
),
alias: null);
late final Shape1 activities = Shape1(
source: i0.VersionedTable(
entityName: 'activities',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_1,
_column_6,
_column_2,
_column_7,
_column_5,
],
attachedDatabase: database,
),
alias: null);
late final Shape13 sessionActivities = Shape13(
source: i0.VersionedTable(
entityName: 'session_activities',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_21,
_column_22,
_column_19,
_column_10,
_column_5,
],
attachedDatabase: database,
),
alias: null);
late final Shape3 actions = Shape3(
source: i0.VersionedTable(
entityName: 'actions',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_1,
_column_2,
_column_12,
_column_5,
],
attachedDatabase: database,
),
alias: null);
late final Shape10 activityActions = Shape10(
source: i0.VersionedTable(
entityName: 'activity_actions',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_22,
_column_23,
_column_19,
_column_5,
],
attachedDatabase: database,
),
alias: null);
late final Shape5 mediaItems = Shape5(
source: i0.VersionedTable(
entityName: 'media_items',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_1,
_column_2,
_column_25,
_column_6,
_column_5,
],
attachedDatabase: database,
),
alias: null);
late final Shape6 objectMediaItems = Shape6(
source: i0.VersionedTable(
entityName: 'object_media_items',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_0,
_column_15,
_column_16,
_column_24,
_column_5,
],
attachedDatabase: database,
),
alias: null);
}
i0.MigrationStepWithVersion migrationSteps({ i0.MigrationStepWithVersion migrationSteps({
required Future<void> Function(i1.Migrator m, Schema2 schema) from1To2, required Future<void> Function(i1.Migrator m, Schema2 schema) from1To2,
required Future<void> Function(i1.Migrator m, Schema3 schema) from2To3, required Future<void> Function(i1.Migrator m, Schema3 schema) from2To3,
@ -1498,6 +1936,9 @@ i0.MigrationStepWithVersion migrationSteps({
required Future<void> Function(i1.Migrator m, Schema8 schema) from7To8, required Future<void> Function(i1.Migrator m, Schema8 schema) from7To8,
required Future<void> Function(i1.Migrator m, Schema9 schema) from8To9, required Future<void> Function(i1.Migrator m, Schema9 schema) from8To9,
required Future<void> Function(i1.Migrator m, Schema10 schema) from9To10, required Future<void> Function(i1.Migrator m, Schema10 schema) from9To10,
required Future<void> Function(i1.Migrator m, Schema11 schema) from10To11,
required Future<void> Function(i1.Migrator m, Schema12 schema) from11To12,
required Future<void> Function(i1.Migrator m, Schema13 schema) from12To13,
}) { }) {
return (currentVersion, database) async { return (currentVersion, database) async {
switch (currentVersion) { switch (currentVersion) {
@ -1546,6 +1987,21 @@ i0.MigrationStepWithVersion migrationSteps({
final migrator = i1.Migrator(database, schema); final migrator = i1.Migrator(database, schema);
await from9To10(migrator, schema); await from9To10(migrator, schema);
return 10; return 10;
case 10:
final schema = Schema11(database: database);
final migrator = i1.Migrator(database, schema);
await from10To11(migrator, schema);
return 11;
case 11:
final schema = Schema12(database: database);
final migrator = i1.Migrator(database, schema);
await from11To12(migrator, schema);
return 12;
case 12:
final schema = Schema13(database: database);
final migrator = i1.Migrator(database, schema);
await from12To13(migrator, schema);
return 13;
default: default:
throw ArgumentError.value('Unknown migration from $currentVersion'); throw ArgumentError.value('Unknown migration from $currentVersion');
} }
@ -1562,6 +2018,9 @@ i1.OnUpgrade stepByStep({
required Future<void> Function(i1.Migrator m, Schema8 schema) from7To8, required Future<void> Function(i1.Migrator m, Schema8 schema) from7To8,
required Future<void> Function(i1.Migrator m, Schema9 schema) from8To9, required Future<void> Function(i1.Migrator m, Schema9 schema) from8To9,
required Future<void> Function(i1.Migrator m, Schema10 schema) from9To10, required Future<void> Function(i1.Migrator m, Schema10 schema) from9To10,
required Future<void> Function(i1.Migrator m, Schema11 schema) from10To11,
required Future<void> Function(i1.Migrator m, Schema12 schema) from11To12,
required Future<void> Function(i1.Migrator m, Schema13 schema) from12To13,
}) => }) =>
i0.VersionedSchema.stepByStepHelper( i0.VersionedSchema.stepByStepHelper(
step: migrationSteps( step: migrationSteps(
@ -1574,4 +2033,7 @@ i1.OnUpgrade stepByStep({
from7To8: from7To8, from7To8: from7To8,
from8To9: from8To9, from8To9: from8To9,
from9To10: from9To10, from9To10: from9To10,
from10To11: from10To11,
from11To12: from11To12,
from12To13: from12To13,
)); ));

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

@ -8,27 +8,27 @@ Future<void> seedDb(AppDatabase database) async {
final List<List> sessionValues = [ final List<List> sessionValues = [
[ [
'Projecting', 'Projecting',
'Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.' 'Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.',
'Climbers Rock Inc.' 'Climbers Rock Inc.'
], ],
[ [
'Moonboard', 'Moonboard',
'Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.' 'Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.',
'Beta Bloc' 'Beta Bloc'
], ],
[ [
'Off-Wall Training', 'Off-Wall Training',
'Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.' 'Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.',
'Climbers Rcok Inc.' 'Climbers Rcok Inc.'
], ],
[ [
'Climbing Outdoors', 'Climbing Outdoors',
'Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.' 'Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.',
'Gravity Hamilton' 'Gravity Hamilton'
], ],
[ [
'Volume Session', 'Volume Session',
'Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.' 'Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.',
'Up the Bloc' 'Up the Bloc'
], ],
]; ];
@ -66,7 +66,8 @@ Future<void> seedDb(AppDatabase database) async {
title: sessionValue[0], title: sessionValue[0],
content: sessionValue[1], content: sessionValue[1],
status: status, status: status,
address: sessionValue[2], address: Value(sessionValue[2]),
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
@ -90,7 +91,6 @@ Future<void> seedDb(AppDatabase database) async {
activityId: activityId, activityId: activityId,
position: j, position: j,
results: Value("results json, will need to test"), results: Value("results json, will need to test"),
achievements: Value("comma, seperated, items"),
)); ));
// actions // actions

View File

@ -3,6 +3,10 @@ import 'package:sendtrain/database/database.dart';
import 'package:sendtrain/widgets/media/media_details.dart'; import 'package:sendtrain/widgets/media/media_details.dart';
showMediaDetailWidget(BuildContext context, MediaItem media) { showMediaDetailWidget(BuildContext context, MediaItem media) {
showEditorSheet(context, MediaDetails(media: media));
}
showEditorSheet(BuildContext context, Widget widget) {
showModalBottomSheet<void>( showModalBottomSheet<void>(
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)), borderRadius: BorderRadius.all(Radius.circular(10.0)),
@ -12,6 +16,6 @@ showMediaDetailWidget(BuildContext context, MediaItem media) {
isScrollControlled: true, isScrollControlled: true,
useSafeArea: true, useSafeArea: true,
builder: (BuildContext context) { builder: (BuildContext context) {
return MediaDetails(media: media); return widget;
}); });
} }

View File

@ -1,6 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:sendtrain/database/database.dart'; import 'package:sendtrain/database/database.dart';
import 'package:sendtrain/helpers/widget_helpers.dart';
import 'package:sendtrain/models/activity_timer_model.dart'; import 'package:sendtrain/models/activity_timer_model.dart';
import 'package:sendtrain/widgets/screens/activities_screen.dart'; import 'package:sendtrain/widgets/screens/activities_screen.dart';
import 'package:sendtrain/widgets/screens/sessions_screen.dart'; import 'package:sendtrain/widgets/screens/sessions_screen.dart';
@ -89,7 +90,8 @@ class _AppState extends State<App> {
NavigationDestination( NavigationDestination(
icon: Icon(Icons.sports), label: "Sessions"), icon: Icon(Icons.sports), label: "Sessions"),
NavigationDestination( NavigationDestination(
icon: Icon(Icons.sports_gymnastics_rounded), label: "Activities"), icon: Icon(Icons.sports_gymnastics_rounded),
label: "Activities"),
NavigationDestination( NavigationDestination(
icon: Icon(Icons.calendar_month_rounded), label: "Plan"), icon: Icon(Icons.calendar_month_rounded), label: "Plan"),
NavigationDestination( NavigationDestination(
@ -99,17 +101,7 @@ class _AppState extends State<App> {
]), ]),
floatingActionButton: FloatingActionButton.extended( floatingActionButton: FloatingActionButton.extended(
onPressed: () { onPressed: () {
showModalBottomSheet<void>( showEditorSheet(context, SessionEditor());
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)),
),
context: context,
showDragHandle: true,
isScrollControlled: true,
useSafeArea: true,
builder: (BuildContext context) {
return SessionEditor();
});
}, },
label: const Text('New Session'), label: const Text('New Session'),
icon: const Icon(Icons.add_chart), icon: const Icon(Icons.add_chart),

View File

@ -0,0 +1,18 @@
import 'package:flutter/material.dart';
class AchievementEditor extends StatefulWidget {
const AchievementEditor({super.key, this.achievements, this.callback});
final List? achievements;
final Function? callback;
@override
State<AchievementEditor> createState() => _AchievementEditorState();
}
class _AchievementEditorState extends State<AchievementEditor> {
@override
Widget build(BuildContext context, ) {
return Text('this is a test');
}
}

View File

@ -20,8 +20,8 @@ Future showGenericDialog(dynamic object, BuildContext parentContext) {
}); });
} }
Future showRemovalDialog(String title, String content, BuildContext context, Future showCrudDialog(String title, String content, BuildContext context,
dynamic dao, dynamic object) { dynamic daoCall, dynamic object) {
return showAdaptiveDialog( return showAdaptiveDialog(
context: context, context: context,
builder: (BuildContext context) => AlertDialog( builder: (BuildContext context) => AlertDialog(
@ -35,10 +35,20 @@ Future showRemovalDialog(String title, String content, BuildContext context,
child: const Text('Cancel'), child: const Text('Cancel'),
), ),
TextButton( TextButton(
onPressed: () => {dao.remove(object), Navigator.pop(context, 'OK')}, onPressed: () => {daoCall(object), Navigator.pop(context, 'OK')},
child: const Text('OK'), child: const Text('OK'),
), ),
], ],
), ),
); );
} }
Future showRemovalDialog(String title, String content, BuildContext context,
dynamic dao, dynamic object) {
return showCrudDialog(title, content, context, dao.remove, object);
}
Future showUpdateDialog(String title, String content, BuildContext context,
dynamic dao, dynamic object) {
return showCrudDialog(title, content, context, dao.replace, object);
}

View File

@ -10,31 +10,31 @@ import 'package:sendtrain/helpers/widget_helpers.dart';
import 'package:sendtrain/widgets/builders/dialogs.dart'; import 'package:sendtrain/widgets/builders/dialogs.dart';
import 'package:video_player/video_player.dart'; import 'package:video_player/video_player.dart';
class MediaCard extends StatefulWidget { class MediaCard extends StatelessWidget {
const MediaCard({super.key, required this.media, this.callback}); const MediaCard({super.key, required this.media, this.callback});
final MediaItem media; final MediaItem media;
final Function? callback; final Function? callback;
@override // @override
State<MediaCard> createState() => _MediaCardState(); // State<MediaCard> createState() => _MediaCardState();
} // }
class _MediaCardState extends State<MediaCard> { // class _MediaCardState extends State<MediaCard> {
// late VideoPlayerController _controller; // // late VideoPlayerController _controller;
late MediaItem media; // late MediaItem media;
late Function? callback; // late Function? callback;
@override // @override
void initState() { // void initState() {
super.initState(); // super.initState();
media = widget.media; // media = widget.media;
callback = widget.callback; // callback = widget.callback;
// _controller = VideoPlayerController.asset(dataSource) // _controller = VideoPlayerController.asset(dataSource)
// ..initialize().then((_) { // ..initialize().then((_) {
// setState(() {}); //when your thumbnail will show. // setState(() {}); //when your thumbnail will show.
// }); // });
} // }
// @override // @override
// void dispose() { // void dispose() {

View File

@ -8,6 +8,7 @@ import 'package:sendtrain/daos/activities_dao.dart';
import 'package:sendtrain/daos/sessions_dao.dart'; import 'package:sendtrain/daos/sessions_dao.dart';
import 'package:sendtrain/database/database.dart'; import 'package:sendtrain/database/database.dart';
import 'package:sendtrain/extensions/string_extensions.dart'; import 'package:sendtrain/extensions/string_extensions.dart';
import 'package:sendtrain/helpers/widget_helpers.dart';
import 'package:sendtrain/widgets/generic/elements/generic_progress_indicator.dart'; import 'package:sendtrain/widgets/generic/elements/generic_progress_indicator.dart';
import 'package:sendtrain/widgets/sessions/session_editor.dart'; import 'package:sendtrain/widgets/sessions/session_editor.dart';
import 'package:sendtrain/widgets/sessions/session_view_achievements.dart'; import 'package:sendtrain/widgets/sessions/session_view_achievements.dart';
@ -119,19 +120,10 @@ class _SessionViewState extends State<SessionView> {
icon: const Icon(Icons.edit_outlined), icon: const Icon(Icons.edit_outlined),
label: Text('Edit'), label: Text('Edit'),
onPressed: () { onPressed: () {
showModalBottomSheet<void>( showEditorSheet(
shape: RoundedRectangleBorder( context,
borderRadius: SessionEditor(
BorderRadius.all(Radius.circular(10.0)), session: session, callback: resetState));
),
context: context,
showDragHandle: true,
isScrollControlled: true,
useSafeArea: true,
builder: (BuildContext context) {
return SessionEditor(
session: session, callback: resetState);
});
}, },
), ),
]), ]),

View File

@ -1,50 +1,55 @@
import 'dart:convert';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:sendtrain/daos/session_activities_dao.dart'; import 'package:sendtrain/daos/session_activities_dao.dart';
import 'package:sendtrain/daos/sessions_dao.dart';
import 'package:sendtrain/database/database.dart'; import 'package:sendtrain/database/database.dart';
import 'package:sendtrain/extensions/string_extensions.dart'; import 'package:sendtrain/extensions/string_extensions.dart';
import 'package:sendtrain/helpers/widget_helpers.dart';
import 'package:sendtrain/widgets/achievements/achievement_editor.dart';
import 'package:sendtrain/widgets/builders/dialogs.dart';
class SessionViewAchievements extends StatelessWidget { class SessionViewAchievements extends StatelessWidget {
const SessionViewAchievements({super.key, required this.session}); const SessionViewAchievements({super.key, required this.session});
final Session session; final Session session;
List<String> getAchievements(List<SessionActivity> sessionActivities) { // List<String> getAchievements(List<SessionActivity> sessionActivities) {
List<String> achievements = []; // List<String> achievements = [];
for (int i = 0; i < sessionActivities.length; i++) { // for (int i = 0; i < sessionActivities.length; i++) {
final SessionActivity sessionActivity = sessionActivities[i]; // final SessionActivity sessionActivity = sessionActivities[i];
final List? saAchievments = sessionActivity.achievements?.split(','); // final List? saAchievments = sessionActivity.achievements?.split(',');
if (saAchievments != null) { // if (saAchievments != null) {
saAchievments.forEach((achievement) => achievements.add(achievement)); // saAchievments.forEach((achievement) => achievements.add(achievement));
} // }
} // }
return achievements; // return achievements;
// }
void resetState() {
// setState(() {});
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return FutureBuilder<List<SessionActivity>>(
future: SessionActivitiesDao(Provider.of<AppDatabase>(context))
.fromSessionId(session.id),
builder: (context, snapshot) {
if (snapshot.hasData) {
final sessionActivities = snapshot.data!;
final achievements = getAchievements(sessionActivities);
Widget content; Widget content;
if (achievements.isEmpty) { if (session.achievements == null) {
content = Padding( content = Padding(
padding: const EdgeInsets.only(left: 10, right: 5), padding: const EdgeInsets.only(left: 10, right: 5),
child: ActionChip( child: ActionChip(
visualDensity: VisualDensity.compact, visualDensity: VisualDensity.compact,
avatar: const Icon(Icons.check_circle_outline), avatar: const Icon(Icons.check_circle_outline),
label: Text(maxLines: 1, 'Add Achievements!'), label: Text(maxLines: 1, 'Add Achievements!'),
onPressed: () {}, onPressed: () {
showEditorSheet(context, AchievementEditor(callback: resetState));
},
)); ));
} else { } else {
final achievements = json.decode(session.achievements!);
content = ListView.builder( content = ListView.builder(
scrollDirection: Axis.horizontal, scrollDirection: Axis.horizontal,
padding: const EdgeInsets.fromLTRB(10, 0, 10, 0), padding: const EdgeInsets.fromLTRB(10, 0, 10, 0),
@ -55,12 +60,16 @@ class SessionViewAchievements extends StatelessWidget {
child: ActionChip( child: ActionChip(
visualDensity: VisualDensity.compact, visualDensity: VisualDensity.compact,
avatar: const Icon(Icons.check_circle_outline), avatar: const Icon(Icons.check_circle_outline),
label: Text( label: Text(maxLines: 1, achievements[index].toString().toTitleCase()),
maxLines: 1, achievements[index].toTitleCase()),
onPressed: () { onPressed: () {
// remove achievements showUpdateDialog(
}, 'Achievement Removal',
)); 'Would you like to remove this achievement?',
context,
SessionsDao(
Provider.of<AppDatabase>(context, listen: false)),
session);
}));
}, },
); );
} }
@ -72,11 +81,59 @@ class SessionViewAchievements extends StatelessWidget {
child: SizedBox(height: 40, child: content)), child: SizedBox(height: 40, child: content)),
], ],
); );
} else { // return StreamBuilder<List<SessionActivity>>(
return Padding( // stream: SessionActivitiesDao(Provider.of<AppDatabase>(context))
padding: EdgeInsets.all(15), // .fromSessionId(session.id).asStream(),
child: CircularProgressIndicator()); // builder: (context, snapshot) {
} // if (snapshot.hasData) {
}); // final sessionActivities = snapshot.data!;
// final achievements = getAchievements(sessionActivities);
// Widget content;
// if (achievements.isEmpty) {
// content = Padding(
// padding: const EdgeInsets.only(left: 10, right: 5),
// child: ActionChip(
// visualDensity: VisualDensity.compact,
// avatar: const Icon(Icons.check_circle_outline),
// label: Text(maxLines: 1, 'Add Achievements!'),
// onPressed: () {
// showEditorSheet(context, AchievementEditor(achievements: achievements, callback: resetState));
// },
// ));
// } else {
// content = ListView.builder(
// scrollDirection: Axis.horizontal,
// padding: const EdgeInsets.fromLTRB(10, 0, 10, 0),
// itemCount: achievements.length,
// itemBuilder: (BuildContext context, int index) {
// return Padding(
// padding: const EdgeInsets.only(right: 5),
// child: ActionChip(
// visualDensity: VisualDensity.compact,
// avatar: const Icon(Icons.check_circle_outline),
// label: Text(
// maxLines: 1, achievements[index].toTitleCase()),
// onPressed: () {
// // remove achievements
// },
// ));
// },
// );
// }
// return Column(
// children: [
// Padding(
// padding: const EdgeInsets.only(bottom: 10),
// child: SizedBox(height: 40, child: content)),
// ],
// );
// } else {
// return Padding(
// padding: EdgeInsets.all(15),
// child: CircularProgressIndicator());
// }
// });
} }
} }

View File

@ -14,15 +14,23 @@ class SessionViewMedia extends StatefulWidget {
} }
class _SessionViewMediaState extends State<SessionViewMedia> { class _SessionViewMediaState extends State<SessionViewMedia> {
// late final Session session;
void resetState() { void resetState() {
setState(() {}); setState(() {});
} }
// @override
// initState() async {
// super.initState();
// }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return StreamBuilder<List<MediaItem>>( return FutureBuilder<List<MediaItem>>(
stream: MediaItemsDao(Provider.of<AppDatabase>(context)) future: MediaItemsDao(Provider.of<AppDatabase>(context))
.fromSession(widget.session.id).asStream(), .fromSession(widget.session.id),
builder: (context, snapshot) { builder: (context, snapshot) {
if (snapshot.hasData) { if (snapshot.hasData) {
final mediaItems = snapshot.data!; final mediaItems = snapshot.data!;

View File

@ -13,6 +13,9 @@ import 'schema_v7.dart' as v7;
import 'schema_v8.dart' as v8; import 'schema_v8.dart' as v8;
import 'schema_v9.dart' as v9; import 'schema_v9.dart' as v9;
import 'schema_v10.dart' as v10; import 'schema_v10.dart' as v10;
import 'schema_v11.dart' as v11;
import 'schema_v12.dart' as v12;
import 'schema_v13.dart' as v13;
class GeneratedHelper implements SchemaInstantiationHelper { class GeneratedHelper implements SchemaInstantiationHelper {
@override @override
@ -38,10 +41,16 @@ class GeneratedHelper implements SchemaInstantiationHelper {
return v9.DatabaseAtV9(db); return v9.DatabaseAtV9(db);
case 10: case 10:
return v10.DatabaseAtV10(db); return v10.DatabaseAtV10(db);
case 11:
return v11.DatabaseAtV11(db);
case 12:
return v12.DatabaseAtV12(db);
case 13:
return v13.DatabaseAtV13(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]; static const versions = const [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
} }

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