2019-03-09 07:37:22 -08:00
|
|
|
import 'package:moor/moor.dart';
|
2019-02-14 07:01:57 -08:00
|
|
|
|
2019-02-14 07:53:52 -08:00
|
|
|
part 'todos.g.dart';
|
|
|
|
|
2019-02-14 07:01:57 -08:00
|
|
|
@DataClassName('TodoEntry')
|
|
|
|
class TodosTable extends Table {
|
2019-02-14 07:53:52 -08:00
|
|
|
@override
|
|
|
|
String get tableName => 'todos';
|
|
|
|
|
2019-02-14 07:01:57 -08:00
|
|
|
IntColumn get id => integer().autoIncrement()();
|
2019-02-14 07:53:52 -08:00
|
|
|
TextColumn get title => text().withLength(min: 4, max: 16).nullable()();
|
2019-02-14 07:01:57 -08:00
|
|
|
TextColumn get content => text()();
|
2019-02-14 11:46:25 -08:00
|
|
|
DateTimeColumn get targetDate => dateTime().nullable()();
|
2019-02-14 07:01:57 -08:00
|
|
|
|
2019-02-14 07:53:52 -08:00
|
|
|
IntColumn get category => integer().nullable()();
|
|
|
|
}
|
|
|
|
|
|
|
|
class Users extends Table {
|
|
|
|
IntColumn get id => integer().autoIncrement()();
|
|
|
|
TextColumn get name => text().withLength(min: 6, max: 32)();
|
|
|
|
BoolColumn get isAwesome => boolean()();
|
2019-03-10 11:45:32 -07:00
|
|
|
|
|
|
|
BlobColumn get profilePicture => blob()();
|
2019-04-01 06:19:21 -07:00
|
|
|
DateTimeColumn get creationTime =>
|
|
|
|
dateTime().withDefault(currentDateAndTime)();
|
2019-02-14 07:53:52 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
@DataClassName('Category')
|
|
|
|
class Categories extends Table {
|
|
|
|
IntColumn get id => integer().autoIncrement()();
|
2019-03-27 10:37:29 -07:00
|
|
|
TextColumn get description =>
|
|
|
|
text().named('desc').customConstraint('NOT NULL UNIQUE')();
|
2019-02-14 07:53:52 -08:00
|
|
|
}
|
|
|
|
|
2019-03-06 12:43:16 -08:00
|
|
|
class SharedTodos extends Table {
|
|
|
|
IntColumn get todo => integer()();
|
|
|
|
IntColumn get user => integer()();
|
|
|
|
|
|
|
|
@override
|
|
|
|
Set<Column> get primaryKey => {todo, user};
|
|
|
|
}
|
|
|
|
|
2019-03-09 11:35:29 -08:00
|
|
|
@UseMoor(tables: [TodosTable, Categories, Users, SharedTodos])
|
2019-02-14 07:53:52 -08:00
|
|
|
class TodoDb extends _$TodoDb {
|
|
|
|
TodoDb(QueryExecutor e) : super(e);
|
|
|
|
|
|
|
|
@override
|
|
|
|
MigrationStrategy get migration => MigrationStrategy();
|
|
|
|
|
|
|
|
@override
|
|
|
|
int get schemaVersion => 1;
|
2019-02-14 08:55:31 -08:00
|
|
|
}
|