/* Options: Date: 2025-09-14 06:48:22 Version: 8.52 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://production-eros-platform-apisubscription.azurewebsites.net/api //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: SaveContactGroup.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart,dart:typed_data */ import 'package:servicestack/servicestack.dart'; import 'dart:typed_data'; class SubscriptionLinkContact implements IConvertible { /** * Guid of the contact object within Eros. */ // @ApiMember(DataType="Guid", Description="Guid of the contact object within Eros.", Name="ContactId", ParameterType="query") String? ContactId; /** * The unique key that represents the contact on the external system. */ // @ApiMember(DataType="string", Description="The unique key that represents the contact on the external system.", IsRequired=true, Name="ContactAlternateKey", ParameterType="query") String? ContactAlternateKey; /** * Guid of the Role List Item object within Eros. */ // @ApiMember(DataType="Guid", Description="Guid of the Role List Item object within Eros.", IsRequired=true, Name="RoleId", ParameterType="query") String? RoleId; /** * The unique key that represents the role type on the external system. Note: Use of this is not currently implemented */ // @ApiMember(DataType="string", Description="The unique key that represents the role type on the external system. Note: Use of this is not currently implemented", Name="RoleAlternateKey", ParameterType="query") String? RoleAlternateKey; SubscriptionLinkContact({this.ContactId,this.ContactAlternateKey,this.RoleId,this.RoleAlternateKey}); SubscriptionLinkContact.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ContactId = json['ContactId']; ContactAlternateKey = json['ContactAlternateKey']; RoleId = json['RoleId']; RoleAlternateKey = json['RoleAlternateKey']; return this; } Map toJson() => { 'ContactId': ContactId, 'ContactAlternateKey': ContactAlternateKey, 'RoleId': RoleId, 'RoleAlternateKey': RoleAlternateKey }; getTypeName() => "SubscriptionLinkContact"; TypeContext? context = _ctx; } class SubscriptionContactGroupConnectionModel extends SubscriptionLinkContact implements IConvertible { /** * The order this contact is in priority. 1 would be the primary contact, 2 the secondary and so forth. */ // @ApiMember(DataType="int", Description="The order this contact is in priority. 1 would be the primary contact, 2 the secondary and so forth.", Name="Index", ParameterType="query") int? Index; /** * Set this to be true if the contact connection to the group is to be deleted */ // @ApiMember(DataType="bool", Description="Set this to be true if the contact connection to the group is to be deleted", Name="MarkAsDeleted", ParameterType="query") bool? MarkAsDeleted; SubscriptionContactGroupConnectionModel({this.Index,this.MarkAsDeleted}); SubscriptionContactGroupConnectionModel.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); Index = json['Index']; MarkAsDeleted = json['MarkAsDeleted']; return this; } Map toJson() => super.toJson()..addAll({ 'Index': Index, 'MarkAsDeleted': MarkAsDeleted }); getTypeName() => "SubscriptionContactGroupConnectionModel"; TypeContext? context = _ctx; } class SubscriptionContactGroupModel implements IConvertible { /** * A name for the contact group. */ // @ApiMember(DataType="string", Description="A name for the contact group.", IsRequired=true, Name="ContactGroupName", ParameterType="query") String? ContactGroupName; /** * Guid of the Role List Item object within Eros that defines the role of the group. */ // @ApiMember(DataType="Guid", Description="Guid of the Role List Item object within Eros that defines the role of the group.", IsRequired=true, Name="GroupRoleId", ParameterType="query") String? GroupRoleId; /** * The unique key that represents the role type of the group on the external system. Note: Use of this is not currently implemented */ // @ApiMember(DataType="string", Description="The unique key that represents the role type of the group on the external system. Note: Use of this is not currently implemented", Name="RoleAlternateKey", ParameterType="query") String? RoleAlternateKey; /** * A list of ContactGroupConnection records that link contacts (and their role in the contact group) to the contact group. */ // @ApiMember(DataType="List", Description="A list of ContactGroupConnection records that link contacts (and their role in the contact group) to the contact group.", Name="ContactConnections", ParameterType="query") List? ContactConnections; /** * Set this to be true if the contact group is to be deleted */ // @ApiMember(DataType="bool", Description="Set this to be true if the contact group is to be deleted", Name="MarkAsDeleted", ParameterType="query") bool? MarkAsDeleted; /** * Set this to be true if the contact group is to be archived */ // @ApiMember(DataType="bool", Description="Set this to be true if the contact group is to be archived", Name="MarkAsArchived", ParameterType="query") bool? MarkAsArchived; /** * Set this to be true if the contact group is to be restored */ // @ApiMember(DataType="bool", Description="Set this to be true if the contact group is to be restored", Name="MarkAsRestored", ParameterType="query") bool? MarkAsRestored; SubscriptionContactGroupModel({this.ContactGroupName,this.GroupRoleId,this.RoleAlternateKey,this.ContactConnections,this.MarkAsDeleted,this.MarkAsArchived,this.MarkAsRestored}); SubscriptionContactGroupModel.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ContactGroupName = json['ContactGroupName']; GroupRoleId = json['GroupRoleId']; RoleAlternateKey = json['RoleAlternateKey']; ContactConnections = JsonConverters.fromJson(json['ContactConnections'],'List',context!); MarkAsDeleted = json['MarkAsDeleted']; MarkAsArchived = json['MarkAsArchived']; MarkAsRestored = json['MarkAsRestored']; return this; } Map toJson() => { 'ContactGroupName': ContactGroupName, 'GroupRoleId': GroupRoleId, 'RoleAlternateKey': RoleAlternateKey, 'ContactConnections': JsonConverters.toJson(ContactConnections,'List',context!), 'MarkAsDeleted': MarkAsDeleted, 'MarkAsArchived': MarkAsArchived, 'MarkAsRestored': MarkAsRestored }; getTypeName() => "SubscriptionContactGroupModel"; TypeContext? context = _ctx; } class RuleValidationResult implements IConvertible { String? RuleCode; String? Message; String? Key; String? Tag; String? ErrorCode; RuleValidationResult({this.RuleCode,this.Message,this.Key,this.Tag,this.ErrorCode}); RuleValidationResult.fromJson(Map json) { fromMap(json); } fromMap(Map json) { RuleCode = json['RuleCode']; Message = json['Message']; Key = json['Key']; Tag = json['Tag']; ErrorCode = json['ErrorCode']; return this; } Map toJson() => { 'RuleCode': RuleCode, 'Message': Message, 'Key': Key, 'Tag': Tag, 'ErrorCode': ErrorCode }; getTypeName() => "RuleValidationResult"; TypeContext? context = _ctx; } class ValidationErrorList implements IConvertible { List? ValidationErrors; ValidationErrorList({this.ValidationErrors}); ValidationErrorList.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ValidationErrors = JsonConverters.fromJson(json['ValidationErrors'],'List',context!); return this; } Map toJson() => { 'ValidationErrors': JsonConverters.toJson(ValidationErrors,'List',context!) }; getTypeName() => "ValidationErrorList"; TypeContext? context = _ctx; } abstract class ISubscription { String? SuiteDataSourceInstanceId; String? ObjectId; String? AlternateKey; bool? IgnoreValidation; } /** * Inserts or Updates a contact group and its contact connections. */ // @Api(Description="Inserts or Updates a contact group and its contact connections.") class SaveContactGroup extends ValidationErrorList implements IReturn, ISubscription, IConvertible, IPost { /** * Guid representing the external systems datasource information. */ // @ApiMember(DataType="Guid", Description="Guid representing the external systems datasource information.", IsRequired=true, Name="SuiteDataSourceInstanceId", ParameterType="query") String? SuiteDataSourceInstanceId; /** * The unique key that represents the contact group on the external system. */ // @ApiMember(DataType="string", Description="The unique key that represents the contact group on the external system.", IsRequired=true, Name="AlternateKey", ParameterType="query") String? AlternateKey; /** * Guid of the contact group object within Eros. If ObjectId is known, the external system may pass this insted of the alternate key. */ // @ApiMember(DataType="Guid", Description="Guid of the contact group object within Eros. If ObjectId is known, the external system may pass this insted of the alternate key.", Name="ObjectId", ParameterType="query") String? ObjectId; /** * If set to true, the object will be updated/refreshed. If false, the hash representation of the ContactGroup model and its data will be compared with the current ContactGroup to determine if there are any changes to save. */ // @ApiMember(DataType="bool", Description="If set to true, the object will be updated/refreshed. If false, the hash representation of the ContactGroup model and its data will be compared with the current ContactGroup to determine if there are any changes to save.", Name="IgnoreHash") bool? IgnoreHash; /** * Object containing all details of the contact group to be inserted or updated. */ // @ApiMember(DataType="SubscriptionContactGroupModel", Description="Object containing all details of the contact group to be inserted or updated.", IsRequired=true, Name="ContactGroup", ParameterType="query") SubscriptionContactGroupModel? ContactGroup; bool? IgnoreValidation; String? LicenseeId; String? SessionId; SaveContactGroup({this.SuiteDataSourceInstanceId,this.AlternateKey,this.ObjectId,this.IgnoreHash,this.ContactGroup,this.IgnoreValidation,this.LicenseeId,this.SessionId}); SaveContactGroup.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); SuiteDataSourceInstanceId = json['SuiteDataSourceInstanceId']; AlternateKey = json['AlternateKey']; ObjectId = json['ObjectId']; IgnoreHash = json['IgnoreHash']; ContactGroup = JsonConverters.fromJson(json['ContactGroup'],'SubscriptionContactGroupModel',context!); IgnoreValidation = json['IgnoreValidation']; LicenseeId = json['LicenseeId']; SessionId = json['SessionId']; return this; } Map toJson() => super.toJson()..addAll({ 'SuiteDataSourceInstanceId': SuiteDataSourceInstanceId, 'AlternateKey': AlternateKey, 'ObjectId': ObjectId, 'IgnoreHash': IgnoreHash, 'ContactGroup': JsonConverters.toJson(ContactGroup,'SubscriptionContactGroupModel',context!), 'IgnoreValidation': IgnoreValidation, 'LicenseeId': LicenseeId, 'SessionId': SessionId }); createResponse() => ResponseStatus(); getResponseTypeName() => "ResponseStatus"; getTypeName() => "SaveContactGroup"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'production_eros_platform_apisubscription.azurewebsites.net', types: { 'SubscriptionLinkContact': TypeInfo(TypeOf.Class, create:() => SubscriptionLinkContact()), 'SubscriptionContactGroupConnectionModel': TypeInfo(TypeOf.Class, create:() => SubscriptionContactGroupConnectionModel()), 'SubscriptionContactGroupModel': TypeInfo(TypeOf.Class, create:() => SubscriptionContactGroupModel()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'RuleValidationResult': TypeInfo(TypeOf.Class, create:() => RuleValidationResult()), 'ValidationErrorList': TypeInfo(TypeOf.Class, create:() => ValidationErrorList()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'ISubscription': TypeInfo(TypeOf.Interface), 'SaveContactGroup': TypeInfo(TypeOf.Class, create:() => SaveContactGroup()), });