import 'package:vital_local_database/core/interface/entity.dart'; import 'package:vital_local_database/core/sqlite/entity.dart'; import 'defines.dart'; /// 可以同步实体 abstract class SyncableEntity extends BaseEntity { /// 唯一编码 String code = ''; ///用户编码 String userCode = ''; /// 数据Json String dataJson = ''; /// 同步类型 OfflineDataSyncType syncType = OfflineDataSyncType.create; /// 同步状态 OfflineDataSyncState syncState = OfflineDataSyncState.wait; @override Map toJson() { final map = super.toJson(); map['code'] = code; map['userCode'] = userCode; map['dataJson'] = dataJson; map['syncType'] = syncType.index; map['syncState'] = syncState.index; return map; } @override T fromJson(Map map) { final T entity = super.fromJson(map); code = map['code']; userCode = map['userCode']; dataJson = map['dataJson']; syncType = OfflineDataSyncType.values[map["syncType"]]; syncState = OfflineDataSyncState.values[map["syncState"]]; return entity; } } abstract class SyncableColumnsDefine extends BaseColumnsDefine implements IDbColumnsDefine { final code = DbColumn("code"); final userCode = DbColumn('userCode'); final dataJson = DbColumn("dataJson"); final syncType = DbColumn("syncType"); final syncState = DbColumn("syncState"); }