diff --git a/apps/im_app/lib/data/local/drift/app_database.dart b/apps/im_app/lib/data/local/drift/app_database.dart index d854481..f4132de 100644 --- a/apps/im_app/lib/data/local/drift/app_database.dart +++ b/apps/im_app/lib/data/local/drift/app_database.dart @@ -1,27 +1,61 @@ import 'package:drift/drift.dart'; +import 'package:im_app/data/local/drift/tables/favourites.dart'; +import 'package:im_app/data/local/drift/tables/sounds.dart'; +import 'package:im_app/data/local/drift/tables/tags.dart'; +import 'package:im_app/data/local/drift/tables/pending_friend_request_histories.dart'; +import 'package:im_app/data/local/drift/tables/message.dart'; +import 'package:im_app/data/local/drift/tables/recent_mini_apps.dart'; +import 'package:im_app/data/local/drift/tables/retries.dart'; +import 'package:im_app/data/local/drift/tables/groups.dart'; +import 'package:im_app/data/local/drift/tables/favorite_mini_apps.dart'; +import 'package:im_app/data/local/drift/tables/discover_mini_apps.dart'; +import 'package:im_app/data/local/drift/tables/chat_categories.dart'; +import 'package:im_app/data/local/drift/tables/chat_bots.dart'; +import 'package:im_app/data/local/drift/tables/favourite_details.dart'; +import 'package:im_app/data/local/drift/tables/user_request_histories.dart'; +import 'package:im_app/data/local/drift/tables/workspaces.dart'; import 'package:im_app/data/local/drift/tables/users.dart'; -import 'package:im_app/data/local/drift/tables/test_tables.dart'; +import 'package:im_app/data/local/drift/tables/explore_mini_apps.dart'; +import 'package:im_app/data/local/drift/tables/call_logs.dart'; +import 'package:im_app/data/local/drift/tables/chats.dart'; part 'app_database.g.dart'; -@DriftDatabase(tables: [Users,TestTables]) //update mapping here +@DriftDatabase(tables: [Favourites,Sounds,Tags,PendingFriendRequestHistories,Messages,RecentMiniApps,Retries,Groups,FavoriteMiniApps,DiscoverMiniApps,ChatCategories,ChatBots,FavouriteDetails,UserRequestHistories,Workspaces,Users,ExploreMiniApps,CallLogs,Chats]) //update mapping here class AppDatabase extends _$AppDatabase { static Map getTableRegistry(GeneratedDatabase database) { if (database is! AppDatabase) { - return { - }; + return {}; } return { + Favourite: database.favourites, + Sound: database.sounds, + Tag: database.tags, + PendingFriendRequestHistory: database.pendingFriendRequestHistories, + Message: database.messages, + RecentMiniApp: database.recentMiniApps, + Retry: database.retries, + Group: database.groups, + FavoriteMiniApp: database.favoriteMiniApps, + DiscoverMiniApp: database.discoverMiniApps, + ChatCategory: database.chatCategories, + ChatBot: database.chatBots, + FavouriteDetail: database.favouriteDetails, + UserRequestHistory: database.userRequestHistories, + Workspace: database.workspaces, User: database.users, - TestTable: database.testTables, + ExploreMiniApp: database.exploreMiniApps, + CallLog: database.callLogs, + Chat: database.chats, }; } AppDatabase(super.e); + //升级数据库用此版本号 @override - int get schemaVersion => 1; + int get schemaVersion => 2; @override MigrationStrategy get migration { @@ -29,10 +63,24 @@ class AppDatabase extends _$AppDatabase { onCreate: (m) async { await m.createAll(); }, + beforeOpen: (details) async { + print("wtf"); + }, onUpgrade: (m, from, to) async { - // 自动检测并添加缺失列 + // Create any new tables that don't exist yet + print("upgrading"); for (final table in allTables) { - //取原来的字段 + final existingTables = await m.database + .customSelect("SELECT name FROM sqlite_master WHERE type='table' AND name='${table.actualTableName}'") + .get(); + + if (existingTables.isEmpty) { + print("creating table"); + await m.createTable(table); + continue; + } + + // Auto-detect and add missing columns final existingColumns = await m.database .customSelect('PRAGMA table_info(${table.actualTableName})') .get(); @@ -42,7 +90,6 @@ class AppDatabase extends _$AppDatabase { for (final column in table.$columns) { if (!existingNames.contains(column.name)) { - //字段缺失,添加。 await m.addColumn(table, column); } } diff --git a/apps/im_app/lib/data/local/drift/tables/call_logs.dart b/apps/im_app/lib/data/local/drift/tables/call_logs.dart new file mode 100644 index 0000000..c956bc8 --- /dev/null +++ b/apps/im_app/lib/data/local/drift/tables/call_logs.dart @@ -0,0 +1,24 @@ +import 'package:drift/drift.dart'; + +@DataClassName('CallLog') +class CallLogs extends Table { + TextColumn get id => text()(); + IntColumn get callerId => integer().nullable()(); + IntColumn get receiverId => integer().nullable()(); + IntColumn get chatId => integer().nullable()(); + IntColumn get duration => integer().nullable()(); + IntColumn get videoCall => integer().nullable()(); + IntColumn get createdAt => integer().nullable()(); + IntColumn get updatedAt => integer().nullable()(); + IntColumn get endedAt => integer().nullable()(); + IntColumn get status => integer().nullable()(); + IntColumn get isDeleted => integer().nullable()(); + IntColumn get deletedAt => integer().nullable()(); + IntColumn get isRead => integer().nullable()(); + + @override + Set get primaryKey => {id}; + + @override + String get tableName => 'call_log'; +} \ No newline at end of file diff --git a/apps/im_app/lib/data/local/drift/tables/chat_bots.dart b/apps/im_app/lib/data/local/drift/tables/chat_bots.dart new file mode 100644 index 0000000..eecffaa --- /dev/null +++ b/apps/im_app/lib/data/local/drift/tables/chat_bots.dart @@ -0,0 +1,33 @@ +import 'package:drift/drift.dart'; + +@DataClassName('ChatBot') +class ChatBots extends Table { + IntColumn get id => integer()(); + TextColumn get name => text().nullable()(); + TextColumn get username => text().nullable()(); + IntColumn get botUserId => integer().nullable()(); + TextColumn get icon => text().nullable()(); + TextColumn get iconGaussian => text().nullable()(); + TextColumn get description => text().nullable()(); + TextColumn get token => text().nullable()(); + IntColumn get flag => integer().nullable()(); + IntColumn get status => integer().nullable()(); + TextColumn get webhook => text().withDefault(const Constant(''))(); + TextColumn get commands => text().withDefault(const Constant('[]'))(); + TextColumn get banner => text().nullable()(); + IntColumn get channelId => integer().nullable()(); + IntColumn get channelGroupId => integer().nullable()(); + IntColumn get deletedAt => integer().nullable()(); + TextColumn get internalWebhook => text().nullable()(); + IntColumn get mode => integer().nullable()(); + TextColumn get redirectUrl => text().nullable()(); + IntColumn get isInvitable => integer().nullable()(); + IntColumn get isAllowForward => integer().nullable()(); + TextColumn get tips => text().nullable()(); + + @override + Set get primaryKey => {id}; + + @override + String get tableName => 'chat_bot'; +} \ No newline at end of file diff --git a/apps/im_app/lib/data/local/drift/tables/chat_categories.dart b/apps/im_app/lib/data/local/drift/tables/chat_categories.dart new file mode 100644 index 0000000..2bd07d3 --- /dev/null +++ b/apps/im_app/lib/data/local/drift/tables/chat_categories.dart @@ -0,0 +1,20 @@ +import 'package:drift/drift.dart'; + +@DataClassName('ChatCategory') +class ChatCategories extends Table { + IntColumn get id => integer()(); + TextColumn get name => text().nullable().unique()(); + TextColumn get includedChatIds => text().nullable()(); + TextColumn get excludedChatIds => text().nullable()(); + IntColumn get seq => integer().nullable()(); + IntColumn get isHide => integer().withDefault(const Constant(0))(); + IntColumn get createdAt => integer().withDefault(const Constant(0))(); + IntColumn get updatedAt => integer().withDefault(const Constant(0))(); + IntColumn get deletedAt => integer().withDefault(const Constant(0))(); + + @override + Set get primaryKey => {id}; + + @override + String get tableName => 'chat_category'; +} \ No newline at end of file diff --git a/apps/im_app/lib/data/local/drift/tables/chats.dart b/apps/im_app/lib/data/local/drift/tables/chats.dart new file mode 100644 index 0000000..61eea86 --- /dev/null +++ b/apps/im_app/lib/data/local/drift/tables/chats.dart @@ -0,0 +1,58 @@ +import 'package:drift/drift.dart'; + +@DataClassName('Chat') +class Chats extends Table { + IntColumn get id => integer()(); + IntColumn get typ => integer().nullable()(); + IntColumn get lastId => integer().nullable()(); + IntColumn get lastTyp => integer().nullable()(); + TextColumn get lastMsg => text().nullable()(); + IntColumn get lastTime => integer().nullable()(); + IntColumn get lastPos => integer().withDefault(const Constant(0))(); + IntColumn get firstPos => integer().withDefault(const Constant(-1))(); + IntColumn get msgIdx => integer().nullable()(); + TextColumn get profile => text().nullable()(); + TextColumn get pin => text().nullable()(); + TextColumn get icon => text().nullable()(); + TextColumn get iconGaussian => text().withDefault(const Constant(''))(); + TextColumn get name => text().nullable()(); + IntColumn get userId => integer().nullable()(); + IntColumn get chatId => integer().nullable()(); + IntColumn get friendId => integer().nullable()(); + IntColumn get sort => integer().nullable()(); + IntColumn get unreadNum => integer().nullable()(); + IntColumn get unreadCount => integer().nullable()(); + IntColumn get hideChatMsgIdx => integer().nullable()(); + IntColumn get readChatMsgIdx => integer().nullable()(); + IntColumn get otherReadIdx => integer().nullable()(); + TextColumn get unreadAtMsgIdx => text().nullable()(); + IntColumn get deleteTime => integer().nullable()(); + IntColumn get addIndex => integer().nullable()(); + IntColumn get flag => integer().withDefault(const Constant(0))(); + IntColumn get flagMy => integer().nullable()(); + IntColumn get autoDeleteInterval => integer().nullable()(); + IntColumn get mute => integer().nullable()(); + IntColumn get verified => integer().nullable()(); + IntColumn get createTime => integer().nullable()(); + IntColumn get startIdx => integer().nullable()(); + IntColumn get isReadMsg => integer().nullable()(); + TextColumn get translateOutgoing => text().withDefault(const Constant(''))(); + TextColumn get translateIncoming => text().withDefault(const Constant(''))(); + IntColumn get incomingIdx => integer().withDefault(const Constant(0))(); + IntColumn get outgoingIdx => integer().withDefault(const Constant(0))(); + IntColumn get incomingSoundId => integer().withDefault(const Constant(0))(); + IntColumn get outgoingSoundId => integer().withDefault(const Constant(0))(); + IntColumn get notificationSoundId => integer().withDefault(const Constant(0))(); + TextColumn get chatKey => text().withDefault(const Constant(''))(); + TextColumn get activeChatKey => text().withDefault(const Constant(''))(); + IntColumn get coverIdx => integer().withDefault(const Constant(0))(); + IntColumn get round => integer().withDefault(const Constant(0))(); + IntColumn get workspaceId => integer().withDefault(const Constant(0))(); + IntColumn get localPermission => integer().withDefault(const Constant(0))(); + + @override + Set get primaryKey => {id}; + + @override + String get tableName => 'chat'; +} \ No newline at end of file diff --git a/apps/im_app/lib/data/local/drift/tables/discover_mini_apps.dart b/apps/im_app/lib/data/local/drift/tables/discover_mini_apps.dart new file mode 100644 index 0000000..a3fbb06 --- /dev/null +++ b/apps/im_app/lib/data/local/drift/tables/discover_mini_apps.dart @@ -0,0 +1,36 @@ +import 'package:drift/drift.dart'; + +@DataClassName('DiscoverMiniApp') +class DiscoverMiniApps extends Table { + TextColumn get id => text()(); + TextColumn get name => text().nullable()(); + TextColumn get openuid => text().nullable()(); + TextColumn get devId => text().nullable()(); + TextColumn get icon => text().nullable()(); + TextColumn get iconGaussian => text().nullable()(); + TextColumn get downloadUrl => text().nullable()(); + TextColumn get description => text().nullable()(); + IntColumn get version => integer().nullable()(); + IntColumn get typ => integer().nullable()(); + IntColumn get flag => integer().nullable()(); + IntColumn get reviewStatus => integer().nullable()(); + IntColumn get favoriteAt => integer().nullable()(); + IntColumn get isActive => integer().nullable()(); + IntColumn get createdAt => integer().nullable()(); + IntColumn get updatedAt => integer().nullable()(); + IntColumn get deletedAt => integer().nullable()(); + RealColumn get score => real().nullable()(); + TextColumn get channels => text().nullable()(); + TextColumn get devName => text().nullable()(); + TextColumn get pictureGaussian => text().nullable()(); + TextColumn get picture => text().nullable()(); + IntColumn get commentNum => integer().nullable()(); + TextColumn get lastLoginAt => text().nullable()(); + TextColumn get screen => text().nullable()(); + + @override + Set get primaryKey => {id}; + + @override + String get tableName => 'discover_mini_app'; +} \ No newline at end of file diff --git a/apps/im_app/lib/data/local/drift/tables/explore_mini_apps.dart b/apps/im_app/lib/data/local/drift/tables/explore_mini_apps.dart new file mode 100644 index 0000000..b4c2949 --- /dev/null +++ b/apps/im_app/lib/data/local/drift/tables/explore_mini_apps.dart @@ -0,0 +1,36 @@ +import 'package:drift/drift.dart'; + +@DataClassName('ExploreMiniApp') +class ExploreMiniApps extends Table { + TextColumn get id => text()(); + TextColumn get name => text().nullable()(); + TextColumn get openuid => text().nullable()(); + TextColumn get devId => text().nullable()(); + TextColumn get icon => text().nullable()(); + TextColumn get iconGaussian => text().nullable()(); + TextColumn get downloadUrl => text().nullable()(); + TextColumn get description => text().nullable()(); + IntColumn get version => integer().nullable()(); + IntColumn get typ => integer().nullable()(); + IntColumn get flag => integer().nullable()(); + IntColumn get reviewStatus => integer().nullable()(); + IntColumn get favoriteAt => integer().nullable()(); + IntColumn get isActive => integer().nullable()(); + IntColumn get createdAt => integer().nullable()(); + IntColumn get updatedAt => integer().nullable()(); + IntColumn get deletedAt => integer().nullable()(); + RealColumn get score => real().nullable()(); + TextColumn get channels => text().nullable()(); + TextColumn get devName => text().nullable()(); + TextColumn get pictureGaussian => text().nullable()(); + TextColumn get picture => text().nullable()(); + IntColumn get commentNum => integer().nullable()(); + IntColumn get lastLoginAt => integer().nullable()(); + TextColumn get screen => text().nullable()(); + + @override + Set get primaryKey => {id}; + + @override + String get tableName => 'explore_mini_app'; +} \ No newline at end of file diff --git a/apps/im_app/lib/data/local/drift/tables/favorite_mini_apps.dart b/apps/im_app/lib/data/local/drift/tables/favorite_mini_apps.dart new file mode 100644 index 0000000..3f61047 --- /dev/null +++ b/apps/im_app/lib/data/local/drift/tables/favorite_mini_apps.dart @@ -0,0 +1,36 @@ +import 'package:drift/drift.dart'; + +@DataClassName('FavoriteMiniApp') +class FavoriteMiniApps extends Table { + TextColumn get id => text()(); + TextColumn get name => text().nullable()(); + TextColumn get openuid => text().nullable()(); + TextColumn get devId => text().nullable()(); + TextColumn get icon => text().nullable()(); + TextColumn get iconGaussian => text().nullable()(); + TextColumn get downloadUrl => text().nullable()(); + TextColumn get description => text().nullable()(); + IntColumn get version => integer().nullable()(); + IntColumn get typ => integer().nullable()(); + IntColumn get flag => integer().nullable()(); + IntColumn get reviewStatus => integer().nullable()(); + IntColumn get favoriteAt => integer().nullable()(); + IntColumn get isActive => integer().nullable()(); + IntColumn get createdAt => integer().nullable()(); + IntColumn get updatedAt => integer().nullable()(); + IntColumn get deletedAt => integer().nullable()(); + RealColumn get score => real().nullable()(); + TextColumn get channels => text().nullable()(); + TextColumn get devName => text().nullable()(); + TextColumn get pictureGaussian => text().nullable()(); + TextColumn get picture => text().nullable()(); + IntColumn get commentNum => integer().nullable()(); + IntColumn get lastLoginAt => integer().nullable()(); + TextColumn get screen => text().nullable()(); + + @override + Set get primaryKey => {id}; + + @override + String get tableName => 'favorite_mini_app'; +} \ No newline at end of file diff --git a/apps/im_app/lib/data/local/drift/tables/favourite_details.dart b/apps/im_app/lib/data/local/drift/tables/favourite_details.dart new file mode 100644 index 0000000..ea1ed95 --- /dev/null +++ b/apps/im_app/lib/data/local/drift/tables/favourite_details.dart @@ -0,0 +1,16 @@ +import 'package:drift/drift.dart'; + +@DataClassName('FavouriteDetail') +class FavouriteDetails extends Table { + IntColumn get id => integer().autoIncrement()(); + TextColumn get relatedId => text().withDefault(const Constant(''))(); + TextColumn get content => text().withDefault(const Constant(''))(); + IntColumn get typ => integer().nullable()(); + IntColumn get messageId => integer().nullable()(); + IntColumn get sendId => integer().nullable()(); + IntColumn get chatId => integer().nullable()(); + IntColumn get sendTime => integer().nullable()(); + + @override + String get tableName => 'favourite_detail'; +} \ No newline at end of file diff --git a/apps/im_app/lib/data/local/drift/tables/favourites.dart b/apps/im_app/lib/data/local/drift/tables/favourites.dart new file mode 100644 index 0000000..d2b2758 --- /dev/null +++ b/apps/im_app/lib/data/local/drift/tables/favourites.dart @@ -0,0 +1,26 @@ +import 'package:drift/drift.dart'; + +@DataClassName('Favourite') +class Favourites extends Table { + IntColumn get id => integer()(); + TextColumn get parentId => text().withDefault(const Constant(''))(); + TextColumn get data => text().withDefault(const Constant(''))(); + IntColumn get createdAt => integer().withDefault(const Constant(0))(); + IntColumn get updatedAt => integer().withDefault(const Constant(0))(); + IntColumn get deletedAt => integer().withDefault(const Constant(0))(); + IntColumn get source => integer().nullable()(); + IntColumn get userId => integer().nullable()(); + IntColumn get authorId => integer().nullable()(); + TextColumn get typ => text().withDefault(const Constant('[]'))(); + TextColumn get tag => text().withDefault(const Constant('[]'))(); + IntColumn get isPin => integer().withDefault(const Constant(0))(); + IntColumn get chatTyp => integer().withDefault(const Constant(0))(); + IntColumn get isUploaded => integer().withDefault(const Constant(1))(); + TextColumn get urls => text().withDefault(const Constant('[]'))(); + + @override + Set get primaryKey => {id}; + + @override + String get tableName => 'favourite'; +} \ No newline at end of file diff --git a/apps/im_app/lib/data/local/drift/tables/groups.dart b/apps/im_app/lib/data/local/drift/tables/groups.dart new file mode 100644 index 0000000..228d491 --- /dev/null +++ b/apps/im_app/lib/data/local/drift/tables/groups.dart @@ -0,0 +1,39 @@ +import 'package:drift/drift.dart'; + +@DataClassName('Group') +class Groups extends Table { + IntColumn get id => integer()(); + IntColumn get userJoinDate => integer().nullable()(); + TextColumn get name => text().nullable()(); + TextColumn get profile => text().nullable()(); + TextColumn get icon => text().nullable()(); + TextColumn get iconGaussian => text().withDefault(const Constant(''))(); + IntColumn get permission => integer().nullable()(); + IntColumn get admin => integer().nullable()(); + TextColumn get members => text().nullable()(); + IntColumn get owner => integer().nullable()(); + TextColumn get admins => text().nullable()(); + IntColumn get visible => integer().nullable()(); + IntColumn get speakInterval => integer().nullable()(); + IntColumn get groupType => integer().nullable()(); + IntColumn get roomType => integer().nullable()(); + IntColumn get maxNumber => integer().nullable()(); + IntColumn get channelId => integer().nullable()(); + IntColumn get channelGroupId => integer().nullable()(); + IntColumn get createTime => integer().nullable()(); + IntColumn get updateTime => integer().nullable()(); + IntColumn get addIndex => integer().nullable()(); + IntColumn get maxMember => integer().nullable()(); + IntColumn get expireTime => integer().nullable()(); + IntColumn get workspaceId => integer().withDefault(const Constant(0))(); + IntColumn get mode => integer().withDefault(const Constant(0))(); + IntColumn get redpacketPlay => integer().withDefault(const Constant(0))(); + TextColumn get topic => text().nullable()(); + TextColumn get rp => text().nullable()(); + + @override + Set get primaryKey => {id}; + + @override + String get tableName => 'chat_group'; +} \ No newline at end of file diff --git a/apps/im_app/lib/data/local/drift/tables/message.dart b/apps/im_app/lib/data/local/drift/tables/message.dart new file mode 100644 index 0000000..bd64691 --- /dev/null +++ b/apps/im_app/lib/data/local/drift/tables/message.dart @@ -0,0 +1,27 @@ +import 'package:drift/drift.dart'; + +@DataClassName('Message') +class Messages extends Table { + IntColumn get id => integer()(); + IntColumn get messageId => integer().nullable()(); + IntColumn get chatId => integer().nullable()(); + IntColumn get chatIdx => integer().nullable()(); + IntColumn get sendId => integer().nullable()(); + TextColumn get content => text().nullable()(); + IntColumn get typ => integer().nullable()(); + IntColumn get sendTime => integer().nullable()(); + IntColumn get expireTime => integer().nullable()(); + IntColumn get createTime => integer().nullable()(); + TextColumn get atUsers => text().nullable()(); + TextColumn get emojis => text().withDefault(const Constant('[]'))(); + IntColumn get editTime => integer().withDefault(const Constant(0))(); + IntColumn get refTyp => integer().withDefault(const Constant(0))(); + IntColumn get flag => integer().withDefault(const Constant(0))(); + TextColumn get cmid => text().withDefault(const Constant(''))(); + + @override + Set get primaryKey => {id}; + + @override + String get tableName => 'message'; +} \ No newline at end of file diff --git a/apps/im_app/lib/data/local/drift/tables/pending_friend_request_histories.dart b/apps/im_app/lib/data/local/drift/tables/pending_friend_request_histories.dart new file mode 100644 index 0000000..05787b6 --- /dev/null +++ b/apps/im_app/lib/data/local/drift/tables/pending_friend_request_histories.dart @@ -0,0 +1,17 @@ +import 'package:drift/drift.dart'; + +@DataClassName('PendingFriendRequestHistory') +class PendingFriendRequestHistories extends Table { + IntColumn get id => integer()(); + IntColumn get uid => integer()(); + IntColumn get requestTime => integer()(); + TextColumn get remarks => text().nullable()(); + TextColumn get source => text().nullable()(); + IntColumn get rs => integer().nullable()(); + + @override + Set get primaryKey => {id}; + + @override + String get tableName => 'pending_friend_request_histories'; +} \ No newline at end of file diff --git a/apps/im_app/lib/data/local/drift/tables/recent_mini_apps.dart b/apps/im_app/lib/data/local/drift/tables/recent_mini_apps.dart new file mode 100644 index 0000000..c149979 --- /dev/null +++ b/apps/im_app/lib/data/local/drift/tables/recent_mini_apps.dart @@ -0,0 +1,36 @@ +import 'package:drift/drift.dart'; + +@DataClassName('RecentMiniApp') +class RecentMiniApps extends Table { + TextColumn get id => text()(); + TextColumn get name => text().nullable()(); + TextColumn get openuid => text().nullable()(); + TextColumn get devId => text().nullable()(); + TextColumn get icon => text().nullable()(); + TextColumn get iconGaussian => text().nullable()(); + TextColumn get downloadUrl => text().nullable()(); + TextColumn get description => text().nullable()(); + IntColumn get version => integer().nullable()(); + IntColumn get typ => integer().nullable()(); + IntColumn get flag => integer().nullable()(); + IntColumn get reviewStatus => integer().nullable()(); + IntColumn get favoriteAt => integer().nullable()(); + IntColumn get isActive => integer().nullable()(); + IntColumn get createdAt => integer().nullable()(); + IntColumn get updatedAt => integer().nullable()(); + IntColumn get deletedAt => integer().nullable()(); + RealColumn get score => real().nullable()(); + TextColumn get channels => text().nullable()(); + TextColumn get devName => text().nullable()(); + TextColumn get pictureGaussian => text().nullable()(); + TextColumn get picture => text().nullable()(); + IntColumn get commentNum => integer().nullable()(); + IntColumn get lastLoginAt => integer().nullable()(); + TextColumn get screen => text().nullable()(); + + @override + Set get primaryKey => {id}; + + @override + String get tableName => 'recent_mini_app'; +} \ No newline at end of file diff --git a/apps/im_app/lib/data/local/drift/tables/retries.dart b/apps/im_app/lib/data/local/drift/tables/retries.dart new file mode 100644 index 0000000..19ad126 --- /dev/null +++ b/apps/im_app/lib/data/local/drift/tables/retries.dart @@ -0,0 +1,20 @@ +import 'package:drift/drift.dart'; + +@DataClassName('Retry') +class Retries extends Table { + IntColumn get id => integer().autoIncrement()(); + IntColumn get uid => integer().nullable()(); + TextColumn get apiType => text().withDefault(const Constant(''))(); + TextColumn get endPoint => text().withDefault(const Constant(''))(); + TextColumn get requestData => text().withDefault(const Constant(''))(); + IntColumn get synced => integer().nullable()(); + TextColumn get callbackFun => text().withDefault(const Constant(''))(); + IntColumn get expired => integer().nullable()(); + IntColumn get replace => integer().nullable()(); + IntColumn get expireTime => integer().nullable()(); + IntColumn get createTime => integer().nullable()(); + IntColumn get addIndex => integer().nullable()(); + + @override + String get tableName => 'retry'; +} \ No newline at end of file diff --git a/apps/im_app/lib/data/local/drift/tables/sounds.dart b/apps/im_app/lib/data/local/drift/tables/sounds.dart new file mode 100644 index 0000000..84173f3 --- /dev/null +++ b/apps/im_app/lib/data/local/drift/tables/sounds.dart @@ -0,0 +1,20 @@ +import 'package:drift/drift.dart'; + +@DataClassName('Sound') +class Sounds extends Table { + IntColumn get id => integer()(); + TextColumn get filePath => text().withDefault(const Constant(''))(); + IntColumn get typ => integer()(); + TextColumn get name => text().withDefault(const Constant(''))(); + IntColumn get createdAt => integer()(); + IntColumn get updatedAt => integer()(); + IntColumn get deletedAt => integer().withDefault(const Constant(0))(); + IntColumn get channelGroupId => integer()(); + IntColumn get isDefault => integer()(); + + @override + Set get primaryKey => {id}; + + @override + String get tableName => 'sound'; +} \ No newline at end of file diff --git a/apps/im_app/lib/data/local/drift/tables/tags.dart b/apps/im_app/lib/data/local/drift/tables/tags.dart new file mode 100644 index 0000000..15db57e --- /dev/null +++ b/apps/im_app/lib/data/local/drift/tables/tags.dart @@ -0,0 +1,15 @@ +import 'package:drift/drift.dart'; + +@DataClassName('Tag') +class Tags extends Table { + IntColumn get id => integer().autoIncrement()(); + IntColumn get uid => integer().nullable()(); + TextColumn get name => text().withDefault(const Constant(''))(); + IntColumn get type => integer().nullable()(); + IntColumn get createdAt => integer().nullable()(); + IntColumn get updatedAt => integer().nullable()(); + IntColumn get addIndex => integer().nullable()(); + + @override + String get tableName => 'tags'; +} \ No newline at end of file diff --git a/apps/im_app/lib/data/local/drift/tables/test_tables.dart b/apps/im_app/lib/data/local/drift/tables/test_tables.dart deleted file mode 100644 index 3d9f9ca..0000000 --- a/apps/im_app/lib/data/local/drift/tables/test_tables.dart +++ /dev/null @@ -1,41 +0,0 @@ -import 'package:drift/drift.dart'; - -@DataClassName('TestTable') -class TestTables extends Table { - IntColumn get id => integer().autoIncrement()(); - IntColumn get uid => integer().nullable()(); - TextColumn get uuid => text().nullable()(); - IntColumn get lastOnline => integer().nullable()(); - TextColumn get profilePic => text().nullable()(); - TextColumn get profilePicGaussian => text().withDefault(const Constant(''))(); - TextColumn get nickname => text().nullable()(); - TextColumn get depositName => text().nullable()(); - IntColumn get hasSetDepositName => integer().withDefault(const Constant(0))(); - TextColumn get contact => text().nullable()(); - TextColumn get countryCode => text().nullable()(); - TextColumn get username => text().nullable()(); - IntColumn get role => integer().nullable()(); - IntColumn get relationship => integer().nullable()(); - IntColumn get friendStatus => integer().nullable()(); - TextColumn get bio => text().nullable()(); - TextColumn get userAlias => text().nullable()(); - IntColumn get requestAt => integer().nullable()(); - IntColumn get deletedAt => integer().nullable()(); - TextColumn get email => text().nullable()(); - TextColumn get recoveryEmail => text().nullable()(); - TextColumn get remark => text().nullable()(); - TextColumn get source => text().nullable()(); - IntColumn get addIndex => integer().nullable()(); - IntColumn get incomingSoundId => integer().withDefault(const Constant(0))(); - IntColumn get outgoingSoundId => integer().withDefault(const Constant(0))(); - IntColumn get notificationSoundId => integer().withDefault(const Constant(0))(); - IntColumn get sendMessageSoundId => integer().withDefault(const Constant(0))(); - IntColumn get groupNotificationSoundId => integer().withDefault(const Constant(0))(); - TextColumn get groupTags => text().withDefault(const Constant('[]'))(); - TextColumn get friendTags => text().withDefault(const Constant('[]'))(); - TextColumn get publicKey => text().nullable()(); - IntColumn get configBits => integer().withDefault(const Constant(0))(); - TextColumn get hint => text().nullable()(); - @override - String get tableName => 'test_tables'; -} \ No newline at end of file diff --git a/apps/im_app/lib/data/local/drift/tables/user_request_histories.dart b/apps/im_app/lib/data/local/drift/tables/user_request_histories.dart new file mode 100644 index 0000000..d04e802 --- /dev/null +++ b/apps/im_app/lib/data/local/drift/tables/user_request_histories.dart @@ -0,0 +1,14 @@ +import 'package:drift/drift.dart'; + +@DataClassName('UserRequestHistory') +class UserRequestHistories extends Table { + IntColumn get id => integer()(); + IntColumn get status => integer().nullable()(); + IntColumn get createdAt => integer().nullable()(); + + @override + Set get primaryKey => {id}; + + @override + String get tableName => 'user_request_history'; +} \ No newline at end of file diff --git a/apps/im_app/lib/data/local/drift/tables/workspaces.dart b/apps/im_app/lib/data/local/drift/tables/workspaces.dart new file mode 100644 index 0000000..4b53b57 --- /dev/null +++ b/apps/im_app/lib/data/local/drift/tables/workspaces.dart @@ -0,0 +1,24 @@ +import 'package:drift/drift.dart'; + +@DataClassName('Workspace') +class Workspaces extends Table { + IntColumn get id => integer()(); + TextColumn get name => text().nullable()(); + IntColumn get ownerId => integer().nullable()(); + TextColumn get description => text().nullable()(); + TextColumn get logo => text().nullable()(); + IntColumn get grade => integer().nullable()(); + IntColumn get cap => integer().nullable()(); + TextColumn get currency => text().nullable()(); + IntColumn get status => integer().nullable()(); + IntColumn get createdAt => integer().nullable()(); + IntColumn get updatedAt => integer().nullable()(); + IntColumn get deletedAt => integer().nullable()(); + IntColumn get channelGroupId => integer().nullable()(); + + @override + Set get primaryKey => {id}; + + @override + String get tableName => 'workspace'; +} \ No newline at end of file diff --git a/apps/im_app/lib/features/login/presentation/login_view_model.dart b/apps/im_app/lib/features/login/presentation/login_view_model.dart index f1de73c..0c29082 100644 --- a/apps/im_app/lib/features/login/presentation/login_view_model.dart +++ b/apps/im_app/lib/features/login/presentation/login_view_model.dart @@ -59,12 +59,7 @@ class LoginViewModel extends _$LoginViewModel { ///TODO: StorageSDKLifeCycle 需要只在主项目暴露 final storageLifeCycle = storageApi as StorageSdkLifecycle; ref.read(authNotifierProvider).login(); - await storageLifeCycle.openDatabase(1234567); - final rows = await storageApi.rawQuery("PRAGMA table_info('user')"); - for (final row in rows) { - debugPrint('Schema: ${row.data}'); - } } /// 执行登录