@dalmore/api-contracts 0.0.0-dev.988f3c3 → 0.0.0-dev.9d42e16

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 (191) hide show
  1. package/README.md +23 -19
  2. package/common/types/account-contact.types.ts +2 -1
  3. package/common/types/account-manager.types.ts +3 -7
  4. package/common/types/account.types.ts +1 -0
  5. package/common/types/auth.types.ts +7 -18
  6. package/common/types/common.types.ts +22 -0
  7. package/common/types/comply-advantage-api.types.ts +3 -3
  8. package/common/types/contact-us.types.ts +6 -2
  9. package/common/types/covered-person.types.ts +2 -1
  10. package/common/types/escrow-account.types.ts +3 -3
  11. package/common/types/individuals.types.ts +3 -2
  12. package/common/types/investor-account.types.ts +2 -1
  13. package/common/types/invite.types.ts +27 -1
  14. package/common/types/legal-entity.types.ts +3 -2
  15. package/common/types/mail-template.types.ts +34 -0
  16. package/common/types/note.types.ts +1 -1
  17. package/common/types/notification.types.ts +10 -0
  18. package/common/types/site-settings.types.ts +2 -1
  19. package/common/types/trade.types.ts +49 -1
  20. package/common/types/trusted-contact.types.ts +7 -7
  21. package/common/types/user.types.ts +2 -5
  22. package/common/types/webhook.types.ts +142 -0
  23. package/index.ts +10 -0
  24. package/package.json +23 -32
  25. package/contracts/compliance/account-contacts/index.ts +0 -82
  26. package/contracts/compliance/account-managers/index.ts +0 -142
  27. package/contracts/compliance/account-settings/index.ts +0 -59
  28. package/contracts/compliance/accounts/index.ts +0 -187
  29. package/contracts/compliance/activities/index.ts +0 -55
  30. package/contracts/compliance/aic/index.ts +0 -60
  31. package/contracts/compliance/api-keys/index.ts +0 -91
  32. package/contracts/compliance/assets/index.ts +0 -122
  33. package/contracts/compliance/auth/index.ts +0 -134
  34. package/contracts/compliance/batch-jobs/index.ts +0 -62
  35. package/contracts/compliance/bonus-tiers/index.ts +0 -74
  36. package/contracts/compliance/checklist/index.ts +0 -87
  37. package/contracts/compliance/checklist-items/index.ts +0 -86
  38. package/contracts/compliance/covered-persons/index.ts +0 -97
  39. package/contracts/compliance/dashboard/index.ts +0 -111
  40. package/contracts/compliance/data-records/index.ts +0 -116
  41. package/contracts/compliance/data-rooms/index.ts +0 -113
  42. package/contracts/compliance/default-theme-configs/index.ts +0 -95
  43. package/contracts/compliance/disbursement/index.ts +0 -165
  44. package/contracts/compliance/disbursement-approval-users/index.ts +0 -84
  45. package/contracts/compliance/disbursement-transactions/index.ts +0 -37
  46. package/contracts/compliance/domain-filters/index.ts +0 -117
  47. package/contracts/compliance/email-themes/index.ts +0 -284
  48. package/contracts/compliance/escrow-accounts/index.ts +0 -85
  49. package/contracts/compliance/exchange-api-keys/index.ts +0 -129
  50. package/contracts/compliance/exchange-imports/index.ts +0 -137
  51. package/contracts/compliance/files/index.ts +0 -267
  52. package/contracts/compliance/files-public/index.ts +0 -188
  53. package/contracts/compliance/health/index.ts +0 -26
  54. package/contracts/compliance/index.ts +0 -151
  55. package/contracts/compliance/individuals/index.ts +0 -57
  56. package/contracts/compliance/investor-accounts/index.ts +0 -141
  57. package/contracts/compliance/invites/index.ts +0 -137
  58. package/contracts/compliance/issuer-bank-accounts/index.ts +0 -81
  59. package/contracts/compliance/issuer-payment-methods/index.ts +0 -81
  60. package/contracts/compliance/issuers/index.ts +0 -97
  61. package/contracts/compliance/job-items/index.ts +0 -58
  62. package/contracts/compliance/jobs/index.ts +0 -59
  63. package/contracts/compliance/kyb/index.ts +0 -54
  64. package/contracts/compliance/kyc/index.ts +0 -77
  65. package/contracts/compliance/legal-entities/index.ts +0 -57
  66. package/contracts/compliance/login-histories/index.ts +0 -37
  67. package/contracts/compliance/notes/index.ts +0 -69
  68. package/contracts/compliance/notification-channels/index.ts +0 -251
  69. package/contracts/compliance/notion-databases/index.ts +0 -107
  70. package/contracts/compliance/notion-pages/index.ts +0 -105
  71. package/contracts/compliance/offering-reports/index.ts +0 -149
  72. package/contracts/compliance/offerings/index.ts +0 -233
  73. package/contracts/compliance/pages/index.ts +0 -178
  74. package/contracts/compliance/payment-methods/index.ts +0 -57
  75. package/contracts/compliance/rejection-reasons/index.ts +0 -32
  76. package/contracts/compliance/review/index.ts +0 -169
  77. package/contracts/compliance/roles/index.ts +0 -34
  78. package/contracts/compliance/secondary-customers/index.ts +0 -77
  79. package/contracts/compliance/secondary-orders/index.ts +0 -60
  80. package/contracts/compliance/secondary-trades/index.ts +0 -100
  81. package/contracts/compliance/secure-requests/index.ts +0 -54
  82. package/contracts/compliance/signer/index.ts +0 -369
  83. package/contracts/compliance/site-links/index.ts +0 -128
  84. package/contracts/compliance/site-settings/index.ts +0 -669
  85. package/contracts/compliance/sites/index.ts +0 -56
  86. package/contracts/compliance/state-machine/index.ts +0 -94
  87. package/contracts/compliance/tasks/index.ts +0 -91
  88. package/contracts/compliance/third-parties/index.ts +0 -52
  89. package/contracts/compliance/trade-line-items/index.ts +0 -59
  90. package/contracts/compliance/trades/index.ts +0 -230
  91. package/contracts/compliance/transactions/index.ts +0 -161
  92. package/contracts/compliance/user-manuals/index.ts +0 -271
  93. package/contracts/compliance/user-settings/index.ts +0 -189
  94. package/contracts/compliance/users/index.ts +0 -221
  95. package/contracts/compliance/webhooks/index.ts +0 -41
  96. package/contracts/compliance-apikey/accounts/index.ts +0 -58
  97. package/contracts/compliance-apikey/index.ts +0 -14
  98. package/contracts/index.ts +0 -6
  99. package/contracts/investors/account-contacts/index.ts +0 -58
  100. package/contracts/investors/aic/index.ts +0 -59
  101. package/contracts/investors/assets/index.ts +0 -61
  102. package/contracts/investors/auth/index.ts +0 -116
  103. package/contracts/investors/bonus-tiers/index.ts +0 -55
  104. package/contracts/investors/cart/index.ts +0 -75
  105. package/contracts/investors/contact-us/index.ts +0 -48
  106. package/contracts/investors/data-records/index.ts +0 -113
  107. package/contracts/investors/data-rooms/index.ts +0 -96
  108. package/contracts/investors/files/index.ts +0 -167
  109. package/contracts/investors/files-public/index.ts +0 -185
  110. package/contracts/investors/index.ts +0 -72
  111. package/contracts/investors/individuals/index.ts +0 -121
  112. package/contracts/investors/investor-accounts/index.ts +0 -110
  113. package/contracts/investors/issuer-payment-methods/index.ts +0 -36
  114. package/contracts/investors/issuers/index.ts +0 -30
  115. package/contracts/investors/legal-entities/index.ts +0 -93
  116. package/contracts/investors/notes/index.ts +0 -69
  117. package/contracts/investors/offerings/index.ts +0 -93
  118. package/contracts/investors/pages/index.ts +0 -88
  119. package/contracts/investors/payment-methods/index.ts +0 -149
  120. package/contracts/investors/portfolios/index.ts +0 -53
  121. package/contracts/investors/sites/index.ts +0 -96
  122. package/contracts/investors/tasks/index.ts +0 -111
  123. package/contracts/investors/trade-line-items/index.ts +0 -75
  124. package/contracts/investors/trades/index.ts +0 -114
  125. package/contracts/investors/transactions/index.ts +0 -37
  126. package/contracts/investors/trusted-contacts/index.ts +0 -93
  127. package/contracts/investors/user-manuals/index.ts +0 -62
  128. package/contracts/investors/user-settings/index.ts +0 -170
  129. package/contracts/investors/users/index.ts +0 -45
  130. package/contracts/investors/webhooks/index.ts +0 -30
  131. package/contracts/issuers/account-contacts/index.ts +0 -76
  132. package/contracts/issuers/account-integrations/index.ts +0 -97
  133. package/contracts/issuers/account-settings/index.ts +0 -36
  134. package/contracts/issuers/accounts/index.ts +0 -97
  135. package/contracts/issuers/activities/index.ts +0 -54
  136. package/contracts/issuers/aic/index.ts +0 -39
  137. package/contracts/issuers/api-key-logs/index.ts +0 -53
  138. package/contracts/issuers/api-keys/index.ts +0 -93
  139. package/contracts/issuers/assets/index.ts +0 -122
  140. package/contracts/issuers/auth/index.ts +0 -152
  141. package/contracts/issuers/bonus-tiers/index.ts +0 -73
  142. package/contracts/issuers/contact-us/index.ts +0 -48
  143. package/contracts/issuers/covered-persons/index.ts +0 -136
  144. package/contracts/issuers/dashboard/index.ts +0 -72
  145. package/contracts/issuers/data-records/index.ts +0 -257
  146. package/contracts/issuers/data-rooms/index.ts +0 -134
  147. package/contracts/issuers/disbursement-approval-users/index.ts +0 -82
  148. package/contracts/issuers/disbursement-transactions/index.ts +0 -53
  149. package/contracts/issuers/disbursements/index.ts +0 -189
  150. package/contracts/issuers/email-themes/index.ts +0 -242
  151. package/contracts/issuers/escrow-accounts/index.ts +0 -81
  152. package/contracts/issuers/exchange-api-keys/index.ts +0 -144
  153. package/contracts/issuers/files/index.ts +0 -166
  154. package/contracts/issuers/files-public/index.ts +0 -166
  155. package/contracts/issuers/health/index.ts +0 -24
  156. package/contracts/issuers/index.ts +0 -116
  157. package/contracts/issuers/investor-accounts/index.ts +0 -148
  158. package/contracts/issuers/invites/index.ts +0 -129
  159. package/contracts/issuers/issuer/index.ts +0 -94
  160. package/contracts/issuers/issuer-bank-accounts/index.ts +0 -81
  161. package/contracts/issuers/issuer-payment-methods/index.ts +0 -136
  162. package/contracts/issuers/kyc/index.ts +0 -38
  163. package/contracts/issuers/login-histories/index.ts +0 -51
  164. package/contracts/issuers/notes/index.ts +0 -69
  165. package/contracts/issuers/notification-channels/index.ts +0 -251
  166. package/contracts/issuers/offerings/index.ts +0 -206
  167. package/contracts/issuers/pages/index.ts +0 -138
  168. package/contracts/issuers/payment-methods/index.ts +0 -61
  169. package/contracts/issuers/portfolios/index.ts +0 -36
  170. package/contracts/issuers/rejection-reasons/index.ts +0 -32
  171. package/contracts/issuers/review/index.ts +0 -63
  172. package/contracts/issuers/secondary-customers/index.ts +0 -55
  173. package/contracts/issuers/secondary-orders/index.ts +0 -57
  174. package/contracts/issuers/secondary-trades/index.ts +0 -57
  175. package/contracts/issuers/secure-requests/index.ts +0 -34
  176. package/contracts/issuers/site-links/index.ts +0 -116
  177. package/contracts/issuers/site-settings/index.ts +0 -585
  178. package/contracts/issuers/sites/index.ts +0 -32
  179. package/contracts/issuers/tasks/index.ts +0 -111
  180. package/contracts/issuers/trades/index.ts +0 -132
  181. package/contracts/issuers/transactions/index.ts +0 -158
  182. package/contracts/issuers/user-manuals/index.ts +0 -62
  183. package/contracts/issuers/user-settings/index.ts +0 -170
  184. package/contracts/issuers/users/index.ts +0 -126
  185. package/contracts/secondaries/accounts/index.ts +0 -58
  186. package/contracts/secondaries/index.ts +0 -23
  187. package/contracts/secondaries/secondary-customers/index.ts +0 -55
  188. package/contracts/secondaries/secondary-issuers/index.ts +0 -94
  189. package/contracts/secondaries/secondary-orders/index.ts +0 -56
  190. package/contracts/secondaries/secondary-securities/index.ts +0 -95
  191. package/contracts/secondaries/secondary-trades/index.ts +0 -56
@@ -2,7 +2,11 @@ import { extendZodWithOpenApi } from '@anatine/zod-openapi';
2
2
  import { TypeID } from 'typeid-js';
3
3
  import { z } from 'zod';
4
4
  import { IBaseEntity } from './entity.types';
5
- import { IPaginationMeta, TrustedContactRelationship } from './common.types';
5
+ import {
6
+ EmailSchema,
7
+ IPaginationMeta,
8
+ TrustedContactRelationship,
9
+ } from './common.types';
6
10
  import { PhoneZodSchema } from './phone.type';
7
11
  import { AddressSchema } from './address.types';
8
12
  import { investorAccountIdSchema } from './investor-account.types';
@@ -68,7 +72,7 @@ export const PostTrustedContactZod = z
68
72
  .object({
69
73
  firstName: z.string().min(1).max(255).openapi({ example: 'John' }),
70
74
  lastName: z.string().min(1).max(255).openapi({ example: 'Doe' }),
71
- email: z.string().email().openapi({ example: 'john.doe@example.com' }),
75
+ email: EmailSchema.openapi({ example: 'john.doe@example.com' }),
72
76
  phone: PhoneZodSchema.nullable().optional(),
73
77
  relationship: z
74
78
  .nativeEnum(TrustedContactRelationship)
@@ -92,11 +96,7 @@ export const PatchTrustedContactZod = z
92
96
  .optional()
93
97
  .openapi({ example: 'John' }),
94
98
  lastName: z.string().min(1).max(255).optional().openapi({ example: 'Doe' }),
95
- email: z
96
- .string()
97
- .email()
98
- .optional()
99
- .openapi({ example: 'john.doe@example.com' }),
99
+ email: EmailSchema.optional(),
100
100
  phone: PhoneZodSchema.nullable().optional(),
101
101
  relationship: z.nativeEnum(TrustedContactRelationship).optional().openapi({
102
102
  example: TrustedContactRelationship.CHILD,
@@ -11,6 +11,7 @@ import {
11
11
  StringToBooleanSchema,
12
12
  UserRole,
13
13
  UserType,
14
+ EmailSchema,
14
15
  } from './common.types';
15
16
  import { dateOrString, IBaseEntity } from './entity.types';
16
17
  import { PhoneZodSchema } from './phone.type';
@@ -147,11 +148,7 @@ export const UserMeUpdateZod = z.object({
147
148
  firstName: z.string().optional(),
148
149
  lastName: z.string().optional(),
149
150
  password: z.string().min(6).optional(),
150
- email: z
151
- .string()
152
- .email()
153
- .transform((val) => val.toLowerCase())
154
- .optional(),
151
+ email: EmailSchema.optional(),
155
152
  });
156
153
 
157
154
  export const UserZod = IBaseEntity.extend({
@@ -1,6 +1,148 @@
1
1
  import { z } from 'zod';
2
2
  import { PersonaStatus } from './common.types';
3
3
 
4
+ /**
5
+ * Hook0 Webhook Provider Types
6
+ *
7
+ * Types for interacting with Hook0's webhooks-as-a-service API.
8
+ * @see https://documentation.hook0.com/api - API Reference
9
+ */
10
+
11
+ /**
12
+ * Hook0 API error response format.
13
+ * @see https://documentation.hook0.com/api
14
+ */
15
+ export const Hook0ApiErrorSchema = z.object({
16
+ type: z.string(),
17
+ status: z.number(),
18
+ title: z.string(),
19
+ detail: z.string(),
20
+ validation: z.unknown().nullable(),
21
+ id: z.string(),
22
+ });
23
+ export type Hook0ApiError = z.infer<typeof Hook0ApiErrorSchema>;
24
+
25
+ /**
26
+ * Error returned from Hook0 provider operations.
27
+ * Wraps Hook0 API errors with additional context.
28
+ */
29
+ export const Hook0ProviderErrorSchema = z.object({
30
+ message: z.string(),
31
+ statusCode: z.number().optional(),
32
+ code: z.string().optional(),
33
+ apiError: Hook0ApiErrorSchema.optional(),
34
+ });
35
+ export type Hook0ProviderError = z.infer<typeof Hook0ProviderErrorSchema>;
36
+
37
+ /**
38
+ * Hook0 subscription target configuration.
39
+ * Defines where and how webhooks are delivered.
40
+ * @see https://documentation.hook0.com/reference/subscriptionscreate
41
+ */
42
+ export const Hook0SubscriptionTargetSchema = z.object({
43
+ type: z.literal('http'),
44
+ method: z.string(),
45
+ url: z.string().url(),
46
+ headers: z.record(z.string()).optional(),
47
+ });
48
+ export type Hook0SubscriptionTarget = z.infer<
49
+ typeof Hook0SubscriptionTargetSchema
50
+ >;
51
+
52
+ /**
53
+ * Hook0 subscription response from create/get operations.
54
+ * @see https://documentation.hook0.com/reference/subscriptionscreate
55
+ * @see https://documentation.hook0.com/reference/subscriptionsget
56
+ */
57
+ export const Hook0SubscriptionResponseSchema = z.object({
58
+ subscription_id: z.string().uuid(),
59
+ application_id: z.string().uuid(),
60
+ created_at: z.string().datetime().optional(),
61
+ dedicated_workers: z.array(z.string()).optional(),
62
+ description: z.string().optional(),
63
+ event_types: z.array(z.string()).optional(),
64
+ is_enabled: z.boolean().optional(),
65
+ label_key: z.string().optional(),
66
+ label_value: z.string().optional(),
67
+ labels: z.record(z.string()).optional(),
68
+ metadata: z.record(z.string()).optional(),
69
+ secret: z.string(),
70
+ target: Hook0SubscriptionTargetSchema.optional(),
71
+ });
72
+ export type Hook0SubscriptionResponse = z.infer<
73
+ typeof Hook0SubscriptionResponseSchema
74
+ >;
75
+
76
+ /**
77
+ * Simplified subscription result returned to callers.
78
+ */
79
+ export const WebhookSubscriptionSchema = z.object({
80
+ subscriptionId: z.string(),
81
+ secret: z.string(),
82
+ });
83
+ export type WebhookSubscription = z.infer<typeof WebhookSubscriptionSchema>;
84
+
85
+ /**
86
+ * Hook0 event type response from create operation.
87
+ * @see https://documentation.hook0.com/reference/eventtypescreate
88
+ */
89
+ export const Hook0EventTypeResponseSchema = z.object({
90
+ service_name: z.string(),
91
+ resource_type_name: z.string(),
92
+ verb_name: z.string(),
93
+ event_type_name: z.string(),
94
+ });
95
+ export type Hook0EventTypeResponse = z.infer<
96
+ typeof Hook0EventTypeResponseSchema
97
+ >;
98
+
99
+ /**
100
+ * Hook0 event type list item.
101
+ * @see https://documentation.hook0.com/reference/eventtypeslist
102
+ */
103
+ export const Hook0EventTypeSchema = z.object({
104
+ name: z.string(),
105
+ service: z.string().optional(),
106
+ resource_type: z.string().optional(),
107
+ verb: z.string().optional(),
108
+ });
109
+ export type Hook0EventType = z.infer<typeof Hook0EventTypeSchema>;
110
+
111
+ /**
112
+ * Hook0 event ingestion response.
113
+ * @see https://documentation.hook0.com/api/#tag/events-ingestion/POST/api/v1/event/
114
+ */
115
+ export const Hook0EventResponseSchema = z.object({
116
+ event_id: z.string().uuid().optional(),
117
+ received_at: z.string().datetime().optional(),
118
+ });
119
+ export type Hook0EventResponse = z.infer<typeof Hook0EventResponseSchema>;
120
+
121
+ /**
122
+ * Simplified event response returned to callers.
123
+ */
124
+ export const WebhookEventResponseSchema = z.object({
125
+ eventId: z.string(),
126
+ receivedAt: z.string(),
127
+ });
128
+ export type WebhookEventResponse = z.infer<typeof WebhookEventResponseSchema>;
129
+
130
+ /**
131
+ * Payload sent when ingesting events to Hook0.
132
+ * Contains activity data to be delivered to webhook subscribers.
133
+ */
134
+ export const WebhookEventPayloadSchema = z.object({
135
+ activityId: z.string(),
136
+ activityType: z.string(),
137
+ accountId: z.string(),
138
+ targetId: z.string().nullable(),
139
+ targetTable: z.string().nullable(),
140
+ message: z.string(),
141
+ metadata: z.record(z.unknown()),
142
+ occurredAt: z.string(),
143
+ });
144
+ export type WebhookEventPayload = z.infer<typeof WebhookEventPayloadSchema>;
145
+
4
146
  export const WebhookReceived = z.object({
5
147
  received: z.boolean(),
6
148
  });
package/index.ts ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @dalmore/api-contracts
3
+ * Main entry point - re-exports clients contract and types
4
+ */
5
+
6
+ // Re-export clients contract
7
+ export * from './contracts/clients/index.js';
8
+
9
+ // Re-export all common types
10
+ export * from './common/types/index.js';
package/package.json CHANGED
@@ -1,48 +1,42 @@
1
1
  {
2
2
  "name": "@dalmore/api-contracts",
3
- "version": "0.0.0-dev.988f3c3",
3
+ "version": "0.0.0-dev.9d42e16",
4
4
  "description": "Type-safe API contracts for Dalmore Client Portal",
5
- "main": "./contracts/index.ts",
6
- "types": "./contracts/index.ts",
5
+ "type": "module",
6
+ "main": "./index.ts",
7
+ "types": "./index.ts",
7
8
  "exports": {
8
9
  ".": {
9
- "types": "./contracts/index.ts",
10
- "default": "./contracts/index.ts"
11
- },
12
- "./compliance": {
13
- "types": "./contracts/compliance/index.ts",
14
- "default": "./contracts/compliance/index.ts"
15
- },
16
- "./investors": {
17
- "types": "./contracts/investors/index.ts",
18
- "default": "./contracts/investors/index.ts"
19
- },
20
- "./issuers": {
21
- "types": "./contracts/issuers/index.ts",
22
- "default": "./contracts/issuers/index.ts"
10
+ "types": "./index.ts",
11
+ "import": "./index.ts",
12
+ "default": "./index.ts"
23
13
  },
24
14
  "./clients": {
25
15
  "types": "./contracts/clients/index.ts",
16
+ "import": "./contracts/clients/index.ts",
26
17
  "default": "./contracts/clients/index.ts"
27
18
  },
28
- "./secondaries": {
29
- "types": "./contracts/secondaries/index.ts",
30
- "default": "./contracts/secondaries/index.ts"
31
- },
32
- "./compliance-apikey": {
33
- "types": "./contracts/compliance-apikey/index.ts",
34
- "default": "./contracts/compliance-apikey/index.ts"
35
- },
36
19
  "./types": {
37
20
  "types": "./common/types/index.ts",
21
+ "import": "./common/types/index.ts",
38
22
  "default": "./common/types/index.ts"
39
- },
40
- "./types/*": {
41
- "types": "./common/types/*.ts",
42
- "default": "./common/types/*.ts"
23
+ }
24
+ },
25
+ "typesVersions": {
26
+ "*": {
27
+ ".": [
28
+ "./index.ts"
29
+ ],
30
+ "clients": [
31
+ "./contracts/clients/index.ts"
32
+ ],
33
+ "types": [
34
+ "./common/types/index.ts"
35
+ ]
43
36
  }
44
37
  },
45
38
  "files": [
39
+ "index.ts",
46
40
  "contracts",
47
41
  "common"
48
42
  ],
@@ -68,9 +62,6 @@
68
62
  "typeid-js": "^1.2.0",
69
63
  "zod": "^3.24.4"
70
64
  },
71
- "devDependencies": {
72
- "typescript": "^5.8.3"
73
- },
74
65
  "engines": {
75
66
  "node": ">=24.0.0 <25.0.0"
76
67
  }
@@ -1,82 +0,0 @@
1
- import { initContract } from '@ts-rest/core';
2
- import {
3
- accountIdSchema,
4
- BadRequestError,
5
- ForbiddenError,
6
- InternalError,
7
- NotFoundError,
8
- UnauthorizedError,
9
- } from '../../../common/types';
10
- import {
11
- accountContactIdSchema,
12
- CompliancePatchAccountContactZod,
13
- IAccountContact,
14
- } from '../../../common/types/account-contact.types';
15
- import { z } from 'zod';
16
-
17
- const c = initContract();
18
-
19
- export const accountContactsContract = c.router(
20
- {
21
- getAccountContacts: {
22
- summary: '[ADMIN] Get Account Contacts',
23
- method: 'GET',
24
- path: '',
25
- metadata: {
26
- auth: true,
27
- },
28
- query: z.object({
29
- accountId: accountIdSchema,
30
- }),
31
- responses: {
32
- 200: z.array(IAccountContact),
33
- 401: UnauthorizedError,
34
- 403: ForbiddenError,
35
- 500: InternalError,
36
- },
37
- },
38
- getAccountContact: {
39
- summary: '[ADMIN] Get account contact by id',
40
- method: 'GET',
41
- path: '/:id',
42
- metadata: {
43
- auth: true,
44
- },
45
- pathParams: z.object({
46
- id: accountContactIdSchema,
47
- }),
48
- query: z.object({
49
- accountId: accountIdSchema,
50
- }),
51
- responses: {
52
- 200: IAccountContact,
53
- 401: UnauthorizedError,
54
- 403: ForbiddenError,
55
- 404: NotFoundError,
56
- },
57
- },
58
- patchAccountContact: {
59
- summary: '[ADMIN] Update account contact',
60
- method: 'PATCH',
61
- path: '/:id',
62
- metadata: {
63
- auth: true,
64
- },
65
- pathParams: z.object({
66
- id: accountContactIdSchema,
67
- }),
68
- body: CompliancePatchAccountContactZod,
69
- responses: {
70
- 200: IAccountContact,
71
- 400: BadRequestError,
72
- 401: UnauthorizedError,
73
- 403: ForbiddenError,
74
- 404: NotFoundError,
75
- 500: InternalError,
76
- },
77
- },
78
- },
79
- {
80
- pathPrefix: 'account-contacts',
81
- },
82
- );
@@ -1,142 +0,0 @@
1
- import { initContract } from '@ts-rest/core';
2
- import { z } from 'zod';
3
- import {
4
- BadRequestError,
5
- ForbiddenError,
6
- InternalError,
7
- NotFoundError,
8
- PaginationOptionsZod,
9
- PreconditionFailedError,
10
- UnauthorizedError,
11
- } from '../../../common/types';
12
- import {
13
- AccountManagerDeleteQuery,
14
- AccountManagerDeleteResponse,
15
- accountManagerIdSchema,
16
- AccountManagersIncludeQuery,
17
- IAccountManagerZod,
18
- IPaginatedAccountManager,
19
- PatchAccountManagerZod,
20
- PostAccountManagerZod,
21
- SetDefaultAccountManagerForAllAccountsResponse,
22
- } from '../../../common/types/account-manager.types';
23
-
24
- const c = initContract();
25
-
26
- export const accountManagersContract = c.router(
27
- {
28
- getAccountManagers: {
29
- summary: 'Get account managers',
30
- method: 'GET',
31
- path: '',
32
- metadata: {
33
- auth: true,
34
- },
35
- query: PaginationOptionsZod.merge(AccountManagersIncludeQuery),
36
- responses: {
37
- 200: IPaginatedAccountManager,
38
- 400: BadRequestError,
39
- 401: UnauthorizedError,
40
- 403: ForbiddenError,
41
- 500: InternalError,
42
- },
43
- },
44
- getAccountManager: {
45
- summary: 'Get account manager by id',
46
- method: 'GET',
47
- path: '/:id',
48
- metadata: {
49
- auth: true,
50
- },
51
- query: z.object({}).merge(AccountManagersIncludeQuery),
52
- pathParams: z.object({
53
- id: accountManagerIdSchema,
54
- }),
55
- responses: {
56
- 200: IAccountManagerZod,
57
- 400: BadRequestError,
58
- 401: UnauthorizedError,
59
- 403: ForbiddenError,
60
- 404: NotFoundError,
61
- 500: InternalError,
62
- },
63
- },
64
- setDefaultAccountManagerForAllAccounts: {
65
- summary: '[ADMIN] Set default account manager for all accounts',
66
- method: 'PATCH',
67
- path: '/set-default-for-all-accounts',
68
- metadata: {
69
- auth: true,
70
- },
71
- body: z.object({}),
72
- responses: {
73
- 200: SetDefaultAccountManagerForAllAccountsResponse,
74
- 400: BadRequestError,
75
- 401: UnauthorizedError,
76
- 403: ForbiddenError,
77
- 500: InternalError,
78
- },
79
- },
80
- patchAccountManager: {
81
- summary: 'Update account manager by id',
82
- method: 'PATCH',
83
- path: '/:id',
84
- metadata: {
85
- auth: true,
86
- },
87
- pathParams: z.object({
88
- id: accountManagerIdSchema,
89
- }),
90
- body: PatchAccountManagerZod,
91
- responses: {
92
- 201: IAccountManagerZod,
93
- 400: BadRequestError,
94
- 401: UnauthorizedError,
95
- 403: ForbiddenError,
96
- 404: NotFoundError,
97
- 500: InternalError,
98
- },
99
- },
100
- postAccountManager: {
101
- summary: 'Create account manager',
102
- method: 'POST',
103
- path: '',
104
- metadata: {
105
- auth: true,
106
- },
107
- body: PostAccountManagerZod,
108
- responses: {
109
- 201: IAccountManagerZod,
110
- 400: BadRequestError,
111
- 401: UnauthorizedError,
112
- 403: ForbiddenError,
113
- 500: InternalError,
114
- },
115
- },
116
- deleteAccountManager: {
117
- summary: 'Delete account manager by id',
118
- method: 'DELETE',
119
- path: '/:id',
120
- metadata: {
121
- auth: true,
122
- },
123
- pathParams: z.object({
124
- id: accountManagerIdSchema,
125
- }),
126
- query: AccountManagerDeleteQuery,
127
- responses: {
128
- 201: AccountManagerDeleteResponse,
129
- 400: BadRequestError,
130
- 401: UnauthorizedError,
131
- 403: ForbiddenError,
132
- 404: NotFoundError,
133
- 412: PreconditionFailedError,
134
- 500: InternalError,
135
- },
136
- },
137
- },
138
-
139
- {
140
- pathPrefix: 'account-managers',
141
- },
142
- );
@@ -1,59 +0,0 @@
1
- import { initContract } from '@ts-rest/core';
2
- import { z } from 'zod';
3
- import {
4
- accountSettingIdSchema,
5
- AccountSettingsFilters,
6
- AccountSettingsIncludeQuery,
7
- IAccountSettingZod,
8
- IPaginatedAccountSetting,
9
- } from '../../../common/types/account-setting.types';
10
- import {
11
- InternalError,
12
- NotFoundError,
13
- PaginationOptionsZod,
14
- UnauthorizedError,
15
- } from '../../../common/types';
16
-
17
- const c = initContract();
18
-
19
- export const accountSettingsContract = c.router(
20
- {
21
- getAccountSettings: {
22
- summary: 'Get account settings',
23
- method: 'GET',
24
- path: '',
25
- metadata: {
26
- auth: true,
27
- },
28
- query: PaginationOptionsZod.merge(AccountSettingsFilters).merge(
29
- AccountSettingsIncludeQuery,
30
- ),
31
- responses: {
32
- 200: IPaginatedAccountSetting,
33
- 401: UnauthorizedError,
34
- 500: InternalError,
35
- },
36
- },
37
- getAccountSetting: {
38
- summary: 'Get account setting by id',
39
- method: 'GET',
40
- path: '/:id',
41
- metadata: {
42
- auth: true,
43
- },
44
- pathParams: z.object({
45
- id: accountSettingIdSchema,
46
- }),
47
- query: z.object({}).merge(AccountSettingsIncludeQuery),
48
- responses: {
49
- 200: IAccountSettingZod,
50
- 401: UnauthorizedError,
51
- 404: NotFoundError,
52
- 500: InternalError,
53
- },
54
- },
55
- },
56
- {
57
- pathPrefix: 'account-settings',
58
- },
59
- );