generated: '2026-09-05' method: derived source: openapi/30mhz-zensie-openapi.json note: >- Entity graph derived from the 300 Swagger 2.0 definitions in the ZENSIE contract: $ref links become has_one/has_many edges and Id scalar fields that name a declared definition become belongs_to edges. Nothing here is inferred from prose; every edge names the field it was read from. entities: - name: AccessToken properties: 3 required: ["accessToken", "expiresIn", "type"] - name: Address properties: 6 - name: AgentMessage properties: 10 required: ["conversationId"] - name: AgentMessageNew properties: 7 - name: AgentToolCall properties: 3 - name: Aggregation properties: 3 - name: App properties: 24 required: ["appId"] - name: AppEditable properties: 14 - name: AppInstallation properties: 18 required: ["app", "installationId", "siteId"] - name: AppInstallationEditable properties: 3 - name: Assembly properties: 13 - name: AssemblyEditable properties: 8 - name: Assignment of a role on a resource for a user properties: 4 - name: AttachedDocument properties: 3 - name: Axes properties: 2 required: ["x", "y"] - name: Axis properties: 4 - name: BillingHistory properties: 24 - name: BillingHistoryDetails properties: 14 - name: BillingHistoryDetailsResponse properties: 17 - name: BillingHistoryDetailsUpdate properties: 1 - name: BillingHistoryForecastRequest properties: 1 - name: BillingHistoryRequest properties: 3 - name: BillingHistoryUpdate properties: 6 - name: Calculation properties: 5 - name: CalculationEditable properties: 8 - name: CalculationSettings properties: 2 required: ["inputParams"] - name: Chart properties: 2 required: ["axes", "series"] - name: ChartAxis properties: 4 - name: ChartConfiguration properties: 5 - name: Check properties: 52 required: ["checkId", "enabled", "frequency", "hasNotifications", "healthyThreshold", "locationThreshold", "maxReminders", "method", "name", "notificationIds", "notifications", "organizationId"] - name: CheckCollection properties: 3 - name: CheckDateEntry properties: 5 - name: CheckDateEntryUpdate properties: 1 - name: CheckLastRecordedStatInfo properties: 8 - name: CheckProperties properties: 42 - name: CheckStatsRequest properties: 10 - name: CheckSummary properties: 15 - name: CheckUptimeResponse properties: 6 - name: ChunkedOutput properties: 2 - name: Comment properties: 13 - name: CommentAttachments properties: 2 - name: CommentRequest properties: 10 - name: CommentTags properties: 8 - name: CommentUpdate properties: 11 - name: CompanyDetails properties: 14 required: ["active"] - name: CompanyDetailsUpdate properties: 11 - name: ContactMessage properties: 3 - name: ConversionFormula properties: 2 - name: ConversionUnit properties: 5 - name: Credential properties: 3 - name: Crop properties: 6 required: ["category", "cropId", "maxAllowableDepletion"] - name: CropEditable properties: 3 - name: Cultivation properties: 24 required: ["createdAt", "cultivationId", "dateEnd", "dateStart", "name", "organizationId", "siteId", "targetResolution", "targets", "zoneHistoryDetails", "zones", "zonesUuids"] - name: CultivationEditable properties: 15 - name: CultivationNew properties: 17 required: ["dateEnd", "dateStart", "name", "organizationId", "siteId", "targetResolution"] - name: CultivationPhase properties: 4 required: ["startDay"] - name: CultivationPhaseDefinition properties: 3 required: ["name", "uuid"] - name: CultivationTarget properties: 9 required: ["createdAt", "cultivationId", "cultivationTargetId", "organizationId"] - name: CultivationTargetEditable properties: 4 - name: CultivationTargetNew properties: 6 required: ["cultivationId", "metricId", "name", "organizationId"] - name: CultivationTargetSeriesRequest properties: 3 required: ["target", "time"] - name: CultivationTargetSeriesResponse properties: 4 required: ["cultivation", "cultivationTarget", "setpoints", "time"] - name: CultivationTargetSeriesSetpoint properties: 4 required: ["timestamp"] - name: CultivationTargetSetpoint properties: 4 required: ["timestamp"] - name: CultivationZonesHistoryItem properties: 2 - name: CultivationZonesHistoryItemDetails properties: 3 - name: Currency properties: 3 - name: CurrencyRates properties: 3 - name: CurrencyRatesMapper properties: 9 - name: CustomerRegistration properties: 16 - name: CustomerRequest properties: 33 required: ["totalPrice"] - name: CustomerRequestItem properties: 12 required: ["lineTotal", "unitPrice", "units"] - name: CustomerRequestItemUpdate properties: 9 - name: CustomerRequestUpdate properties: 29 - name: Dashboard properties: 8 required: ["createdBy", "creationTimestamp", "dashboardId", "name"] - name: DashboardEditable properties: 3 - name: DashboardNew properties: 3 required: ["name"] - name: DashboardSummary properties: 3 - name: DashboardTheme properties: 8 - name: DashboardThemeCSS properties: 18 - name: DashboardThemeUpdate properties: 3 - name: Data properties: 5 - name: DataExport properties: 18 - name: DataExportBackgroundRequest properties: 15 required: ["timeZone"] - name: DataExportCountResponse properties: 1 required: ["rowsCount"] - name: DataExportRequest properties: 16 required: ["timezoneOffset"] - name: DataExportResponse properties: 2 - name: DataSourceBulkEdit properties: 12 required: ["dataSourceId"] - name: DataSourceCoordinates properties: 7 required: ["dataSourceId", "sinceDate"] - name: DataSourceCoordinatesEditable properties: 3 - name: DataUpload properties: 9 - name: Dealer properties: 13 - name: DealerUpdate properties: 12 - name: Device properties: 10 - name: DeviceEditable properties: 6 - name: DeviceNew properties: 6 required: ["deviceType", "name", "organizationId", "siteId"] - name: DeviceStatusResponse properties: 3 - name: DropResponse properties: 8 - name: EventHook properties: 4 required: ["method", "url"] - name: EventsCount properties: 1 - name: ExportPartner properties: 7 - name: ExportPartnerAccess properties: 6 required: ["expiresAt", "expiresIn"] - name: ExportPartnerData properties: 4 required: ["id"] - name: ExportPartnerDataItem properties: 3 required: ["id"] - name: ExportPartnerGetJobRequest properties: 3 required: ["active", "frequency"] - name: ExportPartnerJob properties: 11 required: ["active", "frequency"] - name: ExportPartnerJobMap properties: 3 required: ["exportPartnerData"] - name: ExportPartnerJobUpdate properties: 5 - name: ExportPartnerUpdate properties: 3 - name: ExternalSensorEditable properties: 20 - name: Follow properties: 7 required: ["enabled"] - name: Gateway properties: 21 - name: GatewayCluster properties: 6 - name: GatewayClusterWithSecrets properties: 6 - name: GatewayEditable properties: 14 - name: Group properties: 8 - name: GroupMember properties: 7 - name: HealthResponse properties: 3 - name: Highlight properties: 7 - name: HighlightEditable properties: 6 - name: HighlightNew properties: 7 required: ["language", "message", "publishedAt", "title"] - name: ImageDimensions properties: 2 - name: ImageThumbnail properties: 4 - name: ImageWithThumbnails properties: 4 - name: ImportCheck properties: 31 required: ["name", "notificationIds", "notificationRelevance", "notifications", "sensorType", "timezone"] - name: ImportCheckEvent properties: 8 required: ["data", "timestamp"] - name: ImportCheckEventFailure properties: 3 - name: ImportCheckEventUpdateRequest properties: 6 - name: ImportCheckEventsResponse properties: 4 required: ["failedEvents"] - name: IngestStatusResponse properties: 3 - name: Invoice properties: 11 - name: InvoiceUpdate properties: 5 - name: License properties: 4 required: ["licenseId"] - name: LicenseAccessTokenRequest properties: 3 required: ["audience", "clientSecret", "licenseId"] - name: LicenseEditable properties: 3 - name: LimitedScopeMother properties: 7 - name: Location properties: 17 - name: LocationEditable properties: 10 - name: ManualImportCheckEventDelete properties: 4 required: ["jsonKeys"] - name: ManualImportCheckEventUpdate properties: 4 required: ["data"] - name: ManualImportCheckEventUpdateResponse properties: 4 required: ["checkId"] - name: ManualImportCheckStatsResponse properties: 4 required: ["data"] - name: ManualInputRow properties: 3 - name: MapEditable properties: 4 required: ["dataSourceUpdates", "organizationId", "siteId", "zoneUpdates"] - name: Metric properties: 7 - name: MetricUpdate properties: 6 - name: Mother properties: 20 - name: MotherStatusResponse properties: 1 - name: MotherTemplate properties: 6 - name: MotherTemplateUpdate properties: 3 - name: MotherUpdate properties: 12 - name: MultipleCheckUpdate properties: 2 - name: NetworkOverviewResponse properties: 15 - name: NewAppInstallation properties: 3 - name: NewAssembly properties: 13 - name: NewCalculation properties: 8 required: ["calculationId", "name"] - name: NewCheckCollection properties: 1 - name: NewCheckDateEntry properties: 5 - name: NewComment properties: 14 - name: NewCommentReply properties: 2 - name: NewCompanyDetails properties: 10 - name: NewCrop properties: 6 required: ["category", "cropId", "maxAllowableDepletion"] - name: NewCurrency properties: 3 - name: NewCustomerRegistration properties: 15 - name: NewCustomerRequest properties: 24 required: ["shippingCost"] - name: NewCustomerRequestItem properties: 7 required: ["unitPrice", "units"] - name: NewDashboardTheme properties: 3 required: ["css"] - name: NewExportPartner properties: 4 - name: NewExportPartnerJob properties: 7 required: ["active", "frequency"] - name: NewGateway properties: 21 - name: NewGatewayCluster properties: 7 - name: NewGroup properties: 4 - name: NewGroupMember properties: 1 - name: NewInvoice properties: 6 - name: NewMother properties: 10 - name: NewMotherTemplate properties: 3 - name: NewNotificationTopic properties: 3 - name: NewOffer properties: 7 - name: NewOrder properties: 6 - name: NewPartner properties: 4 - name: NewProduct properties: 18 required: ["stock"] - name: NewQuote properties: 6 - name: NewSharedCheck properties: 5 - name: NewSharedDashboard properties: 2 - name: NewSite properties: 20 required: ["address", "id", "name", "subscriptionId"] - name: NewSoil properties: 8 required: ["category", "permanentWiltingPoint", "soilId", "totalAvailableWater"] - name: NewWidget properties: 24 - name: NewsArticle properties: 5 required: ["publishedAt", "summary", "title", "url"] - name: Note properties: 13 required: ["category", "createdAt", "createdBy", "cultivationId", "noteId", "organizationId"] - name: NoteEditable properties: 8 required: ["category"] - name: NoteFile properties: 4 required: ["fileId", "mimeType"] - name: NoteFileDocument properties: 2 - name: NoteMeasurementDefinition properties: 6 required: ["category", "key", "label", "metric", "subcategory"] - name: NoteMeasurements properties: 4 required: ["data", "jsonLabels", "metrics", "units"] - name: NoteNew properties: 10 required: ["category", "cultivationId", "description", "organizationId", "timestamp"] - name: Notification properties: 20 required: ["notificationId"] - name: Notification follow properties: 4 - name: NotificationEditable properties: 8 - name: NotificationFollowCount properties: 2 - name: NotificationMethods properties: 1 - name: NotificationNew properties: 9 required: ["checkId", "condition", "description"] - name: NotificationSetting properties: 3 - name: NotificationSettingUpdate properties: 1 - name: NotificationTemplate properties: 3 - name: NotificationTopic properties: 3 - name: NotificationTopicFollow properties: 5 - name: NotificationTopicFollowCount properties: 2 - name: NotificationTopicUpdate properties: 2 - name: Offer properties: 7 - name: OfferEditable properties: 3 - name: Order properties: 13 - name: OrderUpdate properties: 5 - name: Organization properties: 37 required: ["isBillable", "sites", "subscriptions"] - name: OrganizationEditable properties: 19 - name: OrganizationExtensions properties: 1 - name: OrganizationLicense properties: 2 required: ["licenseId", "organizationId"] - name: OrganizationMembership properties: 6 required: ["email"] - name: OrganizationMembershipUpdate properties: 1 - name: OrganizationNew properties: 20 required: ["currency", "name", "organizationId"] - name: OrganizationWithUserRole properties: 2 - name: PaginatedComments properties: 2 - name: PaginatedManualInputRows properties: 2 - name: Pagination properties: 3 - name: Partner properties: 4 - name: PartnerEditable properties: 1 - name: Plant properties: 2 - name: PlantGroup properties: 3 - name: Pricing properties: 10 - name: PricingUpdate properties: 9 - name: Product properties: 21 required: ["stock"] - name: ProductUpdate properties: 17 - name: Quote properties: 5 - name: RequiredSensor properties: 3 required: ["sensorTypeId"] - name: ResponseEntry properties: 1 - name: Result properties: 7 - name: ScatterplotRequest properties: 3 required: ["time", "x", "y"] - name: Scope properties: 6 - name: ScopesAndClaims properties: 2 - name: Sensor properties: 17 required: ["notificationIds"] - name: SensorCopyOverrides properties: 2 - name: SensorField properties: 3 - name: SensorFieldInfo properties: 4 - name: SensorType properties: 32 required: ["decimals", "description"] - name: SensorTypeEnumData properties: 2 - name: SensorTypeEnumDataMapping properties: 3 - name: SensorTypeUpdate properties: 28 - name: SensorsData properties: 4 - name: SensorsDataAggregation properties: 3 - name: SensorsDataRequest properties: 2 required: ["time"] - name: SensorsDataResponse properties: 3 required: ["time"] - name: Series properties: 3 required: ["timestamp"] - name: ServiceHealth properties: 2 - name: SharedByUserDetails properties: 2 - name: SharedCheck properties: 14 - name: SharedDashboard properties: 11 - name: SharedDashboardUpdate properties: 1 - name: SharedSensorType properties: 13 - name: SharedWithGroupDetails properties: 2 - name: SharedWithUserDetails properties: 2 - name: SignUpRequest properties: 3 required: ["invitationToken", "language"] - name: Site properties: 21 required: ["address", "id", "name", "subscriptionId"] - name: SiteEditable properties: 8 - name: Soil properties: 8 required: ["category", "permanentWiltingPoint", "soilId", "totalAvailableWater"] - name: SoilEditable properties: 4 - name: Source properties: 2 required: ["checkId"] - name: Sources properties: 2 required: ["aggregation"] - name: StackTraceElement properties: 8 - name: StatisticsInfoRequest properties: 13 - name: StructuredConditional properties: 7 - name: Subscription properties: 6 - name: SubscriptionAssignment properties: 6 - name: SubscriptionEditable properties: 2 - name: SubscriptionNew properties: 4 required: ["licenseId", "name", "subscriptionId"] - name: Throwable properties: 5 - name: Time properties: 4 required: ["end", "start"] - name: TimezoneDetails properties: 3 - name: TransferChecksDTO properties: 3 - name: TwoValuesComparison properties: 6 - name: TwoValuesComparisonTableScan properties: 5 - name: Type properties: 1 - name: User properties: 14 required: ["email"] - name: UserConfig properties: 4 required: ["configKey", "configValue"] - name: UserConfigEditable properties: 2 - name: UserCredentialsAsGuest properties: 5 - name: UserEditable properties: 10 - name: UserInviteRequest properties: 14 required: ["email", "firstName", "lastName", "organizationId", "role"] - name: UserNew properties: 11 required: ["email", "firstName", "lastName"] - name: UserToken properties: 1 - name: VoltageResponse properties: 1 - name: WebPageReference properties: 2 - name: Widget properties: 33 - name: WidgetUpdate properties: 21 - name: XBeeConfiguration properties: 3 - name: XBeeFactory properties: 7 - name: XBeeFactoryEditable properties: 4 - name: XBeeTestResult properties: 3 - name: Zone properties: 12 required: ["id", "name", "organizationId", "siteId"] - name: ZoneBulkEdit properties: 7 required: ["uuid"] - name: ZoneEditable properties: 6 - name: ZoneNew properties: 6 required: ["name"] relationships: - from: Result type: has_one to: Throwable via: error - from: Throwable type: has_one to: Throwable via: cause - from: Throwable type: has_many to: StackTraceElement via: stackTrace - from: Throwable type: has_many to: Throwable via: suppressed - from: AgentMessage type: belongs_to to: Organization via: organizationId - from: AgentMessage type: has_one to: AgentToolCall via: requiredToolCall - from: ChunkedOutput type: has_one to: Type via: type - from: AgentMessageNew type: belongs_to to: Organization via: organizationId - from: AgentMessageNew type: has_one to: AgentToolCall via: requiredToolCall - from: LicenseAccessTokenRequest type: belongs_to to: License via: licenseId - from: BillingHistoryDetailsResponse type: belongs_to to: BillingHistoryDetails via: billingHistoryDetailsId - from: BillingHistoryDetailsResponse type: belongs_to to: Check via: checkId - from: BillingHistoryDetails type: belongs_to to: BillingHistoryDetails via: billingHistoryDetailsId - from: BillingHistoryDetails type: belongs_to to: Check via: checkId - from: BillingHistoryDetails type: belongs_to to: Organization via: organizationId - from: BillingHistory type: belongs_to to: Organization via: organizationId - from: Axes type: has_one to: Axis via: x - from: Axes type: has_one to: Axis via: y - from: Chart type: has_one to: Axes via: axes - from: Chart type: has_many to: Series via: series - from: ScatterplotRequest type: has_one to: Time via: time - from: ScatterplotRequest type: has_one to: Sources via: x - from: ScatterplotRequest type: has_one to: Sources via: y - from: Source type: belongs_to to: Check via: checkId - from: Sources type: has_one to: Aggregation via: aggregation - from: Sources type: has_many to: Source via: sources - from: Crop type: belongs_to to: Crop via: cropId - from: Crop type: belongs_to to: Organization via: organizationId - from: Cultivation type: has_many to: CultivationPhase via: phases - from: Cultivation type: has_many to: PlantGroup via: plantGroups - from: Cultivation type: belongs_to to: Site via: siteId - from: Cultivation type: has_many to: CultivationZonesHistoryItem via: zoneHistory - from: Cultivation type: belongs_to to: Cultivation via: cultivationId - from: Cultivation type: belongs_to to: Organization via: organizationId - from: Cultivation type: has_many to: CultivationTarget via: targets - from: Cultivation type: has_many to: CultivationZonesHistoryItemDetails via: zoneHistoryDetails - from: Cultivation type: has_many to: Zone via: zones - from: CultivationTarget type: belongs_to to: Metric via: metricId - from: CultivationTarget type: has_many to: CultivationTargetSetpoint via: setpoints - from: CultivationTarget type: belongs_to to: Cultivation via: cultivationId - from: CultivationTarget type: belongs_to to: CultivationTarget via: cultivationTargetId - from: CultivationTarget type: belongs_to to: Organization via: organizationId - from: CultivationTargetSeriesResponse type: has_one to: Cultivation via: cultivation - from: CultivationTargetSeriesResponse type: has_one to: CultivationTarget via: cultivationTarget - from: CultivationTargetSeriesResponse type: has_many to: CultivationTargetSeriesSetpoint via: setpoints - from: CultivationTargetSeriesResponse type: has_one to: Time via: time - from: CultivationZonesHistoryItemDetails type: has_many to: Zone via: zones - from: PlantGroup type: has_many to: Plant via: plants - from: Soil type: belongs_to to: Organization via: organizationId - from: Soil type: belongs_to to: Soil via: soilId - from: Zone type: belongs_to to: Crop via: cropId - from: Zone type: belongs_to to: Soil via: soilId - from: Zone type: has_one to: Crop via: crop - from: Zone type: belongs_to to: Organization via: organizationId - from: Zone type: belongs_to to: Site via: siteId - from: Zone type: has_one to: Soil via: soil - from: CultivationTargetSeriesRequest type: has_one to: Aggregation via: aggregation - from: CultivationTargetSeriesRequest type: has_one to: CultivationTarget via: target - from: CultivationTargetSeriesRequest type: has_one to: Time via: time - from: CheckProperties type: belongs_to to: Calculation via: calculationId - from: CheckProperties type: has_one to: DataSourceCoordinatesEditable via: dataSourceCoordinatesEditable - from: CheckProperties type: belongs_to to: Gateway via: gatewayId - from: CheckProperties type: belongs_to to: Organization via: organizationId - from: CheckProperties type: belongs_to to: Site via: siteId - from: CheckProperties type: belongs_to to: Zone via: zoneId - from: CalculationSettings type: belongs_to to: Calculation via: calculationId - from: Check type: belongs_to to: Calculation via: calculationId - from: Check type: belongs_to to: Gateway via: gatewayId - from: Check type: belongs_to to: Organization via: organizationId - from: Check type: belongs_to to: Site via: siteId - from: Check type: belongs_to to: Zone via: zoneId - from: Check type: belongs_to to: Check via: checkId - from: Check type: has_many to: DataSourceCoordinates via: dataSourceCoordinateHistory - from: Check type: has_one to: DataSourceCoordinates via: dataSourceCoordinates - from: Check type: has_many to: Notification via: notifications - from: CheckSummary type: has_one to: CalculationSettings via: calculationSettings - from: CheckSummary type: belongs_to to: Check via: checkId - from: CheckSummary type: has_many to: CheckCollection via: collections - from: CheckSummary type: belongs_to to: Organization via: organizationId - from: Notification type: has_one to: CalculationSettings via: calculationSettings - from: Notification type: belongs_to to: Check via: checkId - from: Notification type: has_one to: EventHook via: eventHook - from: Notification type: has_one to: CheckSummary via: check - from: Notification type: belongs_to to: Notification via: notificationId - from: Notification type: belongs_to to: Organization via: organizationId - from: Notification type: has_many to: StructuredConditional via: structuredConditional - from: SensorField type: belongs_to to: Check via: checkId - from: StructuredConditional type: has_many to: SensorField via: checkFields - from: Sensor type: has_many to: Notification via: notifications - from: Sensor type: belongs_to to: Check via: checkId - from: Sensor type: belongs_to to: Organization via: organizationId - from: Sensor type: belongs_to to: Site via: siteId - from: Sensor type: has_many to: DataSourceCoordinates via: dataSourceCoordinateHistory - from: Sensor type: has_one to: DataSourceCoordinates via: dataSourceCoordinates - from: Sensor type: belongs_to to: Zone via: zoneId - from: TransferChecksDTO type: belongs_to to: Gateway via: gatewayId - from: MultipleCheckUpdate type: has_one to: CheckProperties via: check - from: AttachedDocument type: belongs_to to: DataUpload via: dataUploadId - from: Comment type: belongs_to to: AppInstallation via: appInstallationId - from: Comment type: belongs_to to: Group via: groupId - from: Comment type: belongs_to to: Organization via: organizationId - from: Comment type: has_one to: CommentAttachments via: attachments - from: Comment type: belongs_to to: Comment via: commentId - from: Comment type: has_many to: Comment via: replies - from: Comment type: has_one to: CommentTags via: tags - from: CommentAttachments type: has_many to: AttachedDocument via: documents - from: CommentAttachments type: has_many to: ImageWithThumbnails via: images - from: ImageWithThumbnails type: belongs_to to: DataUpload via: dataUploadId - from: ImageWithThumbnails type: has_one to: ImageDimensions via: imageDimensions - from: ImageWithThumbnails type: has_many to: ImageThumbnail via: thumbnails - from: NewComment type: belongs_to to: AppInstallation via: appInstallationId - from: NewComment type: belongs_to to: Group via: groupId - from: NewComment type: belongs_to to: Organization via: organizationId - from: CommentRequest type: belongs_to to: AppInstallation via: appInstallationId - from: CommentRequest type: belongs_to to: Group via: groupId - from: CommentRequest type: belongs_to to: Organization via: organizationId - from: PaginatedComments type: has_many to: Comment via: data - from: PaginatedComments type: has_one to: Pagination via: pagination - from: CompanyDetails type: belongs_to to: CompanyDetails via: companyDetailsId - from: CompanyDetails type: belongs_to to: Organization via: organizationId - from: NewCrop type: belongs_to to: Crop via: cropId - from: NewCrop type: belongs_to to: Organization via: organizationId - from: Currency type: belongs_to to: Currency via: currencyId - from: NewCurrency type: belongs_to to: Currency via: currencyId - from: CustomerRegistration type: belongs_to to: Offer via: offerId - from: CustomerRegistration type: belongs_to to: Partner via: partnerId - from: NewCustomerRegistration type: belongs_to to: Offer via: offerId - from: NewCustomerRegistration type: belongs_to to: Partner via: partnerId - from: Dashboard type: belongs_to to: App via: appId - from: Dashboard type: belongs_to to: Dashboard via: dashboardId - from: Dashboard type: belongs_to to: Group via: groupId - from: Dashboard type: belongs_to to: Organization via: organizationId - from: DashboardNew type: belongs_to to: App via: appId - from: DashboardTheme type: has_one to: DashboardThemeCSS via: css - from: DashboardTheme type: belongs_to to: DashboardTheme via: dashboardThemeId - from: DashboardTheme type: has_one to: ImageWithThumbnails via: logo - from: NewDashboardTheme type: has_one to: DashboardThemeCSS via: css - from: DashboardThemeUpdate type: has_one to: DashboardThemeCSS via: css - from: DashboardEditable type: belongs_to to: App via: appId - from: DataExportBackgroundRequest type: belongs_to to: DataExport via: dataExportId - from: DataExport type: belongs_to to: DataExport via: dataExportId - from: DataExport type: belongs_to to: Organization via: organizationId - from: DataExportResponse type: has_one to: DataExport via: dataExport - from: SensorFieldInfo type: belongs_to to: Check via: checkId - from: SensorType type: has_many to: SensorTypeEnumData via: enums - from: SensorType type: has_many to: NotificationTemplate via: notificationTemplates - from: SensorType type: belongs_to to: Organization via: organizationId - from: SensorType type: belongs_to to: Type via: typeId - from: SensorType type: has_one to: SharedSensorType via: sharedDetails - from: SensorTypeEnumData type: has_many to: SensorTypeEnumDataMapping via: mappings - from: SensorsData type: has_many to: SensorFieldInfo via: sensorFields - from: SensorsData type: has_one to: SensorType via: sensorType - from: SensorsData type: has_many to: Sensor via: sensors - from: SensorsDataAggregation type: has_many to: SensorField via: sensorFields - from: SensorsDataResponse type: has_many to: SensorsDataAggregation via: aggregations - from: SensorsDataResponse type: has_one to: Time via: time - from: SensorsDataResponse type: has_many to: SensorsData via: data - from: SensorsDataRequest type: has_many to: SensorsDataAggregation via: aggregations - from: SensorsDataRequest type: has_one to: Time via: time - from: DataSourceBulkEdit type: has_one to: DataSourceCoordinatesEditable via: dataSourceCoordinatesEditable - from: DataSourceBulkEdit type: belongs_to to: Zone via: zoneId - from: DataUpload type: belongs_to to: DataUpload via: dataUploadId - from: DataUpload type: belongs_to to: Group via: groupId - from: DataUpload type: has_one to: ImageDimensions via: imageDimensions - from: DataUpload type: has_many to: ImageThumbnail via: imageThumbnails - from: DataUpload type: belongs_to to: Organization via: organizationId - from: Device type: belongs_to to: Organization via: organizationId - from: Device type: belongs_to to: Site via: siteId - from: Device type: belongs_to to: Device via: deviceId - from: DeviceNew type: belongs_to to: Organization via: organizationId - from: DeviceNew type: belongs_to to: Site via: siteId - from: DeviceEditable type: belongs_to to: Organization via: organizationId - from: DeviceEditable type: belongs_to to: Site via: siteId - from: ExportPartnerData type: has_many to: ExportPartnerDataItem via: items - from: ExportPartnerJobMap type: belongs_to to: Check via: checkId - from: ExportPartnerJobMap type: has_one to: ExportPartnerData via: exportPartnerData - from: NewExportPartnerJob type: belongs_to to: ExportPartner via: exportPartnerId - from: NewExportPartnerJob type: belongs_to to: Organization via: organizationId - from: NewExportPartnerJob type: has_many to: ExportPartnerJobMap via: payload - from: ExportPartnerGetJobRequest type: belongs_to to: ExportPartner via: exportPartnerId - from: ExportPartnerJob type: has_one to: ExportPartnerAccess via: exportPartnerAccess - from: ExportPartnerJob type: belongs_to to: ExportPartner via: exportPartnerId - from: ExportPartnerJob type: belongs_to to: Organization via: organizationId - from: ExportPartnerJob type: has_many to: ExportPartnerJobMap via: payload - from: ExportPartnerJobUpdate type: has_one to: ExportPartnerAccess via: exportPartnerAccess - from: ExportPartnerJobUpdate type: has_many to: ExportPartnerJobMap via: payload - from: NewExportPartner type: has_many to: ExportPartnerData via: data - from: NewExportPartner type: belongs_to to: ExportPartner via: exportPartnerId - from: ExportPartner type: has_many to: ExportPartnerData via: data - from: ExportPartner type: belongs_to to: ExportPartner via: exportPartnerId - from: ExportPartner type: belongs_to to: Organization via: organizationId - from: ExportPartnerUpdate type: has_many to: ExportPartnerData via: data - from: Gateway type: belongs_to to: GatewayCluster via: gatewayClusterId - from: Gateway type: belongs_to to: Organization via: organizationId - from: Gateway type: belongs_to to: Site via: siteId - from: Gateway type: belongs_to to: Gateway via: gatewayId - from: GatewayCluster type: belongs_to to: Site via: siteId - from: GatewayCluster type: has_many to: Gateway via: gateways - from: GatewayCluster type: belongs_to to: Organization via: organizationId - from: GatewayCluster type: belongs_to to: Location via: locationId - from: NewGatewayCluster type: belongs_to to: Site via: siteId - from: NewGatewayCluster type: belongs_to to: Organization via: organizationId - from: NewGatewayCluster type: belongs_to to: Location via: locationId - from: GatewayClusterWithSecrets type: belongs_to to: Site via: siteId - from: GatewayClusterWithSecrets type: has_many to: Gateway via: gateways - from: GatewayClusterWithSecrets type: belongs_to to: Organization via: organizationId - from: GatewayClusterWithSecrets type: belongs_to to: Location via: locationId - from: NewGateway type: belongs_to to: GatewayCluster via: gatewayClusterId - from: NewGateway type: belongs_to to: Organization via: organizationId - from: NewGateway type: belongs_to to: Site via: siteId - from: NewGateway type: belongs_to to: Gateway via: gatewayId - from: GatewayEditable type: belongs_to to: GatewayCluster via: gatewayClusterId - from: GatewayEditable type: belongs_to to: Organization via: organizationId - from: GatewayEditable type: belongs_to to: Site via: siteId - from: GroupMember type: belongs_to to: Group via: groupId - from: Group type: has_one to: DashboardTheme via: dashboardTheme - from: Group type: belongs_to to: DashboardTheme via: dashboardThemeId - from: Group type: belongs_to to: Group via: groupId - from: Group type: has_many to: GroupMember via: members - from: NewGroup type: belongs_to to: DashboardTheme via: dashboardThemeId - from: ImportCheck type: has_one to: CalculationSettings via: calculationSettings - from: ImportCheck type: belongs_to to: Location via: locationId - from: ImportCheck type: belongs_to to: Source via: sourceId - from: ImportCheck type: belongs_to to: Zone via: zoneId - from: ImportCheck type: has_many to: DataSourceCoordinates via: dataSourceCoordinateHistory - from: ImportCheck type: has_one to: DataSourceCoordinates via: dataSourceCoordinates - from: ImportCheck type: has_many to: Notification via: notifications - from: ImportCheck type: belongs_to to: Organization via: organizationId - from: ImportCheck type: belongs_to to: Check via: checkId - from: ImportCheck type: has_many to: CheckCollection via: collections - from: ImportCheck type: belongs_to to: Site via: siteId - from: CheckDateEntry type: belongs_to to: Check via: checkId - from: PaginatedManualInputRows type: has_many to: ManualInputRow via: data - from: PaginatedManualInputRows type: has_one to: Pagination via: pagination - from: NewCheckDateEntry type: belongs_to to: Check via: checkId - from: ExternalSensorEditable type: has_one to: CalculationSettings via: calculationSettings - from: ExternalSensorEditable type: has_one to: DataSourceCoordinatesEditable via: dataSourceCoordinatesEditable - from: ExternalSensorEditable type: belongs_to to: Location via: locationId - from: ExternalSensorEditable type: belongs_to to: Source via: sourceId - from: ExternalSensorEditable type: belongs_to to: Zone via: zoneId - from: ExternalSensorEditable type: belongs_to to: Site via: siteId - from: SensorCopyOverrides type: has_one to: ExternalSensorEditable via: sensorOverrides - from: SensorCopyOverrides type: has_one to: SensorTypeUpdate via: sensorTypeOverrides - from: SensorTypeUpdate type: has_many to: SensorTypeEnumData via: enums - from: SensorTypeUpdate type: has_many to: NotificationTemplate via: notificationTemplates - from: ManualImportCheckEventDelete type: belongs_to to: Check via: checkId - from: ImportCheckEvent type: belongs_to to: Check via: checkId - from: ImportCheckEventFailure type: has_one to: ImportCheckEvent via: event - from: ImportCheckEventsResponse type: has_many to: ImportCheckEventFailure via: failedEvents - from: ManualImportCheckEventUpdateResponse type: belongs_to to: Check via: checkId - from: ManualImportCheckEventUpdate type: belongs_to to: Check via: checkId - from: ImportCheckEventUpdateRequest type: belongs_to to: Check via: checkId - from: OrganizationLicense type: belongs_to to: License via: licenseId - from: OrganizationLicense type: belongs_to to: Organization via: organizationId - from: License type: belongs_to to: License via: licenseId - from: App type: has_many to: RequiredSensor via: requiredManualInputForms - from: App type: belongs_to to: App via: appId - from: App type: belongs_to to: Organization via: organizationId - from: Organization type: belongs_to to: CompanyDetails via: companyDetailsId - from: Organization type: belongs_to to: DashboardTheme via: dashboardThemeId - from: Organization type: has_one to: CompanyDetails via: companyDetails - from: Organization type: belongs_to to: Organization via: organizationId - from: Organization type: has_many to: App via: availableApps - from: Organization type: has_many to: CultivationPhaseDefinition via: cultivationPhases - from: Organization type: has_one to: DashboardTheme via: dashboardTheme - from: Organization type: has_one to: OrganizationExtensions via: extensions - from: Organization type: has_many to: App via: installedApps - from: Organization type: has_many to: Site via: locations - from: Organization type: has_many to: Site via: sites - from: Organization type: has_many to: Subscription via: subscriptions - from: OrganizationExtensions type: has_many to: App via: developed - from: RequiredSensor type: belongs_to to: SensorType via: sensorTypeId - from: Site type: has_one to: Address via: address - from: Site type: belongs_to to: Subscription via: subscriptionId - from: Site type: has_many to: ImportCheck via: externalSensors - from: Site type: has_many to: Gateway via: gateways - from: Site type: has_many to: Check via: internalSensors - from: Site type: belongs_to to: Organization via: organizationId - from: Site type: has_many to: Zone via: zones - from: Subscription type: belongs_to to: License via: licenseId - from: Subscription type: belongs_to to: Subscription via: subscriptionId - from: Location type: belongs_to to: CompanyDetails via: companyDetailsId - from: Location type: belongs_to to: GatewayCluster via: gatewayClusterId - from: Location type: has_one to: CompanyDetails via: companyDetails - from: Location type: belongs_to to: Organization via: organizationId - from: SiteEditable type: has_one to: Address via: address - from: SiteEditable type: belongs_to to: Subscription via: subscriptionId - from: LocationEditable type: belongs_to to: CompanyDetails via: companyDetailsId - from: LocationEditable type: belongs_to to: GatewayCluster via: gatewayClusterId - from: MapEditable type: has_many to: DataSourceBulkEdit via: dataSourceUpdates - from: MapEditable type: belongs_to to: Organization via: organizationId - from: MapEditable type: belongs_to to: Site via: siteId - from: MapEditable type: has_many to: ZoneBulkEdit via: zoneUpdates - from: ZoneBulkEdit type: belongs_to to: Crop via: cropId - from: ZoneBulkEdit type: belongs_to to: Soil via: soilId - from: ConversionUnit type: has_many to: ConversionFormula via: conversionFormulas - from: Metric type: has_many to: ConversionUnit via: conversionUnits - from: Metric type: belongs_to to: Metric via: metricId - from: MetricUpdate type: has_many to: ConversionUnit via: conversionUnits - from: Mother type: belongs_to to: Mother via: motherId - from: Mother type: belongs_to to: Organization via: organizationId - from: NewMother type: belongs_to to: Mother via: motherId - from: NewMother type: belongs_to to: Organization via: organizationId - from: LimitedScopeMother type: belongs_to to: Mother via: motherId - from: LimitedScopeMother type: belongs_to to: Organization via: organizationId - from: MotherUpdate type: belongs_to to: Organization via: organizationId - from: Note type: has_many to: NoteFile via: files - from: Note type: has_one to: NoteMeasurements via: noteMeasurements - from: Note type: belongs_to to: PlantGroup via: plantGroupId - from: Note type: belongs_to to: Plant via: plantId - from: Note type: belongs_to to: Cultivation via: cultivationId - from: Note type: belongs_to to: Note via: noteId - from: Note type: belongs_to to: Organization via: organizationId - from: NoteFile type: has_one to: NoteFileDocument via: document - from: NoteFile type: has_one to: ImageWithThumbnails via: imageWithThumbnails - from: NoteNew type: has_many to: NoteFile via: files - from: NoteNew type: has_one to: NoteMeasurements via: noteMeasurements - from: NoteNew type: belongs_to to: PlantGroup via: plantGroupId - from: NoteNew type: belongs_to to: Plant via: plantId - from: NoteNew type: belongs_to to: Cultivation via: cultivationId - from: NoteNew type: belongs_to to: Organization via: organizationId - from: NoteEditable type: has_many to: NoteFile via: files - from: NoteEditable type: has_one to: NoteMeasurements via: noteMeasurements - from: NoteEditable type: belongs_to to: PlantGroup via: plantGroupId - from: NoteEditable type: belongs_to to: Plant via: plantId - from: Notification follow type: belongs_to to: Notification via: notificationId - from: Notification follow type: belongs_to to: Organization via: organizationId - from: NotificationFollowCount type: belongs_to to: Notification via: notificationId - from: NotificationNew type: has_one to: CalculationSettings via: calculationSettings - from: NotificationNew type: belongs_to to: Check via: checkId - from: NotificationNew type: has_one to: EventHook via: eventHook - from: NotificationNew type: belongs_to to: Organization via: organizationId - from: NotificationEditable type: has_one to: CalculationSettings via: calculationSettings - from: NotificationEditable type: belongs_to to: Check via: checkId - from: NotificationEditable type: has_one to: EventHook via: eventHook - from: NotificationSetting type: belongs_to to: Check via: checkId - from: Follow type: belongs_to to: Check via: checkId - from: NotificationTopicFollow type: belongs_to to: NotificationTopicFollow via: notificationTopicFollowId - from: NotificationTopicFollow type: belongs_to to: NotificationTopic via: notificationTopicId - from: NotificationTopicFollow type: belongs_to to: Organization via: organizationId - from: NotificationTopicFollowCount type: belongs_to to: NotificationTopic via: notificationTopicId - from: NotificationTopic type: belongs_to to: NotificationTopic via: notificationTopicId - from: NewNotificationTopic type: belongs_to to: NotificationTopic via: notificationTopicId - from: Offer type: belongs_to to: Offer via: offerId - from: Offer type: belongs_to to: Partner via: partnerId - from: NewOffer type: belongs_to to: Offer via: offerId - from: NewOffer type: belongs_to to: Partner via: partnerId - from: OrganizationNew type: belongs_to to: CompanyDetails via: companyDetailsId - from: OrganizationNew type: belongs_to to: DashboardTheme via: dashboardThemeId - from: OrganizationNew type: belongs_to to: Organization via: organizationId - from: OrganizationMembership type: belongs_to to: Organization via: organizationId - from: OrganizationWithUserRole type: has_one to: Organization via: organization - from: NewSite type: has_one to: Address via: address - from: NewSite type: belongs_to to: Subscription via: subscriptionId - from: NewSite type: has_many to: ImportCheck via: externalSensors - from: NewSite type: has_many to: Gateway via: gateways - from: NewSite type: has_many to: Check via: internalSensors - from: NewSite type: belongs_to to: Organization via: organizationId - from: NewSite type: has_many to: Zone via: zones - from: OrganizationEditable type: belongs_to to: CompanyDetails via: companyDetailsId - from: OrganizationEditable type: belongs_to to: DashboardTheme via: dashboardThemeId - from: Partner type: belongs_to to: Partner via: partnerId - from: NewPartner type: belongs_to to: Partner via: partnerId - from: Pricing type: belongs_to to: Organization via: organizationId - from: Product type: belongs_to to: Product via: productId - from: NewProduct type: belongs_to to: Product via: productId - from: SharedSensorType type: belongs_to to: Organization via: organizationId - from: SharedSensorType type: belongs_to to: SensorType via: sensorTypeId - from: SharedSensorType type: has_one to: SharedByUserDetails via: sharedByUserDetails - from: SharedSensorType type: belongs_to to: SharedSensorType via: sharedSensorTypeId - from: SharedSensorType type: has_one to: SharedWithUserDetails via: sharedWithUserDetails - from: SharedCheck type: belongs_to to: Check via: checkId - from: SharedCheck type: has_one to: CheckSummary via: checkSummary - from: SharedCheck type: belongs_to to: Organization via: organizationId - from: SharedCheck type: has_one to: SharedByUserDetails via: sharedByUserDetails - from: SharedCheck type: belongs_to to: SharedCheck via: sharedCheckId - from: SharedCheck type: has_one to: SharedWithGroupDetails via: sharedWithGroupDetails - from: SharedCheck type: has_one to: SharedWithUserDetails via: sharedWithUserDetails - from: DashboardSummary type: belongs_to to: Dashboard via: dashboardId - from: DashboardSummary type: belongs_to to: Organization via: organizationId - from: SharedDashboard type: belongs_to to: Dashboard via: dashboardId - from: SharedDashboard type: has_one to: DashboardSummary via: dashboardSummary - from: SharedDashboard type: belongs_to to: Organization via: organizationId - from: SharedDashboard type: has_one to: SharedByUserDetails via: sharedByUserDetails - from: SharedDashboard type: belongs_to to: SharedDashboard via: sharedDashboardId - from: SharedDashboard type: has_one to: SharedWithUserDetails via: sharedWithUserDetails - from: NewSoil type: belongs_to to: Organization via: organizationId - from: NewSoil type: belongs_to to: Soil via: soilId - from: SubscriptionAssignment type: belongs_to to: License via: licenseId - from: SubscriptionAssignment type: belongs_to to: Organization via: organizationId - from: SubscriptionAssignment type: has_one to: Subscription via: subscription - from: SubscriptionAssignment type: belongs_to to: Subscription via: subscriptionId - from: SubscriptionNew type: belongs_to to: License via: licenseId - from: SubscriptionNew type: belongs_to to: Subscription via: subscriptionId - from: User type: has_many to: WebPageReference via: favoritePages - from: User type: belongs_to to: User via: userId - from: UserNew type: has_many to: WebPageReference via: favoritePages - from: UserInviteRequest type: has_many to: WebPageReference via: favoritePages - from: UserInviteRequest type: belongs_to to: License via: licenseId - from: UserInviteRequest type: belongs_to to: Organization via: organizationId - from: UserEditable type: has_many to: WebPageReference via: favoritePages - from: Data type: belongs_to to: DataUpload via: dataUploadId - from: Data type: has_one to: ImageDimensions via: imageDimensions - from: Widget type: belongs_to to: App via: appId - from: Widget type: has_one to: ChartConfiguration via: chartConfiguration - from: Widget type: has_many to: ChartAxis via: chartVerticalAxes - from: Widget type: has_many to: CheckSummary via: checks - from: Widget type: has_many to: Widget via: childWidgets - from: Widget type: has_many to: Comment via: comments - from: Widget type: belongs_to to: Cultivation via: cultivationId - from: Widget type: belongs_to to: CultivationTarget via: cultivationTargetId - from: Widget type: belongs_to to: Dashboard via: dashboardId - from: Widget type: has_one to: Data via: data - from: Widget type: belongs_to to: Organization via: organizationId - from: Widget type: has_one to: Scope via: scope - from: Widget type: belongs_to to: Site via: siteId - from: Widget type: belongs_to to: Widget via: widgetId - from: Widget type: has_one to: ImageDimensions via: imageDimensions - from: NewWidget type: belongs_to to: App via: appId - from: NewWidget type: has_one to: ChartConfiguration via: chartConfiguration - from: NewWidget type: has_many to: ChartAxis via: chartVerticalAxes - from: NewWidget type: belongs_to to: Cultivation via: cultivationId - from: NewWidget type: belongs_to to: CultivationTarget via: cultivationTargetId - from: NewWidget type: has_one to: Data via: data - from: NewWidget type: has_one to: Scope via: scope - from: WidgetUpdate type: belongs_to to: CultivationTarget via: cultivationTargetId - from: WidgetUpdate type: has_one to: ChartConfiguration via: chartConfiguration - from: WidgetUpdate type: has_many to: ChartAxis via: chartVerticalAxes - from: WidgetUpdate type: has_one to: Data via: data - from: WidgetUpdate type: has_one to: Scope via: scope - from: ZoneNew type: belongs_to to: Crop via: cropId - from: ZoneNew type: belongs_to to: Soil via: soilId - from: ZoneEditable type: belongs_to to: Crop via: cropId - from: ZoneEditable type: belongs_to to: Soil via: soilId - from: AppInstallation type: has_one to: App via: app - from: AppInstallation type: belongs_to to: App via: appId - from: AppInstallation type: belongs_to to: Location via: locationId - from: AppInstallation type: has_one to: Organization via: organization - from: AppInstallation type: belongs_to to: Organization via: organizationId - from: AppInstallation type: belongs_to to: Site via: siteId - from: AppEditable type: has_many to: RequiredSensor via: requiredManualInputForms - from: Calculation type: belongs_to to: Calculation via: calculationId - from: NewCalculation type: belongs_to to: Calculation via: calculationId - from: CalculationEditable type: belongs_to to: Calculation via: calculationId - from: CheckStatsRequest type: belongs_to to: Organization via: organizationId - from: CustomerRequestItem type: belongs_to to: CustomerRequest via: customerRequestId - from: CustomerRequestItem type: belongs_to to: CustomerRequestItem via: customerRequestItemId - from: CustomerRequestItem type: belongs_to to: Product via: productId - from: NewCustomerRequestItem type: belongs_to to: Product via: productId - from: NewCustomerRequestItem type: belongs_to to: CustomerRequest via: customerRequestId - from: CustomerRequestItemUpdate type: belongs_to to: CustomerRequestItem via: customerRequestItemId - from: CustomerRequestItemUpdate type: belongs_to to: Product via: productId - from: CustomerRequest type: belongs_to to: CustomerRequest via: customerRequestId - from: CustomerRequest type: has_many to: CustomerRequestItem via: customerRequestItems - from: CustomerRequest type: belongs_to to: Organization via: organizationId - from: NewCustomerRequest type: belongs_to to: Organization via: organizationId - from: CustomerRequestUpdate type: belongs_to to: Organization via: organizationId - from: Invoice type: has_one to: CustomerRequest via: customerRequest - from: Invoice type: belongs_to to: CustomerRequest via: customerRequestId - from: Invoice type: belongs_to to: Invoice via: invoiceId - from: NewInvoice type: belongs_to to: CustomerRequest via: customerRequestId - from: Order type: has_one to: CustomerRequest via: customerRequest - from: Order type: belongs_to to: CustomerRequest via: customerRequestId - from: Order type: belongs_to to: Order via: orderId - from: NewOrder type: belongs_to to: CustomerRequest via: customerRequestId - from: NewQuote type: belongs_to to: CustomerRequest via: customerRequestId - from: CultivationNew type: has_many to: CultivationPhase via: phases - from: CultivationNew type: has_many to: PlantGroup via: plantGroups - from: CultivationNew type: belongs_to to: Site via: siteId - from: CultivationNew type: has_many to: CultivationZonesHistoryItem via: zoneHistory - from: CultivationNew type: belongs_to to: Organization via: organizationId - from: CultivationEditable type: has_many to: CultivationPhase via: phases - from: CultivationEditable type: has_many to: PlantGroup via: plantGroups - from: CultivationEditable type: belongs_to to: Site via: siteId - from: CultivationEditable type: has_many to: CultivationZonesHistoryItem via: zoneHistory - from: CultivationTargetEditable type: belongs_to to: Metric via: metricId - from: CultivationTargetEditable type: has_many to: CultivationTargetSetpoint via: setpoints - from: CultivationTargetNew type: belongs_to to: Metric via: metricId - from: CultivationTargetNew type: has_many to: CultivationTargetSetpoint via: setpoints - from: CultivationTargetNew type: belongs_to to: Cultivation via: cultivationId - from: CultivationTargetNew type: belongs_to to: Organization via: organizationId - from: StatisticsInfoRequest type: belongs_to to: Organization via: organizationId - from: CheckLastRecordedStatInfo type: belongs_to to: Check via: checkId - from: CheckUptimeResponse type: belongs_to to: Check via: checkId - from: IngestStatusResponse type: has_one to: CheckSummary via: checkSummary - from: XBeeFactory type: belongs_to to: Check via: checkId - from: XBeeFactoryEditable type: belongs_to to: Check via: checkId counts: entities: 300 relationships: 487