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 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 json) => _$ChatRoomModelFromJson(json); } @freezed 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 json) => _$UsersFromJson(json); }