forked from eatvio/eatvio_app
31 lines
1.1 KiB
Dart
31 lines
1.1 KiB
Dart
import 'package:eatvio_app/features/chat/models/chat_room_settings_model.dart';
|
|
import 'package:eatvio_app/features/chat/models/chat_user_model.dart';
|
|
import 'package:eatvio_app/features/plans/models/chosen_plan_model.dart';
|
|
import 'package:freezed_annotation/freezed_annotation.dart';
|
|
|
|
part 'chat_room_model.freezed.dart';
|
|
part 'chat_room_model.g.dart';
|
|
|
|
@freezed
|
|
abstract class ChatRoomModel with _$ChatRoomModel {
|
|
const factory ChatRoomModel({
|
|
required String id,
|
|
@JsonKey(name: 'chat_room_setting') required ChatRoomSettingsModel chatRoomSettings,
|
|
required Users users,
|
|
@JsonKey(name: 'chosen_plan_id') required int? chosenPlanId,
|
|
ChosenPlanModel? chosenPlan,
|
|
}) = _ChatRoomModel;
|
|
|
|
factory ChatRoomModel.fromJson(Map<String, Object?> json) => _$ChatRoomModelFromJson(json);
|
|
}
|
|
|
|
@freezed
|
|
abstract class Users with _$Users {
|
|
const factory Users({
|
|
@JsonKey(name: 'from_chat_user') required ChatUserModel sender,
|
|
@JsonKey(name: 'to_chat_user') required ChatUserModel receiver,
|
|
}) = _Users;
|
|
|
|
factory Users.fromJson(Map<String, Object?> json) => _$UsersFromJson(json);
|
|
}
|