You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.5 KiB
Dart
66 lines
1.5 KiB
Dart
4 years ago
|
import 'package:diplomaticquarterapp/models/LiveCare/room_validators.dart';
|
||
|
import 'package:diplomaticquarterapp/models/LiveCare/twilio_enums.dart';
|
||
|
|
||
|
class RoomModel with RoomValidators {
|
||
|
final String name;
|
||
|
final bool isLoading;
|
||
|
final bool isSubmitted;
|
||
|
final String token;
|
||
|
final String identity;
|
||
|
final TwilioRoomType type;
|
||
|
|
||
|
RoomModel({
|
||
|
this.name,
|
||
|
this.isLoading = false,
|
||
|
this.isSubmitted = false,
|
||
|
this.token,
|
||
|
this.identity,
|
||
|
this.type = TwilioRoomType.groupSmall,
|
||
|
});
|
||
|
|
||
|
static String getTypeText(TwilioRoomType type) {
|
||
|
switch (type) {
|
||
|
case TwilioRoomType.peerToPeer:
|
||
|
return 'peer 2 peer';
|
||
|
break;
|
||
|
case TwilioRoomType.group:
|
||
|
return 'large (max 50 participants)';
|
||
|
break;
|
||
|
case TwilioRoomType.groupSmall:
|
||
|
return 'small (max 4 participants)';
|
||
|
break;
|
||
|
}
|
||
|
return '';
|
||
|
}
|
||
|
|
||
|
String get nameErrorText {
|
||
|
return isSubmitted && !nameValidator.isValid(name) ? invalidNameErrorText : null;
|
||
|
}
|
||
|
|
||
|
String get typeText {
|
||
|
return RoomModel.getTypeText(type);
|
||
|
}
|
||
|
|
||
|
bool get canSubmit {
|
||
|
return nameValidator.isValid(name);
|
||
|
}
|
||
|
|
||
|
RoomModel copyWith({
|
||
|
String name,
|
||
|
bool isLoading,
|
||
|
bool isSubmitted,
|
||
|
String token,
|
||
|
String identity,
|
||
|
TwilioRoomType type,
|
||
|
}) {
|
||
|
return RoomModel(
|
||
|
name: name ?? this.name,
|
||
|
token: token ?? this.token,
|
||
|
identity: identity ?? this.identity,
|
||
|
isLoading: isLoading ?? this.isLoading,
|
||
|
isSubmitted: isSubmitted ?? this.isSubmitted,
|
||
|
type: type ?? this.type,
|
||
|
);
|
||
|
}
|
||
|
}
|