♻️ Use drift instead for floor
This commit is contained in:
13
lib/providers/database/tables/json.dart
Normal file
13
lib/providers/database/tables/json.dart
Normal file
@ -0,0 +1,13 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:drift/drift.dart';
|
||||
|
||||
class JsonConverter extends TypeConverter<Object?, String> {
|
||||
const JsonConverter();
|
||||
|
||||
@override
|
||||
Object? fromSql(String fromDb) => jsonDecode(fromDb);
|
||||
|
||||
@override
|
||||
String toSql(Object? value) => jsonEncode(value);
|
||||
}
|
22
lib/providers/database/tables/messages.dart
Normal file
22
lib/providers/database/tables/messages.dart
Normal file
@ -0,0 +1,22 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:drift/drift.dart';
|
||||
import 'package:solian/models/event.dart';
|
||||
|
||||
class LocalMessageEventTable extends Table {
|
||||
IntColumn get id => integer().autoIncrement()();
|
||||
IntColumn get channelId => integer()();
|
||||
TextColumn get data => text().map(const MessageEventConverter())();
|
||||
DateTimeColumn get createdAt =>
|
||||
dateTime().withDefault(Constant(DateTime.now()))();
|
||||
}
|
||||
|
||||
class MessageEventConverter extends TypeConverter<Event?, String> {
|
||||
const MessageEventConverter();
|
||||
|
||||
@override
|
||||
Event? fromSql(String fromDb) => Event.fromJson(jsonDecode(fromDb));
|
||||
|
||||
@override
|
||||
String toSql(Event? value) => jsonEncode(value?.toJson());
|
||||
}
|
Reference in New Issue
Block a user