@vindentech/api-client 0.3.0-next.15 → 0.3.0-next.17

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.
Files changed (30) hide show
  1. package/dist/generated/_all.d.ts +1 -0
  2. package/dist/generated/_all.d.ts.map +1 -1
  3. package/dist/generated/_all.js +1 -0
  4. package/dist/generated/_all.js.map +1 -1
  5. package/dist/generated/_permissions.d.ts +72 -4
  6. package/dist/generated/_permissions.d.ts.map +1 -1
  7. package/dist/generated/_permissions.js +20 -3
  8. package/dist/generated/_permissions.js.map +1 -1
  9. package/dist/generated/check-in/check-in.d.ts +3 -3
  10. package/dist/generated/index.schemas.d.ts +573 -3
  11. package/dist/generated/index.schemas.d.ts.map +1 -1
  12. package/dist/generated/index.schemas.js +100 -0
  13. package/dist/generated/index.schemas.js.map +1 -1
  14. package/dist/generated/notification-rules/notification-rules.d.ts +143 -1
  15. package/dist/generated/notification-rules/notification-rules.d.ts.map +1 -1
  16. package/dist/generated/notification-rules/notification-rules.js +60 -0
  17. package/dist/generated/notification-rules/notification-rules.js.map +1 -1
  18. package/dist/generated/notification-templates/notification-templates.d.ts +242 -2
  19. package/dist/generated/notification-templates/notification-templates.d.ts.map +1 -1
  20. package/dist/generated/notification-templates/notification-templates.js +84 -0
  21. package/dist/generated/notification-templates/notification-templates.js.map +1 -1
  22. package/dist/generated/service-points/service-points.d.ts +23 -0
  23. package/dist/generated/service-points/service-points.d.ts.map +1 -0
  24. package/dist/generated/service-points/service-points.js +18 -0
  25. package/dist/generated/service-points/service-points.js.map +1 -0
  26. package/dist/generated/warehouse-orders/warehouse-orders.d.ts +29 -1
  27. package/dist/generated/warehouse-orders/warehouse-orders.d.ts.map +1 -1
  28. package/dist/generated/warehouse-orders/warehouse-orders.js +24 -0
  29. package/dist/generated/warehouse-orders/warehouse-orders.js.map +1 -1
  30. package/package.json +1 -1
@@ -76,6 +76,11 @@ export interface OrderWarehouseDto {
76
76
  /** @nullable */
77
77
  countryCode: string | null;
78
78
  }
79
+ export interface OrderOrganizationDto {
80
+ organizationId: string;
81
+ name: string;
82
+ type: string;
83
+ }
79
84
  export interface OrderProductDto {
80
85
  salesOrderProductId: string;
81
86
  productId: string;
@@ -165,6 +170,13 @@ export interface OrderLegDto {
165
170
  city: string | null;
166
171
  /** @nullable */
167
172
  countryCode: string | null;
173
+ /**
174
+ * Opaque provider-specific service-point (parcel locker) id; DELIVERY legs only.
175
+ * @nullable
176
+ */
177
+ servicePointId: string | null;
178
+ /** @nullable */
179
+ servicePointProvider: string | null;
168
180
  /** @nullable */
169
181
  floorLevel: number | null;
170
182
  /** @nullable */
@@ -198,6 +210,10 @@ export declare const OrderDetailDtoType: {
198
210
  * @nullable
199
211
  */
200
212
  export type OrderDetailDtoWarehouse = OrderWarehouseDto | null;
213
+ /**
214
+ * @nullable
215
+ */
216
+ export type OrderDetailDtoOrganization = OrderOrganizationDto | null;
201
217
  /**
202
218
  * @nullable
203
219
  */
@@ -254,10 +270,17 @@ export interface OrderDetailDto {
254
270
  cancellationReason: string | null;
255
271
  /** @nullable */
256
272
  warehouse: OrderDetailDtoWarehouse;
273
+ /** @nullable */
274
+ organization: OrderDetailDtoOrganization;
257
275
  products: OrderProductDto[];
258
276
  /** @nullable */
259
277
  estimate: OrderDetailDtoEstimate;
260
278
  legs: OrderLegDto[];
279
+ /**
280
+ * The transport_slot id of this order's material:delivery reservation, if any — derived from the originating cart, not a stored column.
281
+ * @nullable
282
+ */
283
+ materialsTimeslotId: string | null;
261
284
  }
262
285
  export type OrderTimelineEventDtoKind = typeof OrderTimelineEventDtoKind[keyof typeof OrderTimelineEventDtoKind];
263
286
  export declare const OrderTimelineEventDtoKind: {
@@ -1656,6 +1679,41 @@ export interface CartLocationDto {
1656
1679
  /** @nullable */
1657
1680
  extraStorageM2: number | null;
1658
1681
  }
1682
+ /**
1683
+ * @nullable
1684
+ */
1685
+ export type CartDeliveryLocationDtoServicePointProvider = typeof CartDeliveryLocationDtoServicePointProvider[keyof typeof CartDeliveryLocationDtoServicePointProvider] | null;
1686
+ export declare const CartDeliveryLocationDtoServicePointProvider: {
1687
+ readonly POSTI: "POSTI";
1688
+ };
1689
+ export interface CartDeliveryLocationDto {
1690
+ /** @nullable */
1691
+ addressLine1: string | null;
1692
+ /** @nullable */
1693
+ addressLine2: string | null;
1694
+ /** @nullable */
1695
+ zipCode: string | null;
1696
+ /** @nullable */
1697
+ city: string | null;
1698
+ /** @nullable */
1699
+ countryCode: string | null;
1700
+ /** @nullable */
1701
+ squareMeters: number | null;
1702
+ /** @nullable */
1703
+ numberOfRooms: number | null;
1704
+ /** @nullable */
1705
+ floor: number | null;
1706
+ /** @nullable */
1707
+ elevatorType: string | null;
1708
+ /** @nullable */
1709
+ isBackyardHouse: boolean | null;
1710
+ /** @nullable */
1711
+ extraStorageM2: number | null;
1712
+ /** @nullable */
1713
+ servicePointId: string | null;
1714
+ /** @nullable */
1715
+ servicePointProvider: CartDeliveryLocationDtoServicePointProvider;
1716
+ }
1659
1717
  /**
1660
1718
  * @nullable
1661
1719
  */
@@ -1707,6 +1765,11 @@ export interface CartHoldDto {
1707
1765
  reservationId: string;
1708
1766
  /** @nullable */
1709
1767
  slotId: string | null;
1768
+ /**
1769
+ * Which cart component this hold is for (move:pickup | move:delivery | material:delivery); null = legacy single-component cart.
1770
+ * @nullable
1771
+ */
1772
+ componentKey: string | null;
1710
1773
  /** HELD | CONFIRMED | EXPIRED | CANCELLED */
1711
1774
  status: string;
1712
1775
  /** @nullable */
@@ -1754,9 +1817,14 @@ export interface CartDto {
1754
1817
  customer: CartContactDto;
1755
1818
  contact: CartContactDto;
1756
1819
  pickup: CartLocationDto;
1757
- delivery: CartLocationDto;
1820
+ delivery: CartDeliveryLocationDto;
1758
1821
  /** @nullable */
1759
1822
  estimatedHours: string | null;
1823
+ /**
1824
+ * The transport_slot id of this cart's material:delivery hold, if any — derived from holds[], not a stored column.
1825
+ * @nullable
1826
+ */
1827
+ materialsTimeslotId: string | null;
1760
1828
  /**
1761
1829
  * Versioned pricing payload (schema_version tracked server-side)
1762
1830
  * @nullable
@@ -1881,7 +1949,7 @@ export interface QuoteResponseDto {
1881
1949
  */
1882
1950
  rutDeductionMinor: number | null;
1883
1951
  totals: QuoteTotalsDto;
1884
- /** Components present on the cart that this quote did not price, or reductions it did not apply. Their absence from `totals` is intentional, never a zero charge. Values: GOODS, SERVICE, START_FEE, TRANSPORT (no configured article, price row, or computable rate), INSURANCE (no plan catalogue exists yet), TRANSPORT_RUT (the line is RUT-eligible but its price source carries no post-deduction price to derive the amount from), BINDING_DISCOUNT (the plan carries rates in `discounts` that invoicing does not yet honour, so the totals exclude them). */
1952
+ /** Components present on the cart that this quote did not price, or reductions it did not apply. Their absence from `totals` is intentional, never a zero charge. Values: GOODS, SERVICE, START_FEE, TRANSPORT (no configured article, price row, or computable rate — no line is emitted at all), INSURANCE (no plan catalogue exists yet), TRANSPORT_PARTIAL (a transport line IS priced from the rate card but excludes a component the cart carries no quantity for — a per-hour rate with no `estimatedHours`, or a per-unit rate with no shipment manifest — so the transport amount is a floor, not the final charge), TRANSPORT_RUT (the line is RUT-eligible but its price source carries no post-deduction price to derive the amount from), BINDING_DISCOUNT (the plan carries rates in `discounts` that invoicing does not yet honour, so the totals exclude them), MATERIAL_DELIVERY (the cart holds a material:delivery timeslot; its underlying slot may carry a real price, but materials pricing is not yet designed, so it is excluded from `totals` rather than priced as ordinary transport). */
1885
1953
  deferred: string[];
1886
1954
  }
1887
1955
  /**
@@ -2008,6 +2076,129 @@ export interface CartLocationInputDto {
2008
2076
  /** @nullable */
2009
2077
  extraStorageM2?: CartLocationInputDtoExtraStorageM2;
2010
2078
  }
2079
+ /**
2080
+ * @nullable
2081
+ */
2082
+ export type CartDeliveryLocationInputDtoAddressLine1 = {
2083
+ [key: string]: unknown;
2084
+ } | null;
2085
+ /**
2086
+ * @nullable
2087
+ */
2088
+ export type CartDeliveryLocationInputDtoAddressLine2 = {
2089
+ [key: string]: unknown;
2090
+ } | null;
2091
+ /**
2092
+ * @nullable
2093
+ */
2094
+ export type CartDeliveryLocationInputDtoZipCode = {
2095
+ [key: string]: unknown;
2096
+ } | null;
2097
+ /**
2098
+ * @nullable
2099
+ */
2100
+ export type CartDeliveryLocationInputDtoCity = {
2101
+ [key: string]: unknown;
2102
+ } | null;
2103
+ /**
2104
+ * ISO 3166-1 alpha-2
2105
+ * @nullable
2106
+ */
2107
+ export type CartDeliveryLocationInputDtoCountryCode = {
2108
+ [key: string]: unknown;
2109
+ } | null;
2110
+ /**
2111
+ * @nullable
2112
+ */
2113
+ export type CartDeliveryLocationInputDtoSquareMeters = {
2114
+ [key: string]: unknown;
2115
+ } | null;
2116
+ /**
2117
+ * @nullable
2118
+ */
2119
+ export type CartDeliveryLocationInputDtoNumberOfRooms = {
2120
+ [key: string]: unknown;
2121
+ } | null;
2122
+ /**
2123
+ * @nullable
2124
+ */
2125
+ export type CartDeliveryLocationInputDtoFloor = {
2126
+ [key: string]: unknown;
2127
+ } | null;
2128
+ /**
2129
+ * Value from the elevator_type lookup (e.g. NONE, SMALL, BIG)
2130
+ * @nullable
2131
+ */
2132
+ export type CartDeliveryLocationInputDtoElevatorType = {
2133
+ [key: string]: unknown;
2134
+ } | null;
2135
+ /**
2136
+ * @nullable
2137
+ */
2138
+ export type CartDeliveryLocationInputDtoIsBackyardHouse = {
2139
+ [key: string]: unknown;
2140
+ } | null;
2141
+ /**
2142
+ * @nullable
2143
+ */
2144
+ export type CartDeliveryLocationInputDtoExtraStorageM2 = {
2145
+ [key: string]: unknown;
2146
+ } | null;
2147
+ /**
2148
+ * Opaque provider-specific id; requires servicePointProvider alongside it.
2149
+ * @nullable
2150
+ */
2151
+ export type CartDeliveryLocationInputDtoServicePointId = {
2152
+ [key: string]: unknown;
2153
+ } | null;
2154
+ /**
2155
+ * Required alongside servicePointId.
2156
+ * @nullable
2157
+ */
2158
+ export type CartDeliveryLocationInputDtoServicePointProvider = typeof CartDeliveryLocationInputDtoServicePointProvider[keyof typeof CartDeliveryLocationInputDtoServicePointProvider] | null;
2159
+ export declare const CartDeliveryLocationInputDtoServicePointProvider: {
2160
+ readonly POSTI: "POSTI";
2161
+ };
2162
+ export interface CartDeliveryLocationInputDto {
2163
+ /** @nullable */
2164
+ addressLine1?: CartDeliveryLocationInputDtoAddressLine1;
2165
+ /** @nullable */
2166
+ addressLine2?: CartDeliveryLocationInputDtoAddressLine2;
2167
+ /** @nullable */
2168
+ zipCode?: CartDeliveryLocationInputDtoZipCode;
2169
+ /** @nullable */
2170
+ city?: CartDeliveryLocationInputDtoCity;
2171
+ /**
2172
+ * ISO 3166-1 alpha-2
2173
+ * @nullable
2174
+ */
2175
+ countryCode?: CartDeliveryLocationInputDtoCountryCode;
2176
+ /** @nullable */
2177
+ squareMeters?: CartDeliveryLocationInputDtoSquareMeters;
2178
+ /** @nullable */
2179
+ numberOfRooms?: CartDeliveryLocationInputDtoNumberOfRooms;
2180
+ /** @nullable */
2181
+ floor?: CartDeliveryLocationInputDtoFloor;
2182
+ /**
2183
+ * Value from the elevator_type lookup (e.g. NONE, SMALL, BIG)
2184
+ * @nullable
2185
+ */
2186
+ elevatorType?: CartDeliveryLocationInputDtoElevatorType;
2187
+ /** @nullable */
2188
+ isBackyardHouse?: CartDeliveryLocationInputDtoIsBackyardHouse;
2189
+ /** @nullable */
2190
+ extraStorageM2?: CartDeliveryLocationInputDtoExtraStorageM2;
2191
+ /**
2192
+ * Opaque provider-specific id; requires servicePointProvider alongside it.
2193
+ * @nullable
2194
+ */
2195
+ servicePointId?: CartDeliveryLocationInputDtoServicePointId;
2196
+ /**
2197
+ * Required alongside servicePointId.
2198
+ * @nullable
2199
+ */
2200
+ servicePointProvider?: CartDeliveryLocationInputDtoServicePointProvider;
2201
+ }
2011
2202
  /**
2012
2203
  * @nullable
2013
2204
  */
@@ -2139,7 +2330,7 @@ export type UpdateCartDtoPickup = CartLocationInputDto | null;
2139
2330
  /**
2140
2331
  * @nullable
2141
2332
  */
2142
- export type UpdateCartDtoDelivery = CartLocationInputDto | null;
2333
+ export type UpdateCartDtoDelivery = CartDeliveryLocationInputDto | null;
2143
2334
  /**
2144
2335
  * @nullable
2145
2336
  */
@@ -2187,6 +2378,15 @@ export interface ClaimCartDto {
2187
2378
  /** Staff claim-on-behalf target organization. Org users always claim into their own organization. */
2188
2379
  organizationId?: string;
2189
2380
  }
2381
+ /**
2382
+ * Which cart component this hold is for. Omit for the legacy single-component behavior (the move itself) — a cart's leg-producing holds must be either all omitted or all explicit, never mixed.
2383
+ */
2384
+ export type HoldTimeslotDtoComponentKey = typeof HoldTimeslotDtoComponentKey[keyof typeof HoldTimeslotDtoComponentKey];
2385
+ export declare const HoldTimeslotDtoComponentKey: {
2386
+ readonly 'move:pickup': "move:pickup";
2387
+ readonly 'move:delivery': "move:delivery";
2388
+ readonly 'material:delivery': "material:delivery";
2389
+ };
2190
2390
  /**
2191
2391
  * @nullable
2192
2392
  */
@@ -2203,6 +2403,8 @@ export interface HoldTimeslotDto {
2203
2403
  expectedRevision: number;
2204
2404
  /** transport_slot id to draw capacity from */
2205
2405
  timeslotId: string;
2406
+ /** Which cart component this hold is for. Omit for the legacy single-component behavior (the move itself) — a cart's leg-producing holds must be either all omitted or all explicit, never mixed. */
2407
+ componentKey?: HoldTimeslotDtoComponentKey;
2206
2408
  /** @minimum 1 */
2207
2409
  quantityOrders?: number;
2208
2410
  /** @nullable */
@@ -4495,6 +4697,64 @@ export interface WarehouseOrderCommandResultDto {
4495
4697
  /** True when this response replays a previous run of the key. */
4496
4698
  idempotent: boolean;
4497
4699
  }
4700
+ export type CreateDisposalRequestDtoType = typeof CreateDisposalRequestDtoType[keyof typeof CreateDisposalRequestDtoType];
4701
+ export declare const CreateDisposalRequestDtoType: {
4702
+ readonly RECYCLE: "RECYCLE";
4703
+ readonly DONATE: "DONATE";
4704
+ };
4705
+ export interface CreateDisposalRequestDto {
4706
+ /** The owning org (server validates scope). */
4707
+ organizationId: string;
4708
+ type: CreateDisposalRequestDtoType;
4709
+ /** The warehouse holding the goods. Required: warehouse staff only see a warehouse order (and its lines) whose warehouse_id is one of theirs, so a warehouse-less request would be invisible to the people who must act on it. */
4710
+ warehouseId: string;
4711
+ /**
4712
+ * Free text shown to the warehouse, e.g. what the goods are.
4713
+ * @maxLength 255
4714
+ */
4715
+ name?: string;
4716
+ /** At least one line. */
4717
+ products: WarehouseOrderProductLineDto[];
4718
+ }
4719
+ export type DisposalRequestResultDtoType = typeof DisposalRequestResultDtoType[keyof typeof DisposalRequestResultDtoType];
4720
+ export declare const DisposalRequestResultDtoType: {
4721
+ readonly RECYCLE: "RECYCLE";
4722
+ readonly DONATE: "DONATE";
4723
+ };
4724
+ export interface DisposalRequestResultDto {
4725
+ warehouseOrderId: string;
4726
+ /** Per-job operational number (tenant sequence). */
4727
+ jobNumber: number;
4728
+ type: DisposalRequestResultDtoType;
4729
+ /** warehouse_order_status value the request was created at. */
4730
+ status: string;
4731
+ /** True when this response replays a previous run of the key. */
4732
+ idempotent: boolean;
4733
+ }
4734
+ export interface CancelDisposalRequestDto {
4735
+ /**
4736
+ * Why the request is being withdrawn.
4737
+ * @maxLength 500
4738
+ */
4739
+ reason?: string;
4740
+ }
4741
+ /**
4742
+ * Always CANCELLED after a successful cancel.
4743
+ */
4744
+ export type CancelDisposalRequestResultDtoStatus = typeof CancelDisposalRequestResultDtoStatus[keyof typeof CancelDisposalRequestResultDtoStatus];
4745
+ export declare const CancelDisposalRequestResultDtoStatus: {
4746
+ readonly CANCELLED: "CANCELLED";
4747
+ };
4748
+ export interface CancelDisposalRequestResultDto {
4749
+ warehouseOrderId: string;
4750
+ /** Always CANCELLED after a successful cancel. */
4751
+ status: CancelDisposalRequestResultDtoStatus;
4752
+ cancelledAt: string;
4753
+ /** The persisted reason, when supplied. */
4754
+ cancellationReason?: string;
4755
+ /** True when this response replays a previous run of the key. */
4756
+ idempotent: boolean;
4757
+ }
4498
4758
  export interface RegisterLaborDto {
4499
4759
  /** Org the work is billed to (server validates scope). */
4500
4760
  organizationId: string;
@@ -7372,6 +7632,95 @@ export interface NotificationRuleDto {
7372
7632
  createdAt: string;
7373
7633
  updatedAt: string;
7374
7634
  }
7635
+ export type CreateNotificationRuleDtoChannel = typeof CreateNotificationRuleDtoChannel[keyof typeof CreateNotificationRuleDtoChannel];
7636
+ export declare const CreateNotificationRuleDtoChannel: {
7637
+ readonly email: "email";
7638
+ readonly sms: "sms";
7639
+ readonly push: "push";
7640
+ readonly webhook: "webhook";
7641
+ };
7642
+ /**
7643
+ * Defaults to the event's category. Only operational ↔ transactional relabelling is permitted (02 §3).
7644
+ */
7645
+ export type CreateNotificationRuleDtoCategory = typeof CreateNotificationRuleDtoCategory[keyof typeof CreateNotificationRuleDtoCategory];
7646
+ export declare const CreateNotificationRuleDtoCategory: {
7647
+ readonly marketing: "marketing";
7648
+ readonly operational: "operational";
7649
+ readonly transactional: "transactional";
7650
+ readonly billing: "billing";
7651
+ readonly security: "security";
7652
+ readonly system: "system";
7653
+ };
7654
+ /**
7655
+ * NULL falls back to the platform system template for (event, channel, locale).
7656
+ */
7657
+ export type CreateNotificationRuleDtoNotificationTemplateId = {
7658
+ [key: string]: unknown;
7659
+ };
7660
+ export interface CreateNotificationRuleDto {
7661
+ /** Must exist in the event catalog and not be retired. */
7662
+ eventKey: string;
7663
+ /** The contract version to pin to. Defaults to the event's active version — the rule stays on it until an explicit migration. */
7664
+ eventVersion?: number;
7665
+ channel: CreateNotificationRuleDtoChannel;
7666
+ /** Defaults to the event's category. Only operational ↔ transactional relabelling is permitted (02 §3). */
7667
+ category?: CreateNotificationRuleDtoCategory;
7668
+ /** NULL falls back to the platform system template for (event, channel, locale). */
7669
+ notificationTemplateId?: CreateNotificationRuleDtoNotificationTemplateId;
7670
+ /** Validated against the pinned version's contractPaths at save (02 §5). */
7671
+ recipients: RecipientSpecDto[];
7672
+ }
7673
+ export type UpdateNotificationRuleDtoCategory = typeof UpdateNotificationRuleDtoCategory[keyof typeof UpdateNotificationRuleDtoCategory];
7674
+ export declare const UpdateNotificationRuleDtoCategory: {
7675
+ readonly marketing: "marketing";
7676
+ readonly operational: "operational";
7677
+ readonly transactional: "transactional";
7678
+ readonly billing: "billing";
7679
+ readonly security: "security";
7680
+ readonly system: "system";
7681
+ };
7682
+ export interface UpdateNotificationRuleDto {
7683
+ /** Migrate the rule to another contract version. Rejected (`event_version_migration_invalid`) when a recipient path or a template variable does not exist there. */
7684
+ eventVersion?: number;
7685
+ category?: UpdateNotificationRuleDtoCategory;
7686
+ /** @nullable */
7687
+ notificationTemplateId?: string | null;
7688
+ recipients?: RecipientSpecDto[];
7689
+ }
7690
+ export interface EnableRuleDto {
7691
+ /** The estimate shown in the confirmation panel (from `GET …/recipient-estimate`). */
7692
+ confirmedRecipientEstimate: number;
7693
+ /** Required above the typed-confirmation threshold: the tenant slug, typed by the admin. */
7694
+ typedConfirmation?: string;
7695
+ }
7696
+ export type RecipientSpecEstimateDtoKind = typeof RecipientSpecEstimateDtoKind[keyof typeof RecipientSpecEstimateDtoKind];
7697
+ export declare const RecipientSpecEstimateDtoKind: {
7698
+ readonly event_field: "event_field";
7699
+ readonly org_contact_role: "org_contact_role";
7700
+ readonly tenant_role: "tenant_role";
7701
+ readonly static_email: "static_email";
7702
+ readonly static_phone: "static_phone";
7703
+ };
7704
+ export interface RecipientSpecEstimateDto {
7705
+ /** Index into the rule's recipients array. */
7706
+ specIndex: number;
7707
+ kind: RecipientSpecEstimateDtoKind;
7708
+ /** Addresses this spec resolves to per event. */
7709
+ estimate: number;
7710
+ }
7711
+ export type RecipientEstimateDtoBasis = typeof RecipientEstimateDtoBasis[keyof typeof RecipientEstimateDtoBasis];
7712
+ export declare const RecipientEstimateDtoBasis: {
7713
+ readonly recent_events: "recent_events";
7714
+ readonly preview_data: "preview_data";
7715
+ };
7716
+ export interface RecipientEstimateDto {
7717
+ /** Addresses one firing of this event would reach. */
7718
+ estimate: number;
7719
+ /** How many sample events the estimate averaged over. */
7720
+ sampleSize: number;
7721
+ basis: RecipientEstimateDtoBasis;
7722
+ perSpec: RecipientSpecEstimateDto[];
7723
+ }
7375
7724
  export type NotificationTemplateDtoChannel = typeof NotificationTemplateDtoChannel[keyof typeof NotificationTemplateDtoChannel];
7376
7725
  export declare const NotificationTemplateDtoChannel: {
7377
7726
  readonly email: "email";
@@ -7411,6 +7760,23 @@ export interface PaginatedNotificationTemplatesDto {
7411
7760
  /** Effective rows skipped applied. */
7412
7761
  offset: number;
7413
7762
  }
7763
+ export type CreateNotificationTemplateDtoChannel = typeof CreateNotificationTemplateDtoChannel[keyof typeof CreateNotificationTemplateDtoChannel];
7764
+ export declare const CreateNotificationTemplateDtoChannel: {
7765
+ readonly email: "email";
7766
+ readonly sms: "sms";
7767
+ readonly push: "push";
7768
+ readonly webhook: "webhook";
7769
+ };
7770
+ export interface CreateNotificationTemplateDto {
7771
+ eventKey: string;
7772
+ channel: CreateNotificationTemplateDtoChannel;
7773
+ locale?: string;
7774
+ name: string;
7775
+ /** NULL = the tenant default; set = that organization's override. */
7776
+ organizationId?: string;
7777
+ /** Clone this template's published content into the first draft — the Customize action on a system template, and the tenant-default → org-override path. */
7778
+ sourceTemplateId?: string;
7779
+ }
7414
7780
  export type TemplateVersionSummaryDtoLifecycleStatus = typeof TemplateVersionSummaryDtoLifecycleStatus[keyof typeof TemplateVersionSummaryDtoLifecycleStatus];
7415
7781
  export declare const TemplateVersionSummaryDtoLifecycleStatus: {
7416
7782
  readonly draft: "draft";
@@ -7459,6 +7825,191 @@ export interface NotificationTemplateDetailDto {
7459
7825
  updatedAt: string;
7460
7826
  versions: TemplateVersionSummaryDto[];
7461
7827
  }
7828
+ export interface UpdateNotificationTemplateDto {
7829
+ /** The only mutable field: event, channel, locale and organization are the template's identity. */
7830
+ name: string;
7831
+ }
7832
+ export interface CreateTemplateVersionDto {
7833
+ /** Start from this version's content. Cloning an ARCHIVED version is the rollback-with-edits path; the archived row itself is never mutated. */
7834
+ cloneFromVersionId?: string;
7835
+ /** The contract version to author against. Defaults to the cloned version's, else the event's active version. */
7836
+ eventVersion?: number;
7837
+ }
7838
+ export type TemplateVersionDtoLifecycleStatus = typeof TemplateVersionDtoLifecycleStatus[keyof typeof TemplateVersionDtoLifecycleStatus];
7839
+ export declare const TemplateVersionDtoLifecycleStatus: {
7840
+ readonly draft: "draft";
7841
+ readonly published: "published";
7842
+ readonly archived: "archived";
7843
+ };
7844
+ /**
7845
+ * @nullable
7846
+ */
7847
+ export type TemplateVersionDtoPreviewData = {
7848
+ [key: string]: unknown;
7849
+ } | null;
7850
+ export interface TemplateVersionDto {
7851
+ notificationTemplateVersionId: string;
7852
+ notificationTemplateId: string;
7853
+ version: number;
7854
+ lifecycleStatus: TemplateVersionDtoLifecycleStatus;
7855
+ eventVersion: number;
7856
+ createdAt: string;
7857
+ /** @nullable */
7858
+ publishedAt: string | null;
7859
+ /** @nullable */
7860
+ archivedAt: string | null;
7861
+ /** @nullable */
7862
+ subject: string | null;
7863
+ /** @nullable */
7864
+ preheader: string | null;
7865
+ /** @nullable */
7866
+ bodyHtml: string | null;
7867
+ /** @nullable */
7868
+ bodyText: string | null;
7869
+ referencedVariables: string[];
7870
+ /** @nullable */
7871
+ previewData: TemplateVersionDtoPreviewData;
7872
+ /** @nullable */
7873
+ fromAddress: string | null;
7874
+ /** @nullable */
7875
+ replyTo: string | null;
7876
+ }
7877
+ /**
7878
+ * Sample payload for preview and test-send — contract-validated against eventVersion.
7879
+ */
7880
+ export type UpdateTemplateVersionDtoPreviewData = {
7881
+ [key: string]: unknown;
7882
+ };
7883
+ export interface UpdateTemplateVersionDto {
7884
+ /**
7885
+ * @maxLength 500
7886
+ * @nullable
7887
+ */
7888
+ subject?: string | null;
7889
+ /** @nullable */
7890
+ preheader?: string | null;
7891
+ /**
7892
+ * Raw HTML — requires the `template:author_html` capability (04 §5.1).
7893
+ * @nullable
7894
+ */
7895
+ bodyHtml?: string | null;
7896
+ /**
7897
+ * The plain-text alternative for email; THE message for SMS.
7898
+ * @nullable
7899
+ */
7900
+ bodyText?: string | null;
7901
+ /** @nullable */
7902
+ fromAddress?: string | null;
7903
+ /** @nullable */
7904
+ replyTo?: string | null;
7905
+ /** Sample payload for preview and test-send — contract-validated against eventVersion. */
7906
+ previewData?: UpdateTemplateVersionDtoPreviewData;
7907
+ /** Re-target the draft at another contract version. */
7908
+ eventVersion?: number;
7909
+ }
7910
+ /**
7911
+ * Defaults to the version's previewData; a supplied payload is contract-validated first.
7912
+ */
7913
+ export type PreviewTemplateVersionDtoPayload = {
7914
+ [key: string]: unknown;
7915
+ };
7916
+ export interface PreviewTemplateVersionDto {
7917
+ /** Defaults to the version's previewData; a supplied payload is contract-validated first. */
7918
+ payload?: PreviewTemplateVersionDtoPayload;
7919
+ }
7920
+ export type SanitizationWarningDtoKind = typeof SanitizationWarningDtoKind[keyof typeof SanitizationWarningDtoKind];
7921
+ export declare const SanitizationWarningDtoKind: {
7922
+ readonly stripped_tag: "stripped_tag";
7923
+ readonly stripped_attribute: "stripped_attribute";
7924
+ readonly stripped_style: "stripped_style";
7925
+ };
7926
+ export interface SanitizationWarningDto {
7927
+ kind: SanitizationWarningDtoKind;
7928
+ detail: string;
7929
+ }
7930
+ export interface TemplatePreviewDto {
7931
+ subject: string;
7932
+ html: string;
7933
+ text: string;
7934
+ /** SMS only: the segment count for this render. */
7935
+ smsSegments?: number;
7936
+ sanitizationWarnings: SanitizationWarningDto[];
7937
+ links: string[];
7938
+ /** Engine errors. A non-empty list means the version cannot render this payload. */
7939
+ renderErrors: string[];
7940
+ }
7941
+ /**
7942
+ * Defaults to the version's previewData.
7943
+ */
7944
+ export type TestSendDtoPayload = {
7945
+ [key: string]: unknown;
7946
+ };
7947
+ export interface TestSendDto {
7948
+ /** Format-validated per channel. */
7949
+ to: string;
7950
+ /** Defaults to the version's previewData. */
7951
+ payload?: TestSendDtoPayload;
7952
+ }
7953
+ /**
7954
+ * `suppressed` when the address carries an active suppression: the row is written terminal, not sent. A test cannot punch through a hard block.
7955
+ */
7956
+ export type TestSendResultDtoGateOutcome = typeof TestSendResultDtoGateOutcome[keyof typeof TestSendResultDtoGateOutcome];
7957
+ export declare const TestSendResultDtoGateOutcome: {
7958
+ readonly queued: "queued";
7959
+ readonly suppressed: "suppressed";
7960
+ };
7961
+ export interface TestSendResultDto {
7962
+ notificationDispatchId: string;
7963
+ /** `suppressed` when the address carries an active suppression: the row is written terminal, not sent. A test cannot punch through a hard block. */
7964
+ gateOutcome: TestSendResultDtoGateOutcome;
7965
+ }
7966
+ export interface PublishFailureDto {
7967
+ /** The 02 §4.2 check that failed. */
7968
+ gate: string;
7969
+ detail: string;
7970
+ /** The content field the failure is in. */
7971
+ field?: string;
7972
+ }
7973
+ export type PublishedTemplateVersionDtoLifecycleStatus = typeof PublishedTemplateVersionDtoLifecycleStatus[keyof typeof PublishedTemplateVersionDtoLifecycleStatus];
7974
+ export declare const PublishedTemplateVersionDtoLifecycleStatus: {
7975
+ readonly draft: "draft";
7976
+ readonly published: "published";
7977
+ readonly archived: "archived";
7978
+ };
7979
+ /**
7980
+ * @nullable
7981
+ */
7982
+ export type PublishedTemplateVersionDtoPreviewData = {
7983
+ [key: string]: unknown;
7984
+ } | null;
7985
+ export interface PublishedTemplateVersionDto {
7986
+ notificationTemplateVersionId: string;
7987
+ notificationTemplateId: string;
7988
+ version: number;
7989
+ lifecycleStatus: PublishedTemplateVersionDtoLifecycleStatus;
7990
+ eventVersion: number;
7991
+ createdAt: string;
7992
+ /** @nullable */
7993
+ publishedAt: string | null;
7994
+ /** @nullable */
7995
+ archivedAt: string | null;
7996
+ /** @nullable */
7997
+ subject: string | null;
7998
+ /** @nullable */
7999
+ preheader: string | null;
8000
+ /** @nullable */
8001
+ bodyHtml: string | null;
8002
+ /** @nullable */
8003
+ bodyText: string | null;
8004
+ referencedVariables: string[];
8005
+ /** @nullable */
8006
+ previewData: PublishedTemplateVersionDtoPreviewData;
8007
+ /** @nullable */
8008
+ fromAddress: string | null;
8009
+ /** @nullable */
8010
+ replyTo: string | null;
8011
+ warnings: PublishFailureDto[];
8012
+ }
7462
8013
  export type PreferenceDtoCategory = typeof PreferenceDtoCategory[keyof typeof PreferenceDtoCategory];
7463
8014
  export declare const PreferenceDtoCategory: {
7464
8015
  readonly marketing: "marketing";
@@ -8767,6 +9318,25 @@ export declare const LookupsControllerListV1Kind: {
8767
9318
  readonly 'transport-slot-kind': "transport-slot-kind";
8768
9319
  readonly 'organization-type': "organization-type";
8769
9320
  };
9321
+ export type ServicePointsControllerListV1Params = {
9322
+ /**
9323
+ * Postal code to search near.
9324
+ */
9325
+ zipCode?: string;
9326
+ /**
9327
+ * ISO 3166-1 alpha-2
9328
+ */
9329
+ countryCode?: string;
9330
+ provider?: ServicePointsControllerListV1Provider;
9331
+ /**
9332
+ * Provider-specific service-point type filter.
9333
+ */
9334
+ type?: string;
9335
+ };
9336
+ export type ServicePointsControllerListV1Provider = typeof ServicePointsControllerListV1Provider[keyof typeof ServicePointsControllerListV1Provider];
9337
+ export declare const ServicePointsControllerListV1Provider: {
9338
+ readonly POSTI: "POSTI";
9339
+ };
8770
9340
  export type IntegrationsControllerGetByIdV1200 = StripeAccountDto | FortnoxAccountDto;
8771
9341
  export type BillingAccountsControllerListAccountsV1Params = {
8772
9342
  /**