// dart format width=80
import 'package:drift/internal/versioned_schema.dart' as i0;
import 'package:drift/drift.dart' as i1;
import 'package:drift/drift.dart'; // ignore_for_file: type=lint,unused_import

// GENERATED BY drift_dev, DO NOT MODIFY.
final class Schema2 extends i0.VersionedSchema {
  Schema2({required super.database}) : super(version: 2);
  @override
  late final List<i1.DatabaseSchemaEntity> entities = [
    sessions,
    activities,
    sessionActivities,
    actions,
    activityActions,
    mediaItems,
    objectMediaItems,
  ];
  late final Shape0 sessions = Shape0(
      source: i0.VersionedTable(
        entityName: 'sessions',
        withoutRowId: false,
        isStrict: false,
        tableConstraints: [],
        columns: [
          _column_0,
          _column_1,
          _column_2,
          _column_3,
          _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 Shape2 sessionActivities = Shape2(
      source: i0.VersionedTable(
        entityName: 'session_activities',
        withoutRowId: false,
        isStrict: false,
        tableConstraints: [],
        columns: [
          _column_0,
          _column_8,
          _column_9,
          _column_10,
          _column_11,
          _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 Shape4 activityActions = Shape4(
      source: i0.VersionedTable(
        entityName: 'activity_actions',
        withoutRowId: false,
        isStrict: false,
        tableConstraints: [],
        columns: [
          _column_0,
          _column_9,
          _column_13,
          _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_14,
          _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_17,
          _column_5,
        ],
        attachedDatabase: database,
      ),
      alias: null);
}

class Shape0 extends i0.VersionedTable {
  Shape0({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<DateTime> get date =>
      columnsByName['date']! as i1.GeneratedColumn<DateTime>;
  i1.GeneratedColumn<DateTime> get createdAt =>
      columnsByName['created_at']! as i1.GeneratedColumn<DateTime>;
}

i1.GeneratedColumn<int> _column_0(String aliasedName) =>
    i1.GeneratedColumn<int>('id', aliasedName, false,
        hasAutoIncrement: true,
        type: i1.DriftSqlType.int,
        defaultConstraints:
            i1.GeneratedColumn.constraintIsAlways('PRIMARY KEY AUTOINCREMENT'));
i1.GeneratedColumn<String> _column_1(String aliasedName) =>
    i1.GeneratedColumn<String>('title', aliasedName, false,
        additionalChecks: i1.GeneratedColumn.checkTextLength(
            minTextLength: 3, maxTextLength: 32),
        type: i1.DriftSqlType.string);
i1.GeneratedColumn<String> _column_2(String aliasedName) =>
    i1.GeneratedColumn<String>('body', aliasedName, false,
        type: i1.DriftSqlType.string);
i1.GeneratedColumn<String> _column_3(String aliasedName) =>
    i1.GeneratedColumn<String>('status', aliasedName, false,
        type: i1.DriftSqlType.string);
i1.GeneratedColumn<DateTime> _column_4(String aliasedName) =>
    i1.GeneratedColumn<DateTime>('date', aliasedName, true,
        type: i1.DriftSqlType.dateTime);
i1.GeneratedColumn<DateTime> _column_5(String aliasedName) =>
    i1.GeneratedColumn<DateTime>('created_at', aliasedName, false,
        type: i1.DriftSqlType.dateTime, defaultValue: Variable(DateTime.now()));

class Shape1 extends i0.VersionedTable {
  Shape1({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 type =>
      columnsByName['type']! as i1.GeneratedColumn<String>;
  i1.GeneratedColumn<String> get description =>
      columnsByName['body']! as i1.GeneratedColumn<String>;
  i1.GeneratedColumn<String> get category =>
      columnsByName['category']! as i1.GeneratedColumn<String>;
  i1.GeneratedColumn<DateTime> get createdAt =>
      columnsByName['created_at']! as i1.GeneratedColumn<DateTime>;
}

i1.GeneratedColumn<String> _column_6(String aliasedName) =>
    i1.GeneratedColumn<String>('type', aliasedName, false,
        type: i1.DriftSqlType.string);
i1.GeneratedColumn<String> _column_7(String aliasedName) =>
    i1.GeneratedColumn<String>('category', aliasedName, false,
        type: i1.DriftSqlType.string);

class Shape2 extends i0.VersionedTable {
  Shape2({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<String> get results =>
      columnsByName['results']! as i1.GeneratedColumn<String>;
  i1.GeneratedColumn<String> get achievements =>
      columnsByName['achievements']! as i1.GeneratedColumn<String>;
  i1.GeneratedColumn<DateTime> get createdAt =>
      columnsByName['created_at']! as i1.GeneratedColumn<DateTime>;
}

i1.GeneratedColumn<int> _column_8(String aliasedName) =>
    i1.GeneratedColumn<int>('session_id', aliasedName, false,
        type: i1.DriftSqlType.int,
        defaultConstraints:
            i1.GeneratedColumn.constraintIsAlways('REFERENCES sessions (id)'));
i1.GeneratedColumn<int> _column_9(String aliasedName) =>
    i1.GeneratedColumn<int>('activity_id', aliasedName, false,
        type: i1.DriftSqlType.int,
        defaultConstraints: i1.GeneratedColumn.constraintIsAlways(
            'REFERENCES activities (id)'));
i1.GeneratedColumn<String> _column_10(String aliasedName) =>
    i1.GeneratedColumn<String>('results', aliasedName, true,
        type: i1.DriftSqlType.string);
i1.GeneratedColumn<String> _column_11(String aliasedName) =>
    i1.GeneratedColumn<String>('achievements', aliasedName, true,
        type: i1.DriftSqlType.string);

class Shape3 extends i0.VersionedTable {
  Shape3({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 description =>
      columnsByName['body']! as i1.GeneratedColumn<String>;
  i1.GeneratedColumn<String> get set =>
      columnsByName['set']! as i1.GeneratedColumn<String>;
  i1.GeneratedColumn<DateTime> get createdAt =>
      columnsByName['created_at']! as i1.GeneratedColumn<DateTime>;
}

i1.GeneratedColumn<String> _column_12(String aliasedName) =>
    i1.GeneratedColumn<String>('set', aliasedName, false,
        type: i1.DriftSqlType.string);

class Shape4 extends i0.VersionedTable {
  Shape4({required super.source, required super.alias}) : super.aliased();
  i1.GeneratedColumn<int> get id =>
      columnsByName['id']! as i1.GeneratedColumn<int>;
  i1.GeneratedColumn<int> get activityId =>
      columnsByName['activity_id']! as i1.GeneratedColumn<int>;
  i1.GeneratedColumn<int> get actionId =>
      columnsByName['action_id']! as i1.GeneratedColumn<int>;
  i1.GeneratedColumn<DateTime> get createdAt =>
      columnsByName['created_at']! as i1.GeneratedColumn<DateTime>;
}

i1.GeneratedColumn<int> _column_13(String aliasedName) =>
    i1.GeneratedColumn<int>('action_id', aliasedName, false,
        type: i1.DriftSqlType.int,
        defaultConstraints:
            i1.GeneratedColumn.constraintIsAlways('REFERENCES actions (id)'));

class Shape5 extends i0.VersionedTable {
  Shape5({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 description =>
      columnsByName['body']! as i1.GeneratedColumn<String>;
  i1.GeneratedColumn<String> get reference =>
      columnsByName['reference']! as i1.GeneratedColumn<String>;
  i1.GeneratedColumn<String> get type =>
      columnsByName['type']! as i1.GeneratedColumn<String>;
  i1.GeneratedColumn<DateTime> get createdAt =>
      columnsByName['created_at']! as i1.GeneratedColumn<DateTime>;
}

i1.GeneratedColumn<String> _column_14(String aliasedName) =>
    i1.GeneratedColumn<String>('reference', aliasedName, false,
        additionalChecks: i1.GeneratedColumn.checkTextLength(
            minTextLength: 3, maxTextLength: 256),
        type: i1.DriftSqlType.string);

class Shape6 extends i0.VersionedTable {
  Shape6({required super.source, required super.alias}) : super.aliased();
  i1.GeneratedColumn<int> get id =>
      columnsByName['id']! as i1.GeneratedColumn<int>;
  i1.GeneratedColumn<int> get objectId =>
      columnsByName['object_id']! as i1.GeneratedColumn<int>;
  i1.GeneratedColumn<String> get objectType =>
      columnsByName['object_type']! as i1.GeneratedColumn<String>;
  i1.GeneratedColumn<int> get mediaId =>
      columnsByName['media_id']! as i1.GeneratedColumn<int>;
  i1.GeneratedColumn<DateTime> get createdAt =>
      columnsByName['created_at']! as i1.GeneratedColumn<DateTime>;
}

i1.GeneratedColumn<int> _column_15(String aliasedName) =>
    i1.GeneratedColumn<int>('object_id', aliasedName, false,
        type: i1.DriftSqlType.int);
i1.GeneratedColumn<String> _column_16(String aliasedName) =>
    i1.GeneratedColumn<String>('object_type', aliasedName, false,
        type: i1.DriftSqlType.string);
i1.GeneratedColumn<int> _column_17(String aliasedName) =>
    i1.GeneratedColumn<int>('media_id', aliasedName, false,
        type: i1.DriftSqlType.int,
        defaultConstraints: i1.GeneratedColumn.constraintIsAlways(
            'REFERENCES media_items (id)'));

final class Schema3 extends i0.VersionedSchema {
  Schema3({required super.database}) : super(version: 3);
  @override
  late final List<i1.DatabaseSchemaEntity> entities = [
    sessions,
    activities,
    sessionActivities,
    actions,
    activityActions,
    mediaItems,
    objectMediaItems,
  ];
  late final Shape0 sessions = Shape0(
      source: i0.VersionedTable(
        entityName: 'sessions',
        withoutRowId: false,
        isStrict: false,
        tableConstraints: [],
        columns: [
          _column_0,
          _column_1,
          _column_2,
          _column_3,
          _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 Shape7 sessionActivities = Shape7(
      source: i0.VersionedTable(
        entityName: 'session_activities',
        withoutRowId: false,
        isStrict: false,
        tableConstraints: [],
        columns: [
          _column_0,
          _column_8,
          _column_9,
          _column_18,
          _column_10,
          _column_11,
          _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 Shape8 activityActions = Shape8(
      source: i0.VersionedTable(
        entityName: 'activity_actions',
        withoutRowId: false,
        isStrict: false,
        tableConstraints: [],
        columns: [
          _column_0,
          _column_9,
          _column_13,
          _column_18,
          _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_14,
          _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_17,
          _column_5,
        ],
        attachedDatabase: database,
      ),
      alias: null);
}

class Shape7 extends i0.VersionedTable {
  Shape7({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 postition =>
      columnsByName['postition']! as i1.GeneratedColumn<int>;
  i1.GeneratedColumn<String> get results =>
      columnsByName['results']! as i1.GeneratedColumn<String>;
  i1.GeneratedColumn<String> get achievements =>
      columnsByName['achievements']! as i1.GeneratedColumn<String>;
  i1.GeneratedColumn<DateTime> get createdAt =>
      columnsByName['created_at']! as i1.GeneratedColumn<DateTime>;
}

i1.GeneratedColumn<int> _column_18(String aliasedName) =>
    i1.GeneratedColumn<int>('postition', aliasedName, false,
        type: i1.DriftSqlType.int);

class Shape8 extends i0.VersionedTable {
  Shape8({required super.source, required super.alias}) : super.aliased();
  i1.GeneratedColumn<int> get id =>
      columnsByName['id']! as i1.GeneratedColumn<int>;
  i1.GeneratedColumn<int> get activityId =>
      columnsByName['activity_id']! as i1.GeneratedColumn<int>;
  i1.GeneratedColumn<int> get actionId =>
      columnsByName['action_id']! as i1.GeneratedColumn<int>;
  i1.GeneratedColumn<int> get postition =>
      columnsByName['postition']! as i1.GeneratedColumn<int>;
  i1.GeneratedColumn<DateTime> get createdAt =>
      columnsByName['created_at']! as i1.GeneratedColumn<DateTime>;
}

final class Schema4 extends i0.VersionedSchema {
  Schema4({required super.database}) : super(version: 4);
  @override
  late final List<i1.DatabaseSchemaEntity> entities = [
    sessions,
    activities,
    sessionActivities,
    actions,
    activityActions,
    mediaItems,
    objectMediaItems,
  ];
  late final Shape0 sessions = Shape0(
      source: i0.VersionedTable(
        entityName: 'sessions',
        withoutRowId: false,
        isStrict: false,
        tableConstraints: [],
        columns: [
          _column_0,
          _column_1,
          _column_2,
          _column_3,
          _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 Shape9 sessionActivities = Shape9(
      source: i0.VersionedTable(
        entityName: 'session_activities',
        withoutRowId: false,
        isStrict: false,
        tableConstraints: [],
        columns: [
          _column_0,
          _column_8,
          _column_9,
          _column_19,
          _column_10,
          _column_11,
          _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_9,
          _column_13,
          _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_14,
          _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_17,
          _column_5,
        ],
        attachedDatabase: database,
      ),
      alias: null);
}

class Shape9 extends i0.VersionedTable {
  Shape9({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<String> get achievements =>
      columnsByName['achievements']! as i1.GeneratedColumn<String>;
  i1.GeneratedColumn<DateTime> get createdAt =>
      columnsByName['created_at']! as i1.GeneratedColumn<DateTime>;
}

i1.GeneratedColumn<int> _column_19(String aliasedName) =>
    i1.GeneratedColumn<int>('position', aliasedName, false,
        type: i1.DriftSqlType.int);

class Shape10 extends i0.VersionedTable {
  Shape10({required super.source, required super.alias}) : super.aliased();
  i1.GeneratedColumn<int> get id =>
      columnsByName['id']! as i1.GeneratedColumn<int>;
  i1.GeneratedColumn<int> get activityId =>
      columnsByName['activity_id']! as i1.GeneratedColumn<int>;
  i1.GeneratedColumn<int> get actionId =>
      columnsByName['action_id']! as i1.GeneratedColumn<int>;
  i1.GeneratedColumn<int> get position =>
      columnsByName['position']! as i1.GeneratedColumn<int>;
  i1.GeneratedColumn<DateTime> get createdAt =>
      columnsByName['created_at']! as i1.GeneratedColumn<DateTime>;
}

i0.MigrationStepWithVersion migrationSteps({
  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, Schema4 schema) from3To4,
}) {
  return (currentVersion, database) async {
    switch (currentVersion) {
      case 1:
        final schema = Schema2(database: database);
        final migrator = i1.Migrator(database, schema);
        await from1To2(migrator, schema);
        return 2;
      case 2:
        final schema = Schema3(database: database);
        final migrator = i1.Migrator(database, schema);
        await from2To3(migrator, schema);
        return 3;
      case 3:
        final schema = Schema4(database: database);
        final migrator = i1.Migrator(database, schema);
        await from3To4(migrator, schema);
        return 4;
      default:
        throw ArgumentError.value('Unknown migration from $currentVersion');
    }
  };
}

i1.OnUpgrade stepByStep({
  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, Schema4 schema) from3To4,
}) =>
    i0.VersionedSchema.stepByStepHelper(
        step: migrationSteps(
      from1To2: from1To2,
      from2To3: from2To3,
      from3To4: from3To4,
    ));