Merge remote-tracking branch 'origin/dev' into cody/netwrok_SDK
# Conflicts: # apps/im_app/lib/features/chat/presentation/chat_db_test_view_model.dart # apps/im_app/lib/features/login/presentation/login_view_model.dart 修复逻辑漏洞,性能优化
This commit is contained in:
116
apps/im_app/lib/data/models/workspace_dto.dart
Normal file
116
apps/im_app/lib/data/models/workspace_dto.dart
Normal file
@@ -0,0 +1,116 @@
|
||||
import 'package:drift/drift.dart';
|
||||
import 'package:im_app/data/local/drift/app_database.dart';
|
||||
import 'package:im_app/domain/entities/workspace.dart';
|
||||
|
||||
/// 工作空间 DTO
|
||||
class WorkspaceDto {
|
||||
final int id;
|
||||
final String? name;
|
||||
final int? ownerId;
|
||||
final String? description;
|
||||
final String? logo;
|
||||
final int? grade;
|
||||
final int? cap;
|
||||
final String? currency;
|
||||
final int? status;
|
||||
final int? createdAt;
|
||||
final int? updatedAt;
|
||||
final int? deletedAt;
|
||||
final int? channelGroupId;
|
||||
|
||||
const WorkspaceDto({
|
||||
required this.id,
|
||||
this.name,
|
||||
this.ownerId,
|
||||
this.description,
|
||||
this.logo,
|
||||
this.grade,
|
||||
this.cap,
|
||||
this.currency,
|
||||
this.status,
|
||||
this.createdAt,
|
||||
this.updatedAt,
|
||||
this.deletedAt,
|
||||
this.channelGroupId,
|
||||
});
|
||||
|
||||
factory WorkspaceDto.fromJson(Map<String, dynamic> json) => WorkspaceDto(
|
||||
id: json['id'] as int,
|
||||
name: json['name'],
|
||||
ownerId: json['owner_id'],
|
||||
description: json['description'],
|
||||
logo: json['logo'],
|
||||
grade: json['grade'],
|
||||
cap: json['cap'],
|
||||
currency: json['currency'],
|
||||
status: json['status'],
|
||||
createdAt: json['created_at'],
|
||||
updatedAt: json['updated_at'],
|
||||
deletedAt: json['deleted_at'],
|
||||
channelGroupId: json['channel_group_id'],
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'id': id,
|
||||
'name': name,
|
||||
'owner_id': ownerId,
|
||||
'description': description,
|
||||
'logo': logo,
|
||||
'grade': grade,
|
||||
'cap': cap,
|
||||
'currency': currency,
|
||||
'status': status,
|
||||
'created_at': createdAt,
|
||||
'updated_at': updatedAt,
|
||||
'deleted_at': deletedAt,
|
||||
'channel_group_id': channelGroupId,
|
||||
};
|
||||
|
||||
Workspace toEntity() => Workspace(
|
||||
id: id,
|
||||
name: name,
|
||||
ownerId: ownerId,
|
||||
description: description,
|
||||
logo: logo,
|
||||
grade: grade,
|
||||
cap: cap,
|
||||
currency: currency,
|
||||
status: status,
|
||||
createdAt: createdAt,
|
||||
updatedAt: updatedAt,
|
||||
deletedAt: deletedAt,
|
||||
channelGroupId: channelGroupId,
|
||||
);
|
||||
|
||||
factory WorkspaceDto.fromEntity(Workspace workspace) => WorkspaceDto(
|
||||
id: workspace.id,
|
||||
name: workspace.name,
|
||||
ownerId: workspace.ownerId,
|
||||
description: workspace.description,
|
||||
logo: workspace.logo,
|
||||
grade: workspace.grade,
|
||||
cap: workspace.cap,
|
||||
currency: workspace.currency,
|
||||
status: workspace.status,
|
||||
createdAt: workspace.createdAt,
|
||||
updatedAt: workspace.updatedAt,
|
||||
deletedAt: workspace.deletedAt,
|
||||
channelGroupId: workspace.channelGroupId,
|
||||
);
|
||||
|
||||
WorkspacesCompanion toCompanion() => WorkspacesCompanion(
|
||||
id: Value(id),
|
||||
name: Value(name),
|
||||
ownerId: Value(ownerId),
|
||||
description: Value(description),
|
||||
logo: Value(logo),
|
||||
grade: Value(grade),
|
||||
cap: Value(cap),
|
||||
currency: Value(currency),
|
||||
status: Value(status),
|
||||
createdAt: Value(createdAt),
|
||||
updatedAt: Value(updatedAt),
|
||||
deletedAt: Value(deletedAt),
|
||||
channelGroupId: Value(channelGroupId),
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user