new schemas of teams and hubs
This commit is contained in:
@@ -1,16 +1,16 @@
|
|||||||
# Basic Usage
|
# Basic Usage
|
||||||
|
|
||||||
```dart
|
```dart
|
||||||
ExampleConnector.instance.createDocument(createDocumentVariables).execute();
|
ExampleConnector.instance.createFaqData(createFaqDataVariables).execute();
|
||||||
ExampleConnector.instance.updateDocument(updateDocumentVariables).execute();
|
ExampleConnector.instance.updateFaqData(updateFaqDataVariables).execute();
|
||||||
ExampleConnector.instance.deleteDocument(deleteDocumentVariables).execute();
|
ExampleConnector.instance.deleteFaqData(deleteFaqDataVariables).execute();
|
||||||
ExampleConnector.instance.createConversation(createConversationVariables).execute();
|
ExampleConnector.instance.createLevel(createLevelVariables).execute();
|
||||||
ExampleConnector.instance.updateConversation(updateConversationVariables).execute();
|
ExampleConnector.instance.updateLevel(updateLevelVariables).execute();
|
||||||
ExampleConnector.instance.updateConversationLastMessage(updateConversationLastMessageVariables).execute();
|
ExampleConnector.instance.deleteLevel(deleteLevelVariables).execute();
|
||||||
ExampleConnector.instance.deleteConversation(deleteConversationVariables).execute();
|
ExampleConnector.instance.listMessages().execute();
|
||||||
ExampleConnector.instance.listHubs().execute();
|
ExampleConnector.instance.getMessageById(getMessageByIdVariables).execute();
|
||||||
ExampleConnector.instance.getHubById(getHubByIdVariables).execute();
|
ExampleConnector.instance.getMessagesByConversationId(getMessagesByConversationIdVariables).execute();
|
||||||
ExampleConnector.instance.getHubsByOwnerId(getHubsByOwnerIdVariables).execute();
|
ExampleConnector.instance.createRole(createRoleVariables).execute();
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -23,8 +23,8 @@ Optional fields can be discovered based on classes that have `Optional` object t
|
|||||||
This is an example of a mutation with an optional field:
|
This is an example of a mutation with an optional field:
|
||||||
|
|
||||||
```dart
|
```dart
|
||||||
await ExampleConnector.instance.filterVendorBenefitPlans({ ... })
|
await ExampleConnector.instance.updateBusiness({ ... })
|
||||||
.vendorId(...)
|
.businessName(...)
|
||||||
.execute();
|
.execute();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -5,13 +5,25 @@ class CreateTeamHubVariablesBuilder {
|
|||||||
String hubName;
|
String hubName;
|
||||||
String address;
|
String address;
|
||||||
String city;
|
String city;
|
||||||
String state;
|
Optional<String> _state = Optional.optional(nativeFromJson, nativeToJson);
|
||||||
String zipCode;
|
Optional<String> _zipCode = Optional.optional(nativeFromJson, nativeToJson);
|
||||||
String managerName;
|
Optional<String> _managerName = Optional.optional(nativeFromJson, nativeToJson);
|
||||||
Optional<bool> _isActive = Optional.optional(nativeFromJson, nativeToJson);
|
Optional<bool> _isActive = Optional.optional(nativeFromJson, nativeToJson);
|
||||||
Optional<AnyValue> _departments = Optional.optional(AnyValue.fromJson, defaultSerializer);
|
Optional<AnyValue> _departments = Optional.optional(AnyValue.fromJson, defaultSerializer);
|
||||||
|
|
||||||
final FirebaseDataConnect _dataConnect; CreateTeamHubVariablesBuilder isActive(bool? t) {
|
final FirebaseDataConnect _dataConnect; CreateTeamHubVariablesBuilder state(String? t) {
|
||||||
|
_state.value = t;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
CreateTeamHubVariablesBuilder zipCode(String? t) {
|
||||||
|
_zipCode.value = t;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
CreateTeamHubVariablesBuilder managerName(String? t) {
|
||||||
|
_managerName.value = t;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
CreateTeamHubVariablesBuilder isActive(bool? t) {
|
||||||
_isActive.value = t;
|
_isActive.value = t;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -20,7 +32,7 @@ class CreateTeamHubVariablesBuilder {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
CreateTeamHubVariablesBuilder(this._dataConnect, {required this.teamId,required this.hubName,required this.address,required this.city,required this.state,required this.zipCode,required this.managerName,});
|
CreateTeamHubVariablesBuilder(this._dataConnect, {required this.teamId,required this.hubName,required this.address,required this.city,});
|
||||||
Deserializer<CreateTeamHubData> dataDeserializer = (dynamic json) => CreateTeamHubData.fromJson(jsonDecode(json));
|
Deserializer<CreateTeamHubData> dataDeserializer = (dynamic json) => CreateTeamHubData.fromJson(jsonDecode(json));
|
||||||
Serializer<CreateTeamHubVariables> varsSerializer = (CreateTeamHubVariables vars) => jsonEncode(vars.toJson());
|
Serializer<CreateTeamHubVariables> varsSerializer = (CreateTeamHubVariables vars) => jsonEncode(vars.toJson());
|
||||||
Future<OperationResult<CreateTeamHubData, CreateTeamHubVariables>> execute() {
|
Future<OperationResult<CreateTeamHubData, CreateTeamHubVariables>> execute() {
|
||||||
@@ -28,7 +40,7 @@ class CreateTeamHubVariablesBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MutationRef<CreateTeamHubData, CreateTeamHubVariables> ref() {
|
MutationRef<CreateTeamHubData, CreateTeamHubVariables> ref() {
|
||||||
CreateTeamHubVariables vars= CreateTeamHubVariables(teamId: teamId,hubName: hubName,address: address,city: city,state: state,zipCode: zipCode,managerName: managerName,isActive: _isActive,departments: _departments,);
|
CreateTeamHubVariables vars= CreateTeamHubVariables(teamId: teamId,hubName: hubName,address: address,city: city,state: _state,zipCode: _zipCode,managerName: _managerName,isActive: _isActive,departments: _departments,);
|
||||||
return _dataConnect.mutation("createTeamHub", dataDeserializer, varsSerializer, vars);
|
return _dataConnect.mutation("createTeamHub", dataDeserializer, varsSerializer, vars);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -107,9 +119,9 @@ class CreateTeamHubVariables {
|
|||||||
final String hubName;
|
final String hubName;
|
||||||
final String address;
|
final String address;
|
||||||
final String city;
|
final String city;
|
||||||
final String state;
|
late final Optional<String>state;
|
||||||
final String zipCode;
|
late final Optional<String>zipCode;
|
||||||
final String managerName;
|
late final Optional<String>managerName;
|
||||||
late final Optional<bool>isActive;
|
late final Optional<bool>isActive;
|
||||||
late final Optional<AnyValue>departments;
|
late final Optional<AnyValue>departments;
|
||||||
@Deprecated('fromJson is deprecated for Variable classes as they are no longer required for deserialization.')
|
@Deprecated('fromJson is deprecated for Variable classes as they are no longer required for deserialization.')
|
||||||
@@ -118,18 +130,24 @@ class CreateTeamHubVariables {
|
|||||||
teamId = nativeFromJson<String>(json['teamId']),
|
teamId = nativeFromJson<String>(json['teamId']),
|
||||||
hubName = nativeFromJson<String>(json['hubName']),
|
hubName = nativeFromJson<String>(json['hubName']),
|
||||||
address = nativeFromJson<String>(json['address']),
|
address = nativeFromJson<String>(json['address']),
|
||||||
city = nativeFromJson<String>(json['city']),
|
city = nativeFromJson<String>(json['city']) {
|
||||||
state = nativeFromJson<String>(json['state']),
|
|
||||||
zipCode = nativeFromJson<String>(json['zipCode']),
|
|
||||||
managerName = nativeFromJson<String>(json['managerName']) {
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
state = Optional.optional(nativeFromJson, nativeToJson);
|
||||||
|
state.value = json['state'] == null ? null : nativeFromJson<String>(json['state']);
|
||||||
|
|
||||||
|
|
||||||
|
zipCode = Optional.optional(nativeFromJson, nativeToJson);
|
||||||
|
zipCode.value = json['zipCode'] == null ? null : nativeFromJson<String>(json['zipCode']);
|
||||||
|
|
||||||
|
|
||||||
|
managerName = Optional.optional(nativeFromJson, nativeToJson);
|
||||||
|
managerName.value = json['managerName'] == null ? null : nativeFromJson<String>(json['managerName']);
|
||||||
|
|
||||||
|
|
||||||
isActive = Optional.optional(nativeFromJson, nativeToJson);
|
isActive = Optional.optional(nativeFromJson, nativeToJson);
|
||||||
isActive.value = json['isActive'] == null ? null : nativeFromJson<bool>(json['isActive']);
|
isActive.value = json['isActive'] == null ? null : nativeFromJson<bool>(json['isActive']);
|
||||||
@@ -170,9 +188,15 @@ class CreateTeamHubVariables {
|
|||||||
json['hubName'] = nativeToJson<String>(hubName);
|
json['hubName'] = nativeToJson<String>(hubName);
|
||||||
json['address'] = nativeToJson<String>(address);
|
json['address'] = nativeToJson<String>(address);
|
||||||
json['city'] = nativeToJson<String>(city);
|
json['city'] = nativeToJson<String>(city);
|
||||||
json['state'] = nativeToJson<String>(state);
|
if(state.state == OptionalState.set) {
|
||||||
json['zipCode'] = nativeToJson<String>(zipCode);
|
json['state'] = state.toJson();
|
||||||
json['managerName'] = nativeToJson<String>(managerName);
|
}
|
||||||
|
if(zipCode.state == OptionalState.set) {
|
||||||
|
json['zipCode'] = zipCode.toJson();
|
||||||
|
}
|
||||||
|
if(managerName.state == OptionalState.set) {
|
||||||
|
json['managerName'] = managerName.toJson();
|
||||||
|
}
|
||||||
if(isActive.state == OptionalState.set) {
|
if(isActive.state == OptionalState.set) {
|
||||||
json['isActive'] = isActive.toJson();
|
json['isActive'] = isActive.toJson();
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -24,9 +24,9 @@ class GetTeamHubByIdTeamHub {
|
|||||||
final String hubName;
|
final String hubName;
|
||||||
final String address;
|
final String address;
|
||||||
final String city;
|
final String city;
|
||||||
final String state;
|
final String? state;
|
||||||
final String zipCode;
|
final String? zipCode;
|
||||||
final String managerName;
|
final String? managerName;
|
||||||
final bool isActive;
|
final bool isActive;
|
||||||
final AnyValue? departments;
|
final AnyValue? departments;
|
||||||
final Timestamp? createdAt;
|
final Timestamp? createdAt;
|
||||||
@@ -39,9 +39,9 @@ class GetTeamHubByIdTeamHub {
|
|||||||
hubName = nativeFromJson<String>(json['hubName']),
|
hubName = nativeFromJson<String>(json['hubName']),
|
||||||
address = nativeFromJson<String>(json['address']),
|
address = nativeFromJson<String>(json['address']),
|
||||||
city = nativeFromJson<String>(json['city']),
|
city = nativeFromJson<String>(json['city']),
|
||||||
state = nativeFromJson<String>(json['state']),
|
state = json['state'] == null ? null : nativeFromJson<String>(json['state']),
|
||||||
zipCode = nativeFromJson<String>(json['zipCode']),
|
zipCode = json['zipCode'] == null ? null : nativeFromJson<String>(json['zipCode']),
|
||||||
managerName = nativeFromJson<String>(json['managerName']),
|
managerName = json['managerName'] == null ? null : nativeFromJson<String>(json['managerName']),
|
||||||
isActive = nativeFromJson<bool>(json['isActive']),
|
isActive = nativeFromJson<bool>(json['isActive']),
|
||||||
departments = json['departments'] == null ? null : AnyValue.fromJson(json['departments']),
|
departments = json['departments'] == null ? null : AnyValue.fromJson(json['departments']),
|
||||||
createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']),
|
createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']),
|
||||||
@@ -83,9 +83,15 @@ class GetTeamHubByIdTeamHub {
|
|||||||
json['hubName'] = nativeToJson<String>(hubName);
|
json['hubName'] = nativeToJson<String>(hubName);
|
||||||
json['address'] = nativeToJson<String>(address);
|
json['address'] = nativeToJson<String>(address);
|
||||||
json['city'] = nativeToJson<String>(city);
|
json['city'] = nativeToJson<String>(city);
|
||||||
json['state'] = nativeToJson<String>(state);
|
if (state != null) {
|
||||||
json['zipCode'] = nativeToJson<String>(zipCode);
|
json['state'] = nativeToJson<String?>(state);
|
||||||
json['managerName'] = nativeToJson<String>(managerName);
|
}
|
||||||
|
if (zipCode != null) {
|
||||||
|
json['zipCode'] = nativeToJson<String?>(zipCode);
|
||||||
|
}
|
||||||
|
if (managerName != null) {
|
||||||
|
json['managerName'] = nativeToJson<String?>(managerName);
|
||||||
|
}
|
||||||
json['isActive'] = nativeToJson<bool>(isActive);
|
json['isActive'] = nativeToJson<bool>(isActive);
|
||||||
if (departments != null) {
|
if (departments != null) {
|
||||||
json['departments'] = departments!.toJson();
|
json['departments'] = departments!.toJson();
|
||||||
@@ -108,9 +114,9 @@ class GetTeamHubByIdTeamHub {
|
|||||||
required this.hubName,
|
required this.hubName,
|
||||||
required this.address,
|
required this.address,
|
||||||
required this.city,
|
required this.city,
|
||||||
required this.state,
|
this.state,
|
||||||
required this.zipCode,
|
this.zipCode,
|
||||||
required this.managerName,
|
this.managerName,
|
||||||
required this.isActive,
|
required this.isActive,
|
||||||
this.departments,
|
this.departments,
|
||||||
this.createdAt,
|
this.createdAt,
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ class GetTeamHubsByTeamIdTeamHubs {
|
|||||||
final String hubName;
|
final String hubName;
|
||||||
final String address;
|
final String address;
|
||||||
final String city;
|
final String city;
|
||||||
final String state;
|
final String? state;
|
||||||
final String zipCode;
|
final String? zipCode;
|
||||||
final String managerName;
|
final String? managerName;
|
||||||
final bool isActive;
|
final bool isActive;
|
||||||
final AnyValue? departments;
|
final AnyValue? departments;
|
||||||
final Timestamp? createdAt;
|
final Timestamp? createdAt;
|
||||||
@@ -39,9 +39,9 @@ class GetTeamHubsByTeamIdTeamHubs {
|
|||||||
hubName = nativeFromJson<String>(json['hubName']),
|
hubName = nativeFromJson<String>(json['hubName']),
|
||||||
address = nativeFromJson<String>(json['address']),
|
address = nativeFromJson<String>(json['address']),
|
||||||
city = nativeFromJson<String>(json['city']),
|
city = nativeFromJson<String>(json['city']),
|
||||||
state = nativeFromJson<String>(json['state']),
|
state = json['state'] == null ? null : nativeFromJson<String>(json['state']),
|
||||||
zipCode = nativeFromJson<String>(json['zipCode']),
|
zipCode = json['zipCode'] == null ? null : nativeFromJson<String>(json['zipCode']),
|
||||||
managerName = nativeFromJson<String>(json['managerName']),
|
managerName = json['managerName'] == null ? null : nativeFromJson<String>(json['managerName']),
|
||||||
isActive = nativeFromJson<bool>(json['isActive']),
|
isActive = nativeFromJson<bool>(json['isActive']),
|
||||||
departments = json['departments'] == null ? null : AnyValue.fromJson(json['departments']),
|
departments = json['departments'] == null ? null : AnyValue.fromJson(json['departments']),
|
||||||
createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']),
|
createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']),
|
||||||
@@ -83,9 +83,15 @@ class GetTeamHubsByTeamIdTeamHubs {
|
|||||||
json['hubName'] = nativeToJson<String>(hubName);
|
json['hubName'] = nativeToJson<String>(hubName);
|
||||||
json['address'] = nativeToJson<String>(address);
|
json['address'] = nativeToJson<String>(address);
|
||||||
json['city'] = nativeToJson<String>(city);
|
json['city'] = nativeToJson<String>(city);
|
||||||
json['state'] = nativeToJson<String>(state);
|
if (state != null) {
|
||||||
json['zipCode'] = nativeToJson<String>(zipCode);
|
json['state'] = nativeToJson<String?>(state);
|
||||||
json['managerName'] = nativeToJson<String>(managerName);
|
}
|
||||||
|
if (zipCode != null) {
|
||||||
|
json['zipCode'] = nativeToJson<String?>(zipCode);
|
||||||
|
}
|
||||||
|
if (managerName != null) {
|
||||||
|
json['managerName'] = nativeToJson<String?>(managerName);
|
||||||
|
}
|
||||||
json['isActive'] = nativeToJson<bool>(isActive);
|
json['isActive'] = nativeToJson<bool>(isActive);
|
||||||
if (departments != null) {
|
if (departments != null) {
|
||||||
json['departments'] = departments!.toJson();
|
json['departments'] = departments!.toJson();
|
||||||
@@ -108,9 +114,9 @@ class GetTeamHubsByTeamIdTeamHubs {
|
|||||||
required this.hubName,
|
required this.hubName,
|
||||||
required this.address,
|
required this.address,
|
||||||
required this.city,
|
required this.city,
|
||||||
required this.state,
|
this.state,
|
||||||
required this.zipCode,
|
this.zipCode,
|
||||||
required this.managerName,
|
this.managerName,
|
||||||
required this.isActive,
|
required this.isActive,
|
||||||
this.departments,
|
this.departments,
|
||||||
this.createdAt,
|
this.createdAt,
|
||||||
|
|||||||
@@ -23,9 +23,9 @@ class ListTeamHubsTeamHubs {
|
|||||||
final String hubName;
|
final String hubName;
|
||||||
final String address;
|
final String address;
|
||||||
final String city;
|
final String city;
|
||||||
final String state;
|
final String? state;
|
||||||
final String zipCode;
|
final String? zipCode;
|
||||||
final String managerName;
|
final String? managerName;
|
||||||
final bool isActive;
|
final bool isActive;
|
||||||
final AnyValue? departments;
|
final AnyValue? departments;
|
||||||
final Timestamp? createdAt;
|
final Timestamp? createdAt;
|
||||||
@@ -38,9 +38,9 @@ class ListTeamHubsTeamHubs {
|
|||||||
hubName = nativeFromJson<String>(json['hubName']),
|
hubName = nativeFromJson<String>(json['hubName']),
|
||||||
address = nativeFromJson<String>(json['address']),
|
address = nativeFromJson<String>(json['address']),
|
||||||
city = nativeFromJson<String>(json['city']),
|
city = nativeFromJson<String>(json['city']),
|
||||||
state = nativeFromJson<String>(json['state']),
|
state = json['state'] == null ? null : nativeFromJson<String>(json['state']),
|
||||||
zipCode = nativeFromJson<String>(json['zipCode']),
|
zipCode = json['zipCode'] == null ? null : nativeFromJson<String>(json['zipCode']),
|
||||||
managerName = nativeFromJson<String>(json['managerName']),
|
managerName = json['managerName'] == null ? null : nativeFromJson<String>(json['managerName']),
|
||||||
isActive = nativeFromJson<bool>(json['isActive']),
|
isActive = nativeFromJson<bool>(json['isActive']),
|
||||||
departments = json['departments'] == null ? null : AnyValue.fromJson(json['departments']),
|
departments = json['departments'] == null ? null : AnyValue.fromJson(json['departments']),
|
||||||
createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']),
|
createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']),
|
||||||
@@ -82,9 +82,15 @@ class ListTeamHubsTeamHubs {
|
|||||||
json['hubName'] = nativeToJson<String>(hubName);
|
json['hubName'] = nativeToJson<String>(hubName);
|
||||||
json['address'] = nativeToJson<String>(address);
|
json['address'] = nativeToJson<String>(address);
|
||||||
json['city'] = nativeToJson<String>(city);
|
json['city'] = nativeToJson<String>(city);
|
||||||
json['state'] = nativeToJson<String>(state);
|
if (state != null) {
|
||||||
json['zipCode'] = nativeToJson<String>(zipCode);
|
json['state'] = nativeToJson<String?>(state);
|
||||||
json['managerName'] = nativeToJson<String>(managerName);
|
}
|
||||||
|
if (zipCode != null) {
|
||||||
|
json['zipCode'] = nativeToJson<String?>(zipCode);
|
||||||
|
}
|
||||||
|
if (managerName != null) {
|
||||||
|
json['managerName'] = nativeToJson<String?>(managerName);
|
||||||
|
}
|
||||||
json['isActive'] = nativeToJson<bool>(isActive);
|
json['isActive'] = nativeToJson<bool>(isActive);
|
||||||
if (departments != null) {
|
if (departments != null) {
|
||||||
json['departments'] = departments!.toJson();
|
json['departments'] = departments!.toJson();
|
||||||
@@ -107,9 +113,9 @@ class ListTeamHubsTeamHubs {
|
|||||||
required this.hubName,
|
required this.hubName,
|
||||||
required this.address,
|
required this.address,
|
||||||
required this.city,
|
required this.city,
|
||||||
required this.state,
|
this.state,
|
||||||
required this.zipCode,
|
this.zipCode,
|
||||||
required this.managerName,
|
this.managerName,
|
||||||
required this.isActive,
|
required this.isActive,
|
||||||
this.departments,
|
this.departments,
|
||||||
this.createdAt,
|
this.createdAt,
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ class ListTeamHubsByOwnerIdTeamHubs {
|
|||||||
final String hubName;
|
final String hubName;
|
||||||
final String address;
|
final String address;
|
||||||
final String city;
|
final String city;
|
||||||
final String state;
|
final String? state;
|
||||||
final String zipCode;
|
final String? zipCode;
|
||||||
final String managerName;
|
final String? managerName;
|
||||||
final bool isActive;
|
final bool isActive;
|
||||||
final AnyValue? departments;
|
final AnyValue? departments;
|
||||||
final Timestamp? createdAt;
|
final Timestamp? createdAt;
|
||||||
@@ -37,9 +37,9 @@ class ListTeamHubsByOwnerIdTeamHubs {
|
|||||||
hubName = nativeFromJson<String>(json['hubName']),
|
hubName = nativeFromJson<String>(json['hubName']),
|
||||||
address = nativeFromJson<String>(json['address']),
|
address = nativeFromJson<String>(json['address']),
|
||||||
city = nativeFromJson<String>(json['city']),
|
city = nativeFromJson<String>(json['city']),
|
||||||
state = nativeFromJson<String>(json['state']),
|
state = json['state'] == null ? null : nativeFromJson<String>(json['state']),
|
||||||
zipCode = nativeFromJson<String>(json['zipCode']),
|
zipCode = json['zipCode'] == null ? null : nativeFromJson<String>(json['zipCode']),
|
||||||
managerName = nativeFromJson<String>(json['managerName']),
|
managerName = json['managerName'] == null ? null : nativeFromJson<String>(json['managerName']),
|
||||||
isActive = nativeFromJson<bool>(json['isActive']),
|
isActive = nativeFromJson<bool>(json['isActive']),
|
||||||
departments = json['departments'] == null ? null : AnyValue.fromJson(json['departments']),
|
departments = json['departments'] == null ? null : AnyValue.fromJson(json['departments']),
|
||||||
createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']);
|
createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']);
|
||||||
@@ -77,9 +77,15 @@ class ListTeamHubsByOwnerIdTeamHubs {
|
|||||||
json['hubName'] = nativeToJson<String>(hubName);
|
json['hubName'] = nativeToJson<String>(hubName);
|
||||||
json['address'] = nativeToJson<String>(address);
|
json['address'] = nativeToJson<String>(address);
|
||||||
json['city'] = nativeToJson<String>(city);
|
json['city'] = nativeToJson<String>(city);
|
||||||
json['state'] = nativeToJson<String>(state);
|
if (state != null) {
|
||||||
json['zipCode'] = nativeToJson<String>(zipCode);
|
json['state'] = nativeToJson<String?>(state);
|
||||||
json['managerName'] = nativeToJson<String>(managerName);
|
}
|
||||||
|
if (zipCode != null) {
|
||||||
|
json['zipCode'] = nativeToJson<String?>(zipCode);
|
||||||
|
}
|
||||||
|
if (managerName != null) {
|
||||||
|
json['managerName'] = nativeToJson<String?>(managerName);
|
||||||
|
}
|
||||||
json['isActive'] = nativeToJson<bool>(isActive);
|
json['isActive'] = nativeToJson<bool>(isActive);
|
||||||
if (departments != null) {
|
if (departments != null) {
|
||||||
json['departments'] = departments!.toJson();
|
json['departments'] = departments!.toJson();
|
||||||
@@ -96,9 +102,9 @@ class ListTeamHubsByOwnerIdTeamHubs {
|
|||||||
required this.hubName,
|
required this.hubName,
|
||||||
required this.address,
|
required this.address,
|
||||||
required this.city,
|
required this.city,
|
||||||
required this.state,
|
this.state,
|
||||||
required this.zipCode,
|
this.zipCode,
|
||||||
required this.managerName,
|
this.managerName,
|
||||||
required this.isActive,
|
required this.isActive,
|
||||||
this.departments,
|
this.departments,
|
||||||
this.createdAt,
|
this.createdAt,
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ library client_hubs;
|
|||||||
|
|
||||||
import 'package:flutter_modular/flutter_modular.dart';
|
import 'package:flutter_modular/flutter_modular.dart';
|
||||||
import 'package:krow_data_connect/krow_data_connect.dart';
|
import 'package:krow_data_connect/krow_data_connect.dart';
|
||||||
|
import 'package:firebase_auth/firebase_auth.dart' as firebase;
|
||||||
import 'src/data/repositories_impl/hub_repository_impl.dart';
|
import 'src/data/repositories_impl/hub_repository_impl.dart';
|
||||||
import 'src/domain/repositories/hub_repository_interface.dart';
|
import 'src/domain/repositories/hub_repository_interface.dart';
|
||||||
import 'src/domain/usecases/assign_nfc_tag_usecase.dart';
|
import 'src/domain/usecases/assign_nfc_tag_usecase.dart';
|
||||||
@@ -22,7 +23,10 @@ class ClientHubsModule extends Module {
|
|||||||
void binds(Injector i) {
|
void binds(Injector i) {
|
||||||
// Repositories
|
// Repositories
|
||||||
i.addLazySingleton<HubRepositoryInterface>(
|
i.addLazySingleton<HubRepositoryInterface>(
|
||||||
() => HubRepositoryImpl(mock: i.get<BusinessRepositoryMock>()),
|
() => HubRepositoryImpl(
|
||||||
|
firebaseAuth: firebase.FirebaseAuth.instance,
|
||||||
|
dataConnect: ExampleConnector.instance,
|
||||||
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
// UseCases
|
// UseCases
|
||||||
|
|||||||
@@ -1,45 +1,154 @@
|
|||||||
import 'package:krow_data_connect/krow_data_connect.dart';
|
import 'package:firebase_auth/firebase_auth.dart' as firebase;
|
||||||
import 'package:krow_domain/krow_domain.dart';
|
import 'package:krow_data_connect/krow_data_connect.dart' as dc;
|
||||||
|
import 'package:krow_domain/krow_domain.dart' as domain;
|
||||||
import '../../domain/repositories/hub_repository_interface.dart';
|
import '../../domain/repositories/hub_repository_interface.dart';
|
||||||
|
|
||||||
/// Implementation of [HubRepositoryInterface] that uses [BusinessRepositoryMock].
|
/// Implementation of [HubRepositoryInterface] backed by Data Connect.
|
||||||
///
|
|
||||||
/// This class serves as a data adapter that bridges the domain repository interface
|
|
||||||
/// with the backend data source provided by the `data_connect` package. It strictly
|
|
||||||
/// delegates all operations to the [BusinessRepositoryMock], ensuring no business
|
|
||||||
/// logic resides in the data layer.
|
|
||||||
class HubRepositoryImpl implements HubRepositoryInterface {
|
class HubRepositoryImpl implements HubRepositoryInterface {
|
||||||
/// The business repository mock from data connect.
|
final firebase.FirebaseAuth _firebaseAuth;
|
||||||
final BusinessRepositoryMock mock;
|
final dc.ExampleConnector _dataConnect;
|
||||||
|
|
||||||
/// Creates a [HubRepositoryImpl] instance.
|
HubRepositoryImpl({
|
||||||
///
|
required firebase.FirebaseAuth firebaseAuth,
|
||||||
/// Takes a [BusinessRepositoryMock] as a dependency to perform data operations.
|
required dc.ExampleConnector dataConnect,
|
||||||
HubRepositoryImpl({required this.mock});
|
}) : _firebaseAuth = firebaseAuth,
|
||||||
|
_dataConnect = dataConnect;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<List<Hub>> getHubs() {
|
Future<List<domain.Hub>> getHubs() async {
|
||||||
// In a production environment, the business ID would be retrieved from
|
final business = await _getBusinessForCurrentUser();
|
||||||
// a session manager or authentication state. For the current mock strategy,
|
final teamId = await _getOrCreateTeamId(business);
|
||||||
// we use a hardcoded value 'biz_1' to represent the active client.
|
return _fetchHubsForTeam(teamId: teamId, businessId: business.id);
|
||||||
return mock.getHubs('biz_1');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<Hub> createHub({required String name, required String address}) {
|
Future<domain.Hub> createHub({
|
||||||
// Delegates hub creation to the mock repository.
|
required String name,
|
||||||
return mock.createHub(businessId: 'biz_1', name: name, address: address);
|
required String address,
|
||||||
|
}) async {
|
||||||
|
final business = await _getBusinessForCurrentUser();
|
||||||
|
final teamId = await _getOrCreateTeamId(business);
|
||||||
|
final city = business.city;
|
||||||
|
if (city == null || city.isEmpty) {
|
||||||
|
throw Exception('Business city is missing.');
|
||||||
|
}
|
||||||
|
|
||||||
|
final result = await _dataConnect
|
||||||
|
.createTeamHub(
|
||||||
|
teamId: teamId,
|
||||||
|
hubName: name,
|
||||||
|
address: address,
|
||||||
|
city: city,
|
||||||
|
)
|
||||||
|
.execute();
|
||||||
|
final createdId = result.data?.teamHub_insert.id;
|
||||||
|
if (createdId == null) {
|
||||||
|
throw Exception('Hub creation failed.');
|
||||||
|
}
|
||||||
|
|
||||||
|
final hubs = await _fetchHubsForTeam(
|
||||||
|
teamId: teamId,
|
||||||
|
businessId: business.id,
|
||||||
|
);
|
||||||
|
domain.Hub? createdHub;
|
||||||
|
for (final hub in hubs) {
|
||||||
|
if (hub.id == createdId) {
|
||||||
|
createdHub = hub;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return createdHub ??
|
||||||
|
domain.Hub(
|
||||||
|
id: createdId,
|
||||||
|
businessId: business.id,
|
||||||
|
name: name,
|
||||||
|
address: address,
|
||||||
|
nfcTagId: null,
|
||||||
|
status: domain.HubStatus.active,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> deleteHub(String id) {
|
Future<void> deleteHub(String id) async {
|
||||||
// Delegates hub deletion to the mock repository.
|
await _dataConnect.deleteTeamHub(id: id).execute();
|
||||||
return mock.deleteHub(id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> assignNfcTag({required String hubId, required String nfcTagId}) {
|
Future<void> assignNfcTag({
|
||||||
// Delegates NFC tag assignment to the mock repository.
|
required String hubId,
|
||||||
return mock.assignNfcTag(hubId: hubId, nfcTagId: nfcTagId);
|
required String nfcTagId,
|
||||||
|
}) {
|
||||||
|
throw UnimplementedError('NFC tag assignment is not supported for team hubs.');
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<dc.GetBusinessesByUserIdBusinesses> _getBusinessForCurrentUser() async {
|
||||||
|
final user = _firebaseAuth.currentUser;
|
||||||
|
if (user == null) {
|
||||||
|
throw Exception('User is not authenticated.');
|
||||||
|
}
|
||||||
|
|
||||||
|
final result = await _dataConnect.getBusinessesByUserId(
|
||||||
|
userId: user.uid,
|
||||||
|
).execute();
|
||||||
|
if (result.data.businesses.isEmpty) {
|
||||||
|
await _firebaseAuth.signOut();
|
||||||
|
throw Exception('No business found for this user. Please sign in again.');
|
||||||
|
}
|
||||||
|
|
||||||
|
return result.data.businesses.first;
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<String> _getOrCreateTeamId(
|
||||||
|
dc.GetBusinessesByUserIdBusinesses business,
|
||||||
|
) async {
|
||||||
|
final teamsResult = await _dataConnect.getTeamsByOwnerId(
|
||||||
|
ownerId: business.id,
|
||||||
|
).execute();
|
||||||
|
if (teamsResult.data.teams.isNotEmpty) {
|
||||||
|
return teamsResult.data.teams.first.id;
|
||||||
|
}
|
||||||
|
|
||||||
|
final createTeamBuilder = _dataConnect.createTeam(
|
||||||
|
teamName: '${business.businessName} Team',
|
||||||
|
ownerId: business.id,
|
||||||
|
ownerName: business.contactName ?? '',
|
||||||
|
ownerRole: 'OWNER',
|
||||||
|
);
|
||||||
|
if (business.email != null) {
|
||||||
|
createTeamBuilder.email(business.email);
|
||||||
|
}
|
||||||
|
|
||||||
|
final createTeamResult = await createTeamBuilder.execute();
|
||||||
|
final teamId = createTeamResult.data?.team_insert.id;
|
||||||
|
if (teamId == null) {
|
||||||
|
throw Exception('Team creation failed.');
|
||||||
|
}
|
||||||
|
|
||||||
|
return teamId;
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<List<domain.Hub>> _fetchHubsForTeam({
|
||||||
|
required String teamId,
|
||||||
|
required String businessId,
|
||||||
|
}) async {
|
||||||
|
final hubsResult = await _dataConnect.getTeamHubsByTeamId(
|
||||||
|
teamId: teamId,
|
||||||
|
).execute();
|
||||||
|
|
||||||
|
return hubsResult.data.teamHubs
|
||||||
|
.map(
|
||||||
|
(hub) => domain.Hub(
|
||||||
|
id: hub.id,
|
||||||
|
businessId: businessId,
|
||||||
|
name: hub.hubName,
|
||||||
|
address: hub.address,
|
||||||
|
nfcTagId: null,
|
||||||
|
status:
|
||||||
|
hub.isActive
|
||||||
|
? domain.HubStatus.active
|
||||||
|
: domain.HubStatus.inactive,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.toList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user