Files
pj_supermarket_cloud/lib/common/services/database/database.dart
T
2026-09-11 15:29:06 +08:00

94 lines
2.8 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import 'dart:async';
import 'package:floor/floor.dart';
import 'package:pj_supermarket_cloud/common/index.dart';
import 'package:pj_supermarket_cloud/common/services/database/database_migration.dart';
import 'package:sqflite/sqflite.dart' as sqflite;
part 'database.g.dart';
const entities = <Type>[
BroadcastEntity,
OrderEntity,
OrderHoldBillEntity,
CanteenSpuEntity,
SupermarketSkuEntity,
SupermarketSpuEntity,
SupermarketCodeEntity,
ShopCardEntity,
ClassifyEntity,
PrintHistoryEntity,
UserEntity,
FaceEntity,
SettingEntity,
ScheduledTaskEntity,
ScheduledTaskLogEntity,
FileUploadRecordEntity,
OrderEvidenceUploadTaskEntity,
];
const typeConverters = <Type>[
DateTimeConverter,
DateTimeEmptyConverter,
OrderStatusConverter,
OrderTypeConverter,
OrderPayTypeConverter,
SysTypeConverter,
PrintStatusConverter,
ProductHourTypeConverter,
SupermarketNatureConverter,
DiscountsTypeConverter,
ListDiscountsConverter,
ListIntConverter,
BoolConverter,
];
// 版本必须与原生 DatabaseHelper.DATABASE_VERSION 同步修改
// (android/.../facediscern/database/DatabaseHelper.java)。
// 11-13 区间曾被原生历史版本以 13 提前盖章 user_version 占用,Flutter 侧从 10 直接跳到 14。
@Database(version: 14, entities: entities)
@TypeConverters(typeConverters)
abstract class AppDatabase extends FloorDatabase {
BroadcastDao get getBroadcastDao;
OrderDao get getOrderDao;
OrderHoldBillDao get getOrderHoldBillDao;
CanteenSpuDao get getCanteenSpuDao;
SupermarketSkuDao get getSupermarketSkuDao;
SupermarketSpuDao get getSupermarketSpuDao;
SupermarketCodeDao get getSupermarketCodeDao;
ShopCardDao get getShopCardDao;
ClassifyDao get getClassifyDao;
PrintHistoryDao get getPrintHistoryDao;
UserDao get getUserDao;
FaceDao get getFaceDao;
SettingDao get getSettingDao;
ScheduledTaskDao get getScheduledTaskDao;
ScheduledTaskLogDao get getScheduledTaskLogDao;
FileUploadRecordDao get getFileUploadRecordDao;
OrderEvidenceUploadTaskDao get getOrderEvidenceUploadTaskDao;
static Future<AppDatabase> getDataBase() async {
final dbPath = await AppFileTool.getDatabasePath();
final name = "$dbPath/${Constants.databaseName}";
final dataBase = await $FloorAppDatabase
.databaseBuilder(name)
.addCallback(
Callback(
onCreate: (database, version) async {
logger.i('数据库已创建,版本: $version');
},
onOpen: (database) async {
logger.i('数据库已打开');
},
onUpgrade: (database, startVersion, endVersion) {
logger.i('数据库已升级,版本: $startVersion -> $endVersion');
},
),
)
.addMigrations(DatabaseMigration.getDatabaseMigrations())
.build();
return dataBase;
}
}