@vrplatform/kysely 1.3.45-5537 → 1.3.45-5572
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/main/control-plane/index.d.ts +1 -2
- package/build/main/control-plane/index.js.map +1 -1
- package/build/main/index.d.ts +0 -8
- package/build/main/index.js +0 -24
- package/build/main/index.js.map +1 -1
- package/build/main/isomorphic.d.ts +0 -3
- package/build/main/isomorphic.js +1 -8
- package/build/main/isomorphic.js.map +1 -1
- package/build/main/query/listing/status.d.ts +0 -10
- package/build/main/query/listing/status.js +0 -8
- package/build/main/query/listing/status.js.map +1 -1
- package/build/main/test/index.d.ts +0 -6
- package/build/main/test/index.js +0 -14
- package/build/main/test/index.js.map +1 -1
- package/build/main/v1.generated.d.ts +11 -0
- package/build/main/v1.generated.js.map +1 -1
- package/build/migrations-v2/0000000000008-team-issue-rule-state.ts +52 -0
- package/build/module/control-plane/index.d.ts +1 -2
- package/build/module/control-plane/index.js.map +1 -1
- package/build/module/index.d.ts +0 -8
- package/build/module/index.js +0 -21
- package/build/module/index.js.map +1 -1
- package/build/module/isomorphic.d.ts +0 -3
- package/build/module/isomorphic.js +0 -6
- package/build/module/isomorphic.js.map +1 -1
- package/build/module/query/listing/status.d.ts +0 -10
- package/build/module/query/listing/status.js +0 -6
- package/build/module/query/listing/status.js.map +1 -1
- package/build/module/test/index.d.ts +0 -6
- package/build/module/test/index.js +0 -13
- package/build/module/test/index.js.map +1 -1
- package/build/module/v1.generated.d.ts +11 -0
- package/build/module/v1.generated.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v1.generated.js","sourceRoot":"src/","sources":["v1.generated.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/**\n * This file was generated by kysely-codegen.\n * Please do not edit it manually.\n */\n\nimport type { ColumnType } from \"kysely\";\n\nexport type AccountingJournalEntryInactiveReason = \"cancelledReservationLine\" | \"currencyMismatch\" | \"generalLedgerStartAt\" | \"inactiveAccount\" | \"listingInactive\" | \"nonPostingAccount\" | \"reservationGeneralLedgerStatusInactive\" | \"transactionInactive\" | \"unknownInactiveReason\";\n\nexport type AccountingJournalEntryLedger = \"historical\" | \"operating\" | \"trust\";\n\nexport type AccountingTransactionAttachmentStatus = \"attached\" | \"deleting\" | \"ready\" | \"uploading\";\n\nexport type ArrayType<T> = ArrayTypeImpl<T> extends (infer U)[]\n ? U[]\n : ArrayTypeImpl<T>;\n\nexport type ArrayTypeImpl<T> = T extends ColumnType<infer S, infer I, infer U>\n ? ColumnType<S[], I[], U[]>\n : T[];\n\nexport type AuditActionActorType = \"api_key\" | \"automation\" | \"sync\" | \"system\" | \"user\";\n\nexport type AuditEffectAttemptStatus = \"completed\" | \"failed\" | \"running\" | \"skipped_locked\";\n\nexport type AuditEffectStatus = \"claimed\" | \"completed\" | \"dead_letter\" | \"failed\" | \"pending\" | \"running\";\n\nexport type AuditJournalDeltaOperation = \"delete\" | \"insert\" | \"update\";\n\nexport type AuditPublicEventAccountingStatus = \"blocked\" | \"changed\" | \"failed\" | \"mixed\" | \"not_applicable\" | \"pending\" | \"unchanged\";\n\nexport type AuditPublicEventOperation = \"archive\" | \"create\" | \"delete\" | \"execute\" | \"recalculate\" | \"restore\" | \"update\";\n\nexport type AuditSourceType = \"api\" | \"automation\" | \"integration\" | \"portal\" | \"sync\" | \"system\";\n\nexport type Generated<T> = T extends ColumnType<infer S, infer I, infer U>\n ? ColumnType<S, I | undefined, U>\n : ColumnType<T, T | undefined, T>;\n\nexport type HealthTenantIssueCategory = \"criticalToSystem\" | \"criticalToUser\";\n\nexport type HealthTenantIssueCode = \"brokenConnections\" | \"cancelledReservationPaidWithoutAdjustment\" | \"closedPeriodUnattachedJournalEntries\" | \"duplicatedPayments\" | \"endedOwnershipNonZeroBalance\" | \"listingOwnershipPeriodNotFoundOnActiveJournals\" | \"missingOwnershipOrDeactivation\" | \"operatingBankAccountsWithoutOpex\" | \"outdatedConnections\" | \"partnerBillingInactive\" | \"partnerInactive\" | \"pmsMissingAccountingStart\" | \"publishedStatementUnpaid\" | \"reservationCurrencyMismatch\" | \"reservationGuestTotalsMismatch\" | \"reservationPaymentProjectionMismatch\" | \"teamInactive\" | \"unbalancedJournalEntries\" | \"unbalancedTransactionJournalEntries\" | \"unpaidReservations\";\n\nexport type HealthTenantIssueSeverity = \"error\" | \"warning\";\n\nexport type HealthTenantIssueStatus = \"open\" | \"resolved\";\n\nexport type Int8 = ColumnType<string, bigint | number | string, bigint | number | string>;\n\nexport type Json = JsonValue;\n\nexport type JsonArray = JsonValue[];\n\nexport type JsonObject = {\n [x: string]: JsonValue | undefined;\n};\n\nexport type JsonPrimitive = boolean | number | string | null;\n\nexport type JsonValue = JsonArray | JsonObject | JsonPrimitive;\n\nexport type Numeric = ColumnType<string, number | string, number | string>;\n\nexport type PublicFlowType = \"pull\" | \"push\";\n\nexport type PublicPlaidConnectMode = \"create\" | \"replace\" | \"update\";\n\nexport type PublicPlaidConnectStatus = \"awaitingConfiguration\" | \"completed\" | \"configuring\" | \"credentialsStored\" | \"discoveringAccounts\" | \"exchangeOutcomeUnknown\" | \"exchanging\" | \"expired\" | \"failed\" | \"pendingLink\";\n\nexport type PublicRecurringFeeConditionOperator = \"<\" | \"<=\" | \"=\" | \">\" | \">=\";\n\nexport type Timestamp = ColumnType<Date | string, Date | string, Date | string>;\n\nexport type WebhookApiVersion = \"2026-07-01\";\n\nexport type WebhookDeliveryStatus = \"canceled\" | \"delivering\" | \"failed\" | \"queued\" | \"retrying\" | \"succeeded\";\n\nexport type WebhookEventType = \"connection.changed\" | \"listing.changed\" | \"reservation.changed\" | \"statement.status.changed\" | \"sync.status.changed\" | \"team.issues.changed\" | \"transaction.changed\" | \"webhook.test\";\n\nexport type WebhookResourceType = \"connection\" | \"listing\" | \"reservation\" | \"statement\" | \"sync\" | \"team\" | \"transaction\" | \"webhook\";\n\nexport type WebhookSubscriptionEventType = \"connection.changed\" | \"listing.changed\" | \"reservation.changed\" | \"statement.status.changed\" | \"sync.status.changed\" | \"team.issues.changed\" | \"transaction.changed\";\n\nexport type WebhookSubscriptionScope = \"managedTeams\" | \"self\";\n\nexport type WebhookSubscriptionStatus = \"active\" | \"disabled\" | \"pending\";\n\nexport interface AccountingAccount {\n bankingCategory: string | null;\n bankingCurrency: string | null;\n bankingLast4: string | null;\n bankingType: string | null;\n categoryId: string;\n /**\n * deprecated\n */\n classification: string | null;\n createdAt: Generated<Timestamp | null>;\n id: Generated<string>;\n offsetAccountId: string | null;\n status: Generated<string>;\n tenantId: string | null;\n title: string;\n type: string;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface AccountingAccountAssignment {\n accountId: string | null;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n tenantId: string;\n type: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingAccountAssignmentLineType {\n accountAssignmentType: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n lineType: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingAccountAssignmentType {\n name: string;\n}\n\nexport interface AccountingAccountCategory {\n classification: string | null;\n id: Generated<string>;\n index: number;\n name: string;\n}\n\nexport interface AccountingAccountClassification {\n name: string;\n}\n\nexport interface AccountingAccountConnection {\n accountId: string | null;\n category: Generated<string | null>;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n currency: string | null;\n holderName: string | null;\n id: Generated<string>;\n lastDigits: string | null;\n name: string | null;\n persistentRef: string | null;\n sourceId: string | null;\n startDate: Timestamp | null;\n /**\n * The starting bank record for reconciliation\n */\n startingBankRecordId: string | null;\n status: Generated<string>;\n tenantId: string;\n type: Generated<string | null>;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingAccountReservationLineType {\n accountId: string | null;\n bookingChannel: string | null;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n lineType: string;\n revenueRecognition: string | null;\n status: Generated<string | null>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingAccountReservationRevRec {\n name: string;\n}\n\nexport interface AccountingAccountType {\n name: string;\n}\n\nexport interface AccountingBankAccountCategory {\n name: string;\n}\n\nexport interface AccountingBankAccountType {\n name: string;\n}\n\nexport interface AccountingBankRecord {\n accountConnectionId: string | null;\n accountId: string | null;\n calculatedCentBalance: number | null;\n calculatedCentTotalCorrection: number | null;\n centBalance: number | null;\n centTotal: number | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n date: Timestamp;\n description: string;\n id: Generated<string>;\n isBalanceAdjustment: Generated<boolean | null>;\n reconcileStatus: Generated<string>;\n sourceId: string | null;\n status: Generated<string>;\n tenantId: string;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingBankRecordTransactionPayment {\n bankRecordId: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n tenantId: string | null;\n transactionId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingBankRule {\n createdAt: Generated<Timestamp>;\n descriptionOverride: string | null;\n id: Generated<string>;\n matchMode: Generated<string>;\n mode: Generated<string>;\n name: string;\n priority: Generated<number>;\n status: Generated<string>;\n tenantId: string;\n transactionType: string;\n updatedAt: Generated<Timestamp>;\n usePriorMonthEnd: Generated<boolean>;\n vendorContactId: string | null;\n version: Generated<number>;\n}\n\nexport interface AccountingBankRuleAccount {\n accountId: string;\n bankRuleId: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingBankRuleApplication {\n bankRecordId: string;\n bankRuleId: string;\n createdAt: Generated<Timestamp>;\n createdTransactionId: string | null;\n errorMessage: string | null;\n id: Generated<string>;\n ruleVersion: number;\n status: string;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingBankRuleApplicationStatus {\n name: string;\n}\n\nexport interface AccountingBankRuleCondition {\n bankRuleId: string;\n centValue: number | null;\n conditionType: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n operator: string;\n sortOrder: number;\n tenantId: string;\n textValue: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingBankRuleLine {\n accountAssignmentType: string | null;\n accountId: string | null;\n bankRuleId: string;\n contactId: string | null;\n createdAt: Generated<Timestamp>;\n descriptionOverride: string | null;\n fixedCentAmount: number | null;\n id: Generated<string>;\n listingId: string | null;\n markupCentTotal: number | null;\n markupTaxBehavior: string | null;\n markupTaxRateId: string | null;\n party: string | null;\n percentageBps: number | null;\n sortOrder: number;\n splitMode: string;\n taxBehavior: string | null;\n taxRateId: string | null;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingBankRuleLineSplitMode {\n name: string;\n}\n\nexport interface AccountingBankRuleMatchOperator {\n name: string;\n}\n\nexport interface AccountingBankRuleMode {\n name: string;\n}\n\nexport interface AccountingContact {\n addressData: Json | null;\n /**\n * When NULL, the type is \"individual\"\n */\n companyType: string | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n defaultAccountId: string | null;\n email: string | null;\n firstName: string | null;\n id: Generated<string>;\n is1099PostalDelivery: Generated<boolean>;\n name: string;\n phone: string | null;\n rampLast4Digits: string | null;\n /**\n * Human-readable system ID (CNT-XXX-XXXX-XXX).\n */\n shortRef: string | null;\n sourceId: string | null;\n status: string | null;\n taxId: string | null;\n tenantId: string;\n /**\n * owner OR vendor\n */\n type: string;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingContactCompanyType {\n name: string;\n}\n\nexport interface AccountingContactType {\n name: string;\n}\n\nexport interface AccountingJournalEntry {\n accountId: string | null;\n attachedToOwnerStatementId: string | null;\n centTotal: Int8;\n contactId: string | null;\n createdAt: Generated<Timestamp | null>;\n currency: string;\n description: string | null;\n entitySortNum: Generated<number | null>;\n entityType: string | null;\n id: Generated<string>;\n inactiveReason: AccountingJournalEntryInactiveReason | null;\n ledger: Generated<AccountingJournalEntryLedger>;\n lineId: string | null;\n lineUniqueRef: string | null;\n listingId: string | null;\n listingOwnershipPeriodId: string | null;\n parentListingId: string | null;\n party: string | null;\n recurringFeeId: string | null;\n recurringFeeListingSubscriptionId: string | null;\n reservationId: string | null;\n status: Generated<string>;\n tenantId: string | null;\n transactionId: string | null;\n transferOwnerStatementId: string | null;\n triggerId: string | null;\n triggerType: string | null;\n txnAt: Timestamp | null;\n txnCode: Generated<string | null>;\n txnNum: number | null;\n type: string | null;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface AccountingJournalEntryEntityType {\n name: string;\n}\n\nexport interface AccountingJournalEntryTriggerType {\n name: string;\n}\n\nexport interface AccountingJournalEntryType {\n name: string;\n}\n\nexport interface AccountingOwnerStatementProjection {\n listingId: string | null;\n listingOwnershipPeriodId: string | null;\n payload: Json;\n projectionKey: string;\n refreshedAt: Generated<Timestamp>;\n sourceRevision: Int8;\n tenantId: string;\n variant: string;\n}\n\nexport interface AccountingOwnerStatementProjectionListingRevision {\n listingId: string;\n revision: Generated<Int8>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingOwnerStatementProjectionRevision {\n revision: Generated<Int8>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingPaidStatus {\n name: string;\n}\n\nexport interface AccountingParty {\n name: string;\n}\n\nexport interface AccountingRate {\n accountId: string | null;\n basisPoints: number;\n behavior: string | null;\n countryCode: string | null;\n createdAt: Generated<Timestamp>;\n currency: string | null;\n debitAccountId: string | null;\n description: string | null;\n id: Generated<string>;\n name: string | null;\n status: Generated<string | null>;\n tenantId: string;\n type: string | null;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingRateType {\n name: string;\n}\n\nexport interface AccountingTaxBehavior {\n name: string;\n}\n\nexport interface AccountingTransaction {\n accountId: string | null;\n centTotal: number;\n connectionId: string | null;\n contactId: string | null;\n createdAt: Generated<Timestamp>;\n currency: string;\n date: Timestamp;\n description: string;\n dueAt: Timestamp | null;\n id: Generated<string>;\n isOpeningBalance: Generated<boolean>;\n matchBankAccountLast4: string | null;\n matchLineTypeClassification: string | null;\n matchReservationConfirmationCode: string | null;\n matchReservationStripeGuestRef: string | null;\n matchStatus: Generated<string | null>;\n paidAt: Timestamp | null;\n paidStatus: Generated<string | null>;\n recurringFeeId: string | null;\n recurringPattern: Json | null;\n recurringTemplateId: string | null;\n /**\n * Human-readable system ID (EXP/DEP/PAY/TRF-XXX-XXXX-XXX depending on transaction.type).\n */\n shortRef: string | null;\n sourceId: string | null;\n status: Generated<string>;\n tenantId: string;\n type: string;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n webhookVersion: Generated<Int8>;\n}\n\nexport interface AccountingTransactionAttachment {\n byteSize: number;\n contentType: string;\n createdAt: Generated<Timestamp>;\n expiresAt: Timestamp | null;\n extension: string | null;\n filename: string;\n id: Generated<string>;\n isOwnerAccessible: Generated<boolean>;\n r2Key: string;\n status: Generated<AccountingTransactionAttachmentStatus>;\n tenantId: string;\n transactionId: string | null;\n updatedAt: Generated<Timestamp>;\n uploadedAt: Timestamp | null;\n}\n\nexport interface AccountingTransactionLine {\n accountAssignmentType: string | null;\n accountId: string | null;\n appliedAmountTaxBehavior: string | null;\n appliedAmountTaxRateId: string | null;\n centTotal: number;\n contactId: string | null;\n createdAt: Generated<Timestamp>;\n description: string;\n id: Generated<string>;\n listingId: string | null;\n markupCentTotal: number | null;\n markupTaxBehavior: string | null;\n markupTaxRateId: string | null;\n matchLineTypeClassification: string | null;\n matchReservationConfirmationCode: string | null;\n matchReservationStripeGuestRef: string | null;\n matchStatus: Generated<string | null>;\n ownerStatementId: string | null;\n party: string | null;\n reservationId: string | null;\n tenantId: string;\n transactionId: string;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingTransactionType {\n name: string;\n}\n\nexport interface AuditAction {\n actionType: string;\n actorEmail: string | null;\n actorId: string | null;\n actorLabel: string | null;\n actorName: string | null;\n actorType: AuditActionActorType;\n apiVersion: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n message: string | null;\n parentActionId: string | null;\n payload: Json | null;\n publicEventProjectedAt: Generated<Timestamp | null>;\n requestId: string | null;\n rootEntityId: string | null;\n rootEntityType: string | null;\n source: string | null;\n sourceType: AuditSourceType | null;\n tenantId: string;\n traceId: string | null;\n}\n\nexport interface AuditEffect {\n accountingRelevant: Generated<boolean>;\n actionId: string;\n claimedAt: Timestamp | null;\n claimedBy: string | null;\n completedAt: Timestamp | null;\n createdAt: Generated<Timestamp>;\n effectType: string;\n entityId: string | null;\n entityType: string | null;\n id: Generated<string>;\n lastAttemptAt: Timestamp | null;\n lastError: string | null;\n maxRetries: Generated<number>;\n payload: Generated<Json>;\n priority: Generated<number>;\n retryCount: Generated<number>;\n rootEntityId: string | null;\n rootEntityType: string | null;\n status: AuditEffectStatus;\n tenantId: string;\n}\n\nexport interface AuditEffectAttempt {\n actionId: string;\n attemptNum: number;\n effectId: string;\n errorData: Json | null;\n errorMessage: string | null;\n finishedAt: Timestamp | null;\n id: Generated<string>;\n resultCategory: string | null;\n resultCode: string | null;\n retryable: boolean | null;\n startedAt: Generated<Timestamp>;\n status: AuditEffectAttemptStatus;\n tenantId: string;\n workerId: string | null;\n}\n\nexport interface AuditJournalDelta {\n accountCategoryIdAfter: string | null;\n accountCategoryIdBefore: string | null;\n accountCategoryNameAfter: string | null;\n accountCategoryNameBefore: string | null;\n accountClassificationAfter: string | null;\n accountClassificationBefore: string | null;\n accountIdAfter: string | null;\n accountIdBefore: string | null;\n accountNameAfter: string | null;\n accountNameBefore: string | null;\n actionId: string;\n apiVersion: string;\n attachedToOwnerStatementIdAfter: string | null;\n attachedToOwnerStatementIdBefore: string | null;\n centTotalAfter: Int8 | null;\n centTotalBefore: Int8 | null;\n changedAt: Generated<Timestamp>;\n changedFields: Generated<string[]>;\n currencyAfter: string | null;\n currencyBefore: string | null;\n diffJson: Json | null;\n effectId: string | null;\n id: Generated<string>;\n journalEntryId: string;\n ledgerAfter: string | null;\n ledgerBefore: string | null;\n listingOwnershipPeriodIdAfter: string | null;\n listingOwnershipPeriodIdBefore: string | null;\n mutationId: string | null;\n operation: AuditJournalDeltaOperation;\n partyAfter: string | null;\n partyBefore: string | null;\n rootEntityId: string | null;\n rootEntityType: string | null;\n statusAfter: string | null;\n statusBefore: string | null;\n tenantId: string;\n txnAtAfter: Timestamp | null;\n txnAtBefore: Timestamp | null;\n}\n\nexport interface AuditMutation {\n accountingRelevant: Generated<boolean>;\n actionId: string;\n captureOrder: Generated<Int8 | null>;\n changeRecord: Json;\n createdAt: Generated<Timestamp>;\n effectId: string | null;\n id: Generated<string>;\n op: string;\n publicChanges: Generated<Json>;\n rootEntityId: string | null;\n rootEntityType: string | null;\n subjectId: string;\n subjectType: string;\n tenantId: string;\n}\n\nexport interface AuditPublicEvent {\n accountingStatus: AuditPublicEventAccountingStatus;\n actionCode: string;\n actionId: string;\n actionSummary: string;\n actorEmail: string | null;\n actorId: string | null;\n actorLabel: string | null;\n actorName: string | null;\n actorType: AuditActionActorType;\n affectedAccountIds: Generated<string[]>;\n changedEntityTypes: Generated<string[]>;\n changedPaths: Generated<string[]>;\n entityChanges: Generated<Json>;\n entityName: string | null;\n entityUniqueRef: string | null;\n id: Generated<string>;\n hasChanges: Generated<boolean>;\n netEffect: Generated<Json>;\n occurredAt: Timestamp;\n operation: AuditPublicEventOperation;\n projectionFingerprint: string;\n projectedAt: Generated<Timestamp>;\n projectionVersion: Generated<number>;\n requestId: string | null;\n revision: Generated<number>;\n rootEntityId: string;\n rootEntityType: string;\n sourceType: AuditSourceType;\n teamName: string;\n teamUniqueRef: string | null;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AuditPublicEventEntryChange {\n accountIdAfter: string | null;\n accountIdBefore: string | null;\n afterSnapshot: Json | null;\n beforeSnapshot: Json | null;\n causedBy: Json | null;\n changedAt: Timestamp;\n changedFields: Generated<string[]>;\n eventId: string;\n eventRevision: number;\n id: string;\n journalEntryId: string;\n operation: AuditJournalDeltaOperation;\n tenantId: string;\n}\n\nexport interface AuditPublicEventProjectionState {\n cutoverAt: Generated<Timestamp>;\n lastRecoveredAt: Timestamp | null;\n retainedFrom: Timestamp | null;\n singleton: Generated<boolean>;\n}\n\nexport interface CoreActiveStatus {\n name: string;\n}\n\nexport interface CoreChange {\n automationId: string | null;\n changeData: Json | null;\n changeFields: Generated<Json | null>;\n changeType: string | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n dataSha256: string | null;\n entityId: string;\n entityType: string;\n entityUniqueRef: string | null;\n id: Generated<string>;\n isLatestVersion: Generated<boolean | null>;\n message: string | null;\n seq: Int8 | null;\n status: string | null;\n syncId: string | null;\n syncSubtaskId: string | null;\n syncType: string | null;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n version: Numeric;\n}\n\nexport interface CoreChangeEntityType {\n name: string;\n}\n\nexport interface CoreChangeLink {\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n leftChangeId: string;\n rightChangeId: string;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface CoreChangeSourceLink {\n changeId: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n sourceId: string;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface CoreChangeStatus {\n name: string;\n}\n\nexport interface CoreChangeSyncType {\n name: string;\n}\n\nexport interface CoreChangeType {\n name: string;\n}\n\nexport interface CoreFlow {\n appId: string;\n description: string | null;\n eventListening: Generated<Json>;\n id: Generated<string>;\n isPublic: Generated<boolean>;\n leftType: string | null;\n mappingSchema: Json;\n rightType: string | null;\n runSchema: Generated<Json>;\n settingSchema: Json;\n title: string;\n type: Generated<PublicFlowType | null>;\n uniqueRef: string;\n useGlobalMapping: Generated<boolean>;\n}\n\nexport interface CoreFlowMapping {\n accountId: string | null;\n bookingChannelId: string | null;\n connectionId: string;\n contactId: string | null;\n createdAt: Generated<Timestamp>;\n flowId: string | null;\n id: Generated<string>;\n listingId: string | null;\n mappingKey: string;\n rateId: string | null;\n sourceId: string;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n value: Json | null;\n}\n\nexport interface CoreFlowSetting {\n accountId: string | null;\n bookingChannelId: string | null;\n connectionId: string;\n contactId: string | null;\n createdAt: Generated<Timestamp>;\n flowId: string;\n id: Generated<string>;\n listingId: string | null;\n rateId: string | null;\n settingKey: string;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n value: Json | null;\n}\n\nexport interface CoreIssueMessageOverwrite {\n createdAt: Generated<Timestamp | null>;\n id: Generated<string>;\n message: string;\n pattern: string;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface CoreSync {\n automationId: string | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n environment: string | null;\n id: Generated<string>;\n isCurrentOnAutomation: Generated<boolean | null>;\n isCurrentOnConnection: Generated<boolean>;\n message: string | null;\n params: Generated<Json>;\n status: string;\n syncedAt: Timestamp | null;\n tenantId: string;\n triggerRef: string | null;\n type: string;\n updatedAt: Generated<Timestamp>;\n userId: string | null;\n webhookVersion: Generated<Int8>;\n}\n\nexport interface CoreSyncStatus {\n name: string;\n}\n\nexport interface CoreSyncSubtask {\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n message: string | null;\n params: Generated<Json | null>;\n status: Generated<string>;\n syncId: string;\n tenantId: string;\n triggerRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface CoreSyncType {\n name: string;\n}\n\nexport interface HdbCatalogEventInvocationLogs {\n createdAt: Generated<Timestamp | null>;\n eventId: string | null;\n id: Generated<string>;\n request: Json | null;\n response: Json | null;\n status: number | null;\n triggerName: string | null;\n}\n\nexport interface HdbCatalogEventLog {\n archived: Generated<boolean>;\n createdAt: Generated<Timestamp | null>;\n delivered: Generated<boolean>;\n error: Generated<boolean>;\n id: Generated<string>;\n locked: Timestamp | null;\n nextRetryAt: Timestamp | null;\n payload: Json;\n schemaName: string;\n tableName: string;\n tries: Generated<number>;\n triggerName: string;\n}\n\nexport interface HdbCatalogHdbActionLog {\n actionName: string | null;\n createdAt: Generated<Timestamp>;\n errors: Json | null;\n id: Generated<string>;\n inputPayload: Json;\n requestHeaders: Json;\n responsePayload: Json | null;\n responseReceivedAt: Timestamp | null;\n sessionVariables: Json;\n status: string;\n}\n\nexport interface HdbCatalogHdbCronEventInvocationLogs {\n createdAt: Generated<Timestamp | null>;\n eventId: string | null;\n id: Generated<string>;\n request: Json | null;\n response: Json | null;\n status: number | null;\n}\n\nexport interface HdbCatalogHdbCronEvents {\n createdAt: Generated<Timestamp | null>;\n id: Generated<string>;\n nextRetryAt: Timestamp | null;\n scheduledTime: Timestamp;\n status: Generated<string>;\n tries: Generated<number>;\n triggerName: string;\n}\n\nexport interface HdbCatalogHdbEventLogCleanups {\n deletedEventInvocationLogs: number | null;\n deletedEventLogs: number | null;\n id: Generated<string>;\n scheduledAt: Timestamp;\n status: string;\n triggerName: string;\n}\n\nexport interface HdbCatalogHdbMetadata {\n id: number;\n metadata: Json;\n resourceVersion: Generated<number>;\n}\n\nexport interface HdbCatalogHdbScheduledEventInvocationLogs {\n createdAt: Generated<Timestamp | null>;\n eventId: string | null;\n id: Generated<string>;\n request: Json | null;\n response: Json | null;\n status: number | null;\n}\n\nexport interface HdbCatalogHdbScheduledEvents {\n comment: string | null;\n createdAt: Generated<Timestamp | null>;\n headerConf: Json | null;\n id: Generated<string>;\n nextRetryAt: Timestamp | null;\n payload: Json | null;\n retryConf: Json | null;\n scheduledTime: Timestamp;\n status: Generated<string>;\n tries: Generated<number>;\n webhookConf: Json;\n}\n\nexport interface HdbCatalogHdbSchemaNotifications {\n id: number;\n instanceId: string;\n notification: Json;\n resourceVersion: Generated<number>;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface HdbCatalogHdbSourceCatalogVersion {\n upgradedOn: Timestamp;\n version: string;\n}\n\nexport interface HdbCatalogHdbVersion {\n cliState: Generated<Json>;\n consoleState: Generated<Json>;\n eeClientId: string | null;\n eeClientSecret: string | null;\n hasuraUuid: Generated<string>;\n upgradedOn: Timestamp;\n version: string;\n}\n\nexport interface HealthTenantIssue {\n affected: number;\n category: HealthTenantIssueCategory;\n code: HealthTenantIssueCode;\n contentHash: string;\n context: Json;\n createdAt: Generated<Timestamp>;\n firstSeenAt: Timestamp;\n id: Generated<string>;\n lastChangedAt: Timestamp;\n message: string;\n openedAt: Timestamp;\n resolvedAt: Timestamp | null;\n severity: HealthTenantIssueSeverity;\n snapshotVersion: Int8;\n status: HealthTenantIssueStatus;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n version: Int8;\n}\n\nexport interface HealthTenantIssueSnapshot {\n computedAt: Timestamp | null;\n contentHash: string | null;\n createdAt: Generated<Timestamp>;\n dirtyAt: Generated<Timestamp>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n version: Generated<Int8>;\n}\n\nexport interface PublicAccountCollection {\n automationId: string | null;\n connectionId: string;\n createdAt: Generated<Timestamp | null>;\n id: Generated<string>;\n name: string;\n tenantId: string;\n type: Generated<string | null>;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface PublicAccountCollectionType {\n name: string;\n}\n\nexport interface PublicAddress {\n city: string | null;\n country: string | null;\n countryCode: string | null;\n createdAt: Generated<Timestamp>;\n full: string | null;\n id: Generated<string>;\n lastValidated: Timestamp | null;\n line: string | null;\n lineDetails: string | null;\n postalCode: string | null;\n state: string | null;\n stateCode: string | null;\n tenantId: string | null;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicApp {\n authentication: Generated<Json>;\n category: string | null;\n color: string | null;\n createdAt: Generated<Timestamp>;\n icon: string | null;\n iconRound: string | null;\n id: Generated<string>;\n info: Json | null;\n name: string;\n type: string;\n version: Generated<number>;\n}\n\nexport interface PublicAuditLog {\n actorUserId: string | null;\n automationId: string | null;\n connectionId: string | null;\n contactId: string | null;\n createdAt: Generated<Timestamp>;\n deltaJson: Json | null;\n id: Generated<string>;\n listingCollectionId: string | null;\n listingId: string | null;\n objectId: string | null;\n op: string;\n ownerId: string | null;\n ownerStatementId: string | null;\n ownerStatementLayoutId: string | null;\n tableName: string;\n taxStatementId: string | null;\n tenantId: string | null;\n userId: string | null;\n}\n\nexport interface PublicAutomation {\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n leftConnectionId: string | null;\n rightConnectionId: string | null;\n runSettings: Json | null;\n scheduleStatus: Generated<string | null>;\n status: Generated<string>;\n template: string | null;\n templateId: string | null;\n tenantId: string;\n title: string | null;\n triggerDevTaskOverwrite: string | null;\n updatedAt: Generated<Timestamp>;\n viewSettings: Json | null;\n}\n\nexport interface PublicAutomationTemplate {\n /**\n * determines whether this automation allows a team to configure multiple versions of this with the same leftConnection rightConnection combination\n */\n allowMultiple: boolean | null;\n appId: string | null;\n createdAt: Generated<Timestamp | null>;\n description: string;\n endpoint: string;\n id: Generated<string>;\n input: string;\n label: string | null;\n leftAppId: string | null;\n mappings: Json | null;\n name: string | null;\n params: Generated<Json | null>;\n preview: Json | null;\n rightAppId: string | null;\n settings: Json | null;\n stripePriceRef: string | null;\n title: string | null;\n triggerDevTask: string | null;\n triggers: Generated<Json | null>;\n type: string | null;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp | null>;\n version: string | null;\n visibility: string | null;\n}\n\nexport interface PublicBillingPaymentMethodType {\n name: string;\n}\n\nexport interface PublicBookingChannel {\n channelRef: string | null;\n color: string | null;\n createdAt: Generated<Timestamp>;\n icon: string | null;\n iconProvider: string | null;\n id: Generated<string>;\n lastGenerateRun: Timestamp | null;\n logo: string | null;\n logoProvider: string | null;\n selectedBookingChannelIconCandidateId: string | null;\n selectedBookingChannelLogoCandidateId: string | null;\n uniqueRef: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicBookingChannelIconCandidate {\n bookingChannelId: string;\n cloudflareImageId: string | null;\n color: string | null;\n comment: string | null;\n createdAt: Generated<Timestamp>;\n externalIcon: string | null;\n height: number | null;\n id: Generated<string>;\n provider: Generated<string>;\n source: string | null;\n updatedAt: Generated<Timestamp>;\n width: number | null;\n}\n\nexport interface PublicConnection {\n accountingEndAt: Timestamp | null;\n accountingStartAt: Timestamp | null;\n appId: string;\n backendVersion: number | null;\n createdAt: Generated<Timestamp>;\n credentials: Generated<Json | null>;\n disabled: Generated<boolean | null>;\n fetchNext: Generated<Timestamp | null>;\n fetchStatus: Generated<string>;\n icon: string | null;\n id: Generated<string>;\n lastFetch: Timestamp | null;\n metadata: Json | null;\n name: string;\n persistentState: Generated<Json | null>;\n status: Generated<string | null>;\n tenantId: string;\n type: string | null;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp | null>;\n version: number | null;\n webhookVersion: Generated<Int8>;\n}\n\nexport interface PublicConnectionRoute {\n connectionId: string;\n createdAt: Generated<Timestamp>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicControlPlaneOutbox {\n aggregateId: string;\n aggregateType: string;\n attempts: Generated<number>;\n createdAt: Generated<Timestamp>;\n dataRegion: string | null;\n eventType: string;\n eventVersion: number;\n id: Generated<string>;\n lastError: string | null;\n payload: Generated<Json>;\n publishedAt: Timestamp | null;\n}\n\nexport interface PublicControlPlaneProjectionEvent {\n aggregateId: string;\n aggregateType: string;\n appliedAt: Generated<Timestamp>;\n dataRegion: string;\n eventId: string;\n eventType: string;\n eventVersion: number;\n payload: Generated<Json>;\n}\n\nexport interface PublicCurrency {\n name: string;\n}\n\nexport interface PublicDuplicateEmails {\n count: Int8 | null;\n email: string | null;\n id: string | null;\n}\n\nexport interface PublicEmailTemplate {\n createdAt: Generated<Timestamp>;\n dataJson: Json;\n id: Generated<string>;\n tenantId: string;\n type: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicEmailTemplateType {\n name: string;\n}\n\nexport interface PublicFeature {\n createdAt: Generated<Timestamp>;\n description: string | null;\n id: Generated<string>;\n issueUrl: string | null;\n /**\n * user ids of user needed to approve this feature\n */\n requiredApprovals: Generated<Json | null>;\n status: Generated<string | null>;\n tenantId: string | null;\n title: string;\n updatedAt: Generated<Timestamp>;\n url: string | null;\n}\n\nexport interface PublicFeatureApproval {\n createdAt: Generated<Timestamp>;\n featureId: string;\n id: Generated<string>;\n status: Generated<string | null>;\n updatedAt: Generated<Timestamp>;\n userId: string;\n}\n\nexport interface PublicFeatureApprovalStatus {\n name: string;\n}\n\nexport interface PublicFeatureEnabledTeam {\n createdAt: Generated<Timestamp>;\n featureId: string;\n id: Generated<string>;\n status: Generated<string | null>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicFeatureStatus {\n name: string;\n}\n\nexport interface PublicFileStorage {\n connectionId: string | null;\n contactId: string | null;\n createdAt: Generated<Timestamp>;\n endDate: Timestamp | null;\n extension: string | null;\n filename: string;\n fileUri: string | null;\n id: Generated<string>;\n metadata: Json | null;\n newOwnerId: string | null;\n ownerUserId: string | null;\n reservationId: string | null;\n rowDateField: string | null;\n startDate: Timestamp | null;\n status: string | null;\n tenantId: string;\n type: string;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicFileStorageSourceLink {\n createdAt: Generated<Timestamp>;\n fileStorageId: string;\n id: Generated<string>;\n sourceId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicFileStorageTag {\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n tenantId: string;\n title: string;\n uniqueRef: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicLatestDuplicateEmails {\n createdAt: Timestamp | null;\n email: string | null;\n id: string | null;\n name: string | null;\n status: string | null;\n}\n\nexport interface PublicListing {\n address: string | null;\n addressCity: string | null;\n addressCountry: string | null;\n addressData: Json | null;\n addressId: string | null;\n addressState: string | null;\n bedrooms: number | null;\n beds: number | null;\n calculatedStatus: Generated<string | null>;\n calculatedTitle: Generated<string | null>;\n calculatedTitleNew: Generated<string | null>;\n centExpenseReserve: number | null;\n /**\n * Starting balance for tax statements\n */\n centTaxStartingBalance: number | null;\n collectionId: string | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp | null>;\n customCode: string | null;\n defaultCurrency: string | null;\n id: Generated<string>;\n imageUri: string | null;\n metadata: Generated<Json | null>;\n name: string | null;\n ownerContactId: string | null;\n parentId: string | null;\n pmsAddressData: Json | null;\n pmsStatus: string | null;\n /**\n * Human-readable system ID (LST-XXX-XXXX-XXX).\n */\n shortRef: string | null;\n sourceId: string | null;\n status: string | null;\n tenantId: string;\n title: string | null;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp | null>;\n webhookVersion: Generated<Int8>;\n}\n\nexport interface PublicListingCollection {\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n name: string;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicListingConnection {\n address: string | null;\n bedrooms: number | null;\n beds: number | null;\n connectionId: string;\n createdAt: Generated<Timestamp | null>;\n groupKey: string | null;\n id: Generated<string>;\n listingId: string | null;\n metadata: Json | null;\n name: string | null;\n nickname: string | null;\n sourceId: string | null;\n status: string | null;\n tenantId: string | null;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface PublicListingOwner {\n createdAt: Generated<Timestamp | null>;\n id: Generated<string>;\n listingId: string;\n newOwnerId: string | null;\n ownerId: string | null;\n role: Generated<string>;\n split: Numeric | null;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface PublicListingOwnerRole {\n name: string;\n}\n\nexport interface PublicListingOwnershipPeriod {\n businessModel: Generated<string | null>;\n createdAt: Generated<Timestamp>;\n endAt: Timestamp | null;\n id: Generated<string>;\n listingId: string;\n reserveCentTotal: Generated<Int8>;\n setListingInactive: Generated<boolean | null>;\n startAt: Generated<Timestamp | null>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicListingOwnershipPeriodBusinessModel {\n name: string;\n}\n\nexport interface PublicListingOwnershipPeriodMember {\n contactId: string | null;\n createdAt: Generated<Timestamp | null>;\n id: Generated<string>;\n ownerId: string | null;\n periodId: string;\n split: number;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface PublicOwner {\n addressId: string | null;\n companyType: string | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n email: string | null;\n firstName: string | null;\n id: Generated<string>;\n is1099PostalDelivery: Generated<boolean>;\n /**\n * Lastname or company name\n */\n name: string;\n phone: string | null;\n sourceId: string | null;\n status: Generated<string | null>;\n taxId: string | null;\n tenantId: string;\n type: string;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicOwnerStatement {\n automationId: string | null;\n centBalanceEnd: Int8 | null;\n centBalanceStart: Int8 | null;\n centExpenses: Int8 | null;\n centNetRevenue: Int8 | null;\n centPayedOut: number | null;\n centRentalRevenue: number | null;\n centTotal: Int8 | null;\n centTransfer: Int8 | null;\n createdAt: Generated<Timestamp>;\n currency: string | null;\n endAt: Timestamp;\n id: Generated<string>;\n layoutId: string | null;\n listingId: string | null;\n listingOwnershipPeriodId: string | null;\n metadata: Json | null;\n ownerId: string | null;\n party: Generated<string | null>;\n previousOwnerStatementId: string | null;\n sourceId: string | null;\n startAt: Timestamp;\n status: Generated<string>;\n templateId: string | null;\n templateJson: Json | null;\n tenantId: string;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n webhookVersion: Generated<Int8>;\n}\n\nexport interface PublicOwnerStatementLayout {\n automationId: string | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n dataJson: Json;\n id: Generated<string>;\n isDefault: Generated<boolean | null>;\n tenantId: string;\n title: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicOwnerStatementLayoutAccount {\n accountId: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n layoutId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicOwnerStatementLayoutListing {\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n layoutId: string;\n listingId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicOwnerStatementLine {\n centTotal: number;\n createdAt: Generated<Timestamp>;\n currency: string | null;\n customDescription: string | null;\n date: Timestamp | null;\n description: string | null;\n externalLink: string | null;\n groupId: string | null;\n id: Generated<string>;\n isOwnerPayout: Generated<boolean | null>;\n metadata: Json | null;\n ownerStatementId: string;\n reservationId: string | null;\n role: Generated<string | null>;\n sourceId: string | null;\n tenantId: string;\n uniqueRef: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicOwnerStatementOwner {\n createdAt: Generated<Timestamp | null>;\n id: Generated<string>;\n newOwnerId: string | null;\n ownerId: string | null;\n role: string;\n split: Numeric | null;\n statementId: string;\n updatedAt: Generated<Timestamp | null>;\n /**\n * The source id to the listing owner vendor\n */\n vendorSourceId: string | null;\n}\n\nexport interface PublicOwnerStatementStatus {\n name: string;\n}\n\nexport interface PublicOwnerStatementTemplate {\n balanceStartAt: Timestamp | null;\n billingAccountId: string | null;\n createdAt: Generated<Timestamp>;\n data: Json;\n id: Generated<string>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n version: Generated<number | null>;\n}\n\nexport interface PublicOwnerType {\n name: string;\n}\n\nexport interface PublicOwnerUserAccess {\n contactId: string | null;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n ownerId: string | null;\n role: Generated<string>;\n updatedAt: Generated<Timestamp>;\n userId: string;\n}\n\nexport interface PublicOwnerUserAccessRole {\n name: string;\n}\n\nexport interface PublicPayment {\n bankAccountDigits: string | null;\n centTotal: Generated<Int8 | null>;\n connectionId: string | null;\n createdAt: Generated<Timestamp | null>;\n currency: string | null;\n description: string | null;\n etaAt: Timestamp | null;\n id: Generated<string>;\n isReconciled: Generated<boolean | null>;\n issues: Json | null;\n metadata: Generated<Json | null>;\n payedAt: Timestamp | null;\n paymentMethod: string | null;\n sourceId: string | null;\n status: string | null;\n tenantId: string | null;\n type: string | null;\n uniqueRef: string | null;\n uniqueRefAir: string | null;\n uniqueRefTemp: string | null;\n updatedAt: Generated<Timestamp | null>;\n userdata: Generated<Json | null>;\n}\n\nexport interface PublicPaymentLine {\n accountId: string | null;\n centTotal: Int8 | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n description: string | null;\n editedType: string | null;\n effectiveType: Generated<string | null>;\n generalLedgerPostingAt: Timestamp | null;\n id: Generated<string>;\n lineId: string | null;\n listingId: string | null;\n matchReservationConfirmationCode: string | null;\n matchReservationStripeGuestRef: string | null;\n matchStatus: Generated<string | null>;\n metadata: Json | null;\n originCentTotal: Int8 | null;\n originCurrency: string | null;\n originExchangeRate: Numeric | null;\n party: string | null;\n paymentId: string | null;\n recurringFeeId: string | null;\n reservationId: string | null;\n skipReconcile: Generated<boolean | null>;\n tenantId: string | null;\n type: string | null;\n type2: string | null;\n uniqueRef: string | null;\n uniqueRef2: string | null;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface PublicPaymentLineClassification {\n appId: string | null;\n createdAt: Generated<Timestamp | null>;\n id: Generated<string | null>;\n name: string;\n type: string | null;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface PublicPaymentStatus {\n name: string;\n}\n\nexport interface PublicPaymentType {\n name: string;\n}\n\nexport interface PublicPlaidConnectSession {\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n environment: string;\n errorCode: string | null;\n errorRetryable: boolean | null;\n expiresAt: Timestamp;\n id: Generated<string>;\n itemId: string | null;\n leaseExpiresAt: Timestamp | null;\n linkSessionId: string | null;\n mode: PublicPlaidConnectMode;\n result: Json | null;\n status: Generated<PublicPlaidConnectStatus>;\n syncId: string | null;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicRecurringFee {\n bookingChannelsFilter: string[] | null;\n createdAt: Generated<Timestamp>;\n creditAccountId: string | null;\n creditParty: Generated<string>;\n debitAccountId: string | null;\n debitParty: Generated<string>;\n defaultRate: number | null;\n formula: string | null;\n icon: string | null;\n id: Generated<string>;\n rateType: Generated<string | null>;\n revenueRecognition: string | null;\n status: Generated<string>;\n statusFilter: string | null;\n taxBehavior: string | null;\n taxRateId: string | null;\n tenantId: string;\n title: string;\n type: Generated<string>;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicRecurringFeeAccount {\n accountId: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n recurringFeeId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicRecurringFeeAccountCondition {\n accountId: string;\n centValue: Int8;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n operator: PublicRecurringFeeConditionOperator;\n recurringFeeId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicRecurringFeeListingSubscription {\n createdAt: Generated<Timestamp>;\n endAt: Timestamp | null;\n id: Generated<string>;\n listingId: string;\n rate: number | null;\n rateType: Generated<string | null>;\n recurringFeeId: string;\n startAt: Generated<Timestamp | null>;\n status: Generated<string>;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicRecurringFeeListingSubscriptionRateType {\n name: string;\n}\n\nexport interface PublicRecurringFeeType {\n name: string;\n}\n\nexport interface PublicReservation {\n bookedAt: Generated<Timestamp | null>;\n bookerName: string | null;\n bookingPlatform: string | null;\n calculatedDeduplicationRef: Generated<string | null>;\n cancelledAt: Timestamp | null;\n centAccommodation: number | null;\n centAdjustment: number | null;\n centCancellation: number | null;\n centCityTax: number | null;\n centCleaning: Int8 | null;\n centOta: number | null;\n centPaid: Int8 | null;\n centPaymentFee: number | null;\n centService: number | null;\n centTotal: Generated<Int8 | null>;\n channelId: string | null;\n checkIn: Timestamp | null;\n checkOut: Timestamp | null;\n confirmationCode: string | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp | null>;\n currency: string | null;\n editedCheckIn: Timestamp | null;\n editedCheckOut: Timestamp | null;\n effectiveCheckIn: Generated<Timestamp | null>;\n effectiveCheckOut: Generated<Timestamp | null>;\n effectiveNights: Generated<number | null>;\n generalLedgerPostingAt: Timestamp | null;\n generalLedgerStatus: Generated<string>;\n guestName: string | null;\n guests: number | null;\n id: Generated<string>;\n lineMap: Json | null;\n listingConnectionId: string | null;\n listingId: string | null;\n managerCentTotal: Int8 | null;\n matchPaymentCustomerRef: string | null;\n metadata: Json | null;\n nights: number | null;\n otaReservationId: string | null;\n ownersCentTotal: Int8 | null;\n paidStatus: string | null;\n paymentMethod: string | null;\n pmsReferenceCode: string | null;\n /**\n * Human-readable system ID (RES-XXX-XXXX-XXX).\n */\n shortRef: string | null;\n sourceId: string | null;\n status: Generated<string | null>;\n taxCentTotal: Int8 | null;\n tenantId: string | null;\n uniqueRef: string | null;\n uniqueRef2: string | null;\n updatedAt: Generated<Timestamp | null>;\n userdata: Generated<Json | null>;\n webhookVersion: Generated<Int8>;\n}\n\nexport interface PublicReservationStatus {\n name: string;\n}\n\nexport interface PublicReservationWithOccupancyStatus {\n bookedAt: Timestamp | null;\n bookerName: string | null;\n bookingPlatform: string | null;\n cancelledAt: Timestamp | null;\n centAccommodation: number | null;\n centAdjustment: number | null;\n centCancellation: number | null;\n centCityTax: number | null;\n centCleaning: Int8 | null;\n centOta: number | null;\n centPaid: Int8 | null;\n centPaymentFee: number | null;\n centService: number | null;\n centTotal: Int8 | null;\n channelId: string | null;\n checkIn: Timestamp | null;\n checkOut: Timestamp | null;\n confirmationCode: string | null;\n connectionId: string | null;\n createdAt: Timestamp | null;\n currency: string | null;\n guestName: string | null;\n guests: number | null;\n id: string | null;\n lineMap: Json | null;\n listingConnectionId: string | null;\n listingId: string | null;\n metadata: Json | null;\n nights: number | null;\n occupancyStatus: string | null;\n otaReservationId: string | null;\n paidStatus: string | null;\n paymentMethod: string | null;\n pmsReferenceCode: string | null;\n sourceId: string | null;\n status: string | null;\n tenantId: string | null;\n uniqueRef: string | null;\n uniqueRef2: string | null;\n updatedAt: Timestamp | null;\n userdata: Json | null;\n}\n\nexport interface PublicSetting {\n automationId: string | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n group: string | null;\n id: Generated<string>;\n key: string;\n leftConnectionId: string | null;\n leftId: Generated<string | null>;\n leftType: string | null;\n lineClassification: string | null;\n listingId: string | null;\n localAutomationId: string | null;\n parentSettingId: string | null;\n partner: string | null;\n rightConnectionId: string | null;\n rightId: Generated<string | null>;\n rightType: string | null;\n sourceId: string | null;\n status: Generated<string | null>;\n target: string;\n targetUuid: Generated<string | null>;\n tenantId: string | null;\n updatedAt: Generated<Timestamp>;\n value: string | null;\n}\n\nexport interface PublicSource {\n /**\n * deprecated\n */\n appId: string | null;\n code: string | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n dataHref: string | null;\n date: Timestamp | null;\n description: string | null;\n id: Generated<string>;\n indexedJson: Json | null;\n isArchived: Generated<boolean | null>;\n json: Json | null;\n lastWebhookAt: Timestamp | null;\n /**\n * deprecated\n */\n listingConnectionId: string | null;\n /**\n * deprecated\n */\n listingId: string | null;\n modifiedAt: Timestamp | null;\n parentId: string | null;\n remoteId: string | null;\n reservationId: string | null;\n status: Generated<string | null>;\n tenantId: string;\n transformJson: Json | null;\n transformType: string | null;\n type: string;\n updatedAt: Generated<Timestamp | null>;\n version: Generated<number | null>;\n}\n\nexport interface PublicTask {\n createdAt: Generated<Timestamp | null>;\n id: Generated<string>;\n message: string | null;\n status: string | null;\n}\n\nexport interface PublicTaxStatement {\n centRentalRevenue: number | null;\n createdAt: Generated<Timestamp>;\n endAt: Timestamp | null;\n error: string | null;\n id: Generated<string>;\n metadata: Json | null;\n ownerId: string | null;\n startAt: Timestamp | null;\n status: Generated<string>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n url: string | null;\n userId: string | null;\n year: number;\n}\n\nexport interface PublicTaxStatementStatus {\n name: string;\n}\n\nexport interface PublicTenant {\n address: string | null;\n addressCity: string | null;\n addressCountry: string | null;\n addressLine1: string | null;\n addressPostcode: string | null;\n /**\n * JSON column for app-owned tenant settings exposed through APIs.\n */\n appSettings: Json | null;\n billingAddressData: Json | null;\n billingAddressId: string | null;\n billingCustomerId: string | null;\n billingPartnerId: string | null;\n billingPaymentMethodType: string | null;\n billingPlan: string | null;\n billingSubscriptionStatus: string | null;\n booksClosedAt: Timestamp | null;\n calculatedBillingPartnerId: Generated<string | null>;\n calculatedIsBillable: Generated<boolean | null>;\n calculatedStatus: Generated<string | null>;\n /**\n * Billing subscription is getting cancelled at date\n */\n cancelledAt: Timestamp | null;\n chartOfAccountTenantId: string | null;\n clerkId: string | null;\n colorPrimary: string | null;\n commissionPercentage: Numeric | null;\n companyName: string | null;\n companyTaxCode: string | null;\n createdAt: Generated<Timestamp>;\n dataRegion: Generated<string>;\n defaultCurrency: string | null;\n defaultRevenueRecognition: string | null;\n email: string | null;\n featureFlags: Generated<Json | null>;\n /**\n * JSON column for explicit VRPilot onboarding guide state.\n */\n guideOnboarding: Json | null;\n historicalStatementsImportedAt: Timestamp | null;\n id: Generated<string>;\n intercomId: string | null;\n isActive: Generated<boolean | null>;\n isGeneralLedger: Generated<boolean | null>;\n isOnboarding: Generated<boolean | null>;\n isTest: Generated<boolean | null>;\n logo: string | null;\n longTermStayNights: number | null;\n migratedFromTenantId: string | null;\n name: string;\n ownerPortalShowDraftStatements: boolean | null;\n partnerId: Generated<string | null>;\n /**\n * JSON column to hold team settings like \"owner_portal_show_reservation_totals\" or \"owner_portal_show_draft_statements\n */\n settingsData: Json | null;\n setup: Json | null;\n setupCompleted: Generated<boolean | null>;\n slug: Generated<string>;\n statementAddressData: Json | null;\n statementAddressId: string | null;\n statementStartAt: Timestamp | null;\n status: Generated<string | null>;\n storageRealm: Generated<string>;\n stripeId: string | null;\n stripeSubscriptionItemId: string | null;\n supportEmail: string | null;\n supportPhone: string | null;\n svixEndpoints: boolean | null;\n trialUntil: Timestamp | null;\n type: Generated<string | null>;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp | null>;\n website: string | null;\n}\n\nexport interface PublicTenantUser {\n createdAt: Generated<Timestamp | null>;\n id: Generated<string>;\n lastInvitedAt: Timestamp | null;\n notificationPreferences: Generated<Json | null>;\n role: Generated<string | null>;\n status: Generated<string | null>;\n tenantId: string;\n updatedAt: Generated<Timestamp | null>;\n userId: string;\n}\n\nexport interface PublicToken {\n createdAt: Generated<Timestamp>;\n expiresAt: Timestamp | null;\n id: Generated<string>;\n nanoId: Generated<string>;\n payload: Generated<Json>;\n tenantId: string | null;\n type: string | null;\n userId: string | null;\n}\n\nexport interface PublicUser {\n address: string | null;\n addressCity: string | null;\n addressCountry: string | null;\n addressId: string | null;\n addressLine1: string | null;\n addressPostcode: string | null;\n clerkId: string | null;\n companyName: string | null;\n companyType: string | null;\n createdAt: Generated<Timestamp | null>;\n email: string | null;\n firstName: string | null;\n id: Generated<string>;\n isAdmin: Generated<boolean>;\n lastName: string | null;\n lastSeen: Timestamp | null;\n name: string | null;\n notificationPreferences: Generated<Json | null>;\n partnerId: string | null;\n password: string | null;\n phone: string | null;\n secondaryEmails: Generated<Json | null>;\n status: Generated<string | null>;\n sub: string | null;\n taxId: string | null;\n trialExpiryAt: Timestamp | null;\n type: Generated<string | null>;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface PublicUserCompanyType {\n name: string;\n}\n\nexport interface PublicUserCompanyUser {\n companyUserId: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n updatedAt: Generated<Timestamp>;\n userId: string;\n}\n\nexport interface PublicView {\n group: string | null;\n icon: string | null;\n id: Generated<string>;\n isDefault: Generated<boolean | null>;\n retoolViewId: string | null;\n sortOrder: Generated<number | null>;\n stateData: Json | null;\n tenantId: string | null;\n title: string;\n type: string | null;\n}\n\nexport interface PublicViewNotificationEvents {\n createdAt: Timestamp | null;\n eventId: string | null;\n id: string | null;\n request: Json | null;\n response: Json | null;\n status: number | null;\n triggerName: string | null;\n}\n\nexport interface PublicViewNotificationEventsGroupedByDate {\n count: Int8 | null;\n dateTrunc: Timestamp | null;\n status: number | null;\n triggerName: string | null;\n}\n\nexport interface PublicViewWebhookEvents {\n createdAt: Timestamp | null;\n eventId: string | null;\n id: string | null;\n request: Json | null;\n response: Json | null;\n status: number | null;\n triggerName: string | null;\n}\n\nexport interface PublicViewWebhookEventsGroupedByDate {\n count: Int8 | null;\n dateTrunc: Timestamp | null;\n status: number | null;\n triggerName: string | null;\n}\n\nexport interface PublicWebhook {\n createdAt: Generated<Timestamp>;\n headers: Json | null;\n id: Generated<string>;\n tenantId: string | null;\n types: Generated<Json>;\n types2: string[] | null;\n url: string;\n}\n\nexport interface TrackingEvent {\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n name: string;\n packageName: string;\n props: Json;\n tenantId: string | null;\n timestamp: Generated<Timestamp | null>;\n trackedAt: Generated<Timestamp | null>;\n userId: string | null;\n}\n\nexport interface TrackingIntercomConversation {\n answer: string;\n conversationId: Int8;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n isRelevant: boolean;\n outcome: string;\n question: string;\n summary: string;\n tags: string;\n}\n\nexport interface TrackingIntercomConversationUser {\n conversationId: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n userId: string;\n}\n\nexport interface TrackingIntercomReport {\n action: string;\n category: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n summary: string;\n tags: string;\n}\n\nexport interface TrackingIntercomReportConversation {\n conversationId: string;\n id: Generated<string>;\n reportId: string;\n}\n\nexport interface TrackingMetricCache {\n connectionId: Generated<string>;\n date: Timestamp;\n name: Generated<string>;\n refreshedAt: Generated<Timestamp>;\n status: Generated<string>;\n tenantId: string;\n total: Numeric;\n type: string;\n}\n\nexport interface TrackingMonitorConnection {\n appId: string;\n connectionId: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n message: string | null;\n status: string | null;\n syncedAt: Timestamp | null;\n tenantId: string;\n triggerRef: string | null;\n updatedAt: Timestamp | null;\n version: number | null;\n}\n\nexport interface TrackingMonitorConnectionState {\n name: string;\n}\n\nexport interface WebhookDelivery {\n apiVersion: WebhookApiVersion;\n attemptCount: Generated<number>;\n body: string;\n claimedAt: Timestamp | null;\n claimedBy: string | null;\n createdAt: Generated<Timestamp>;\n deliveredAt: Timestamp | null;\n eventType: WebhookEventType;\n failedAt: Timestamp | null;\n id: Generated<string>;\n lastErrorCode: string | null;\n nextAttemptAt: Generated<Timestamp>;\n resourceId: string | null;\n resourceType: WebhookResourceType | null;\n retryAttemptCount: Generated<number>;\n sourceEventKey: string;\n sourceTenantId: string | null;\n status: Generated<WebhookDeliveryStatus>;\n subscriptionId: string;\n subscriptionRevision: Int8;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface WebhookDeliveryAttempt {\n attemptNumber: number;\n createdAt: Generated<Timestamp>;\n deliveryId: string;\n durationMs: number;\n errorClass: string | null;\n finishedAt: Timestamp;\n id: Generated<string>;\n responseExcerpt: string | null;\n responseStatus: number | null;\n startedAt: Timestamp;\n}\n\nexport interface WebhookDeliveryAttemptSecret {\n deliveryAttemptId: string;\n position: string;\n subscriptionSecretId: string;\n}\n\nexport interface WebhookRateLimit {\n key: string;\n ownerTenantId: string;\n requestCount: number;\n windowStartedAt: Timestamp;\n}\n\nexport interface WebhookSubscription {\n apiVersion: WebhookApiVersion;\n createdAt: Generated<Timestamp>;\n description: string | null;\n disabledAt: Timestamp | null;\n eventTypes: ArrayType<WebhookSubscriptionEventType>;\n id: Generated<string>;\n ownerTenantId: string;\n revision: Generated<Int8>;\n scope: WebhookSubscriptionScope;\n status: Generated<WebhookSubscriptionStatus>;\n updatedAt: Generated<Timestamp>;\n url: string;\n verifiedAt: Timestamp | null;\n}\n\nexport interface WebhookSubscriptionSecret {\n activeFrom: Generated<Timestamp>;\n createdAt: Generated<Timestamp>;\n encryptedSecret: string;\n encryptionKeyId: string;\n expiresAt: Timestamp | null;\n id: Generated<string>;\n revokedAt: Timestamp | null;\n subscriptionId: string;\n}\n\nexport interface DB {\n \"accounting.account\": AccountingAccount;\n \"accounting.accountAssignment\": AccountingAccountAssignment;\n \"accounting.accountAssignmentLineType\": AccountingAccountAssignmentLineType;\n \"accounting.accountAssignmentType\": AccountingAccountAssignmentType;\n \"accounting.accountCategory\": AccountingAccountCategory;\n \"accounting.accountClassification\": AccountingAccountClassification;\n \"accounting.accountConnection\": AccountingAccountConnection;\n \"accounting.accountReservationLineType\": AccountingAccountReservationLineType;\n \"accounting.accountReservationRevRec\": AccountingAccountReservationRevRec;\n \"accounting.accountType\": AccountingAccountType;\n \"accounting.bankAccountCategory\": AccountingBankAccountCategory;\n \"accounting.bankAccountType\": AccountingBankAccountType;\n \"accounting.bankRecord\": AccountingBankRecord;\n \"accounting.bankRecordTransactionPayment\": AccountingBankRecordTransactionPayment;\n \"accounting.bankRule\": AccountingBankRule;\n \"accounting.bankRuleAccount\": AccountingBankRuleAccount;\n \"accounting.bankRuleApplication\": AccountingBankRuleApplication;\n \"accounting.bankRuleApplicationStatus\": AccountingBankRuleApplicationStatus;\n \"accounting.bankRuleCondition\": AccountingBankRuleCondition;\n \"accounting.bankRuleLine\": AccountingBankRuleLine;\n \"accounting.bankRuleLineSplitMode\": AccountingBankRuleLineSplitMode;\n \"accounting.bankRuleMatchOperator\": AccountingBankRuleMatchOperator;\n \"accounting.bankRuleMode\": AccountingBankRuleMode;\n \"accounting.contact\": AccountingContact;\n \"accounting.contactCompanyType\": AccountingContactCompanyType;\n \"accounting.contactType\": AccountingContactType;\n \"accounting.journalEntry\": AccountingJournalEntry;\n \"accounting.journalEntryEntityType\": AccountingJournalEntryEntityType;\n \"accounting.journalEntryTriggerType\": AccountingJournalEntryTriggerType;\n \"accounting.journalEntryType\": AccountingJournalEntryType;\n \"accounting.ownerStatementProjection\": AccountingOwnerStatementProjection;\n \"accounting.ownerStatementProjectionListingRevision\": AccountingOwnerStatementProjectionListingRevision;\n \"accounting.ownerStatementProjectionRevision\": AccountingOwnerStatementProjectionRevision;\n \"accounting.paidStatus\": AccountingPaidStatus;\n \"accounting.party\": AccountingParty;\n \"accounting.rate\": AccountingRate;\n \"accounting.rateType\": AccountingRateType;\n \"accounting.taxBehavior\": AccountingTaxBehavior;\n \"accounting.transaction\": AccountingTransaction;\n \"accounting.transactionAttachment\": AccountingTransactionAttachment;\n \"accounting.transactionLine\": AccountingTransactionLine;\n \"accounting.transactionType\": AccountingTransactionType;\n \"audit.action\": AuditAction;\n \"audit.effect\": AuditEffect;\n \"audit.effectAttempt\": AuditEffectAttempt;\n \"audit.journalDelta\": AuditJournalDelta;\n \"audit.mutation\": AuditMutation;\n \"audit.publicEvent\": AuditPublicEvent;\n \"audit.publicEventEntryChange\": AuditPublicEventEntryChange;\n \"audit.publicEventProjectionState\": AuditPublicEventProjectionState;\n \"core.activeStatus\": CoreActiveStatus;\n \"core.change\": CoreChange;\n \"core.changeEntityType\": CoreChangeEntityType;\n \"core.changeLink\": CoreChangeLink;\n \"core.changeSourceLink\": CoreChangeSourceLink;\n \"core.changeStatus\": CoreChangeStatus;\n \"core.changeSyncType\": CoreChangeSyncType;\n \"core.changeType\": CoreChangeType;\n \"core.flow\": CoreFlow;\n \"core.flowMapping\": CoreFlowMapping;\n \"core.flowSetting\": CoreFlowSetting;\n \"core.issueMessageOverwrite\": CoreIssueMessageOverwrite;\n \"core.sync\": CoreSync;\n \"core.syncStatus\": CoreSyncStatus;\n \"core.syncSubtask\": CoreSyncSubtask;\n \"core.syncType\": CoreSyncType;\n \"hdbCatalog.eventInvocationLogs\": HdbCatalogEventInvocationLogs;\n \"hdbCatalog.eventLog\": HdbCatalogEventLog;\n \"hdbCatalog.hdbActionLog\": HdbCatalogHdbActionLog;\n \"hdbCatalog.hdbCronEventInvocationLogs\": HdbCatalogHdbCronEventInvocationLogs;\n \"hdbCatalog.hdbCronEvents\": HdbCatalogHdbCronEvents;\n \"hdbCatalog.hdbEventLogCleanups\": HdbCatalogHdbEventLogCleanups;\n \"hdbCatalog.hdbMetadata\": HdbCatalogHdbMetadata;\n \"hdbCatalog.hdbScheduledEventInvocationLogs\": HdbCatalogHdbScheduledEventInvocationLogs;\n \"hdbCatalog.hdbScheduledEvents\": HdbCatalogHdbScheduledEvents;\n \"hdbCatalog.hdbSchemaNotifications\": HdbCatalogHdbSchemaNotifications;\n \"hdbCatalog.hdbSourceCatalogVersion\": HdbCatalogHdbSourceCatalogVersion;\n \"hdbCatalog.hdbVersion\": HdbCatalogHdbVersion;\n \"health.tenantIssue\": HealthTenantIssue;\n \"health.tenantIssueSnapshot\": HealthTenantIssueSnapshot;\n \"public.accountCollection\": PublicAccountCollection;\n \"public.accountCollectionType\": PublicAccountCollectionType;\n \"public.address\": PublicAddress;\n \"public.app\": PublicApp;\n \"public.auditLog\": PublicAuditLog;\n \"public.automation\": PublicAutomation;\n \"public.automationTemplate\": PublicAutomationTemplate;\n \"public.billingPaymentMethodType\": PublicBillingPaymentMethodType;\n \"public.bookingChannel\": PublicBookingChannel;\n \"public.bookingChannelIconCandidate\": PublicBookingChannelIconCandidate;\n \"public.connection\": PublicConnection;\n \"public.connectionRoute\": PublicConnectionRoute;\n \"public.controlPlaneOutbox\": PublicControlPlaneOutbox;\n \"public.controlPlaneProjectionEvent\": PublicControlPlaneProjectionEvent;\n \"public.currency\": PublicCurrency;\n \"public.duplicateEmails\": PublicDuplicateEmails;\n \"public.emailTemplate\": PublicEmailTemplate;\n \"public.emailTemplateType\": PublicEmailTemplateType;\n \"public.feature\": PublicFeature;\n \"public.featureApproval\": PublicFeatureApproval;\n \"public.featureApprovalStatus\": PublicFeatureApprovalStatus;\n \"public.featureEnabledTeam\": PublicFeatureEnabledTeam;\n \"public.featureStatus\": PublicFeatureStatus;\n \"public.fileStorage\": PublicFileStorage;\n \"public.fileStorageSourceLink\": PublicFileStorageSourceLink;\n \"public.fileStorageTag\": PublicFileStorageTag;\n \"public.latestDuplicateEmails\": PublicLatestDuplicateEmails;\n \"public.listing\": PublicListing;\n \"public.listingCollection\": PublicListingCollection;\n \"public.listingConnection\": PublicListingConnection;\n \"public.listingOwner\": PublicListingOwner;\n \"public.listingOwnerRole\": PublicListingOwnerRole;\n \"public.listingOwnershipPeriod\": PublicListingOwnershipPeriod;\n \"public.listingOwnershipPeriodBusinessModel\": PublicListingOwnershipPeriodBusinessModel;\n \"public.listingOwnershipPeriodMember\": PublicListingOwnershipPeriodMember;\n \"public.owner\": PublicOwner;\n \"public.ownerStatement\": PublicOwnerStatement;\n \"public.ownerStatementLayout\": PublicOwnerStatementLayout;\n \"public.ownerStatementLayoutAccount\": PublicOwnerStatementLayoutAccount;\n \"public.ownerStatementLayoutListing\": PublicOwnerStatementLayoutListing;\n \"public.ownerStatementLine\": PublicOwnerStatementLine;\n \"public.ownerStatementOwner\": PublicOwnerStatementOwner;\n \"public.ownerStatementStatus\": PublicOwnerStatementStatus;\n \"public.ownerStatementTemplate\": PublicOwnerStatementTemplate;\n \"public.ownerType\": PublicOwnerType;\n \"public.ownerUserAccess\": PublicOwnerUserAccess;\n \"public.ownerUserAccessRole\": PublicOwnerUserAccessRole;\n \"public.payment\": PublicPayment;\n \"public.paymentLine\": PublicPaymentLine;\n \"public.paymentLineClassification\": PublicPaymentLineClassification;\n \"public.paymentStatus\": PublicPaymentStatus;\n \"public.paymentType\": PublicPaymentType;\n \"public.plaidConnectSession\": PublicPlaidConnectSession;\n \"public.recurringFee\": PublicRecurringFee;\n \"public.recurringFeeAccount\": PublicRecurringFeeAccount;\n \"public.recurringFeeAccountCondition\": PublicRecurringFeeAccountCondition;\n \"public.recurringFeeListingSubscription\": PublicRecurringFeeListingSubscription;\n \"public.recurringFeeListingSubscriptionRateType\": PublicRecurringFeeListingSubscriptionRateType;\n \"public.recurringFeeType\": PublicRecurringFeeType;\n \"public.reservation\": PublicReservation;\n \"public.reservationStatus\": PublicReservationStatus;\n \"public.reservationWithOccupancyStatus\": PublicReservationWithOccupancyStatus;\n \"public.setting\": PublicSetting;\n \"public.source\": PublicSource;\n \"public.task\": PublicTask;\n \"public.taxStatement\": PublicTaxStatement;\n \"public.taxStatementStatus\": PublicTaxStatementStatus;\n \"public.tenant\": PublicTenant;\n \"public.tenantUser\": PublicTenantUser;\n \"public.token\": PublicToken;\n \"public.user\": PublicUser;\n \"public.userCompanyType\": PublicUserCompanyType;\n \"public.userCompanyUser\": PublicUserCompanyUser;\n \"public.view\": PublicView;\n \"public.viewNotificationEvents\": PublicViewNotificationEvents;\n \"public.viewNotificationEventsGroupedByDate\": PublicViewNotificationEventsGroupedByDate;\n \"public.viewWebhookEvents\": PublicViewWebhookEvents;\n \"public.viewWebhookEventsGroupedByDate\": PublicViewWebhookEventsGroupedByDate;\n \"public.webhook\": PublicWebhook;\n \"tracking.event\": TrackingEvent;\n \"tracking.intercomConversation\": TrackingIntercomConversation;\n \"tracking.intercomConversationUser\": TrackingIntercomConversationUser;\n \"tracking.intercomReport\": TrackingIntercomReport;\n \"tracking.intercomReportConversation\": TrackingIntercomReportConversation;\n \"tracking.metricCache\": TrackingMetricCache;\n \"tracking.monitorConnection\": TrackingMonitorConnection;\n \"tracking.monitorConnectionState\": TrackingMonitorConnectionState;\n \"webhook.delivery\": WebhookDelivery;\n \"webhook.deliveryAttempt\": WebhookDeliveryAttempt;\n \"webhook.deliveryAttemptSecret\": WebhookDeliveryAttemptSecret;\n \"webhook.rateLimit\": WebhookRateLimit;\n \"webhook.subscription\": WebhookSubscription;\n \"webhook.subscriptionSecret\": WebhookSubscriptionSecret;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"v1.generated.js","sourceRoot":"src/","sources":["v1.generated.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/**\n * This file was generated by kysely-codegen.\n * Please do not edit it manually.\n */\n\nimport type { ColumnType } from \"kysely\";\n\nexport type AccountingJournalEntryInactiveReason = \"cancelledReservationLine\" | \"currencyMismatch\" | \"generalLedgerStartAt\" | \"inactiveAccount\" | \"listingInactive\" | \"nonPostingAccount\" | \"reservationGeneralLedgerStatusInactive\" | \"transactionInactive\" | \"unknownInactiveReason\";\n\nexport type AccountingJournalEntryLedger = \"historical\" | \"operating\" | \"trust\";\n\nexport type AccountingTransactionAttachmentStatus = \"attached\" | \"deleting\" | \"ready\" | \"uploading\";\n\nexport type ArrayType<T> = ArrayTypeImpl<T> extends (infer U)[]\n ? U[]\n : ArrayTypeImpl<T>;\n\nexport type ArrayTypeImpl<T> = T extends ColumnType<infer S, infer I, infer U>\n ? ColumnType<S[], I[], U[]>\n : T[];\n\nexport type AuditActionActorType = \"api_key\" | \"automation\" | \"sync\" | \"system\" | \"user\";\n\nexport type AuditEffectAttemptStatus = \"completed\" | \"failed\" | \"running\" | \"skipped_locked\";\n\nexport type AuditEffectStatus = \"claimed\" | \"completed\" | \"dead_letter\" | \"failed\" | \"pending\" | \"running\";\n\nexport type AuditJournalDeltaOperation = \"delete\" | \"insert\" | \"update\";\n\nexport type AuditPublicEventAccountingStatus = \"blocked\" | \"changed\" | \"failed\" | \"mixed\" | \"not_applicable\" | \"pending\" | \"unchanged\";\n\nexport type AuditPublicEventOperation = \"archive\" | \"create\" | \"delete\" | \"execute\" | \"recalculate\" | \"restore\" | \"update\";\n\nexport type AuditSourceType = \"api\" | \"automation\" | \"integration\" | \"portal\" | \"sync\" | \"system\";\n\nexport type Generated<T> = T extends ColumnType<infer S, infer I, infer U>\n ? ColumnType<S, I | undefined, U>\n : ColumnType<T, T | undefined, T>;\n\nexport type HealthTenantIssueCategory = \"criticalToSystem\" | \"criticalToUser\";\n\nexport type HealthTenantIssueCode = \"brokenConnections\" | \"cancelledReservationPaidWithoutAdjustment\" | \"closedPeriodUnattachedJournalEntries\" | \"duplicatedPayments\" | \"endedOwnershipNonZeroBalance\" | \"listingOwnershipPeriodNotFoundOnActiveJournals\" | \"missingOwnershipOrDeactivation\" | \"operatingBankAccountsWithoutOpex\" | \"outdatedConnections\" | \"partnerBillingInactive\" | \"partnerInactive\" | \"pmsMissingAccountingStart\" | \"publishedStatementUnpaid\" | \"reservationCurrencyMismatch\" | \"reservationGuestTotalsMismatch\" | \"reservationPaymentProjectionMismatch\" | \"teamInactive\" | \"unbalancedJournalEntries\" | \"unbalancedTransactionJournalEntries\" | \"unpaidReservations\";\n\nexport type HealthTenantIssueSeverity = \"error\" | \"warning\";\n\nexport type HealthTenantIssueStatus = \"open\" | \"resolved\";\n\nexport type Int8 = ColumnType<string, bigint | number | string, bigint | number | string>;\n\nexport type Json = JsonValue;\n\nexport type JsonArray = JsonValue[];\n\nexport type JsonObject = {\n [x: string]: JsonValue | undefined;\n};\n\nexport type JsonPrimitive = boolean | number | string | null;\n\nexport type JsonValue = JsonArray | JsonObject | JsonPrimitive;\n\nexport type Numeric = ColumnType<string, number | string, number | string>;\n\nexport type PublicFlowType = \"pull\" | \"push\";\n\nexport type PublicPlaidConnectMode = \"create\" | \"replace\" | \"update\";\n\nexport type PublicPlaidConnectStatus = \"awaitingConfiguration\" | \"completed\" | \"configuring\" | \"credentialsStored\" | \"discoveringAccounts\" | \"exchangeOutcomeUnknown\" | \"exchanging\" | \"expired\" | \"failed\" | \"pendingLink\";\n\nexport type PublicRecurringFeeConditionOperator = \"<\" | \"<=\" | \"=\" | \">\" | \">=\";\n\nexport type Timestamp = ColumnType<Date | string, Date | string, Date | string>;\n\nexport type WebhookApiVersion = \"2026-07-01\";\n\nexport type WebhookDeliveryStatus = \"canceled\" | \"delivering\" | \"failed\" | \"queued\" | \"retrying\" | \"succeeded\";\n\nexport type WebhookEventType = \"connection.changed\" | \"listing.changed\" | \"reservation.changed\" | \"statement.status.changed\" | \"sync.status.changed\" | \"team.issues.changed\" | \"transaction.changed\" | \"webhook.test\";\n\nexport type WebhookResourceType = \"connection\" | \"listing\" | \"reservation\" | \"statement\" | \"sync\" | \"team\" | \"transaction\" | \"webhook\";\n\nexport type WebhookSubscriptionEventType = \"connection.changed\" | \"listing.changed\" | \"reservation.changed\" | \"statement.status.changed\" | \"sync.status.changed\" | \"team.issues.changed\" | \"transaction.changed\";\n\nexport type WebhookSubscriptionScope = \"managedTeams\" | \"self\";\n\nexport type WebhookSubscriptionStatus = \"active\" | \"disabled\" | \"pending\";\n\nexport interface AccountingAccount {\n bankingCategory: string | null;\n bankingCurrency: string | null;\n bankingLast4: string | null;\n bankingType: string | null;\n categoryId: string;\n /**\n * deprecated\n */\n classification: string | null;\n createdAt: Generated<Timestamp | null>;\n id: Generated<string>;\n offsetAccountId: string | null;\n status: Generated<string>;\n tenantId: string | null;\n title: string;\n type: string;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface AccountingAccountAssignment {\n accountId: string | null;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n tenantId: string;\n type: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingAccountAssignmentLineType {\n accountAssignmentType: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n lineType: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingAccountAssignmentType {\n name: string;\n}\n\nexport interface AccountingAccountCategory {\n classification: string | null;\n id: Generated<string>;\n index: number;\n name: string;\n}\n\nexport interface AccountingAccountClassification {\n name: string;\n}\n\nexport interface AccountingAccountConnection {\n accountId: string | null;\n category: Generated<string | null>;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n currency: string | null;\n holderName: string | null;\n id: Generated<string>;\n lastDigits: string | null;\n name: string | null;\n persistentRef: string | null;\n sourceId: string | null;\n startDate: Timestamp | null;\n /**\n * The starting bank record for reconciliation\n */\n startingBankRecordId: string | null;\n status: Generated<string>;\n tenantId: string;\n type: Generated<string | null>;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingAccountReservationLineType {\n accountId: string | null;\n bookingChannel: string | null;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n lineType: string;\n revenueRecognition: string | null;\n status: Generated<string | null>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingAccountReservationRevRec {\n name: string;\n}\n\nexport interface AccountingAccountType {\n name: string;\n}\n\nexport interface AccountingBankAccountCategory {\n name: string;\n}\n\nexport interface AccountingBankAccountType {\n name: string;\n}\n\nexport interface AccountingBankRecord {\n accountConnectionId: string | null;\n accountId: string | null;\n calculatedCentBalance: number | null;\n calculatedCentTotalCorrection: number | null;\n centBalance: number | null;\n centTotal: number | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n date: Timestamp;\n description: string;\n id: Generated<string>;\n isBalanceAdjustment: Generated<boolean | null>;\n reconcileStatus: Generated<string>;\n sourceId: string | null;\n status: Generated<string>;\n tenantId: string;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingBankRecordTransactionPayment {\n bankRecordId: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n tenantId: string | null;\n transactionId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingBankRule {\n createdAt: Generated<Timestamp>;\n descriptionOverride: string | null;\n id: Generated<string>;\n matchMode: Generated<string>;\n mode: Generated<string>;\n name: string;\n priority: Generated<number>;\n status: Generated<string>;\n tenantId: string;\n transactionType: string;\n updatedAt: Generated<Timestamp>;\n usePriorMonthEnd: Generated<boolean>;\n vendorContactId: string | null;\n version: Generated<number>;\n}\n\nexport interface AccountingBankRuleAccount {\n accountId: string;\n bankRuleId: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingBankRuleApplication {\n bankRecordId: string;\n bankRuleId: string;\n createdAt: Generated<Timestamp>;\n createdTransactionId: string | null;\n errorMessage: string | null;\n id: Generated<string>;\n ruleVersion: number;\n status: string;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingBankRuleApplicationStatus {\n name: string;\n}\n\nexport interface AccountingBankRuleCondition {\n bankRuleId: string;\n centValue: number | null;\n conditionType: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n operator: string;\n sortOrder: number;\n tenantId: string;\n textValue: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingBankRuleLine {\n accountAssignmentType: string | null;\n accountId: string | null;\n bankRuleId: string;\n contactId: string | null;\n createdAt: Generated<Timestamp>;\n descriptionOverride: string | null;\n fixedCentAmount: number | null;\n id: Generated<string>;\n listingId: string | null;\n markupCentTotal: number | null;\n markupTaxBehavior: string | null;\n markupTaxRateId: string | null;\n party: string | null;\n percentageBps: number | null;\n sortOrder: number;\n splitMode: string;\n taxBehavior: string | null;\n taxRateId: string | null;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingBankRuleLineSplitMode {\n name: string;\n}\n\nexport interface AccountingBankRuleMatchOperator {\n name: string;\n}\n\nexport interface AccountingBankRuleMode {\n name: string;\n}\n\nexport interface AccountingContact {\n addressData: Json | null;\n /**\n * When NULL, the type is \"individual\"\n */\n companyType: string | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n defaultAccountId: string | null;\n email: string | null;\n firstName: string | null;\n id: Generated<string>;\n is1099PostalDelivery: Generated<boolean>;\n name: string;\n phone: string | null;\n rampLast4Digits: string | null;\n /**\n * Human-readable system ID (CNT-XXX-XXXX-XXX).\n */\n shortRef: string | null;\n sourceId: string | null;\n status: string | null;\n taxId: string | null;\n tenantId: string;\n /**\n * owner OR vendor\n */\n type: string;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingContactCompanyType {\n name: string;\n}\n\nexport interface AccountingContactType {\n name: string;\n}\n\nexport interface AccountingJournalEntry {\n accountId: string | null;\n attachedToOwnerStatementId: string | null;\n centTotal: Int8;\n contactId: string | null;\n createdAt: Generated<Timestamp | null>;\n currency: string;\n description: string | null;\n entitySortNum: Generated<number | null>;\n entityType: string | null;\n id: Generated<string>;\n inactiveReason: AccountingJournalEntryInactiveReason | null;\n ledger: Generated<AccountingJournalEntryLedger>;\n lineId: string | null;\n lineUniqueRef: string | null;\n listingId: string | null;\n listingOwnershipPeriodId: string | null;\n parentListingId: string | null;\n party: string | null;\n recurringFeeId: string | null;\n recurringFeeListingSubscriptionId: string | null;\n reservationId: string | null;\n status: Generated<string>;\n tenantId: string | null;\n transactionId: string | null;\n transferOwnerStatementId: string | null;\n triggerId: string | null;\n triggerType: string | null;\n txnAt: Timestamp | null;\n txnCode: Generated<string | null>;\n txnNum: number | null;\n type: string | null;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface AccountingJournalEntryEntityType {\n name: string;\n}\n\nexport interface AccountingJournalEntryTriggerType {\n name: string;\n}\n\nexport interface AccountingJournalEntryType {\n name: string;\n}\n\nexport interface AccountingOwnerStatementProjection {\n listingId: string | null;\n listingOwnershipPeriodId: string | null;\n payload: Json;\n projectionKey: string;\n refreshedAt: Generated<Timestamp>;\n sourceRevision: Int8;\n tenantId: string;\n variant: string;\n}\n\nexport interface AccountingOwnerStatementProjectionListingRevision {\n listingId: string;\n revision: Generated<Int8>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingOwnerStatementProjectionRevision {\n revision: Generated<Int8>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingPaidStatus {\n name: string;\n}\n\nexport interface AccountingParty {\n name: string;\n}\n\nexport interface AccountingRate {\n accountId: string | null;\n basisPoints: number;\n behavior: string | null;\n countryCode: string | null;\n createdAt: Generated<Timestamp>;\n currency: string | null;\n debitAccountId: string | null;\n description: string | null;\n id: Generated<string>;\n name: string | null;\n status: Generated<string | null>;\n tenantId: string;\n type: string | null;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingRateType {\n name: string;\n}\n\nexport interface AccountingTaxBehavior {\n name: string;\n}\n\nexport interface AccountingTransaction {\n accountId: string | null;\n centTotal: number;\n connectionId: string | null;\n contactId: string | null;\n createdAt: Generated<Timestamp>;\n currency: string;\n date: Timestamp;\n description: string;\n dueAt: Timestamp | null;\n id: Generated<string>;\n isOpeningBalance: Generated<boolean>;\n matchBankAccountLast4: string | null;\n matchLineTypeClassification: string | null;\n matchReservationConfirmationCode: string | null;\n matchReservationStripeGuestRef: string | null;\n matchStatus: Generated<string | null>;\n paidAt: Timestamp | null;\n paidStatus: Generated<string | null>;\n recurringFeeId: string | null;\n recurringPattern: Json | null;\n recurringTemplateId: string | null;\n /**\n * Human-readable system ID (EXP/DEP/PAY/TRF-XXX-XXXX-XXX depending on transaction.type).\n */\n shortRef: string | null;\n sourceId: string | null;\n status: Generated<string>;\n tenantId: string;\n type: string;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n webhookVersion: Generated<Int8>;\n}\n\nexport interface AccountingTransactionAttachment {\n byteSize: number;\n contentType: string;\n createdAt: Generated<Timestamp>;\n expiresAt: Timestamp | null;\n extension: string | null;\n filename: string;\n id: Generated<string>;\n isOwnerAccessible: Generated<boolean>;\n r2Key: string;\n status: Generated<AccountingTransactionAttachmentStatus>;\n tenantId: string;\n transactionId: string | null;\n updatedAt: Generated<Timestamp>;\n uploadedAt: Timestamp | null;\n}\n\nexport interface AccountingTransactionLine {\n accountAssignmentType: string | null;\n accountId: string | null;\n appliedAmountTaxBehavior: string | null;\n appliedAmountTaxRateId: string | null;\n centTotal: number;\n contactId: string | null;\n createdAt: Generated<Timestamp>;\n description: string;\n id: Generated<string>;\n listingId: string | null;\n markupCentTotal: number | null;\n markupTaxBehavior: string | null;\n markupTaxRateId: string | null;\n matchLineTypeClassification: string | null;\n matchReservationConfirmationCode: string | null;\n matchReservationStripeGuestRef: string | null;\n matchStatus: Generated<string | null>;\n ownerStatementId: string | null;\n party: string | null;\n reservationId: string | null;\n tenantId: string;\n transactionId: string;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AccountingTransactionType {\n name: string;\n}\n\nexport interface AuditAction {\n actionType: string;\n actorEmail: string | null;\n actorId: string | null;\n actorLabel: string | null;\n actorName: string | null;\n actorType: AuditActionActorType;\n apiVersion: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n message: string | null;\n parentActionId: string | null;\n payload: Json | null;\n publicEventProjectedAt: Generated<Timestamp | null>;\n requestId: string | null;\n rootEntityId: string | null;\n rootEntityType: string | null;\n source: string | null;\n sourceType: AuditSourceType | null;\n tenantId: string;\n traceId: string | null;\n}\n\nexport interface AuditEffect {\n accountingRelevant: Generated<boolean>;\n actionId: string;\n claimedAt: Timestamp | null;\n claimedBy: string | null;\n completedAt: Timestamp | null;\n createdAt: Generated<Timestamp>;\n effectType: string;\n entityId: string | null;\n entityType: string | null;\n id: Generated<string>;\n lastAttemptAt: Timestamp | null;\n lastError: string | null;\n maxRetries: Generated<number>;\n payload: Generated<Json>;\n priority: Generated<number>;\n retryCount: Generated<number>;\n rootEntityId: string | null;\n rootEntityType: string | null;\n status: AuditEffectStatus;\n tenantId: string;\n}\n\nexport interface AuditEffectAttempt {\n actionId: string;\n attemptNum: number;\n effectId: string;\n errorData: Json | null;\n errorMessage: string | null;\n finishedAt: Timestamp | null;\n id: Generated<string>;\n resultCategory: string | null;\n resultCode: string | null;\n retryable: boolean | null;\n startedAt: Generated<Timestamp>;\n status: AuditEffectAttemptStatus;\n tenantId: string;\n workerId: string | null;\n}\n\nexport interface AuditJournalDelta {\n accountCategoryIdAfter: string | null;\n accountCategoryIdBefore: string | null;\n accountCategoryNameAfter: string | null;\n accountCategoryNameBefore: string | null;\n accountClassificationAfter: string | null;\n accountClassificationBefore: string | null;\n accountIdAfter: string | null;\n accountIdBefore: string | null;\n accountNameAfter: string | null;\n accountNameBefore: string | null;\n actionId: string;\n apiVersion: string;\n attachedToOwnerStatementIdAfter: string | null;\n attachedToOwnerStatementIdBefore: string | null;\n centTotalAfter: Int8 | null;\n centTotalBefore: Int8 | null;\n changedAt: Generated<Timestamp>;\n changedFields: Generated<string[]>;\n currencyAfter: string | null;\n currencyBefore: string | null;\n diffJson: Json | null;\n effectId: string | null;\n id: Generated<string>;\n journalEntryId: string;\n ledgerAfter: string | null;\n ledgerBefore: string | null;\n listingOwnershipPeriodIdAfter: string | null;\n listingOwnershipPeriodIdBefore: string | null;\n mutationId: string | null;\n operation: AuditJournalDeltaOperation;\n partyAfter: string | null;\n partyBefore: string | null;\n rootEntityId: string | null;\n rootEntityType: string | null;\n statusAfter: string | null;\n statusBefore: string | null;\n tenantId: string;\n txnAtAfter: Timestamp | null;\n txnAtBefore: Timestamp | null;\n}\n\nexport interface AuditMutation {\n accountingRelevant: Generated<boolean>;\n actionId: string;\n captureOrder: Generated<Int8 | null>;\n changeRecord: Json;\n createdAt: Generated<Timestamp>;\n effectId: string | null;\n id: Generated<string>;\n op: string;\n publicChanges: Generated<Json>;\n rootEntityId: string | null;\n rootEntityType: string | null;\n subjectId: string;\n subjectType: string;\n tenantId: string;\n}\n\nexport interface AuditPublicEvent {\n accountingStatus: AuditPublicEventAccountingStatus;\n actionCode: string;\n actionId: string;\n actionSummary: string;\n actorEmail: string | null;\n actorId: string | null;\n actorLabel: string | null;\n actorName: string | null;\n actorType: AuditActionActorType;\n affectedAccountIds: Generated<string[]>;\n changedEntityTypes: Generated<string[]>;\n changedPaths: Generated<string[]>;\n entityChanges: Generated<Json>;\n entityName: string | null;\n entityUniqueRef: string | null;\n id: Generated<string>;\n hasChanges: Generated<boolean>;\n netEffect: Generated<Json>;\n occurredAt: Timestamp;\n operation: AuditPublicEventOperation;\n projectionFingerprint: string;\n projectedAt: Generated<Timestamp>;\n projectionVersion: Generated<number>;\n requestId: string | null;\n revision: Generated<number>;\n rootEntityId: string;\n rootEntityType: string;\n sourceType: AuditSourceType;\n teamName: string;\n teamUniqueRef: string | null;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface AuditPublicEventEntryChange {\n accountIdAfter: string | null;\n accountIdBefore: string | null;\n afterSnapshot: Json | null;\n beforeSnapshot: Json | null;\n causedBy: Json | null;\n changedAt: Timestamp;\n changedFields: Generated<string[]>;\n eventId: string;\n eventRevision: number;\n id: string;\n journalEntryId: string;\n operation: AuditJournalDeltaOperation;\n tenantId: string;\n}\n\nexport interface AuditPublicEventProjectionState {\n cutoverAt: Generated<Timestamp>;\n lastRecoveredAt: Timestamp | null;\n retainedFrom: Timestamp | null;\n singleton: Generated<boolean>;\n}\n\nexport interface CoreActiveStatus {\n name: string;\n}\n\nexport interface CoreChange {\n automationId: string | null;\n changeData: Json | null;\n changeFields: Generated<Json | null>;\n changeType: string | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n dataSha256: string | null;\n entityId: string;\n entityType: string;\n entityUniqueRef: string | null;\n id: Generated<string>;\n isLatestVersion: Generated<boolean | null>;\n message: string | null;\n seq: Int8 | null;\n status: string | null;\n syncId: string | null;\n syncSubtaskId: string | null;\n syncType: string | null;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n version: Numeric;\n}\n\nexport interface CoreChangeEntityType {\n name: string;\n}\n\nexport interface CoreChangeLink {\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n leftChangeId: string;\n rightChangeId: string;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface CoreChangeSourceLink {\n changeId: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n sourceId: string;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface CoreChangeStatus {\n name: string;\n}\n\nexport interface CoreChangeSyncType {\n name: string;\n}\n\nexport interface CoreChangeType {\n name: string;\n}\n\nexport interface CoreFlow {\n appId: string;\n description: string | null;\n eventListening: Generated<Json>;\n id: Generated<string>;\n isPublic: Generated<boolean>;\n leftType: string | null;\n mappingSchema: Json;\n rightType: string | null;\n runSchema: Generated<Json>;\n settingSchema: Json;\n title: string;\n type: Generated<PublicFlowType | null>;\n uniqueRef: string;\n useGlobalMapping: Generated<boolean>;\n}\n\nexport interface CoreFlowMapping {\n accountId: string | null;\n bookingChannelId: string | null;\n connectionId: string;\n contactId: string | null;\n createdAt: Generated<Timestamp>;\n flowId: string | null;\n id: Generated<string>;\n listingId: string | null;\n mappingKey: string;\n rateId: string | null;\n sourceId: string;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n value: Json | null;\n}\n\nexport interface CoreFlowSetting {\n accountId: string | null;\n bookingChannelId: string | null;\n connectionId: string;\n contactId: string | null;\n createdAt: Generated<Timestamp>;\n flowId: string;\n id: Generated<string>;\n listingId: string | null;\n rateId: string | null;\n settingKey: string;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n value: Json | null;\n}\n\nexport interface CoreIssueMessageOverwrite {\n createdAt: Generated<Timestamp | null>;\n id: Generated<string>;\n message: string;\n pattern: string;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface CoreSync {\n automationId: string | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n environment: string | null;\n id: Generated<string>;\n isCurrentOnAutomation: Generated<boolean | null>;\n isCurrentOnConnection: Generated<boolean>;\n message: string | null;\n params: Generated<Json>;\n status: string;\n syncedAt: Timestamp | null;\n tenantId: string;\n triggerRef: string | null;\n type: string;\n updatedAt: Generated<Timestamp>;\n userId: string | null;\n webhookVersion: Generated<Int8>;\n}\n\nexport interface CoreSyncStatus {\n name: string;\n}\n\nexport interface CoreSyncSubtask {\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n message: string | null;\n params: Generated<Json | null>;\n status: Generated<string>;\n syncId: string;\n tenantId: string;\n triggerRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface CoreSyncType {\n name: string;\n}\n\nexport interface HdbCatalogEventInvocationLogs {\n createdAt: Generated<Timestamp | null>;\n eventId: string | null;\n id: Generated<string>;\n request: Json | null;\n response: Json | null;\n status: number | null;\n triggerName: string | null;\n}\n\nexport interface HdbCatalogEventLog {\n archived: Generated<boolean>;\n createdAt: Generated<Timestamp | null>;\n delivered: Generated<boolean>;\n error: Generated<boolean>;\n id: Generated<string>;\n locked: Timestamp | null;\n nextRetryAt: Timestamp | null;\n payload: Json;\n schemaName: string;\n tableName: string;\n tries: Generated<number>;\n triggerName: string;\n}\n\nexport interface HdbCatalogHdbActionLog {\n actionName: string | null;\n createdAt: Generated<Timestamp>;\n errors: Json | null;\n id: Generated<string>;\n inputPayload: Json;\n requestHeaders: Json;\n responsePayload: Json | null;\n responseReceivedAt: Timestamp | null;\n sessionVariables: Json;\n status: string;\n}\n\nexport interface HdbCatalogHdbCronEventInvocationLogs {\n createdAt: Generated<Timestamp | null>;\n eventId: string | null;\n id: Generated<string>;\n request: Json | null;\n response: Json | null;\n status: number | null;\n}\n\nexport interface HdbCatalogHdbCronEvents {\n createdAt: Generated<Timestamp | null>;\n id: Generated<string>;\n nextRetryAt: Timestamp | null;\n scheduledTime: Timestamp;\n status: Generated<string>;\n tries: Generated<number>;\n triggerName: string;\n}\n\nexport interface HdbCatalogHdbEventLogCleanups {\n deletedEventInvocationLogs: number | null;\n deletedEventLogs: number | null;\n id: Generated<string>;\n scheduledAt: Timestamp;\n status: string;\n triggerName: string;\n}\n\nexport interface HdbCatalogHdbMetadata {\n id: number;\n metadata: Json;\n resourceVersion: Generated<number>;\n}\n\nexport interface HdbCatalogHdbScheduledEventInvocationLogs {\n createdAt: Generated<Timestamp | null>;\n eventId: string | null;\n id: Generated<string>;\n request: Json | null;\n response: Json | null;\n status: number | null;\n}\n\nexport interface HdbCatalogHdbScheduledEvents {\n comment: string | null;\n createdAt: Generated<Timestamp | null>;\n headerConf: Json | null;\n id: Generated<string>;\n nextRetryAt: Timestamp | null;\n payload: Json | null;\n retryConf: Json | null;\n scheduledTime: Timestamp;\n status: Generated<string>;\n tries: Generated<number>;\n webhookConf: Json;\n}\n\nexport interface HdbCatalogHdbSchemaNotifications {\n id: number;\n instanceId: string;\n notification: Json;\n resourceVersion: Generated<number>;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface HdbCatalogHdbSourceCatalogVersion {\n upgradedOn: Timestamp;\n version: string;\n}\n\nexport interface HdbCatalogHdbVersion {\n cliState: Generated<Json>;\n consoleState: Generated<Json>;\n eeClientId: string | null;\n eeClientSecret: string | null;\n hasuraUuid: Generated<string>;\n upgradedOn: Timestamp;\n version: string;\n}\n\nexport interface HealthTenantIssue {\n affected: number;\n category: HealthTenantIssueCategory;\n code: HealthTenantIssueCode;\n contentHash: string;\n context: Json;\n createdAt: Generated<Timestamp>;\n firstSeenAt: Timestamp;\n id: Generated<string>;\n lastChangedAt: Timestamp;\n message: string;\n openedAt: Timestamp;\n resolvedAt: Timestamp | null;\n severity: HealthTenantIssueSeverity;\n snapshotVersion: Int8;\n status: HealthTenantIssueStatus;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n version: Int8;\n}\n\nexport interface HealthTenantIssueSnapshot {\n computedAt: Timestamp | null;\n contentHash: string | null;\n createdAt: Generated<Timestamp>;\n dirtyAt: Generated<Timestamp>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n version: Generated<Int8>;\n}\n\nexport interface HealthTenantIssueRuleState {\n code: HealthTenantIssueCode;\n computedAt: Timestamp | null;\n computedVersion: Generated<Int8>;\n createdAt: Generated<Timestamp>;\n dirtyAt: Timestamp;\n dirtyVersion: Generated<Int8>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicAccountCollection {\n automationId: string | null;\n connectionId: string;\n createdAt: Generated<Timestamp | null>;\n id: Generated<string>;\n name: string;\n tenantId: string;\n type: Generated<string | null>;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface PublicAccountCollectionType {\n name: string;\n}\n\nexport interface PublicAddress {\n city: string | null;\n country: string | null;\n countryCode: string | null;\n createdAt: Generated<Timestamp>;\n full: string | null;\n id: Generated<string>;\n lastValidated: Timestamp | null;\n line: string | null;\n lineDetails: string | null;\n postalCode: string | null;\n state: string | null;\n stateCode: string | null;\n tenantId: string | null;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicApp {\n authentication: Generated<Json>;\n category: string | null;\n color: string | null;\n createdAt: Generated<Timestamp>;\n icon: string | null;\n iconRound: string | null;\n id: Generated<string>;\n info: Json | null;\n name: string;\n type: string;\n version: Generated<number>;\n}\n\nexport interface PublicAuditLog {\n actorUserId: string | null;\n automationId: string | null;\n connectionId: string | null;\n contactId: string | null;\n createdAt: Generated<Timestamp>;\n deltaJson: Json | null;\n id: Generated<string>;\n listingCollectionId: string | null;\n listingId: string | null;\n objectId: string | null;\n op: string;\n ownerId: string | null;\n ownerStatementId: string | null;\n ownerStatementLayoutId: string | null;\n tableName: string;\n taxStatementId: string | null;\n tenantId: string | null;\n userId: string | null;\n}\n\nexport interface PublicAutomation {\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n leftConnectionId: string | null;\n rightConnectionId: string | null;\n runSettings: Json | null;\n scheduleStatus: Generated<string | null>;\n status: Generated<string>;\n template: string | null;\n templateId: string | null;\n tenantId: string;\n title: string | null;\n triggerDevTaskOverwrite: string | null;\n updatedAt: Generated<Timestamp>;\n viewSettings: Json | null;\n}\n\nexport interface PublicAutomationTemplate {\n /**\n * determines whether this automation allows a team to configure multiple versions of this with the same leftConnection rightConnection combination\n */\n allowMultiple: boolean | null;\n appId: string | null;\n createdAt: Generated<Timestamp | null>;\n description: string;\n endpoint: string;\n id: Generated<string>;\n input: string;\n label: string | null;\n leftAppId: string | null;\n mappings: Json | null;\n name: string | null;\n params: Generated<Json | null>;\n preview: Json | null;\n rightAppId: string | null;\n settings: Json | null;\n stripePriceRef: string | null;\n title: string | null;\n triggerDevTask: string | null;\n triggers: Generated<Json | null>;\n type: string | null;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp | null>;\n version: string | null;\n visibility: string | null;\n}\n\nexport interface PublicBillingPaymentMethodType {\n name: string;\n}\n\nexport interface PublicBookingChannel {\n channelRef: string | null;\n color: string | null;\n createdAt: Generated<Timestamp>;\n icon: string | null;\n iconProvider: string | null;\n id: Generated<string>;\n lastGenerateRun: Timestamp | null;\n logo: string | null;\n logoProvider: string | null;\n selectedBookingChannelIconCandidateId: string | null;\n selectedBookingChannelLogoCandidateId: string | null;\n uniqueRef: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicBookingChannelIconCandidate {\n bookingChannelId: string;\n cloudflareImageId: string | null;\n color: string | null;\n comment: string | null;\n createdAt: Generated<Timestamp>;\n externalIcon: string | null;\n height: number | null;\n id: Generated<string>;\n provider: Generated<string>;\n source: string | null;\n updatedAt: Generated<Timestamp>;\n width: number | null;\n}\n\nexport interface PublicConnection {\n accountingEndAt: Timestamp | null;\n accountingStartAt: Timestamp | null;\n appId: string;\n backendVersion: number | null;\n createdAt: Generated<Timestamp>;\n credentials: Generated<Json | null>;\n disabled: Generated<boolean | null>;\n fetchNext: Generated<Timestamp | null>;\n fetchStatus: Generated<string>;\n icon: string | null;\n id: Generated<string>;\n lastFetch: Timestamp | null;\n metadata: Json | null;\n name: string;\n persistentState: Generated<Json | null>;\n status: Generated<string | null>;\n tenantId: string;\n type: string | null;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp | null>;\n version: number | null;\n webhookVersion: Generated<Int8>;\n}\n\nexport interface PublicConnectionRoute {\n connectionId: string;\n createdAt: Generated<Timestamp>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicControlPlaneOutbox {\n aggregateId: string;\n aggregateType: string;\n attempts: Generated<number>;\n createdAt: Generated<Timestamp>;\n dataRegion: string | null;\n eventType: string;\n eventVersion: number;\n id: Generated<string>;\n lastError: string | null;\n payload: Generated<Json>;\n publishedAt: Timestamp | null;\n}\n\nexport interface PublicControlPlaneProjectionEvent {\n aggregateId: string;\n aggregateType: string;\n appliedAt: Generated<Timestamp>;\n dataRegion: string;\n eventId: string;\n eventType: string;\n eventVersion: number;\n payload: Generated<Json>;\n}\n\nexport interface PublicCurrency {\n name: string;\n}\n\nexport interface PublicDuplicateEmails {\n count: Int8 | null;\n email: string | null;\n id: string | null;\n}\n\nexport interface PublicEmailTemplate {\n createdAt: Generated<Timestamp>;\n dataJson: Json;\n id: Generated<string>;\n tenantId: string;\n type: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicEmailTemplateType {\n name: string;\n}\n\nexport interface PublicFeature {\n createdAt: Generated<Timestamp>;\n description: string | null;\n id: Generated<string>;\n issueUrl: string | null;\n /**\n * user ids of user needed to approve this feature\n */\n requiredApprovals: Generated<Json | null>;\n status: Generated<string | null>;\n tenantId: string | null;\n title: string;\n updatedAt: Generated<Timestamp>;\n url: string | null;\n}\n\nexport interface PublicFeatureApproval {\n createdAt: Generated<Timestamp>;\n featureId: string;\n id: Generated<string>;\n status: Generated<string | null>;\n updatedAt: Generated<Timestamp>;\n userId: string;\n}\n\nexport interface PublicFeatureApprovalStatus {\n name: string;\n}\n\nexport interface PublicFeatureEnabledTeam {\n createdAt: Generated<Timestamp>;\n featureId: string;\n id: Generated<string>;\n status: Generated<string | null>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicFeatureStatus {\n name: string;\n}\n\nexport interface PublicFileStorage {\n connectionId: string | null;\n contactId: string | null;\n createdAt: Generated<Timestamp>;\n endDate: Timestamp | null;\n extension: string | null;\n filename: string;\n fileUri: string | null;\n id: Generated<string>;\n metadata: Json | null;\n newOwnerId: string | null;\n ownerUserId: string | null;\n reservationId: string | null;\n rowDateField: string | null;\n startDate: Timestamp | null;\n status: string | null;\n tenantId: string;\n type: string;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicFileStorageSourceLink {\n createdAt: Generated<Timestamp>;\n fileStorageId: string;\n id: Generated<string>;\n sourceId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicFileStorageTag {\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n tenantId: string;\n title: string;\n uniqueRef: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicLatestDuplicateEmails {\n createdAt: Timestamp | null;\n email: string | null;\n id: string | null;\n name: string | null;\n status: string | null;\n}\n\nexport interface PublicListing {\n address: string | null;\n addressCity: string | null;\n addressCountry: string | null;\n addressData: Json | null;\n addressId: string | null;\n addressState: string | null;\n bedrooms: number | null;\n beds: number | null;\n calculatedStatus: Generated<string | null>;\n calculatedTitle: Generated<string | null>;\n calculatedTitleNew: Generated<string | null>;\n centExpenseReserve: number | null;\n /**\n * Starting balance for tax statements\n */\n centTaxStartingBalance: number | null;\n collectionId: string | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp | null>;\n customCode: string | null;\n defaultCurrency: string | null;\n id: Generated<string>;\n imageUri: string | null;\n metadata: Generated<Json | null>;\n name: string | null;\n ownerContactId: string | null;\n parentId: string | null;\n pmsAddressData: Json | null;\n pmsStatus: string | null;\n /**\n * Human-readable system ID (LST-XXX-XXXX-XXX).\n */\n shortRef: string | null;\n sourceId: string | null;\n status: string | null;\n tenantId: string;\n title: string | null;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp | null>;\n webhookVersion: Generated<Int8>;\n}\n\nexport interface PublicListingCollection {\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n name: string;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicListingConnection {\n address: string | null;\n bedrooms: number | null;\n beds: number | null;\n connectionId: string;\n createdAt: Generated<Timestamp | null>;\n groupKey: string | null;\n id: Generated<string>;\n listingId: string | null;\n metadata: Json | null;\n name: string | null;\n nickname: string | null;\n sourceId: string | null;\n status: string | null;\n tenantId: string | null;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface PublicListingOwner {\n createdAt: Generated<Timestamp | null>;\n id: Generated<string>;\n listingId: string;\n newOwnerId: string | null;\n ownerId: string | null;\n role: Generated<string>;\n split: Numeric | null;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface PublicListingOwnerRole {\n name: string;\n}\n\nexport interface PublicListingOwnershipPeriod {\n businessModel: Generated<string | null>;\n createdAt: Generated<Timestamp>;\n endAt: Timestamp | null;\n id: Generated<string>;\n listingId: string;\n reserveCentTotal: Generated<Int8>;\n setListingInactive: Generated<boolean | null>;\n startAt: Generated<Timestamp | null>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicListingOwnershipPeriodBusinessModel {\n name: string;\n}\n\nexport interface PublicListingOwnershipPeriodMember {\n contactId: string | null;\n createdAt: Generated<Timestamp | null>;\n id: Generated<string>;\n ownerId: string | null;\n periodId: string;\n split: number;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface PublicOwner {\n addressId: string | null;\n companyType: string | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n email: string | null;\n firstName: string | null;\n id: Generated<string>;\n is1099PostalDelivery: Generated<boolean>;\n /**\n * Lastname or company name\n */\n name: string;\n phone: string | null;\n sourceId: string | null;\n status: Generated<string | null>;\n taxId: string | null;\n tenantId: string;\n type: string;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicOwnerStatement {\n automationId: string | null;\n centBalanceEnd: Int8 | null;\n centBalanceStart: Int8 | null;\n centExpenses: Int8 | null;\n centNetRevenue: Int8 | null;\n centPayedOut: number | null;\n centRentalRevenue: number | null;\n centTotal: Int8 | null;\n centTransfer: Int8 | null;\n createdAt: Generated<Timestamp>;\n currency: string | null;\n endAt: Timestamp;\n id: Generated<string>;\n layoutId: string | null;\n listingId: string | null;\n listingOwnershipPeriodId: string | null;\n metadata: Json | null;\n ownerId: string | null;\n party: Generated<string | null>;\n previousOwnerStatementId: string | null;\n sourceId: string | null;\n startAt: Timestamp;\n status: Generated<string>;\n templateId: string | null;\n templateJson: Json | null;\n tenantId: string;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n webhookVersion: Generated<Int8>;\n}\n\nexport interface PublicOwnerStatementLayout {\n automationId: string | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n dataJson: Json;\n id: Generated<string>;\n isDefault: Generated<boolean | null>;\n tenantId: string;\n title: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicOwnerStatementLayoutAccount {\n accountId: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n layoutId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicOwnerStatementLayoutListing {\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n layoutId: string;\n listingId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicOwnerStatementLine {\n centTotal: number;\n createdAt: Generated<Timestamp>;\n currency: string | null;\n customDescription: string | null;\n date: Timestamp | null;\n description: string | null;\n externalLink: string | null;\n groupId: string | null;\n id: Generated<string>;\n isOwnerPayout: Generated<boolean | null>;\n metadata: Json | null;\n ownerStatementId: string;\n reservationId: string | null;\n role: Generated<string | null>;\n sourceId: string | null;\n tenantId: string;\n uniqueRef: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicOwnerStatementOwner {\n createdAt: Generated<Timestamp | null>;\n id: Generated<string>;\n newOwnerId: string | null;\n ownerId: string | null;\n role: string;\n split: Numeric | null;\n statementId: string;\n updatedAt: Generated<Timestamp | null>;\n /**\n * The source id to the listing owner vendor\n */\n vendorSourceId: string | null;\n}\n\nexport interface PublicOwnerStatementStatus {\n name: string;\n}\n\nexport interface PublicOwnerStatementTemplate {\n balanceStartAt: Timestamp | null;\n billingAccountId: string | null;\n createdAt: Generated<Timestamp>;\n data: Json;\n id: Generated<string>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n version: Generated<number | null>;\n}\n\nexport interface PublicOwnerType {\n name: string;\n}\n\nexport interface PublicOwnerUserAccess {\n contactId: string | null;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n ownerId: string | null;\n role: Generated<string>;\n updatedAt: Generated<Timestamp>;\n userId: string;\n}\n\nexport interface PublicOwnerUserAccessRole {\n name: string;\n}\n\nexport interface PublicPayment {\n bankAccountDigits: string | null;\n centTotal: Generated<Int8 | null>;\n connectionId: string | null;\n createdAt: Generated<Timestamp | null>;\n currency: string | null;\n description: string | null;\n etaAt: Timestamp | null;\n id: Generated<string>;\n isReconciled: Generated<boolean | null>;\n issues: Json | null;\n metadata: Generated<Json | null>;\n payedAt: Timestamp | null;\n paymentMethod: string | null;\n sourceId: string | null;\n status: string | null;\n tenantId: string | null;\n type: string | null;\n uniqueRef: string | null;\n uniqueRefAir: string | null;\n uniqueRefTemp: string | null;\n updatedAt: Generated<Timestamp | null>;\n userdata: Generated<Json | null>;\n}\n\nexport interface PublicPaymentLine {\n accountId: string | null;\n centTotal: Int8 | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n description: string | null;\n editedType: string | null;\n effectiveType: Generated<string | null>;\n generalLedgerPostingAt: Timestamp | null;\n id: Generated<string>;\n lineId: string | null;\n listingId: string | null;\n matchReservationConfirmationCode: string | null;\n matchReservationStripeGuestRef: string | null;\n matchStatus: Generated<string | null>;\n metadata: Json | null;\n originCentTotal: Int8 | null;\n originCurrency: string | null;\n originExchangeRate: Numeric | null;\n party: string | null;\n paymentId: string | null;\n recurringFeeId: string | null;\n reservationId: string | null;\n skipReconcile: Generated<boolean | null>;\n tenantId: string | null;\n type: string | null;\n type2: string | null;\n uniqueRef: string | null;\n uniqueRef2: string | null;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface PublicPaymentLineClassification {\n appId: string | null;\n createdAt: Generated<Timestamp | null>;\n id: Generated<string | null>;\n name: string;\n type: string | null;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface PublicPaymentStatus {\n name: string;\n}\n\nexport interface PublicPaymentType {\n name: string;\n}\n\nexport interface PublicPlaidConnectSession {\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n environment: string;\n errorCode: string | null;\n errorRetryable: boolean | null;\n expiresAt: Timestamp;\n id: Generated<string>;\n itemId: string | null;\n leaseExpiresAt: Timestamp | null;\n linkSessionId: string | null;\n mode: PublicPlaidConnectMode;\n result: Json | null;\n status: Generated<PublicPlaidConnectStatus>;\n syncId: string | null;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicRecurringFee {\n bookingChannelsFilter: string[] | null;\n createdAt: Generated<Timestamp>;\n creditAccountId: string | null;\n creditParty: Generated<string>;\n debitAccountId: string | null;\n debitParty: Generated<string>;\n defaultRate: number | null;\n formula: string | null;\n icon: string | null;\n id: Generated<string>;\n rateType: Generated<string | null>;\n revenueRecognition: string | null;\n status: Generated<string>;\n statusFilter: string | null;\n taxBehavior: string | null;\n taxRateId: string | null;\n tenantId: string;\n title: string;\n type: Generated<string>;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicRecurringFeeAccount {\n accountId: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n recurringFeeId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicRecurringFeeAccountCondition {\n accountId: string;\n centValue: Int8;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n operator: PublicRecurringFeeConditionOperator;\n recurringFeeId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicRecurringFeeListingSubscription {\n createdAt: Generated<Timestamp>;\n endAt: Timestamp | null;\n id: Generated<string>;\n listingId: string;\n rate: number | null;\n rateType: Generated<string | null>;\n recurringFeeId: string;\n startAt: Generated<Timestamp | null>;\n status: Generated<string>;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface PublicRecurringFeeListingSubscriptionRateType {\n name: string;\n}\n\nexport interface PublicRecurringFeeType {\n name: string;\n}\n\nexport interface PublicReservation {\n bookedAt: Generated<Timestamp | null>;\n bookerName: string | null;\n bookingPlatform: string | null;\n calculatedDeduplicationRef: Generated<string | null>;\n cancelledAt: Timestamp | null;\n centAccommodation: number | null;\n centAdjustment: number | null;\n centCancellation: number | null;\n centCityTax: number | null;\n centCleaning: Int8 | null;\n centOta: number | null;\n centPaid: Int8 | null;\n centPaymentFee: number | null;\n centService: number | null;\n centTotal: Generated<Int8 | null>;\n channelId: string | null;\n checkIn: Timestamp | null;\n checkOut: Timestamp | null;\n confirmationCode: string | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp | null>;\n currency: string | null;\n editedCheckIn: Timestamp | null;\n editedCheckOut: Timestamp | null;\n effectiveCheckIn: Generated<Timestamp | null>;\n effectiveCheckOut: Generated<Timestamp | null>;\n effectiveNights: Generated<number | null>;\n generalLedgerPostingAt: Timestamp | null;\n generalLedgerStatus: Generated<string>;\n guestName: string | null;\n guests: number | null;\n id: Generated<string>;\n lineMap: Json | null;\n listingConnectionId: string | null;\n listingId: string | null;\n managerCentTotal: Int8 | null;\n matchPaymentCustomerRef: string | null;\n metadata: Json | null;\n nights: number | null;\n otaReservationId: string | null;\n ownersCentTotal: Int8 | null;\n paidStatus: string | null;\n paymentMethod: string | null;\n pmsReferenceCode: string | null;\n /**\n * Human-readable system ID (RES-XXX-XXXX-XXX).\n */\n shortRef: string | null;\n sourceId: string | null;\n status: Generated<string | null>;\n taxCentTotal: Int8 | null;\n tenantId: string | null;\n uniqueRef: string | null;\n uniqueRef2: string | null;\n updatedAt: Generated<Timestamp | null>;\n userdata: Generated<Json | null>;\n webhookVersion: Generated<Int8>;\n}\n\nexport interface PublicReservationStatus {\n name: string;\n}\n\nexport interface PublicReservationWithOccupancyStatus {\n bookedAt: Timestamp | null;\n bookerName: string | null;\n bookingPlatform: string | null;\n cancelledAt: Timestamp | null;\n centAccommodation: number | null;\n centAdjustment: number | null;\n centCancellation: number | null;\n centCityTax: number | null;\n centCleaning: Int8 | null;\n centOta: number | null;\n centPaid: Int8 | null;\n centPaymentFee: number | null;\n centService: number | null;\n centTotal: Int8 | null;\n channelId: string | null;\n checkIn: Timestamp | null;\n checkOut: Timestamp | null;\n confirmationCode: string | null;\n connectionId: string | null;\n createdAt: Timestamp | null;\n currency: string | null;\n guestName: string | null;\n guests: number | null;\n id: string | null;\n lineMap: Json | null;\n listingConnectionId: string | null;\n listingId: string | null;\n metadata: Json | null;\n nights: number | null;\n occupancyStatus: string | null;\n otaReservationId: string | null;\n paidStatus: string | null;\n paymentMethod: string | null;\n pmsReferenceCode: string | null;\n sourceId: string | null;\n status: string | null;\n tenantId: string | null;\n uniqueRef: string | null;\n uniqueRef2: string | null;\n updatedAt: Timestamp | null;\n userdata: Json | null;\n}\n\nexport interface PublicSetting {\n automationId: string | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n group: string | null;\n id: Generated<string>;\n key: string;\n leftConnectionId: string | null;\n leftId: Generated<string | null>;\n leftType: string | null;\n lineClassification: string | null;\n listingId: string | null;\n localAutomationId: string | null;\n parentSettingId: string | null;\n partner: string | null;\n rightConnectionId: string | null;\n rightId: Generated<string | null>;\n rightType: string | null;\n sourceId: string | null;\n status: Generated<string | null>;\n target: string;\n targetUuid: Generated<string | null>;\n tenantId: string | null;\n updatedAt: Generated<Timestamp>;\n value: string | null;\n}\n\nexport interface PublicSource {\n /**\n * deprecated\n */\n appId: string | null;\n code: string | null;\n connectionId: string | null;\n createdAt: Generated<Timestamp>;\n dataHref: string | null;\n date: Timestamp | null;\n description: string | null;\n id: Generated<string>;\n indexedJson: Json | null;\n isArchived: Generated<boolean | null>;\n json: Json | null;\n lastWebhookAt: Timestamp | null;\n /**\n * deprecated\n */\n listingConnectionId: string | null;\n /**\n * deprecated\n */\n listingId: string | null;\n modifiedAt: Timestamp | null;\n parentId: string | null;\n remoteId: string | null;\n reservationId: string | null;\n status: Generated<string | null>;\n tenantId: string;\n transformJson: Json | null;\n transformType: string | null;\n type: string;\n updatedAt: Generated<Timestamp | null>;\n version: Generated<number | null>;\n}\n\nexport interface PublicTask {\n createdAt: Generated<Timestamp | null>;\n id: Generated<string>;\n message: string | null;\n status: string | null;\n}\n\nexport interface PublicTaxStatement {\n centRentalRevenue: number | null;\n createdAt: Generated<Timestamp>;\n endAt: Timestamp | null;\n error: string | null;\n id: Generated<string>;\n metadata: Json | null;\n ownerId: string | null;\n startAt: Timestamp | null;\n status: Generated<string>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n url: string | null;\n userId: string | null;\n year: number;\n}\n\nexport interface PublicTaxStatementStatus {\n name: string;\n}\n\nexport interface PublicTenant {\n address: string | null;\n addressCity: string | null;\n addressCountry: string | null;\n addressLine1: string | null;\n addressPostcode: string | null;\n /**\n * JSON column for app-owned tenant settings exposed through APIs.\n */\n appSettings: Json | null;\n billingAddressData: Json | null;\n billingAddressId: string | null;\n billingCustomerId: string | null;\n billingPartnerId: string | null;\n billingPaymentMethodType: string | null;\n billingPlan: string | null;\n billingSubscriptionStatus: string | null;\n booksClosedAt: Timestamp | null;\n calculatedBillingPartnerId: Generated<string | null>;\n calculatedIsBillable: Generated<boolean | null>;\n calculatedStatus: Generated<string | null>;\n /**\n * Billing subscription is getting cancelled at date\n */\n cancelledAt: Timestamp | null;\n chartOfAccountTenantId: string | null;\n clerkId: string | null;\n colorPrimary: string | null;\n commissionPercentage: Numeric | null;\n companyName: string | null;\n companyTaxCode: string | null;\n createdAt: Generated<Timestamp>;\n dataRegion: Generated<string>;\n defaultCurrency: string | null;\n defaultRevenueRecognition: string | null;\n email: string | null;\n featureFlags: Generated<Json | null>;\n /**\n * JSON column for explicit VRPilot onboarding guide state.\n */\n guideOnboarding: Json | null;\n historicalStatementsImportedAt: Timestamp | null;\n id: Generated<string>;\n intercomId: string | null;\n isActive: Generated<boolean | null>;\n isGeneralLedger: Generated<boolean | null>;\n isOnboarding: Generated<boolean | null>;\n isTest: Generated<boolean | null>;\n logo: string | null;\n longTermStayNights: number | null;\n migratedFromTenantId: string | null;\n name: string;\n ownerPortalShowDraftStatements: boolean | null;\n partnerId: Generated<string | null>;\n /**\n * JSON column to hold team settings like \"owner_portal_show_reservation_totals\" or \"owner_portal_show_draft_statements\n */\n settingsData: Json | null;\n setup: Json | null;\n setupCompleted: Generated<boolean | null>;\n slug: Generated<string>;\n statementAddressData: Json | null;\n statementAddressId: string | null;\n statementStartAt: Timestamp | null;\n status: Generated<string | null>;\n storageRealm: Generated<string>;\n stripeId: string | null;\n stripeSubscriptionItemId: string | null;\n supportEmail: string | null;\n supportPhone: string | null;\n svixEndpoints: boolean | null;\n trialUntil: Timestamp | null;\n type: Generated<string | null>;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp | null>;\n website: string | null;\n}\n\nexport interface PublicTenantUser {\n createdAt: Generated<Timestamp | null>;\n id: Generated<string>;\n lastInvitedAt: Timestamp | null;\n notificationPreferences: Generated<Json | null>;\n role: Generated<string | null>;\n status: Generated<string | null>;\n tenantId: string;\n updatedAt: Generated<Timestamp | null>;\n userId: string;\n}\n\nexport interface PublicToken {\n createdAt: Generated<Timestamp>;\n expiresAt: Timestamp | null;\n id: Generated<string>;\n nanoId: Generated<string>;\n payload: Generated<Json>;\n tenantId: string | null;\n type: string | null;\n userId: string | null;\n}\n\nexport interface PublicUser {\n address: string | null;\n addressCity: string | null;\n addressCountry: string | null;\n addressId: string | null;\n addressLine1: string | null;\n addressPostcode: string | null;\n clerkId: string | null;\n companyName: string | null;\n companyType: string | null;\n createdAt: Generated<Timestamp | null>;\n email: string | null;\n firstName: string | null;\n id: Generated<string>;\n isAdmin: Generated<boolean>;\n lastName: string | null;\n lastSeen: Timestamp | null;\n name: string | null;\n notificationPreferences: Generated<Json | null>;\n partnerId: string | null;\n password: string | null;\n phone: string | null;\n secondaryEmails: Generated<Json | null>;\n status: Generated<string | null>;\n sub: string | null;\n taxId: string | null;\n trialExpiryAt: Timestamp | null;\n type: Generated<string | null>;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface PublicUserCompanyType {\n name: string;\n}\n\nexport interface PublicUserCompanyUser {\n companyUserId: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n updatedAt: Generated<Timestamp>;\n userId: string;\n}\n\nexport interface PublicView {\n group: string | null;\n icon: string | null;\n id: Generated<string>;\n isDefault: Generated<boolean | null>;\n retoolViewId: string | null;\n sortOrder: Generated<number | null>;\n stateData: Json | null;\n tenantId: string | null;\n title: string;\n type: string | null;\n}\n\nexport interface PublicViewNotificationEvents {\n createdAt: Timestamp | null;\n eventId: string | null;\n id: string | null;\n request: Json | null;\n response: Json | null;\n status: number | null;\n triggerName: string | null;\n}\n\nexport interface PublicViewNotificationEventsGroupedByDate {\n count: Int8 | null;\n dateTrunc: Timestamp | null;\n status: number | null;\n triggerName: string | null;\n}\n\nexport interface PublicViewWebhookEvents {\n createdAt: Timestamp | null;\n eventId: string | null;\n id: string | null;\n request: Json | null;\n response: Json | null;\n status: number | null;\n triggerName: string | null;\n}\n\nexport interface PublicViewWebhookEventsGroupedByDate {\n count: Int8 | null;\n dateTrunc: Timestamp | null;\n status: number | null;\n triggerName: string | null;\n}\n\nexport interface PublicWebhook {\n createdAt: Generated<Timestamp>;\n headers: Json | null;\n id: Generated<string>;\n tenantId: string | null;\n types: Generated<Json>;\n types2: string[] | null;\n url: string;\n}\n\nexport interface TrackingEvent {\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n name: string;\n packageName: string;\n props: Json;\n tenantId: string | null;\n timestamp: Generated<Timestamp | null>;\n trackedAt: Generated<Timestamp | null>;\n userId: string | null;\n}\n\nexport interface TrackingIntercomConversation {\n answer: string;\n conversationId: Int8;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n isRelevant: boolean;\n outcome: string;\n question: string;\n summary: string;\n tags: string;\n}\n\nexport interface TrackingIntercomConversationUser {\n conversationId: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n userId: string;\n}\n\nexport interface TrackingIntercomReport {\n action: string;\n category: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n summary: string;\n tags: string;\n}\n\nexport interface TrackingIntercomReportConversation {\n conversationId: string;\n id: Generated<string>;\n reportId: string;\n}\n\nexport interface TrackingMetricCache {\n connectionId: Generated<string>;\n date: Timestamp;\n name: Generated<string>;\n refreshedAt: Generated<Timestamp>;\n status: Generated<string>;\n tenantId: string;\n total: Numeric;\n type: string;\n}\n\nexport interface TrackingMonitorConnection {\n appId: string;\n connectionId: string;\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n message: string | null;\n status: string | null;\n syncedAt: Timestamp | null;\n tenantId: string;\n triggerRef: string | null;\n updatedAt: Timestamp | null;\n version: number | null;\n}\n\nexport interface TrackingMonitorConnectionState {\n name: string;\n}\n\nexport interface WebhookDelivery {\n apiVersion: WebhookApiVersion;\n attemptCount: Generated<number>;\n body: string;\n claimedAt: Timestamp | null;\n claimedBy: string | null;\n createdAt: Generated<Timestamp>;\n deliveredAt: Timestamp | null;\n eventType: WebhookEventType;\n failedAt: Timestamp | null;\n id: Generated<string>;\n lastErrorCode: string | null;\n nextAttemptAt: Generated<Timestamp>;\n resourceId: string | null;\n resourceType: WebhookResourceType | null;\n retryAttemptCount: Generated<number>;\n sourceEventKey: string;\n sourceTenantId: string | null;\n status: Generated<WebhookDeliveryStatus>;\n subscriptionId: string;\n subscriptionRevision: Int8;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface WebhookDeliveryAttempt {\n attemptNumber: number;\n createdAt: Generated<Timestamp>;\n deliveryId: string;\n durationMs: number;\n errorClass: string | null;\n finishedAt: Timestamp;\n id: Generated<string>;\n responseExcerpt: string | null;\n responseStatus: number | null;\n startedAt: Timestamp;\n}\n\nexport interface WebhookDeliveryAttemptSecret {\n deliveryAttemptId: string;\n position: string;\n subscriptionSecretId: string;\n}\n\nexport interface WebhookRateLimit {\n key: string;\n ownerTenantId: string;\n requestCount: number;\n windowStartedAt: Timestamp;\n}\n\nexport interface WebhookSubscription {\n apiVersion: WebhookApiVersion;\n createdAt: Generated<Timestamp>;\n description: string | null;\n disabledAt: Timestamp | null;\n eventTypes: ArrayType<WebhookSubscriptionEventType>;\n id: Generated<string>;\n ownerTenantId: string;\n revision: Generated<Int8>;\n scope: WebhookSubscriptionScope;\n status: Generated<WebhookSubscriptionStatus>;\n updatedAt: Generated<Timestamp>;\n url: string;\n verifiedAt: Timestamp | null;\n}\n\nexport interface WebhookSubscriptionSecret {\n activeFrom: Generated<Timestamp>;\n createdAt: Generated<Timestamp>;\n encryptedSecret: string;\n encryptionKeyId: string;\n expiresAt: Timestamp | null;\n id: Generated<string>;\n revokedAt: Timestamp | null;\n subscriptionId: string;\n}\n\nexport interface DB {\n \"accounting.account\": AccountingAccount;\n \"accounting.accountAssignment\": AccountingAccountAssignment;\n \"accounting.accountAssignmentLineType\": AccountingAccountAssignmentLineType;\n \"accounting.accountAssignmentType\": AccountingAccountAssignmentType;\n \"accounting.accountCategory\": AccountingAccountCategory;\n \"accounting.accountClassification\": AccountingAccountClassification;\n \"accounting.accountConnection\": AccountingAccountConnection;\n \"accounting.accountReservationLineType\": AccountingAccountReservationLineType;\n \"accounting.accountReservationRevRec\": AccountingAccountReservationRevRec;\n \"accounting.accountType\": AccountingAccountType;\n \"accounting.bankAccountCategory\": AccountingBankAccountCategory;\n \"accounting.bankAccountType\": AccountingBankAccountType;\n \"accounting.bankRecord\": AccountingBankRecord;\n \"accounting.bankRecordTransactionPayment\": AccountingBankRecordTransactionPayment;\n \"accounting.bankRule\": AccountingBankRule;\n \"accounting.bankRuleAccount\": AccountingBankRuleAccount;\n \"accounting.bankRuleApplication\": AccountingBankRuleApplication;\n \"accounting.bankRuleApplicationStatus\": AccountingBankRuleApplicationStatus;\n \"accounting.bankRuleCondition\": AccountingBankRuleCondition;\n \"accounting.bankRuleLine\": AccountingBankRuleLine;\n \"accounting.bankRuleLineSplitMode\": AccountingBankRuleLineSplitMode;\n \"accounting.bankRuleMatchOperator\": AccountingBankRuleMatchOperator;\n \"accounting.bankRuleMode\": AccountingBankRuleMode;\n \"accounting.contact\": AccountingContact;\n \"accounting.contactCompanyType\": AccountingContactCompanyType;\n \"accounting.contactType\": AccountingContactType;\n \"accounting.journalEntry\": AccountingJournalEntry;\n \"accounting.journalEntryEntityType\": AccountingJournalEntryEntityType;\n \"accounting.journalEntryTriggerType\": AccountingJournalEntryTriggerType;\n \"accounting.journalEntryType\": AccountingJournalEntryType;\n \"accounting.ownerStatementProjection\": AccountingOwnerStatementProjection;\n \"accounting.ownerStatementProjectionListingRevision\": AccountingOwnerStatementProjectionListingRevision;\n \"accounting.ownerStatementProjectionRevision\": AccountingOwnerStatementProjectionRevision;\n \"accounting.paidStatus\": AccountingPaidStatus;\n \"accounting.party\": AccountingParty;\n \"accounting.rate\": AccountingRate;\n \"accounting.rateType\": AccountingRateType;\n \"accounting.taxBehavior\": AccountingTaxBehavior;\n \"accounting.transaction\": AccountingTransaction;\n \"accounting.transactionAttachment\": AccountingTransactionAttachment;\n \"accounting.transactionLine\": AccountingTransactionLine;\n \"accounting.transactionType\": AccountingTransactionType;\n \"audit.action\": AuditAction;\n \"audit.effect\": AuditEffect;\n \"audit.effectAttempt\": AuditEffectAttempt;\n \"audit.journalDelta\": AuditJournalDelta;\n \"audit.mutation\": AuditMutation;\n \"audit.publicEvent\": AuditPublicEvent;\n \"audit.publicEventEntryChange\": AuditPublicEventEntryChange;\n \"audit.publicEventProjectionState\": AuditPublicEventProjectionState;\n \"core.activeStatus\": CoreActiveStatus;\n \"core.change\": CoreChange;\n \"core.changeEntityType\": CoreChangeEntityType;\n \"core.changeLink\": CoreChangeLink;\n \"core.changeSourceLink\": CoreChangeSourceLink;\n \"core.changeStatus\": CoreChangeStatus;\n \"core.changeSyncType\": CoreChangeSyncType;\n \"core.changeType\": CoreChangeType;\n \"core.flow\": CoreFlow;\n \"core.flowMapping\": CoreFlowMapping;\n \"core.flowSetting\": CoreFlowSetting;\n \"core.issueMessageOverwrite\": CoreIssueMessageOverwrite;\n \"core.sync\": CoreSync;\n \"core.syncStatus\": CoreSyncStatus;\n \"core.syncSubtask\": CoreSyncSubtask;\n \"core.syncType\": CoreSyncType;\n \"hdbCatalog.eventInvocationLogs\": HdbCatalogEventInvocationLogs;\n \"hdbCatalog.eventLog\": HdbCatalogEventLog;\n \"hdbCatalog.hdbActionLog\": HdbCatalogHdbActionLog;\n \"hdbCatalog.hdbCronEventInvocationLogs\": HdbCatalogHdbCronEventInvocationLogs;\n \"hdbCatalog.hdbCronEvents\": HdbCatalogHdbCronEvents;\n \"hdbCatalog.hdbEventLogCleanups\": HdbCatalogHdbEventLogCleanups;\n \"hdbCatalog.hdbMetadata\": HdbCatalogHdbMetadata;\n \"hdbCatalog.hdbScheduledEventInvocationLogs\": HdbCatalogHdbScheduledEventInvocationLogs;\n \"hdbCatalog.hdbScheduledEvents\": HdbCatalogHdbScheduledEvents;\n \"hdbCatalog.hdbSchemaNotifications\": HdbCatalogHdbSchemaNotifications;\n \"hdbCatalog.hdbSourceCatalogVersion\": HdbCatalogHdbSourceCatalogVersion;\n \"hdbCatalog.hdbVersion\": HdbCatalogHdbVersion;\n \"health.tenantIssue\": HealthTenantIssue;\n \"health.tenantIssueRuleState\": HealthTenantIssueRuleState;\n \"health.tenantIssueSnapshot\": HealthTenantIssueSnapshot;\n \"public.accountCollection\": PublicAccountCollection;\n \"public.accountCollectionType\": PublicAccountCollectionType;\n \"public.address\": PublicAddress;\n \"public.app\": PublicApp;\n \"public.auditLog\": PublicAuditLog;\n \"public.automation\": PublicAutomation;\n \"public.automationTemplate\": PublicAutomationTemplate;\n \"public.billingPaymentMethodType\": PublicBillingPaymentMethodType;\n \"public.bookingChannel\": PublicBookingChannel;\n \"public.bookingChannelIconCandidate\": PublicBookingChannelIconCandidate;\n \"public.connection\": PublicConnection;\n \"public.connectionRoute\": PublicConnectionRoute;\n \"public.controlPlaneOutbox\": PublicControlPlaneOutbox;\n \"public.controlPlaneProjectionEvent\": PublicControlPlaneProjectionEvent;\n \"public.currency\": PublicCurrency;\n \"public.duplicateEmails\": PublicDuplicateEmails;\n \"public.emailTemplate\": PublicEmailTemplate;\n \"public.emailTemplateType\": PublicEmailTemplateType;\n \"public.feature\": PublicFeature;\n \"public.featureApproval\": PublicFeatureApproval;\n \"public.featureApprovalStatus\": PublicFeatureApprovalStatus;\n \"public.featureEnabledTeam\": PublicFeatureEnabledTeam;\n \"public.featureStatus\": PublicFeatureStatus;\n \"public.fileStorage\": PublicFileStorage;\n \"public.fileStorageSourceLink\": PublicFileStorageSourceLink;\n \"public.fileStorageTag\": PublicFileStorageTag;\n \"public.latestDuplicateEmails\": PublicLatestDuplicateEmails;\n \"public.listing\": PublicListing;\n \"public.listingCollection\": PublicListingCollection;\n \"public.listingConnection\": PublicListingConnection;\n \"public.listingOwner\": PublicListingOwner;\n \"public.listingOwnerRole\": PublicListingOwnerRole;\n \"public.listingOwnershipPeriod\": PublicListingOwnershipPeriod;\n \"public.listingOwnershipPeriodBusinessModel\": PublicListingOwnershipPeriodBusinessModel;\n \"public.listingOwnershipPeriodMember\": PublicListingOwnershipPeriodMember;\n \"public.owner\": PublicOwner;\n \"public.ownerStatement\": PublicOwnerStatement;\n \"public.ownerStatementLayout\": PublicOwnerStatementLayout;\n \"public.ownerStatementLayoutAccount\": PublicOwnerStatementLayoutAccount;\n \"public.ownerStatementLayoutListing\": PublicOwnerStatementLayoutListing;\n \"public.ownerStatementLine\": PublicOwnerStatementLine;\n \"public.ownerStatementOwner\": PublicOwnerStatementOwner;\n \"public.ownerStatementStatus\": PublicOwnerStatementStatus;\n \"public.ownerStatementTemplate\": PublicOwnerStatementTemplate;\n \"public.ownerType\": PublicOwnerType;\n \"public.ownerUserAccess\": PublicOwnerUserAccess;\n \"public.ownerUserAccessRole\": PublicOwnerUserAccessRole;\n \"public.payment\": PublicPayment;\n \"public.paymentLine\": PublicPaymentLine;\n \"public.paymentLineClassification\": PublicPaymentLineClassification;\n \"public.paymentStatus\": PublicPaymentStatus;\n \"public.paymentType\": PublicPaymentType;\n \"public.plaidConnectSession\": PublicPlaidConnectSession;\n \"public.recurringFee\": PublicRecurringFee;\n \"public.recurringFeeAccount\": PublicRecurringFeeAccount;\n \"public.recurringFeeAccountCondition\": PublicRecurringFeeAccountCondition;\n \"public.recurringFeeListingSubscription\": PublicRecurringFeeListingSubscription;\n \"public.recurringFeeListingSubscriptionRateType\": PublicRecurringFeeListingSubscriptionRateType;\n \"public.recurringFeeType\": PublicRecurringFeeType;\n \"public.reservation\": PublicReservation;\n \"public.reservationStatus\": PublicReservationStatus;\n \"public.reservationWithOccupancyStatus\": PublicReservationWithOccupancyStatus;\n \"public.setting\": PublicSetting;\n \"public.source\": PublicSource;\n \"public.task\": PublicTask;\n \"public.taxStatement\": PublicTaxStatement;\n \"public.taxStatementStatus\": PublicTaxStatementStatus;\n \"public.tenant\": PublicTenant;\n \"public.tenantUser\": PublicTenantUser;\n \"public.token\": PublicToken;\n \"public.user\": PublicUser;\n \"public.userCompanyType\": PublicUserCompanyType;\n \"public.userCompanyUser\": PublicUserCompanyUser;\n \"public.view\": PublicView;\n \"public.viewNotificationEvents\": PublicViewNotificationEvents;\n \"public.viewNotificationEventsGroupedByDate\": PublicViewNotificationEventsGroupedByDate;\n \"public.viewWebhookEvents\": PublicViewWebhookEvents;\n \"public.viewWebhookEventsGroupedByDate\": PublicViewWebhookEventsGroupedByDate;\n \"public.webhook\": PublicWebhook;\n \"tracking.event\": TrackingEvent;\n \"tracking.intercomConversation\": TrackingIntercomConversation;\n \"tracking.intercomConversationUser\": TrackingIntercomConversationUser;\n \"tracking.intercomReport\": TrackingIntercomReport;\n \"tracking.intercomReportConversation\": TrackingIntercomReportConversation;\n \"tracking.metricCache\": TrackingMetricCache;\n \"tracking.monitorConnection\": TrackingMonitorConnection;\n \"tracking.monitorConnectionState\": TrackingMonitorConnectionState;\n \"webhook.delivery\": WebhookDelivery;\n \"webhook.deliveryAttempt\": WebhookDeliveryAttempt;\n \"webhook.deliveryAttemptSecret\": WebhookDeliveryAttemptSecret;\n \"webhook.rateLimit\": WebhookRateLimit;\n \"webhook.subscription\": WebhookSubscription;\n \"webhook.subscriptionSecret\": WebhookSubscriptionSecret;\n}\n"]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { Kysely } from 'kysely';
|
|
2
|
+
import { sql } from 'kysely';
|
|
3
|
+
|
|
4
|
+
export async function up(db: Kysely<unknown>): Promise<void> {
|
|
5
|
+
await sql`
|
|
6
|
+
create table health.tenant_issue_rule_state (
|
|
7
|
+
tenant_id uuid not null
|
|
8
|
+
references public.tenant(id) on delete cascade,
|
|
9
|
+
code health.tenant_issue_code not null,
|
|
10
|
+
dirty_at timestamptz not null,
|
|
11
|
+
computed_at timestamptz,
|
|
12
|
+
dirty_version bigint not null default 1,
|
|
13
|
+
computed_version bigint not null default 0,
|
|
14
|
+
created_at timestamptz not null default now(),
|
|
15
|
+
updated_at timestamptz not null default now(),
|
|
16
|
+
primary key (tenant_id, code)
|
|
17
|
+
);
|
|
18
|
+
`.execute(db);
|
|
19
|
+
await sql`
|
|
20
|
+
create index tenant_issue_rule_state_dirty_idx
|
|
21
|
+
on health.tenant_issue_rule_state (dirty_at, tenant_id, code)
|
|
22
|
+
where dirty_version > computed_version;
|
|
23
|
+
`.execute(db);
|
|
24
|
+
await sql`
|
|
25
|
+
insert into health.tenant_issue_rule_state (
|
|
26
|
+
tenant_id,
|
|
27
|
+
code,
|
|
28
|
+
dirty_at,
|
|
29
|
+
computed_at,
|
|
30
|
+
computed_version,
|
|
31
|
+
created_at,
|
|
32
|
+
updated_at
|
|
33
|
+
)
|
|
34
|
+
select
|
|
35
|
+
snapshot.tenant_id,
|
|
36
|
+
code,
|
|
37
|
+
snapshot.dirty_at,
|
|
38
|
+
snapshot.computed_at,
|
|
39
|
+
case
|
|
40
|
+
when snapshot.computed_at >= snapshot.dirty_at then 1
|
|
41
|
+
else 0
|
|
42
|
+
end,
|
|
43
|
+
snapshot.created_at,
|
|
44
|
+
snapshot.updated_at
|
|
45
|
+
from health.tenant_issue_snapshot as snapshot
|
|
46
|
+
cross join unnest(enum_range(null::health.tenant_issue_code)) as code;
|
|
47
|
+
`.execute(db);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export async function down(db: Kysely<unknown>): Promise<void> {
|
|
51
|
+
await sql`drop table health.tenant_issue_rule_state;`.execute(db);
|
|
52
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ColumnType
|
|
1
|
+
import type { ColumnType } from 'kysely';
|
|
2
2
|
export type Generated<T> = T extends ColumnType<infer S, infer I, infer U> ? ColumnType<S, I | undefined, U> : ColumnType<T, T | undefined, T>;
|
|
3
3
|
export type Json = JsonValue;
|
|
4
4
|
export type JsonArray = JsonValue[];
|
|
@@ -188,4 +188,3 @@ export interface ControlPlaneDB {
|
|
|
188
188
|
'public.token': ControlPlaneToken;
|
|
189
189
|
'public.user': ControlPlaneUser;
|
|
190
190
|
}
|
|
191
|
-
export type ControlPlaneKysely = K<ControlPlaneDB>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"src/","sources":["control-plane/index.ts"],"names":[],"mappings":"","sourcesContent":["import type { ColumnType
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"src/","sources":["control-plane/index.ts"],"names":[],"mappings":"","sourcesContent":["import type { ColumnType } from 'kysely';\n\nexport type Generated<T> =\n T extends ColumnType<infer S, infer I, infer U>\n ? ColumnType<S, I | undefined, U>\n : ColumnType<T, T | undefined, T>;\n\nexport type Json = JsonValue;\n\nexport type JsonArray = JsonValue[];\n\nexport type JsonObject = {\n [x: string]: JsonValue | undefined;\n};\n\nexport type JsonPrimitive = boolean | number | string | null;\n\nexport type JsonValue = JsonArray | JsonObject | JsonPrimitive;\n\nexport type Timestamp = ColumnType<Date | string, Date | string, Date | string>;\n\nexport interface ControlPlaneApp {\n authentication: Generated<Json>;\n category: string | null;\n color: string | null;\n createdAt: Generated<Timestamp>;\n icon: string | null;\n iconRound: string | null;\n id: Generated<string>;\n info: Json | null;\n name: string;\n type: string;\n version: Generated<number>;\n}\n\nexport interface ControlPlaneBookingChannel {\n channelRef: string | null;\n color: string | null;\n createdAt: Generated<Timestamp>;\n icon: string | null;\n iconProvider: string | null;\n id: Generated<string>;\n lastGenerateRun: Timestamp | null;\n logo: string | null;\n logoProvider: string | null;\n selectedBookingChannelIconCandidateId: string | null;\n selectedBookingChannelLogoCandidateId: string | null;\n uniqueRef: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface ControlPlaneBookingChannelIconCandidate {\n bookingChannelId: string;\n cloudflareImageId: string | null;\n color: string | null;\n comment: string | null;\n createdAt: Generated<Timestamp>;\n externalIcon: string | null;\n height: number | null;\n id: Generated<string>;\n provider: Generated<string>;\n source: string | null;\n updatedAt: Generated<Timestamp>;\n width: number | null;\n}\n\nexport interface ControlPlaneCurrency {\n name: string;\n}\n\nexport interface ControlPlaneEvent {\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n name: string;\n packageName: string;\n props: Json;\n tenantId: string | null;\n timestamp: Generated<Timestamp>;\n trackedAt: Generated<Timestamp | null>;\n userId: string | null;\n}\n\nexport interface ControlPlaneConnectionRoute {\n connectionId: string;\n createdAt: Generated<Timestamp>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface ControlPlaneFeature {\n createdAt: Generated<Timestamp>;\n description: string | null;\n id: Generated<string>;\n issueUrl: string | null;\n requiredApprovals: Generated<Json | null>;\n status: Generated<string | null>;\n tenantId: string | null;\n title: string;\n updatedAt: Generated<Timestamp>;\n url: string | null;\n}\n\nexport interface ControlPlaneFeatureEnabledTeam {\n createdAt: Generated<Timestamp>;\n featureId: string;\n id: Generated<string>;\n status: Generated<string | null>;\n tenantId: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface ControlPlaneFeatureApproval {\n createdAt: Generated<Timestamp>;\n featureId: string;\n id: Generated<string>;\n status: Generated<string | null>;\n updatedAt: Generated<Timestamp>;\n userId: string;\n}\n\nexport interface ControlPlaneIssueMessageOverwrite {\n createdAt: Generated<Timestamp>;\n id: Generated<string>;\n message: string;\n pattern: string;\n updatedAt: Generated<Timestamp>;\n}\n\nexport interface ControlPlaneOutbox {\n aggregateId: string;\n aggregateType: string;\n attempts: Generated<number>;\n createdAt: Generated<Timestamp>;\n dataRegion: string | null;\n eventType: string;\n eventVersion: number;\n id: Generated<string>;\n lastError: string | null;\n payload: Generated<Json>;\n publishedAt: Timestamp | null;\n}\n\nexport interface ControlPlaneTenant {\n billingPartnerId: string | null;\n billingPlan: string | null;\n createdAt: Generated<Timestamp>;\n dataRegion: Generated<string>;\n id: Generated<string>;\n name: string;\n partnerId: string | null;\n slug: string;\n status: Generated<string | null>;\n storageRealm: Generated<string>;\n type: Generated<string | null>;\n uniqueRef: string | null;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface ControlPlaneTenantUser {\n createdAt: Generated<Timestamp | null>;\n id: Generated<string>;\n lastInvitedAt: Timestamp | null;\n role: Generated<string | null>;\n status: Generated<string | null>;\n tenantId: string;\n updatedAt: Generated<Timestamp | null>;\n userId: string;\n}\n\nexport interface ControlPlaneToken {\n createdAt: Generated<Timestamp>;\n expiresAt: Timestamp | null;\n id: Generated<string>;\n nanoId: Generated<string>;\n payload: Generated<Json>;\n tenantId: string | null;\n type: string | null;\n userId: string | null;\n}\n\nexport interface ControlPlaneUser {\n clerkId: string | null;\n createdAt: Generated<Timestamp | null>;\n email: string | null;\n firstName: string | null;\n id: Generated<string>;\n isAdmin: Generated<boolean>;\n lastName: string | null;\n lastSeen: Timestamp | null;\n name: string | null;\n partnerId: string | null;\n phone: string | null;\n secondaryEmails: Generated<Json>;\n status: Generated<string | null>;\n sub: string | null;\n type: Generated<string | null>;\n updatedAt: Generated<Timestamp | null>;\n}\n\nexport interface ControlPlaneDB {\n 'core.issueMessageOverwrite': ControlPlaneIssueMessageOverwrite;\n 'public.app': ControlPlaneApp;\n 'public.bookingChannel': ControlPlaneBookingChannel;\n 'public.bookingChannelIconCandidate': ControlPlaneBookingChannelIconCandidate;\n 'public.connectionRoute': ControlPlaneConnectionRoute;\n 'public.currency': ControlPlaneCurrency;\n 'public.events': ControlPlaneEvent;\n 'public.feature': ControlPlaneFeature;\n 'public.featureApproval': ControlPlaneFeatureApproval;\n 'public.featureEnabledTeam': ControlPlaneFeatureEnabledTeam;\n 'public.controlPlaneOutbox': ControlPlaneOutbox;\n 'public.tenant': ControlPlaneTenant;\n 'public.tenantUser': ControlPlaneTenantUser;\n 'public.token': ControlPlaneToken;\n 'public.user': ControlPlaneUser;\n}\n"]}
|
package/build/module/index.d.ts
CHANGED
|
@@ -20,16 +20,8 @@ type PgOpt = {
|
|
|
20
20
|
retries?: false | number;
|
|
21
21
|
};
|
|
22
22
|
export type Kysely = K<DB>;
|
|
23
|
-
export type Postgres = Sql;
|
|
24
23
|
export declare function useKysely<Database = DB>(postgres: Sql, options?: KyselyOpts): K<Database>;
|
|
25
24
|
export declare function useAsyncPostgres(connectionString: string, opt?: PgOpt): Promise<postgres.Sql<{}>>;
|
|
26
25
|
export declare function useAsyncKysely(connectionString: string, opt?: PgOpt & KyselyOpts): Promise<K<DB>>;
|
|
27
26
|
export declare function useAsyncControlPlaneKysely(connectionString: string, opt?: PgOpt & KyselyOpts): Promise<K<ControlPlaneDB>>;
|
|
28
|
-
/**
|
|
29
|
-
* @deprecated This method is deprecated in favor of the useAsyncKysely method.
|
|
30
|
-
*/
|
|
31
|
-
export declare function usePostgres(connectionString?: string, opt?: Pick<PgOpt, 'forceDisableSSL'>): postgres.Sql<{}>;
|
|
32
27
|
export declare function forceCloseAllPostgres(timeoutMs?: number): Promise<void>;
|
|
33
|
-
export declare class DatabaseError extends Error {
|
|
34
|
-
constructor(message: string, cause: any);
|
|
35
|
-
}
|
package/build/module/index.js
CHANGED
|
@@ -102,21 +102,6 @@ export async function useAsyncControlPlaneKysely(connectionString, opt) {
|
|
|
102
102
|
const sql = await useAsyncPostgres(connectionString, opt);
|
|
103
103
|
return useKysely(sql, opt);
|
|
104
104
|
}
|
|
105
|
-
/**
|
|
106
|
-
* @deprecated This method is deprecated in favor of the useAsyncKysely method.
|
|
107
|
-
*/
|
|
108
|
-
export function usePostgres(connectionString, opt) {
|
|
109
|
-
if (!connectionString)
|
|
110
|
-
throw new KyselyError('No connection string');
|
|
111
|
-
const ssl = opt?.forceDisableSSL !== true;
|
|
112
|
-
const url = new URL(connectionString);
|
|
113
|
-
console.debug(`Creating sync Postgres connection with ssl=${ssl} and port=${url.port}`);
|
|
114
|
-
const pg = postgres(connectionString, {
|
|
115
|
-
ssl: ssl ? 'require' : false,
|
|
116
|
-
});
|
|
117
|
-
_connections.push(pg);
|
|
118
|
-
return pg;
|
|
119
|
-
}
|
|
120
105
|
export async function forceCloseAllPostgres(timeoutMs = 5000) {
|
|
121
106
|
await Promise.race([
|
|
122
107
|
Promise.all(_connections.map((pg) => pg.end({ timeout: timeoutMs }).catch(() => undefined))),
|
|
@@ -124,10 +109,4 @@ export async function forceCloseAllPostgres(timeoutMs = 5000) {
|
|
|
124
109
|
]);
|
|
125
110
|
_connections = [];
|
|
126
111
|
}
|
|
127
|
-
export class DatabaseError extends Error {
|
|
128
|
-
constructor(message, cause) {
|
|
129
|
-
super(message);
|
|
130
|
-
this.cause = cause;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
112
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"src/","sources":["index.ts"],"names":[],"mappings":"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","sourcesContent":["import { backOff } from 'exponential-backoff';\nimport type { Kysely as K, LogConfig } from 'kysely';\nimport { PostgresJSDialect } from 'kysely-postgres-js';\nimport postgres, { type Sql } from 'postgres';\nimport type { ControlPlaneDB } from './control-plane';\nimport { KyselyError } from './error';\nimport { getKysely } from './plugins';\n\nexport type { Insertable, LogEvent } from 'kysely';\nexport * from './error';\nexport * from './isomorphic';\nexport * from './postgres-error';\nexport * from './query';\nexport * from './regional';\nexport * from './transaction';\n\nimport { parseDuration } from '@vrplatform/utils';\nimport type { DB } from './v1.generated';\n\ntype KyselyOpts = {\n repositoryName?: string;\n log?: true | LogConfig;\n};\n\ntype PgOpt = {\n forceDisableSSL?: boolean;\n hyperdrive?: true;\n probe?: true;\n retries?: false | number;\n};\n\nconst retryableMessages = [\n 'CONNECTION_CLOSED',\n 'CONNECT_TIMEOUT',\n 'Idle connection closed by Hyperdrive.',\n];\n\nexport type Kysely = K<DB>;\nexport type Postgres = Sql;\nexport function useKysely<Database = DB>(postgres: Sql, options?: KyselyOpts) {\n console.debug('Creating Kysely instance');\n const kysely = getKysely<Database>(\n new PostgresJSDialect({\n postgres,\n onReserveConnection: async (connection) => {\n const executeQuery = connection.executeQuery.bind(connection);\n connection.executeQuery = (arg) =>\n backOff(async () => await executeQuery(arg), {\n numOfAttempts: 3,\n startingDelay: parseDuration('1s'),\n maxDelay: parseDuration('5s'),\n retry: (error) => {\n const message =\n error instanceof Error ? error.message : String(error);\n if (\n retryableMessages.some((m) => message?.includes(m)) ||\n (arg.query.kind === 'SelectQueryNode' &&\n (message ===\n 'Egress connection severed outside of Hyperdrive' ||\n message === 'Network connection lost.'))\n ) {\n return true;\n }\n return false;\n },\n });\n },\n }),\n {\n repositoryName: options?.repositoryName,\n log: options?.log,\n }\n );\n kysely.destroy = async () => {\n console.debug('Closing Kysely connection');\n await postgres.end({ timeout: 5 }).catch(() => undefined);\n const index = _connections.indexOf(postgres);\n if (index !== -1) _connections.splice(index, 1);\n };\n\n return kysely;\n}\n\nlet _connections: postgres.Sql[] = [];\nexport async function useAsyncPostgres(connectionString: string, opt?: PgOpt) {\n const delayMs = 2500;\n const probe = opt?.probe === true;\n const retries = probe ? (opt?.retries === false ? 0 : opt?.retries || 3) : 1;\n const ssl = opt?.forceDisableSSL !== true && opt?.hyperdrive !== true;\n const url = new URL(connectionString);\n\n console.debug(\n `Creating Postgres connection with probe=${probe}, ${retries} attempts, ssl=${ssl}, and port=${url.port}`\n );\n if (_connections.length > 0)\n console.warn(`We already have ${_connections.length} Postgres connections`);\n\n for (let attempt = 1; attempt <= retries; attempt++) {\n try {\n const sql = postgres(connectionString, {\n ssl: ssl ? 'require' : false,\n target_session_attrs: 'read-write',\n // enable prepare statements, pgbouncer on crunchy allows for prepared statements\n prepare: true,\n ...(opt?.hyperdrive\n ? { max: 5 }\n : {\n connect_timeout: 10,\n }),\n idle_timeout: 60,\n });\n\n if (probe) {\n await sql`select 1`;\n }\n // statement_timeout/lock_timeout are role-level settings on the cluster\n // (ALTER ROLE application SET ...) so they cover every pooled\n // connection; per-session SETs here only ever applied to one of them\n\n _connections.push(sql);\n return sql;\n } catch (err) {\n if (attempt === retries) throw err;\n console.warn(\n `Postgres connection failed (attempt ${attempt}), retrying...`\n );\n console.error('error', err);\n await new Promise((res) => setTimeout(res, delayMs));\n }\n }\n throw new KyselyError('Unable to connect to Postgres');\n}\n\nexport async function useAsyncKysely(\n connectionString: string,\n opt?: PgOpt & KyselyOpts\n) {\n const sql = await useAsyncPostgres(connectionString, opt);\n return useKysely(sql, opt);\n}\n\nexport async function useAsyncControlPlaneKysely(\n connectionString: string,\n opt?: PgOpt & KyselyOpts\n) {\n const sql = await useAsyncPostgres(connectionString, opt);\n return useKysely<ControlPlaneDB>(sql, opt);\n}\n\n/**\n * @deprecated This method is deprecated in favor of the useAsyncKysely method.\n */\nexport function usePostgres(\n connectionString?: string,\n opt?: Pick<PgOpt, 'forceDisableSSL'>\n) {\n if (!connectionString) throw new KyselyError('No connection string');\n const ssl = opt?.forceDisableSSL !== true;\n const url = new URL(connectionString);\n console.debug(\n `Creating sync Postgres connection with ssl=${ssl} and port=${url.port}`\n );\n const pg = postgres(connectionString, {\n ssl: ssl ? 'require' : false,\n });\n _connections.push(pg);\n return pg;\n}\n\nexport async function forceCloseAllPostgres(timeoutMs = 5000) {\n await Promise.race([\n Promise.all(\n _connections.map((pg) =>\n pg.end({ timeout: timeoutMs }).catch(() => undefined)\n )\n ),\n new Promise((res) => setTimeout(res, timeoutMs + 1000)),\n ]);\n _connections = [];\n}\n\nexport class DatabaseError extends Error {\n constructor(message: string, cause: any) {\n super(message);\n this.cause = cause;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"src/","sources":["index.ts"],"names":[],"mappings":"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","sourcesContent":["import { backOff } from 'exponential-backoff';\nimport type { Kysely as K, LogConfig } from 'kysely';\nimport { PostgresJSDialect } from 'kysely-postgres-js';\nimport postgres, { type Sql } from 'postgres';\nimport type { ControlPlaneDB } from './control-plane';\nimport { KyselyError } from './error';\nimport { getKysely } from './plugins';\n\nexport type { Insertable, LogEvent } from 'kysely';\nexport * from './error';\nexport * from './isomorphic';\nexport * from './postgres-error';\nexport * from './query';\nexport * from './regional';\nexport * from './transaction';\n\nimport { parseDuration } from '@vrplatform/utils';\nimport type { DB } from './v1.generated';\n\ntype KyselyOpts = {\n repositoryName?: string;\n log?: true | LogConfig;\n};\n\ntype PgOpt = {\n forceDisableSSL?: boolean;\n hyperdrive?: true;\n probe?: true;\n retries?: false | number;\n};\n\nconst retryableMessages = [\n 'CONNECTION_CLOSED',\n 'CONNECT_TIMEOUT',\n 'Idle connection closed by Hyperdrive.',\n];\n\nexport type Kysely = K<DB>;\nexport function useKysely<Database = DB>(postgres: Sql, options?: KyselyOpts) {\n console.debug('Creating Kysely instance');\n const kysely = getKysely<Database>(\n new PostgresJSDialect({\n postgres,\n onReserveConnection: async (connection) => {\n const executeQuery = connection.executeQuery.bind(connection);\n connection.executeQuery = (arg) =>\n backOff(async () => await executeQuery(arg), {\n numOfAttempts: 3,\n startingDelay: parseDuration('1s'),\n maxDelay: parseDuration('5s'),\n retry: (error) => {\n const message =\n error instanceof Error ? error.message : String(error);\n if (\n retryableMessages.some((m) => message?.includes(m)) ||\n (arg.query.kind === 'SelectQueryNode' &&\n (message ===\n 'Egress connection severed outside of Hyperdrive' ||\n message === 'Network connection lost.'))\n ) {\n return true;\n }\n return false;\n },\n });\n },\n }),\n {\n repositoryName: options?.repositoryName,\n log: options?.log,\n }\n );\n kysely.destroy = async () => {\n console.debug('Closing Kysely connection');\n await postgres.end({ timeout: 5 }).catch(() => undefined);\n const index = _connections.indexOf(postgres);\n if (index !== -1) _connections.splice(index, 1);\n };\n\n return kysely;\n}\n\nlet _connections: postgres.Sql[] = [];\nexport async function useAsyncPostgres(connectionString: string, opt?: PgOpt) {\n const delayMs = 2500;\n const probe = opt?.probe === true;\n const retries = probe ? (opt?.retries === false ? 0 : opt?.retries || 3) : 1;\n const ssl = opt?.forceDisableSSL !== true && opt?.hyperdrive !== true;\n const url = new URL(connectionString);\n\n console.debug(\n `Creating Postgres connection with probe=${probe}, ${retries} attempts, ssl=${ssl}, and port=${url.port}`\n );\n if (_connections.length > 0)\n console.warn(`We already have ${_connections.length} Postgres connections`);\n\n for (let attempt = 1; attempt <= retries; attempt++) {\n try {\n const sql = postgres(connectionString, {\n ssl: ssl ? 'require' : false,\n target_session_attrs: 'read-write',\n // enable prepare statements, pgbouncer on crunchy allows for prepared statements\n prepare: true,\n ...(opt?.hyperdrive\n ? { max: 5 }\n : {\n connect_timeout: 10,\n }),\n idle_timeout: 60,\n });\n\n if (probe) {\n await sql`select 1`;\n }\n // statement_timeout/lock_timeout are role-level settings on the cluster\n // (ALTER ROLE application SET ...) so they cover every pooled\n // connection; per-session SETs here only ever applied to one of them\n\n _connections.push(sql);\n return sql;\n } catch (err) {\n if (attempt === retries) throw err;\n console.warn(\n `Postgres connection failed (attempt ${attempt}), retrying...`\n );\n console.error('error', err);\n await new Promise((res) => setTimeout(res, delayMs));\n }\n }\n throw new KyselyError('Unable to connect to Postgres');\n}\n\nexport async function useAsyncKysely(\n connectionString: string,\n opt?: PgOpt & KyselyOpts\n) {\n const sql = await useAsyncPostgres(connectionString, opt);\n return useKysely(sql, opt);\n}\n\nexport async function useAsyncControlPlaneKysely(\n connectionString: string,\n opt?: PgOpt & KyselyOpts\n) {\n const sql = await useAsyncPostgres(connectionString, opt);\n return useKysely<ControlPlaneDB>(sql, opt);\n}\n\nexport async function forceCloseAllPostgres(timeoutMs = 5000) {\n await Promise.race([\n Promise.all(\n _connections.map((pg) =>\n pg.end({ timeout: timeoutMs }).catch(() => undefined)\n )\n ),\n new Promise((res) => setTimeout(res, timeoutMs + 1000)),\n ]);\n _connections = [];\n}\n"]}
|
|
@@ -8,6 +8,3 @@ export type Transaction = T<DB>;
|
|
|
8
8
|
export type ControlledTransaction<S extends string[] = string[]> = CT<DB, S>;
|
|
9
9
|
export { sql } from 'kysely';
|
|
10
10
|
export type Kysely = K<DB>;
|
|
11
|
-
export declare class DatabaseError extends Error {
|
|
12
|
-
constructor(message: string, cause: any);
|
|
13
|
-
}
|
|
@@ -2,10 +2,4 @@ export { jsonArrayFrom } from 'kysely/helpers/postgres';
|
|
|
2
2
|
export * from './domain';
|
|
3
3
|
export * from './v1.generated';
|
|
4
4
|
export { sql } from 'kysely';
|
|
5
|
-
export class DatabaseError extends Error {
|
|
6
|
-
constructor(message, cause) {
|
|
7
|
-
super(message);
|
|
8
|
-
this.cause = cause;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
5
|
//# sourceMappingURL=isomorphic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isomorphic.js","sourceRoot":"src/","sources":["isomorphic.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAM/B,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC
|
|
1
|
+
{"version":3,"file":"isomorphic.js","sourceRoot":"src/","sources":["isomorphic.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAM/B,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC","sourcesContent":["import type {\n ControlledTransaction as CT,\n Kysely as K,\n Transaction as T,\n} from 'kysely';\n\nexport type {\n ColumnType,\n Expression,\n ExpressionBuilder,\n ExpressionOrFactory,\n Generated,\n Insertable,\n JSONColumnType,\n KyselyPlugin,\n Nullable,\n OperandExpression,\n PluginTransformQueryArgs,\n PluginTransformResultArgs,\n QueryResult,\n RootOperationNode,\n Selectable,\n SelectQueryBuilder,\n SqlBool,\n UnknownRow,\n Updateable,\n} from 'kysely';\nexport { jsonArrayFrom } from 'kysely/helpers/postgres';\nexport * from './domain';\nexport * from './v1.generated';\n\nimport type { DB } from './v1.generated';\n\nexport type Transaction = T<DB>;\nexport type ControlledTransaction<S extends string[] = string[]> = CT<DB, S>;\nexport { sql } from 'kysely';\n\nexport type Kysely = K<DB>;\n"]}
|