{"version":3,"file":"salesvisitService-a6c1a29c.js","sources":["../../src/app/services/generated/salesvisitService.ts"],"sourcesContent":["import Guid from \"@/app/types/common/guid\";\nimport { Instant, LocalDate, LocalTime } from \"@js-joda/core\";\nimport {ModelObject, BaseModelObject, ValidationRule} from \"@/app/services/modelObject\";\nimport ServiceBase from \"@/app/services/serviceBase\";\nimport converters from \"@/app/services/converters\"\nimport { EnumSalesVisitAssociatedEntityType } from \"./enums/enumSalesVisitAssociatedEntityType.generated\";\nimport { EnumTaskRepeatBasis } from \"./enums/enumTaskRepeatBasis.generated\";\n\n// Model Objects\n\nexport class PlannedSalesVisitReadOnly extends ModelObject {\n\n /**\n * Whether this visit fits the routing schedule. Not user editable and only updated by the routing service.\n */\n public doesFitInRoute: boolean = false;\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.doesFitInRoute = jsonSerializedObject.doesFitInRoute;\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.doesFitInRoute = this.doesFitInRoute;\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n ];\n}\n\n\nexport class PlannedSalesVisit extends BaseModelObject {\n\n public id: Guid = Guid.createEmpty();\n public version: number = 0;\n /**\n * User to which this sales visit is assigned.\n */\n public userId: Guid = Guid.createEmpty();\n /**\n * Date of the visit\n */\n public date: LocalDate = LocalDate.ofEpochDay(0);\n /**\n * Planned time of the visit. Either be agreed by the customer or set by the optimiser.\n */\n public plannedTime: LocalTime = LocalTime.MIDNIGHT;\n /**\n * Whether the planned time is agreed by customer (false) or a sequence set by the optimiser (true).\n */\n public isPlannedTimeFlexible: boolean = false;\n /**\n * Duration of this visit in minutes.\n */\n public durationMinutes: number = 0;\n /**\n * Basis for repeating sales visit once completed.\n */\n public repeatBasis: EnumTaskRepeatBasis = EnumTaskRepeatBasis.none;\n /**\n * Parameter for sales visit repeat schedule. Only relevant if RepeatBasis is a basis which uses a parameter.\n */\n public repeatParameter: number = 0;\n /**\n * Notes of this visit.\n * Not Nullable\n * Max Length : 10000\n */\n public notes: string = \"\";\n /**\n * Entity type associated to this visit.\n */\n public associatedEntityType: EnumSalesVisitAssociatedEntityType = EnumSalesVisitAssociatedEntityType.outlet;\n /**\n * Id of the entity with which the sales visit is associated.\n */\n public associatedEntityId: Guid = Guid.createEmpty();\n public readOnly: PlannedSalesVisitReadOnly = new PlannedSalesVisitReadOnly();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.id = Guid.fromString(jsonSerializedObject.id);\n this.version = jsonSerializedObject.version;\n this.userId = Guid.fromString(jsonSerializedObject.userId);\n this.date = LocalDate.parse(jsonSerializedObject.date);\n this.plannedTime = LocalTime.parse(jsonSerializedObject.plannedTime);\n this.isPlannedTimeFlexible = jsonSerializedObject.isPlannedTimeFlexible;\n this.durationMinutes = jsonSerializedObject.durationMinutes;\n this.repeatBasis = EnumTaskRepeatBasis.getByValue(jsonSerializedObject.repeatBasis, this.repeatBasis);\n this.repeatParameter = jsonSerializedObject.repeatParameter;\n this.notes = jsonSerializedObject.notes;\n this.associatedEntityType = EnumSalesVisitAssociatedEntityType.getByValue(jsonSerializedObject.associatedEntityType, this.associatedEntityType);\n this.associatedEntityId = Guid.fromString(jsonSerializedObject.associatedEntityId);\n this.readOnly = new PlannedSalesVisitReadOnly(jsonSerializedObject.readOnly);\n }\n\n this.setDirtyCheckpoint();\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.id = this.id.toString();\n toRet.version = this.version;\n toRet.userId = this.userId.toString();\n toRet.date = this.date.toString();\n toRet.plannedTime = this.plannedTime.toString();\n toRet.isPlannedTimeFlexible = this.isPlannedTimeFlexible;\n toRet.durationMinutes = this.durationMinutes;\n toRet.repeatBasis = this.repeatBasis.value;\n toRet.repeatParameter = this.repeatParameter;\n toRet.notes = this.notes;\n toRet.associatedEntityType = this.associatedEntityType.value;\n toRet.associatedEntityId = this.associatedEntityId.toString();\n toRet.readOnly = this.readOnly.toJsonSerializedObject();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"id\", rule: (v: any) => !v.isEmpty() || \"PlannedSalesVisit.Id cannot be empty\"},\n {field: \"version\", rule: (v: any) => v == null || v >= -9223372036854775808 || \"Version is not greater than minimum allowed value: -9223372036854775808\"},\n {field: \"version\", rule: (v: any) => v == null || v <= 9223372036854775807 || \"Version is above maximum allowed value: 9223372036854775807\"},\n {field: \"userId\", rule: (v: any) => !v.isEmpty() || \"PlannedSalesVisit.UserId cannot be empty\"},\n {field: \"durationMinutes\", rule: (v: any) => v == null || v >= -2147483648 || \"DurationMinutes is not greater than minimum allowed value: -2147483648\"},\n {field: \"durationMinutes\", rule: (v: any) => v == null || v <= 2147483647 || \"DurationMinutes is above maximum allowed value: 2147483647\"},\n {field: \"repeatParameter\", rule: (v: any) => v == null || v >= -2147483648 || \"RepeatParameter is not greater than minimum allowed value: -2147483648\"},\n {field: \"repeatParameter\", rule: (v: any) => v == null || v <= 2147483647 || \"RepeatParameter is above maximum allowed value: 2147483647\"},\n {field: \"notes\", rule: (v: any) => v == null || v.length <= 10000 || \"Notes has too many characters (10000)\"},\n {field: \"associatedEntityId\", rule: (v: any) => !v.isEmpty() || \"PlannedSalesVisit.AssociatedEntityId cannot be empty\"},\n {field: \"readOnly\", rule: (v: any) => !!v || \"readOnly is required\"},\n ];\n}\n\n\nexport class SalesVisitAssociatedEntityFilter extends ModelObject {\n\n public entityType: EnumSalesVisitAssociatedEntityType = EnumSalesVisitAssociatedEntityType.outlet;\n public entityId: Guid = Guid.createEmpty();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.entityType = EnumSalesVisitAssociatedEntityType.getByValue(jsonSerializedObject.entityType, this.entityType);\n this.entityId = Guid.fromString(jsonSerializedObject.entityId);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.entityType = this.entityType.value;\n toRet.entityId = this.entityId.toString();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"entityId\", rule: (v: any) => !v.isEmpty() || \"SalesVisitAssociatedEntityFilter.EntityId cannot be empty\"},\n ];\n}\n\n\nexport class PlannedSalesVisitFilter extends ModelObject {\n\n private _maximumResults: number | null = null;\n public get maximumResults(): number | null { return this._maximumResults }\n public set maximumResults(value: number | null) {\n this._maximumResults = value === undefined ? null : value;\n }\n private _limitUserIds: Guid[] | null = null;\n public get limitUserIds(): Guid[] | null { return this._limitUserIds }\n public set limitUserIds(value: Guid[] | null) {\n this._limitUserIds = value === undefined ? null : value;\n }\n private _fromDate: LocalDate | null = null;\n /**\n * Minimum (inclusive) date.\n */\n public get fromDate(): LocalDate | null { return this._fromDate }\n public set fromDate(value: LocalDate | null) {\n this._fromDate = value === undefined ? null : value;\n }\n private _toDate: LocalDate | null = null;\n /**\n * Maximum (inclusive) date.\n */\n public get toDate(): LocalDate | null { return this._toDate }\n public set toDate(value: LocalDate | null) {\n this._toDate = value === undefined ? null : value;\n }\n private _limitAssociatedEntities: SalesVisitAssociatedEntityFilter[] | null = null;\n public get limitAssociatedEntities(): SalesVisitAssociatedEntityFilter[] | null { return this._limitAssociatedEntities }\n public set limitAssociatedEntities(value: SalesVisitAssociatedEntityFilter[] | null) {\n this._limitAssociatedEntities = value === undefined ? null : value;\n }\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.maximumResults = jsonSerializedObject.maximumResults == null ? null : jsonSerializedObject.maximumResults;\n this.limitUserIds = jsonSerializedObject.limitUserIds == null ? null : jsonSerializedObject.limitUserIds.map((v: any) => Guid.fromString(v));\n this.fromDate = jsonSerializedObject.fromDate == null ? null : LocalDate.parse(jsonSerializedObject.fromDate);\n this.toDate = jsonSerializedObject.toDate == null ? null : LocalDate.parse(jsonSerializedObject.toDate);\n this.limitAssociatedEntities = jsonSerializedObject.limitAssociatedEntities == null ? null : jsonSerializedObject.limitAssociatedEntities.map((v: any) => new SalesVisitAssociatedEntityFilter(v));\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.maximumResults = this.maximumResults == null ? null : this.maximumResults;\n toRet.limitUserIds = this.limitUserIds == null ? null : this.limitUserIds.map(v => v.toString());\n toRet.fromDate = this.fromDate == null ? null : this.fromDate.toString();\n toRet.toDate = this.toDate == null ? null : this.toDate.toString();\n toRet.limitAssociatedEntities = this.limitAssociatedEntities == null ? null : this.limitAssociatedEntities.map(v => v.toJsonSerializedObject());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"maximumResults\", rule: (v: any) => v == null || v >= 0 || \"MaximumResults is not greater than minimum allowed value: 0\"},\n {field: \"maximumResults\", rule: (v: any) => v == null || v <= 2147483647 || \"MaximumResults is above maximum allowed value: 2147483647\"},\n {field: \"limitAssociatedEntities\", rule: (v: any) => {\n if (v === null) {\n return true;\n }\n\n return (v as SalesVisitAssociatedEntityFilter[]).reduce((acc: Array, curr: SalesVisitAssociatedEntityFilter) => acc.concat(curr.validate()), new Array());\n }},\n ];\n}\n\n\nexport class FilteredPlannedSalesVisitResult extends ModelObject {\n\n public matchingCount: number = 0;\n public plannedSalesVisits: PlannedSalesVisit[] = [];\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.matchingCount = jsonSerializedObject.matchingCount;\n this.plannedSalesVisits = jsonSerializedObject.plannedSalesVisits.map((v: any) => new PlannedSalesVisit(v));\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.matchingCount = this.matchingCount;\n toRet.plannedSalesVisits = this.plannedSalesVisits.map(v => v.toJsonSerializedObject());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"matchingCount\", rule: (v: any) => v == null || v >= -2147483648 || \"MatchingCount is not greater than minimum allowed value: -2147483648\"},\n {field: \"matchingCount\", rule: (v: any) => v == null || v <= 2147483647 || \"MatchingCount is above maximum allowed value: 2147483647\"},\n {field: \"plannedSalesVisits\", rule: (v: any) => !!v || \"plannedSalesVisits is required\"},\n {field: \"plannedSalesVisits\", rule: (v: any) => {\n if (v === null) {\n return true;\n }\n\n return (v as PlannedSalesVisit[]).reduce((acc: Array, curr: PlannedSalesVisit) => acc.concat(curr.validate()), new Array());\n }},\n ];\n}\n\n\nexport class PlannedSalesVisitRouteDetails extends ModelObject {\n\n public plannedSalesVisitId: Guid = Guid.createEmpty();\n public doesVisitFitInRoute: boolean = false;\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.plannedSalesVisitId = Guid.fromString(jsonSerializedObject.plannedSalesVisitId);\n this.doesVisitFitInRoute = jsonSerializedObject.doesVisitFitInRoute;\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.plannedSalesVisitId = this.plannedSalesVisitId.toString();\n toRet.doesVisitFitInRoute = this.doesVisitFitInRoute;\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"plannedSalesVisitId\", rule: (v: any) => !v.isEmpty() || \"PlannedSalesVisitRouteDetails.PlannedSalesVisitId cannot be empty\"},\n ];\n}\n\n\nexport class SalesVistLogHeaderReadOnly extends ModelObject {\n\n /**\n * Timestamp at which this log is created.\n */\n public createdAt: Instant = Instant.ofEpochMilli(0);\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.createdAt = Instant.parse(jsonSerializedObject.createdAt);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.createdAt = this.createdAt.toString();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n ];\n}\n\n\nexport class SalesVisitLogHeader extends ModelObject {\n\n public id: Guid = Guid.createEmpty();\n public version: number = 0;\n /**\n * Visit notes\n * Not Nullable\n * Max Length : 10000\n */\n public notes: string = \"\";\n /**\n * Entity type associated to this visit.\n */\n public associatedEntityType: EnumSalesVisitAssociatedEntityType = EnumSalesVisitAssociatedEntityType.outlet;\n /**\n * Id of the entity with which the sales visit is associated.\n */\n public associatedEntityId: Guid = Guid.createEmpty();\n /**\n * User who performed this visit.\n */\n public userId: Guid = Guid.createEmpty();\n /**\n * Date of the visit\n */\n public date: LocalDate = LocalDate.ofEpochDay(0);\n public readOnly: SalesVistLogHeaderReadOnly = new SalesVistLogHeaderReadOnly();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.id = Guid.fromString(jsonSerializedObject.id);\n this.version = jsonSerializedObject.version;\n this.notes = jsonSerializedObject.notes;\n this.associatedEntityType = EnumSalesVisitAssociatedEntityType.getByValue(jsonSerializedObject.associatedEntityType, this.associatedEntityType);\n this.associatedEntityId = Guid.fromString(jsonSerializedObject.associatedEntityId);\n this.userId = Guid.fromString(jsonSerializedObject.userId);\n this.date = LocalDate.parse(jsonSerializedObject.date);\n this.readOnly = new SalesVistLogHeaderReadOnly(jsonSerializedObject.readOnly);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.id = this.id.toString();\n toRet.version = this.version;\n toRet.notes = this.notes;\n toRet.associatedEntityType = this.associatedEntityType.value;\n toRet.associatedEntityId = this.associatedEntityId.toString();\n toRet.userId = this.userId.toString();\n toRet.date = this.date.toString();\n toRet.readOnly = this.readOnly.toJsonSerializedObject();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"id\", rule: (v: any) => !v.isEmpty() || \"SalesVisitLogHeader.Id cannot be empty\"},\n {field: \"version\", rule: (v: any) => v == null || v >= -9223372036854775808 || \"Version is not greater than minimum allowed value: -9223372036854775808\"},\n {field: \"version\", rule: (v: any) => v == null || v <= 9223372036854775807 || \"Version is above maximum allowed value: 9223372036854775807\"},\n {field: \"notes\", rule: (v: any) => v == null || v.length <= 10000 || \"Notes has too many characters (10000)\"},\n {field: \"associatedEntityId\", rule: (v: any) => !v.isEmpty() || \"SalesVisitLogHeader.AssociatedEntityId cannot be empty\"},\n {field: \"userId\", rule: (v: any) => !v.isEmpty() || \"SalesVisitLogHeader.UserId cannot be empty\"},\n {field: \"readOnly\", rule: (v: any) => !!v || \"readOnly is required\"},\n ];\n}\n\n\nexport class SalesVisitLog extends BaseModelObject {\n\n public header: SalesVisitLogHeader = new SalesVisitLogHeader();\n public orderIds: Guid[] = [];\n public outletCommunicationLogEntryIds: Guid[] = [];\n public leadCommunicationLogEntryIds: Guid[] = [];\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.header = new SalesVisitLogHeader(jsonSerializedObject.header);\n this.orderIds = jsonSerializedObject.orderIds.map((v: any) => Guid.fromString(v));\n this.outletCommunicationLogEntryIds = jsonSerializedObject.outletCommunicationLogEntryIds.map((v: any) => Guid.fromString(v));\n this.leadCommunicationLogEntryIds = jsonSerializedObject.leadCommunicationLogEntryIds.map((v: any) => Guid.fromString(v));\n }\n\n this.setDirtyCheckpoint();\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.header = this.header.toJsonSerializedObject();\n toRet.orderIds = this.orderIds.map(v => v.toString());\n toRet.outletCommunicationLogEntryIds = this.outletCommunicationLogEntryIds.map(v => v.toString());\n toRet.leadCommunicationLogEntryIds = this.leadCommunicationLogEntryIds.map(v => v.toString());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"header\", rule: (v: any) => !!v || \"header is required\"},\n {field: \"header\", rule: (v: any) => v.validate()},\n ];\n}\n\n\nexport class SalesVisitLogFilter extends ModelObject {\n\n private _maximumResults: number | null = null;\n public get maximumResults(): number | null { return this._maximumResults }\n public set maximumResults(value: number | null) {\n this._maximumResults = value === undefined ? null : value;\n }\n private _limitUserIds: Guid[] | null = null;\n public get limitUserIds(): Guid[] | null { return this._limitUserIds }\n public set limitUserIds(value: Guid[] | null) {\n this._limitUserIds = value === undefined ? null : value;\n }\n private _fromDate: LocalDate | null = null;\n /**\n * Minimum (inclusive) date.\n */\n public get fromDate(): LocalDate | null { return this._fromDate }\n public set fromDate(value: LocalDate | null) {\n this._fromDate = value === undefined ? null : value;\n }\n private _toDate: LocalDate | null = null;\n /**\n * Maximum (inclusive) date.\n */\n public get toDate(): LocalDate | null { return this._toDate }\n public set toDate(value: LocalDate | null) {\n this._toDate = value === undefined ? null : value;\n }\n private _limitAssociatedEntities: SalesVisitAssociatedEntityFilter[] | null = null;\n public get limitAssociatedEntities(): SalesVisitAssociatedEntityFilter[] | null { return this._limitAssociatedEntities }\n public set limitAssociatedEntities(value: SalesVisitAssociatedEntityFilter[] | null) {\n this._limitAssociatedEntities = value === undefined ? null : value;\n }\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.maximumResults = jsonSerializedObject.maximumResults == null ? null : jsonSerializedObject.maximumResults;\n this.limitUserIds = jsonSerializedObject.limitUserIds == null ? null : jsonSerializedObject.limitUserIds.map((v: any) => Guid.fromString(v));\n this.fromDate = jsonSerializedObject.fromDate == null ? null : LocalDate.parse(jsonSerializedObject.fromDate);\n this.toDate = jsonSerializedObject.toDate == null ? null : LocalDate.parse(jsonSerializedObject.toDate);\n this.limitAssociatedEntities = jsonSerializedObject.limitAssociatedEntities == null ? null : jsonSerializedObject.limitAssociatedEntities.map((v: any) => new SalesVisitAssociatedEntityFilter(v));\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.maximumResults = this.maximumResults == null ? null : this.maximumResults;\n toRet.limitUserIds = this.limitUserIds == null ? null : this.limitUserIds.map(v => v.toString());\n toRet.fromDate = this.fromDate == null ? null : this.fromDate.toString();\n toRet.toDate = this.toDate == null ? null : this.toDate.toString();\n toRet.limitAssociatedEntities = this.limitAssociatedEntities == null ? null : this.limitAssociatedEntities.map(v => v.toJsonSerializedObject());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"maximumResults\", rule: (v: any) => v == null || v >= 0 || \"MaximumResults is not greater than minimum allowed value: 0\"},\n {field: \"maximumResults\", rule: (v: any) => v == null || v <= 2147483647 || \"MaximumResults is above maximum allowed value: 2147483647\"},\n {field: \"limitAssociatedEntities\", rule: (v: any) => {\n if (v === null) {\n return true;\n }\n\n return (v as SalesVisitAssociatedEntityFilter[]).reduce((acc: Array, curr: SalesVisitAssociatedEntityFilter) => acc.concat(curr.validate()), new Array());\n }},\n ];\n}\n\n\nexport class FilteredSalesVisitLogResult extends ModelObject {\n\n public matchingCount: number = 0;\n public salesVisitLogs: SalesVisitLog[] = [];\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.matchingCount = jsonSerializedObject.matchingCount;\n this.salesVisitLogs = jsonSerializedObject.salesVisitLogs.map((v: any) => new SalesVisitLog(v));\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.matchingCount = this.matchingCount;\n toRet.salesVisitLogs = this.salesVisitLogs.map(v => v.toJsonSerializedObject());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"matchingCount\", rule: (v: any) => v == null || v >= -2147483648 || \"MatchingCount is not greater than minimum allowed value: -2147483648\"},\n {field: \"matchingCount\", rule: (v: any) => v == null || v <= 2147483647 || \"MatchingCount is above maximum allowed value: 2147483647\"},\n {field: \"salesVisitLogs\", rule: (v: any) => !!v || \"salesVisitLogs is required\"},\n {field: \"salesVisitLogs\", rule: (v: any) => {\n if (v === null) {\n return true;\n }\n\n return (v as SalesVisitLog[]).reduce((acc: Array, curr: SalesVisitLog) => acc.concat(curr.validate()), new Array());\n }},\n ];\n}\n\n\nexport class SalesVisitJourneyCalculated extends ModelObject {\n\n public numberOfStops: number = 0;\n public totalDurationSeconds: number = 0;\n public distanceKm: number = 0;\n public polyline: string = \"\";\n public stopTimeSeconds: number = 0;\n public travelTimeSeconds: number = 0;\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.numberOfStops = jsonSerializedObject.numberOfStops;\n this.totalDurationSeconds = jsonSerializedObject.totalDurationSeconds;\n this.distanceKm = jsonSerializedObject.distanceKm;\n this.polyline = jsonSerializedObject.polyline;\n this.stopTimeSeconds = jsonSerializedObject.stopTimeSeconds;\n this.travelTimeSeconds = jsonSerializedObject.travelTimeSeconds;\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.numberOfStops = this.numberOfStops;\n toRet.totalDurationSeconds = this.totalDurationSeconds;\n toRet.distanceKm = this.distanceKm;\n toRet.polyline = this.polyline;\n toRet.stopTimeSeconds = this.stopTimeSeconds;\n toRet.travelTimeSeconds = this.travelTimeSeconds;\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"numberOfStops\", rule: (v: any) => v == null || v >= -2147483648 || \"NumberOfStops is not greater than minimum allowed value: -2147483648\"},\n {field: \"numberOfStops\", rule: (v: any) => v == null || v <= 2147483647 || \"NumberOfStops is above maximum allowed value: 2147483647\"},\n ];\n}\n\n\nexport class SalesVisitDetail extends ModelObject {\n\n public salesVisits: PlannedSalesVisit[] = [];\n public calculated: SalesVisitJourneyCalculated = new SalesVisitJourneyCalculated();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.salesVisits = jsonSerializedObject.salesVisits.map((v: any) => new PlannedSalesVisit(v));\n this.calculated = new SalesVisitJourneyCalculated(jsonSerializedObject.calculated);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.salesVisits = this.salesVisits.map(v => v.toJsonSerializedObject());\n toRet.calculated = this.calculated.toJsonSerializedObject();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"salesVisits\", rule: (v: any) => !!v || \"salesVisits is required\"},\n {field: \"salesVisits\", rule: (v: any) => {\n if (v === null) {\n return true;\n }\n\n return (v as PlannedSalesVisit[]).reduce((acc: Array, curr: PlannedSalesVisit) => acc.concat(curr.validate()), new Array());\n }},\n {field: \"calculated\", rule: (v: any) => !!v || \"calculated is required\"},\n {field: \"calculated\", rule: (v: any) => v.validate()},\n ];\n}\n\n\nexport class GetAllPlannedSalesVisitsRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n ];\n}\n\n\nexport class GetAllPlannedSalesVisitsResponse extends ModelObject {\n\n public plannedSalesVisits: PlannedSalesVisit[] = [];\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.plannedSalesVisits = jsonSerializedObject.plannedSalesVisits.map((v: any) => new PlannedSalesVisit(v));\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.plannedSalesVisits = this.plannedSalesVisits.map(v => v.toJsonSerializedObject());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"plannedSalesVisits\", rule: (v: any) => !!v || \"plannedSalesVisits is required\"},\n {field: \"plannedSalesVisits\", rule: (v: any) => {\n if (v === null) {\n return true;\n }\n\n return (v as PlannedSalesVisit[]).reduce((acc: Array, curr: PlannedSalesVisit) => acc.concat(curr.validate()), new Array());\n }},\n ];\n}\n\n\nexport class GetPlannedSalesVisitsRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public plannedSalesVisitIds: readonly Guid[] = [];\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.plannedSalesVisitIds = jsonSerializedObject.plannedSalesVisitIds.map((v: any) => Guid.fromString(v));\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.plannedSalesVisitIds = this.plannedSalesVisitIds.map(v => v.toString());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n ];\n}\n\n\nexport class GetPlannedSalesVisitsResponse extends ModelObject {\n\n public plannedSalesVisits: PlannedSalesVisit[] = [];\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.plannedSalesVisits = jsonSerializedObject.plannedSalesVisits.map((v: any) => new PlannedSalesVisit(v));\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.plannedSalesVisits = this.plannedSalesVisits.map(v => v.toJsonSerializedObject());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"plannedSalesVisits\", rule: (v: any) => !!v || \"plannedSalesVisits is required\"},\n {field: \"plannedSalesVisits\", rule: (v: any) => {\n if (v === null) {\n return true;\n }\n\n return (v as PlannedSalesVisit[]).reduce((acc: Array, curr: PlannedSalesVisit) => acc.concat(curr.validate()), new Array());\n }},\n ];\n}\n\n\nexport class GetPlannedSalesVisitRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public plannedSalesVisitId: Guid = Guid.createEmpty();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.plannedSalesVisitId = Guid.fromString(jsonSerializedObject.plannedSalesVisitId);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.plannedSalesVisitId = this.plannedSalesVisitId.toString();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n {field: \"plannedSalesVisitId\", rule: (v: any) => !v.isEmpty() || \".PlannedSalesVisitId cannot be empty\"},\n ];\n}\n\n\nexport class GetPlannedSalesVisitResponse extends ModelObject {\n\n public plannedSalesVisit: PlannedSalesVisit = new PlannedSalesVisit();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.plannedSalesVisit = new PlannedSalesVisit(jsonSerializedObject.plannedSalesVisit);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.plannedSalesVisit = this.plannedSalesVisit.toJsonSerializedObject();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"plannedSalesVisit\", rule: (v: any) => !!v || \"plannedSalesVisit is required\"},\n {field: \"plannedSalesVisit\", rule: (v: any) => v.validate()},\n ];\n}\n\n\nexport class GetPlannedSalesVisitsByFilterRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public filter: PlannedSalesVisitFilter = new PlannedSalesVisitFilter();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.filter = new PlannedSalesVisitFilter(jsonSerializedObject.filter);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.filter = this.filter.toJsonSerializedObject();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n {field: \"filter\", rule: (v: any) => !!v || \"filter is required\"},\n {field: \"filter\", rule: (v: any) => v.validate()},\n ];\n}\n\n\nexport class GetPlannedSalesVisitsByFilterResponse extends ModelObject {\n\n public results: FilteredPlannedSalesVisitResult = new FilteredPlannedSalesVisitResult();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.results = new FilteredPlannedSalesVisitResult(jsonSerializedObject.results);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.results = this.results.toJsonSerializedObject();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"results\", rule: (v: any) => !!v || \"results is required\"},\n {field: \"results\", rule: (v: any) => v.validate()},\n ];\n}\n\n\nexport class SavePlannedSalesVisitRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public plannedSalesVisit: PlannedSalesVisit = new PlannedSalesVisit();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.plannedSalesVisit = new PlannedSalesVisit(jsonSerializedObject.plannedSalesVisit);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.plannedSalesVisit = this.plannedSalesVisit.toJsonSerializedObject();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n {field: \"plannedSalesVisit\", rule: (v: any) => !!v || \"plannedSalesVisit is required\"},\n {field: \"plannedSalesVisit\", rule: (v: any) => v.validate()},\n ];\n}\n\n\nexport class SavePlannedSalesVisitsRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public plannedSalesVisits: readonly PlannedSalesVisit[] = [];\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.plannedSalesVisits = jsonSerializedObject.plannedSalesVisits.map((v: any) => new PlannedSalesVisit(v));\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.plannedSalesVisits = this.plannedSalesVisits.map(v => v.toJsonSerializedObject());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n {field: \"plannedSalesVisits\", rule: (v: any) => !!v || \"plannedSalesVisits is required\"},\n {field: \"plannedSalesVisits\", rule: (v: any) => {\n if (v === null) {\n return true;\n }\n\n return (v as PlannedSalesVisit[]).reduce((acc: Array, curr: PlannedSalesVisit) => acc.concat(curr.validate()), new Array());\n }},\n ];\n}\n\n\nexport class DeletePlannedSalesVisitRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public plannedSalesVisitId: Guid = Guid.createEmpty();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.plannedSalesVisitId = Guid.fromString(jsonSerializedObject.plannedSalesVisitId);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.plannedSalesVisitId = this.plannedSalesVisitId.toString();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n {field: \"plannedSalesVisitId\", rule: (v: any) => !v.isEmpty() || \".PlannedSalesVisitId cannot be empty\"},\n ];\n}\n\n\nexport class UpdatePlannedSalesVisitsRouteDetailsRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public plannedSalesVisitsRouteDetails: readonly PlannedSalesVisitRouteDetails[] = [];\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.plannedSalesVisitsRouteDetails = jsonSerializedObject.plannedSalesVisitsRouteDetails.map((v: any) => new PlannedSalesVisitRouteDetails(v));\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.plannedSalesVisitsRouteDetails = this.plannedSalesVisitsRouteDetails.map(v => v.toJsonSerializedObject());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n {field: \"plannedSalesVisitsRouteDetails\", rule: (v: any) => !!v || \"plannedSalesVisitsRouteDetails is required\"},\n {field: \"plannedSalesVisitsRouteDetails\", rule: (v: any) => {\n if (v === null) {\n return true;\n }\n\n return (v as PlannedSalesVisitRouteDetails[]).reduce((acc: Array, curr: PlannedSalesVisitRouteDetails) => acc.concat(curr.validate()), new Array());\n }},\n ];\n}\n\n\nexport class GetAllSalesVisitLogsRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n ];\n}\n\n\nexport class GetAllSalesVisitLogsResponse extends ModelObject {\n\n public salesVisitLogs: SalesVisitLog[] = [];\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.salesVisitLogs = jsonSerializedObject.salesVisitLogs.map((v: any) => new SalesVisitLog(v));\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.salesVisitLogs = this.salesVisitLogs.map(v => v.toJsonSerializedObject());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"salesVisitLogs\", rule: (v: any) => !!v || \"salesVisitLogs is required\"},\n {field: \"salesVisitLogs\", rule: (v: any) => {\n if (v === null) {\n return true;\n }\n\n return (v as SalesVisitLog[]).reduce((acc: Array, curr: SalesVisitLog) => acc.concat(curr.validate()), new Array());\n }},\n ];\n}\n\n\nexport class GetSalesVisitLogsRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public salesVisitLogIds: readonly Guid[] = [];\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.salesVisitLogIds = jsonSerializedObject.salesVisitLogIds.map((v: any) => Guid.fromString(v));\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.salesVisitLogIds = this.salesVisitLogIds.map(v => v.toString());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n ];\n}\n\n\nexport class GetSalesVisitLogsResponse extends ModelObject {\n\n public salesVisitLogs: SalesVisitLog[] = [];\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.salesVisitLogs = jsonSerializedObject.salesVisitLogs.map((v: any) => new SalesVisitLog(v));\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.salesVisitLogs = this.salesVisitLogs.map(v => v.toJsonSerializedObject());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"salesVisitLogs\", rule: (v: any) => !!v || \"salesVisitLogs is required\"},\n {field: \"salesVisitLogs\", rule: (v: any) => {\n if (v === null) {\n return true;\n }\n\n return (v as SalesVisitLog[]).reduce((acc: Array, curr: SalesVisitLog) => acc.concat(curr.validate()), new Array());\n }},\n ];\n}\n\n\nexport class GetSalesVisitLogRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public salesVisitLogId: Guid = Guid.createEmpty();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.salesVisitLogId = Guid.fromString(jsonSerializedObject.salesVisitLogId);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.salesVisitLogId = this.salesVisitLogId.toString();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n {field: \"salesVisitLogId\", rule: (v: any) => !v.isEmpty() || \".SalesVisitLogId cannot be empty\"},\n ];\n}\n\n\nexport class GetSalesVisitLogResponse extends ModelObject {\n\n public salesVisitLog: SalesVisitLog = new SalesVisitLog();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.salesVisitLog = new SalesVisitLog(jsonSerializedObject.salesVisitLog);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.salesVisitLog = this.salesVisitLog.toJsonSerializedObject();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"salesVisitLog\", rule: (v: any) => !!v || \"salesVisitLog is required\"},\n {field: \"salesVisitLog\", rule: (v: any) => v.validate()},\n ];\n}\n\n\nexport class GetSalesVisitLogsByFilterRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public filter: SalesVisitLogFilter = new SalesVisitLogFilter();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.filter = new SalesVisitLogFilter(jsonSerializedObject.filter);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.filter = this.filter.toJsonSerializedObject();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n {field: \"filter\", rule: (v: any) => !!v || \"filter is required\"},\n {field: \"filter\", rule: (v: any) => v.validate()},\n ];\n}\n\n\nexport class GetSalesVisitLogsByFilterResponse extends ModelObject {\n\n public results: FilteredSalesVisitLogResult = new FilteredSalesVisitLogResult();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.results = new FilteredSalesVisitLogResult(jsonSerializedObject.results);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.results = this.results.toJsonSerializedObject();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"results\", rule: (v: any) => !!v || \"results is required\"},\n {field: \"results\", rule: (v: any) => v.validate()},\n ];\n}\n\n\nexport class SaveSalesVisitLogRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public salesVisitLog: SalesVisitLog = new SalesVisitLog();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.salesVisitLog = new SalesVisitLog(jsonSerializedObject.salesVisitLog);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.salesVisitLog = this.salesVisitLog.toJsonSerializedObject();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n {field: \"salesVisitLog\", rule: (v: any) => !!v || \"salesVisitLog is required\"},\n {field: \"salesVisitLog\", rule: (v: any) => v.validate()},\n ];\n}\n\n\nexport class GetNextRepeatPlannedDateRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public plannedSalesVisitId: Guid = Guid.createEmpty();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.plannedSalesVisitId = Guid.fromString(jsonSerializedObject.plannedSalesVisitId);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.plannedSalesVisitId = this.plannedSalesVisitId.toString();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n {field: \"plannedSalesVisitId\", rule: (v: any) => !v.isEmpty() || \".PlannedSalesVisitId cannot be empty\"},\n ];\n}\n\n\nexport class GetNextRepeatPlannedDateResponse extends ModelObject {\n\n private _suggestedDate: LocalDate | null = null;\n public get suggestedDate(): LocalDate | null { return this._suggestedDate }\n public set suggestedDate(value: LocalDate | null) {\n this._suggestedDate = value === undefined ? null : value;\n }\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.suggestedDate = jsonSerializedObject.suggestedDate == null ? null : LocalDate.parse(jsonSerializedObject.suggestedDate);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.suggestedDate = this.suggestedDate == null ? null : this.suggestedDate.toString();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n ];\n}\n\n\nexport class GetNextVisitDateForPlannedSalesVisitRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public plannedSalesVisit: PlannedSalesVisit = new PlannedSalesVisit();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.plannedSalesVisit = new PlannedSalesVisit(jsonSerializedObject.plannedSalesVisit);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.plannedSalesVisit = this.plannedSalesVisit.toJsonSerializedObject();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n {field: \"plannedSalesVisit\", rule: (v: any) => !!v || \"plannedSalesVisit is required\"},\n {field: \"plannedSalesVisit\", rule: (v: any) => v.validate()},\n ];\n}\n\n\nexport class GetNextVisitDateForPlannedSalesVisitResponse extends ModelObject {\n\n private _nextVisitDate: LocalDate | null = null;\n public get nextVisitDate(): LocalDate | null { return this._nextVisitDate }\n public set nextVisitDate(value: LocalDate | null) {\n this._nextVisitDate = value === undefined ? null : value;\n }\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.nextVisitDate = jsonSerializedObject.nextVisitDate == null ? null : LocalDate.parse(jsonSerializedObject.nextVisitDate);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.nextVisitDate = this.nextVisitDate == null ? null : this.nextVisitDate.toString();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n ];\n}\n\n\nexport class GetNextVisitDateForSalesVisitLogRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public salesVisitLogHeader: SalesVisitLogHeader = new SalesVisitLogHeader();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.salesVisitLogHeader = new SalesVisitLogHeader(jsonSerializedObject.salesVisitLogHeader);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.salesVisitLogHeader = this.salesVisitLogHeader.toJsonSerializedObject();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n {field: \"salesVisitLogHeader\", rule: (v: any) => !!v || \"salesVisitLogHeader is required\"},\n {field: \"salesVisitLogHeader\", rule: (v: any) => v.validate()},\n ];\n}\n\n\nexport class GetNextVisitDateForSalesVisitLogResponse extends ModelObject {\n\n private _nextVisitDate: LocalDate | null = null;\n public get nextVisitDate(): LocalDate | null { return this._nextVisitDate }\n public set nextVisitDate(value: LocalDate | null) {\n this._nextVisitDate = value === undefined ? null : value;\n }\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.nextVisitDate = jsonSerializedObject.nextVisitDate == null ? null : LocalDate.parse(jsonSerializedObject.nextVisitDate);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.nextVisitDate = this.nextVisitDate == null ? null : this.nextVisitDate.toString();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n ];\n}\n\n\nexport class GetPlannedSalesVisitIfExistRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public plannedSalesVisitId: Guid = Guid.createEmpty();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.plannedSalesVisitId = Guid.fromString(jsonSerializedObject.plannedSalesVisitId);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.plannedSalesVisitId = this.plannedSalesVisitId.toString();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n {field: \"plannedSalesVisitId\", rule: (v: any) => !v.isEmpty() || \".PlannedSalesVisitId cannot be empty\"},\n ];\n}\n\n\nexport class GetPlannedSalesVisitIfExistResponse extends ModelObject {\n\n private _plannedSalesVisit: PlannedSalesVisit | null = null;\n public get plannedSalesVisit(): PlannedSalesVisit | null { return this._plannedSalesVisit }\n public set plannedSalesVisit(value: PlannedSalesVisit | null) {\n this._plannedSalesVisit = value === undefined ? null : value;\n }\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.plannedSalesVisit = jsonSerializedObject.plannedSalesVisit == null ? null : new PlannedSalesVisit(jsonSerializedObject.plannedSalesVisit);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.plannedSalesVisit = this.plannedSalesVisit == null ? null : this.plannedSalesVisit?.toJsonSerializedObject() ?? null;\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"plannedSalesVisit\", rule: (v: any) => (v === null) || v.validate()},\n ];\n}\n\n\nexport class GetSalesVisitsJourneyDetailRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public salesVisitIds: readonly Guid[] = [];\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.salesVisitIds = jsonSerializedObject.salesVisitIds.map((v: any) => Guid.fromString(v));\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.salesVisitIds = this.salesVisitIds.map(v => v.toString());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n ];\n}\n\n\nexport class GetSalesVisitsJourneyDetailResponse extends ModelObject {\n\n public detail: SalesVisitDetail = new SalesVisitDetail();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.detail = new SalesVisitDetail(jsonSerializedObject.detail);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.detail = this.detail.toJsonSerializedObject();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"detail\", rule: (v: any) => !!v || \"detail is required\"},\n {field: \"detail\", rule: (v: any) => v.validate()},\n ];\n}\n\n\nexport class SalesVisitService extends ServiceBase {\n\n public async getAllPlannedSalesVisits(tenantId: Guid, opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new GetAllPlannedSalesVisitsRequest();\n req.tenantId = tenantId;\n const extractor = (response:any) => new GetAllPlannedSalesVisitsResponse(response).plannedSalesVisits;\n return this.makeJsonRequest(\"salesVisit/v1/getAllPlannedSalesVisits\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async getPlannedSalesVisits(tenantId: Guid, plannedSalesVisitIds: readonly Guid[], opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new GetPlannedSalesVisitsRequest();\n req.tenantId = tenantId;\n req.plannedSalesVisitIds = plannedSalesVisitIds;\n const extractor = (response:any) => new GetPlannedSalesVisitsResponse(response).plannedSalesVisits;\n return this.makeJsonRequest(\"salesVisit/v1/getPlannedSalesVisits\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async getPlannedSalesVisit(tenantId: Guid, plannedSalesVisitId: Guid, opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new GetPlannedSalesVisitRequest();\n req.tenantId = tenantId;\n req.plannedSalesVisitId = plannedSalesVisitId;\n const extractor = (response:any) => new GetPlannedSalesVisitResponse(response).plannedSalesVisit;\n return this.makeJsonRequest(\"salesVisit/v1/getPlannedSalesVisit\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async getPlannedSalesVisitsByFilter(tenantId: Guid, filter: PlannedSalesVisitFilter, opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new GetPlannedSalesVisitsByFilterRequest();\n req.tenantId = tenantId;\n req.filter = filter;\n const extractor = (response:any) => new GetPlannedSalesVisitsByFilterResponse(response).results;\n return this.makeJsonRequest(\"salesVisit/v1/getPlannedSalesVisitsByFilter\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async savePlannedSalesVisit(tenantId: Guid, plannedSalesVisit: PlannedSalesVisit, opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new SavePlannedSalesVisitRequest();\n req.tenantId = tenantId;\n req.plannedSalesVisit = plannedSalesVisit;\n const extractor = null;\n return this.makeJsonRequest(\"salesVisit/v1/savePlannedSalesVisit\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async savePlannedSalesVisits(tenantId: Guid, plannedSalesVisits: readonly PlannedSalesVisit[], opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new SavePlannedSalesVisitsRequest();\n req.tenantId = tenantId;\n req.plannedSalesVisits = plannedSalesVisits;\n const extractor = null;\n return this.makeJsonRequest(\"salesVisit/v1/savePlannedSalesVisits\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async deletePlannedSalesVisit(tenantId: Guid, plannedSalesVisitId: Guid, opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new DeletePlannedSalesVisitRequest();\n req.tenantId = tenantId;\n req.plannedSalesVisitId = plannedSalesVisitId;\n const extractor = null;\n return this.makeJsonRequest(\"salesVisit/v1/deletePlannedSalesVisit\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async getAllSalesVisitLogs(tenantId: Guid, opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new GetAllSalesVisitLogsRequest();\n req.tenantId = tenantId;\n const extractor = (response:any) => new GetAllSalesVisitLogsResponse(response).salesVisitLogs;\n return this.makeJsonRequest(\"salesVisit/v1/getAllSalesVisitLogs\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async getSalesVisitLogs(tenantId: Guid, salesVisitLogIds: readonly Guid[], opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new GetSalesVisitLogsRequest();\n req.tenantId = tenantId;\n req.salesVisitLogIds = salesVisitLogIds;\n const extractor = (response:any) => new GetSalesVisitLogsResponse(response).salesVisitLogs;\n return this.makeJsonRequest(\"salesVisit/v1/getSalesVisitLogs\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async getSalesVisitLog(tenantId: Guid, salesVisitLogId: Guid, opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new GetSalesVisitLogRequest();\n req.tenantId = tenantId;\n req.salesVisitLogId = salesVisitLogId;\n const extractor = (response:any) => new GetSalesVisitLogResponse(response).salesVisitLog;\n return this.makeJsonRequest(\"salesVisit/v1/getSalesVisitLog\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async getSalesVisitLogsByFilter(tenantId: Guid, filter: SalesVisitLogFilter, opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new GetSalesVisitLogsByFilterRequest();\n req.tenantId = tenantId;\n req.filter = filter;\n const extractor = (response:any) => new GetSalesVisitLogsByFilterResponse(response).results;\n return this.makeJsonRequest(\"salesVisit/v1/getSalesVisitLogsByFilter\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async saveSalesVisitLog(tenantId: Guid, salesVisitLog: SalesVisitLog, opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new SaveSalesVisitLogRequest();\n req.tenantId = tenantId;\n req.salesVisitLog = salesVisitLog;\n const extractor = null;\n return this.makeJsonRequest(\"salesVisit/v1/saveSalesVisitLog\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async getNextRepeatPlannedDate(tenantId: Guid, plannedSalesVisitId: Guid, opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new GetNextRepeatPlannedDateRequest();\n req.tenantId = tenantId;\n req.plannedSalesVisitId = plannedSalesVisitId;\n const extractor = (response:any) => new GetNextRepeatPlannedDateResponse(response).suggestedDate;\n return this.makeJsonRequest(\"salesVisit/v1/getNextRepeatPlannedDate\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async getNextVisitDateForPlannedSalesVisit(tenantId: Guid, plannedSalesVisit: PlannedSalesVisit, opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new GetNextVisitDateForPlannedSalesVisitRequest();\n req.tenantId = tenantId;\n req.plannedSalesVisit = plannedSalesVisit;\n const extractor = (response:any) => new GetNextVisitDateForPlannedSalesVisitResponse(response).nextVisitDate;\n return this.makeJsonRequest(\"salesVisit/v1/getNextVisitDateForPlannedSalesVisit\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async getNextVisitDateForSalesVisitLog(tenantId: Guid, salesVisitLogHeader: SalesVisitLogHeader, opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new GetNextVisitDateForSalesVisitLogRequest();\n req.tenantId = tenantId;\n req.salesVisitLogHeader = salesVisitLogHeader;\n const extractor = (response:any) => new GetNextVisitDateForSalesVisitLogResponse(response).nextVisitDate;\n return this.makeJsonRequest(\"salesVisit/v1/getNextVisitDateForSalesVisitLog\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async getPlannedSalesVisitIfExist(tenantId: Guid, plannedSalesVisitId: Guid, opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new GetPlannedSalesVisitIfExistRequest();\n req.tenantId = tenantId;\n req.plannedSalesVisitId = plannedSalesVisitId;\n const extractor = (response:any) => new GetPlannedSalesVisitIfExistResponse(response).plannedSalesVisit;\n return this.makeJsonRequest(\"salesVisit/v1/getPlannedSalesVisitIfExist\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async getSalesVisitsJourneyDetail(tenantId: Guid, salesVisitIds: readonly Guid[], opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new GetSalesVisitsJourneyDetailRequest();\n req.tenantId = tenantId;\n req.salesVisitIds = salesVisitIds;\n const extractor = (response:any) => new GetSalesVisitsJourneyDetailResponse(response).detail;\n return this.makeJsonRequest(\"salesVisit/v1/getSalesVisitsJourneyDetail\", req.toJsonSerializedObject(), extractor, opts);\n };\n}\n\nexport const salesVisitService = new SalesVisitService();"],"names":[],"mappings":"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"}