drift/example/lib/example.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;
}