@dalmore/api-contracts 0.0.0-dev.d6badc9 → 0.0.0-dev.dc7fdf8

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 (190) 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/auth.types.ts +7 -18
  5. package/common/types/common.types.ts +22 -0
  6. package/common/types/comply-advantage-api.types.ts +3 -3
  7. package/common/types/contact-us.types.ts +6 -2
  8. package/common/types/covered-person.types.ts +2 -1
  9. package/common/types/escrow-account.types.ts +3 -3
  10. package/common/types/individuals.types.ts +3 -2
  11. package/common/types/investor-account.types.ts +2 -1
  12. package/common/types/invite.types.ts +27 -1
  13. package/common/types/legal-entity.types.ts +3 -2
  14. package/common/types/mail-template.types.ts +34 -0
  15. package/common/types/note.types.ts +1 -1
  16. package/common/types/notification.types.ts +10 -0
  17. package/common/types/site-settings.types.ts +2 -1
  18. package/common/types/trade.types.ts +49 -1
  19. package/common/types/trusted-contact.types.ts +7 -7
  20. package/common/types/user.types.ts +2 -5
  21. package/common/types/webhook.types.ts +142 -0
  22. package/index.ts +10 -0
  23. package/package.json +23 -32
  24. package/contracts/compliance/account-contacts/index.ts +0 -82
  25. package/contracts/compliance/account-managers/index.ts +0 -142
  26. package/contracts/compliance/account-settings/index.ts +0 -59
  27. package/contracts/compliance/accounts/index.ts +0 -187
  28. package/contracts/compliance/activities/index.ts +0 -55
  29. package/contracts/compliance/aic/index.ts +0 -60
  30. package/contracts/compliance/api-keys/index.ts +0 -91
  31. package/contracts/compliance/assets/index.ts +0 -122
  32. package/contracts/compliance/auth/index.ts +0 -134
  33. package/contracts/compliance/batch-jobs/index.ts +0 -62
  34. package/contracts/compliance/bonus-tiers/index.ts +0 -74
  35. package/contracts/compliance/checklist/index.ts +0 -87
  36. package/contracts/compliance/checklist-items/index.ts +0 -86
  37. package/contracts/compliance/covered-persons/index.ts +0 -97
  38. package/contracts/compliance/dashboard/index.ts +0 -111
  39. package/contracts/compliance/data-records/index.ts +0 -116
  40. package/contracts/compliance/data-rooms/index.ts +0 -113
  41. package/contracts/compliance/default-theme-configs/index.ts +0 -95
  42. package/contracts/compliance/disbursement/index.ts +0 -165
  43. package/contracts/compliance/disbursement-approval-users/index.ts +0 -84
  44. package/contracts/compliance/disbursement-transactions/index.ts +0 -37
  45. package/contracts/compliance/domain-filters/index.ts +0 -117
  46. package/contracts/compliance/email-themes/index.ts +0 -284
  47. package/contracts/compliance/escrow-accounts/index.ts +0 -85
  48. package/contracts/compliance/exchange-api-keys/index.ts +0 -129
  49. package/contracts/compliance/exchange-imports/index.ts +0 -137
  50. package/contracts/compliance/files/index.ts +0 -267
  51. package/contracts/compliance/files-public/index.ts +0 -188
  52. package/contracts/compliance/health/index.ts +0 -26
  53. package/contracts/compliance/index.ts +0 -151
  54. package/contracts/compliance/individuals/index.ts +0 -57
  55. package/contracts/compliance/investor-accounts/index.ts +0 -141
  56. package/contracts/compliance/invites/index.ts +0 -137
  57. package/contracts/compliance/issuer-bank-accounts/index.ts +0 -81
  58. package/contracts/compliance/issuer-payment-methods/index.ts +0 -81
  59. package/contracts/compliance/issuers/index.ts +0 -97
  60. package/contracts/compliance/job-items/index.ts +0 -58
  61. package/contracts/compliance/jobs/index.ts +0 -59
  62. package/contracts/compliance/kyb/index.ts +0 -54
  63. package/contracts/compliance/kyc/index.ts +0 -77
  64. package/contracts/compliance/legal-entities/index.ts +0 -57
  65. package/contracts/compliance/login-histories/index.ts +0 -37
  66. package/contracts/compliance/notes/index.ts +0 -69
  67. package/contracts/compliance/notification-channels/index.ts +0 -251
  68. package/contracts/compliance/notion-databases/index.ts +0 -107
  69. package/contracts/compliance/notion-pages/index.ts +0 -105
  70. package/contracts/compliance/offering-reports/index.ts +0 -149
  71. package/contracts/compliance/offerings/index.ts +0 -233
  72. package/contracts/compliance/pages/index.ts +0 -178
  73. package/contracts/compliance/payment-methods/index.ts +0 -57
  74. package/contracts/compliance/rejection-reasons/index.ts +0 -32
  75. package/contracts/compliance/review/index.ts +0 -169
  76. package/contracts/compliance/roles/index.ts +0 -34
  77. package/contracts/compliance/secondary-customers/index.ts +0 -77
  78. package/contracts/compliance/secondary-orders/index.ts +0 -60
  79. package/contracts/compliance/secondary-trades/index.ts +0 -100
  80. package/contracts/compliance/secure-requests/index.ts +0 -54
  81. package/contracts/compliance/signer/index.ts +0 -369
  82. package/contracts/compliance/site-links/index.ts +0 -128
  83. package/contracts/compliance/site-settings/index.ts +0 -669
  84. package/contracts/compliance/sites/index.ts +0 -56
  85. package/contracts/compliance/state-machine/index.ts +0 -94
  86. package/contracts/compliance/tasks/index.ts +0 -91
  87. package/contracts/compliance/third-parties/index.ts +0 -52
  88. package/contracts/compliance/trade-line-items/index.ts +0 -59
  89. package/contracts/compliance/trades/index.ts +0 -230
  90. package/contracts/compliance/transactions/index.ts +0 -161
  91. package/contracts/compliance/user-manuals/index.ts +0 -271
  92. package/contracts/compliance/user-settings/index.ts +0 -189
  93. package/contracts/compliance/users/index.ts +0 -221
  94. package/contracts/compliance/webhooks/index.ts +0 -41
  95. package/contracts/compliance-apikey/accounts/index.ts +0 -58
  96. package/contracts/compliance-apikey/index.ts +0 -14
  97. package/contracts/index.ts +0 -6
  98. package/contracts/investors/account-contacts/index.ts +0 -58
  99. package/contracts/investors/aic/index.ts +0 -59
  100. package/contracts/investors/assets/index.ts +0 -61
  101. package/contracts/investors/auth/index.ts +0 -116
  102. package/contracts/investors/bonus-tiers/index.ts +0 -55
  103. package/contracts/investors/cart/index.ts +0 -75
  104. package/contracts/investors/contact-us/index.ts +0 -48
  105. package/contracts/investors/data-records/index.ts +0 -113
  106. package/contracts/investors/data-rooms/index.ts +0 -96
  107. package/contracts/investors/files/index.ts +0 -167
  108. package/contracts/investors/files-public/index.ts +0 -185
  109. package/contracts/investors/index.ts +0 -72
  110. package/contracts/investors/individuals/index.ts +0 -121
  111. package/contracts/investors/investor-accounts/index.ts +0 -110
  112. package/contracts/investors/issuer-payment-methods/index.ts +0 -36
  113. package/contracts/investors/issuers/index.ts +0 -30
  114. package/contracts/investors/legal-entities/index.ts +0 -93
  115. package/contracts/investors/notes/index.ts +0 -69
  116. package/contracts/investors/offerings/index.ts +0 -93
  117. package/contracts/investors/pages/index.ts +0 -88
  118. package/contracts/investors/payment-methods/index.ts +0 -149
  119. package/contracts/investors/portfolios/index.ts +0 -53
  120. package/contracts/investors/sites/index.ts +0 -96
  121. package/contracts/investors/tasks/index.ts +0 -111
  122. package/contracts/investors/trade-line-items/index.ts +0 -75
  123. package/contracts/investors/trades/index.ts +0 -114
  124. package/contracts/investors/transactions/index.ts +0 -37
  125. package/contracts/investors/trusted-contacts/index.ts +0 -93
  126. package/contracts/investors/user-manuals/index.ts +0 -62
  127. package/contracts/investors/user-settings/index.ts +0 -170
  128. package/contracts/investors/users/index.ts +0 -45
  129. package/contracts/investors/webhooks/index.ts +0 -30
  130. package/contracts/issuers/account-contacts/index.ts +0 -76
  131. package/contracts/issuers/account-integrations/index.ts +0 -97
  132. package/contracts/issuers/account-settings/index.ts +0 -36
  133. package/contracts/issuers/accounts/index.ts +0 -97
  134. package/contracts/issuers/activities/index.ts +0 -54
  135. package/contracts/issuers/aic/index.ts +0 -39
  136. package/contracts/issuers/api-key-logs/index.ts +0 -53
  137. package/contracts/issuers/api-keys/index.ts +0 -93
  138. package/contracts/issuers/assets/index.ts +0 -122
  139. package/contracts/issuers/auth/index.ts +0 -152
  140. package/contracts/issuers/bonus-tiers/index.ts +0 -73
  141. package/contracts/issuers/contact-us/index.ts +0 -48
  142. package/contracts/issuers/covered-persons/index.ts +0 -136
  143. package/contracts/issuers/dashboard/index.ts +0 -72
  144. package/contracts/issuers/data-records/index.ts +0 -257
  145. package/contracts/issuers/data-rooms/index.ts +0 -134
  146. package/contracts/issuers/disbursement-approval-users/index.ts +0 -82
  147. package/contracts/issuers/disbursement-transactions/index.ts +0 -53
  148. package/contracts/issuers/disbursements/index.ts +0 -189
  149. package/contracts/issuers/email-themes/index.ts +0 -242
  150. package/contracts/issuers/escrow-accounts/index.ts +0 -81
  151. package/contracts/issuers/exchange-api-keys/index.ts +0 -144
  152. package/contracts/issuers/files/index.ts +0 -166
  153. package/contracts/issuers/files-public/index.ts +0 -166
  154. package/contracts/issuers/health/index.ts +0 -24
  155. package/contracts/issuers/index.ts +0 -116
  156. package/contracts/issuers/investor-accounts/index.ts +0 -148
  157. package/contracts/issuers/invites/index.ts +0 -129
  158. package/contracts/issuers/issuer/index.ts +0 -94
  159. package/contracts/issuers/issuer-bank-accounts/index.ts +0 -81
  160. package/contracts/issuers/issuer-payment-methods/index.ts +0 -136
  161. package/contracts/issuers/kyc/index.ts +0 -38
  162. package/contracts/issuers/login-histories/index.ts +0 -51
  163. package/contracts/issuers/notes/index.ts +0 -69
  164. package/contracts/issuers/notification-channels/index.ts +0 -251
  165. package/contracts/issuers/offerings/index.ts +0 -206
  166. package/contracts/issuers/pages/index.ts +0 -138
  167. package/contracts/issuers/payment-methods/index.ts +0 -61
  168. package/contracts/issuers/portfolios/index.ts +0 -36
  169. package/contracts/issuers/rejection-reasons/index.ts +0 -32
  170. package/contracts/issuers/review/index.ts +0 -63
  171. package/contracts/issuers/secondary-customers/index.ts +0 -55
  172. package/contracts/issuers/secondary-orders/index.ts +0 -57
  173. package/contracts/issuers/secondary-trades/index.ts +0 -57
  174. package/contracts/issuers/secure-requests/index.ts +0 -34
  175. package/contracts/issuers/site-links/index.ts +0 -116
  176. package/contracts/issuers/site-settings/index.ts +0 -585
  177. package/contracts/issuers/sites/index.ts +0 -32
  178. package/contracts/issuers/tasks/index.ts +0 -111
  179. package/contracts/issuers/trades/index.ts +0 -132
  180. package/contracts/issuers/transactions/index.ts +0 -158
  181. package/contracts/issuers/user-manuals/index.ts +0 -62
  182. package/contracts/issuers/user-settings/index.ts +0 -170
  183. package/contracts/issuers/users/index.ts +0 -126
  184. package/contracts/secondaries/accounts/index.ts +0 -58
  185. package/contracts/secondaries/index.ts +0 -23
  186. package/contracts/secondaries/secondary-customers/index.ts +0 -55
  187. package/contracts/secondaries/secondary-issuers/index.ts +0 -94
  188. package/contracts/secondaries/secondary-orders/index.ts +0 -56
  189. package/contracts/secondaries/secondary-securities/index.ts +0 -95
  190. package/contracts/secondaries/secondary-trades/index.ts +0 -56
@@ -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.d6badc9",
3
+ "version": "0.0.0-dev.dc7fdf8",
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
- );