mirror of https://github.com/AMT-Cheif/drift.git
37 lines
1.0 KiB
Dart
37 lines
1.0 KiB
Dart
import 'package:sally/sally.dart';
|
|
|
|
part 'example.g.dart';
|
|
|
|
class Products extends Table {
|
|
IntColumn get id => integer().named('products_id').autoIncrement()();
|
|
TextColumn get name => text()();
|
|
}
|
|
|
|
class Users extends Table {
|
|
IntColumn get id => integer().autoIncrement()();
|
|
TextColumn get name => text().withLength(min: 6, max: 32)();
|
|
}
|
|
|
|
@DataClassName('TodoEntry')
|
|
class Todos extends Table {
|
|
|
|
IntColumn get id => integer().autoIncrement()();
|
|
TextColumn get name => text().withLength(min: 6, max: 10)();
|
|
TextColumn get content => text().named('body')();
|
|
}
|
|
|
|
@UseSally(tables: [Products, Users, Todos])
|
|
class ShopDb extends _$ShopDb {
|
|
Future<List<User>> allUsers() => select(users).get();
|
|
Future<List<User>> userByName(String name) =>
|
|
(select(users)..where((u) => u.name.equals(name))).get();
|
|
|
|
Future<void> deleteUser(User user) =>
|
|
(delete(users)..where((u) => u.id.equals(user.id))).go();
|
|
|
|
@override
|
|
MigrationStrategy get migration => MigrationStrategy();
|
|
@override
|
|
int get schemaVersion => 1;
|
|
}
|