dto数据/entity数据 迁移
This commit is contained in:
88
apps/im_app/lib/data/models/sound_dto.dart
Normal file
88
apps/im_app/lib/data/models/sound_dto.dart
Normal file
@@ -0,0 +1,88 @@
|
||||
import 'package:drift/drift.dart';
|
||||
import 'package:im_app/data/local/drift/app_database.dart';
|
||||
import 'package:im_app/domain/entities/sound.dart';
|
||||
|
||||
/// 音效 DTO
|
||||
class SoundDto {
|
||||
final int id;
|
||||
final String filePath;
|
||||
final int typ;
|
||||
final String name;
|
||||
final int createdAt;
|
||||
final int updatedAt;
|
||||
final int deletedAt;
|
||||
final int channelGroupId;
|
||||
final int isDefault;
|
||||
|
||||
const SoundDto({
|
||||
required this.id,
|
||||
this.filePath = '',
|
||||
required this.typ,
|
||||
this.name = '',
|
||||
required this.createdAt,
|
||||
required this.updatedAt,
|
||||
this.deletedAt = 0,
|
||||
required this.channelGroupId,
|
||||
required this.isDefault,
|
||||
});
|
||||
|
||||
factory SoundDto.fromJson(Map<String, dynamic> json) => SoundDto(
|
||||
id: json['id'] as int,
|
||||
filePath: json['file_path'] ?? '',
|
||||
typ: json['typ'] as int,
|
||||
name: json['name'] ?? '',
|
||||
createdAt: json['created_at'] as int,
|
||||
updatedAt: json['updated_at'] as int,
|
||||
deletedAt: json['deleted_at'] ?? 0,
|
||||
channelGroupId: json['channel_group_id'] as int,
|
||||
isDefault: json['is_default'] as int,
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'id': id,
|
||||
'file_path': filePath,
|
||||
'typ': typ,
|
||||
'name': name,
|
||||
'created_at': createdAt,
|
||||
'updated_at': updatedAt,
|
||||
'deleted_at': deletedAt,
|
||||
'channel_group_id': channelGroupId,
|
||||
'is_default': isDefault,
|
||||
};
|
||||
|
||||
Sound toEntity() => Sound(
|
||||
id: id,
|
||||
filePath: filePath,
|
||||
typ: typ,
|
||||
name: name,
|
||||
createdAt: createdAt,
|
||||
updatedAt: updatedAt,
|
||||
deletedAt: deletedAt,
|
||||
channelGroupId: channelGroupId,
|
||||
isDefault: isDefault,
|
||||
);
|
||||
|
||||
factory SoundDto.fromEntity(Sound sound) => SoundDto(
|
||||
id: sound.id,
|
||||
filePath: sound.filePath,
|
||||
typ: sound.typ,
|
||||
name: sound.name,
|
||||
createdAt: sound.createdAt,
|
||||
updatedAt: sound.updatedAt,
|
||||
deletedAt: sound.deletedAt,
|
||||
channelGroupId: sound.channelGroupId,
|
||||
isDefault: sound.isDefault,
|
||||
);
|
||||
|
||||
SoundsCompanion toCompanion() => SoundsCompanion(
|
||||
id: Value(id),
|
||||
filePath: Value(filePath),
|
||||
typ: Value(typ),
|
||||
name: Value(name),
|
||||
createdAt: Value(createdAt),
|
||||
updatedAt: Value(updatedAt),
|
||||
deletedAt: Value(deletedAt),
|
||||
channelGroupId: Value(channelGroupId),
|
||||
isDefault: Value(isDefault),
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user