@stapel/listings-react 0.1.0

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 (225) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/MODULE.md +191 -0
  3. package/README.md +169 -0
  4. package/dist/api/generated/schema.d.ts +1253 -0
  5. package/dist/api/generated/schema.d.ts.map +1 -0
  6. package/dist/api/generated/schema.js +2 -0
  7. package/dist/api/generated/schema.js.map +1 -0
  8. package/dist/api/listingsApi.d.ts +145 -0
  9. package/dist/api/listingsApi.d.ts.map +1 -0
  10. package/dist/api/listingsApi.js +38 -0
  11. package/dist/api/listingsApi.js.map +1 -0
  12. package/dist/api/types.d.ts +156 -0
  13. package/dist/api/types.d.ts.map +1 -0
  14. package/dist/api/types.js +37 -0
  15. package/dist/api/types.js.map +1 -0
  16. package/dist/default/ErrorAlert.d.ts +9 -0
  17. package/dist/default/ErrorAlert.d.ts.map +1 -0
  18. package/dist/default/ErrorAlert.js +27 -0
  19. package/dist/default/ErrorAlert.js.map +1 -0
  20. package/dist/default/FavoritesPane.d.ts +18 -0
  21. package/dist/default/FavoritesPane.d.ts.map +1 -0
  22. package/dist/default/FavoritesPane.js +28 -0
  23. package/dist/default/FavoritesPane.js.map +1 -0
  24. package/dist/default/ListingCard.d.ts +42 -0
  25. package/dist/default/ListingCard.d.ts.map +1 -0
  26. package/dist/default/ListingCard.js +37 -0
  27. package/dist/default/ListingCard.js.map +1 -0
  28. package/dist/default/ListingComposerPage.d.ts +46 -0
  29. package/dist/default/ListingComposerPage.d.ts.map +1 -0
  30. package/dist/default/ListingComposerPage.js +99 -0
  31. package/dist/default/ListingComposerPage.js.map +1 -0
  32. package/dist/default/ListingDetailPane.d.ts +33 -0
  33. package/dist/default/ListingDetailPane.d.ts.map +1 -0
  34. package/dist/default/ListingDetailPane.js +48 -0
  35. package/dist/default/ListingDetailPane.js.map +1 -0
  36. package/dist/default/ListingPhoto.d.ts +25 -0
  37. package/dist/default/ListingPhoto.d.ts.map +1 -0
  38. package/dist/default/ListingPhoto.js +20 -0
  39. package/dist/default/ListingPhoto.js.map +1 -0
  40. package/dist/default/MyListingsPane.d.ts +25 -0
  41. package/dist/default/MyListingsPane.d.ts.map +1 -0
  42. package/dist/default/MyListingsPane.js +84 -0
  43. package/dist/default/MyListingsPane.js.map +1 -0
  44. package/dist/default/StatusTags.d.ts +31 -0
  45. package/dist/default/StatusTags.d.ts.map +1 -0
  46. package/dist/default/StatusTags.js +40 -0
  47. package/dist/default/StatusTags.js.map +1 -0
  48. package/dist/default/icons.d.ts +16 -0
  49. package/dist/default/icons.d.ts.map +1 -0
  50. package/dist/default/icons.js +5 -0
  51. package/dist/default/icons.js.map +1 -0
  52. package/dist/default/index.d.ts +35 -0
  53. package/dist/default/index.d.ts.map +1 -0
  54. package/dist/default/index.js +26 -0
  55. package/dist/default/index.js.map +1 -0
  56. package/dist/default/theme.d.ts +25 -0
  57. package/dist/default/theme.d.ts.map +1 -0
  58. package/dist/default/theme.js +40 -0
  59. package/dist/default/theme.js.map +1 -0
  60. package/dist/default/types.d.ts +12 -0
  61. package/dist/default/types.d.ts.map +1 -0
  62. package/dist/default/types.js +2 -0
  63. package/dist/default/types.js.map +1 -0
  64. package/dist/flows/registry.d.ts +35 -0
  65. package/dist/flows/registry.d.ts.map +1 -0
  66. package/dist/flows/registry.js +33 -0
  67. package/dist/flows/registry.js.map +1 -0
  68. package/dist/headless/Favorites.d.ts +52 -0
  69. package/dist/headless/Favorites.d.ts.map +1 -0
  70. package/dist/headless/Favorites.js +78 -0
  71. package/dist/headless/Favorites.js.map +1 -0
  72. package/dist/headless/ListingActions.d.ts +30 -0
  73. package/dist/headless/ListingActions.d.ts.map +1 -0
  74. package/dist/headless/ListingActions.js +54 -0
  75. package/dist/headless/ListingActions.js.map +1 -0
  76. package/dist/headless/ListingComposer.d.ts +133 -0
  77. package/dist/headless/ListingComposer.d.ts.map +1 -0
  78. package/dist/headless/ListingComposer.js +246 -0
  79. package/dist/headless/ListingComposer.js.map +1 -0
  80. package/dist/headless/ListingDetail.d.ts +81 -0
  81. package/dist/headless/ListingDetail.d.ts.map +1 -0
  82. package/dist/headless/ListingDetail.js +101 -0
  83. package/dist/headless/ListingDetail.js.map +1 -0
  84. package/dist/headless/ListingsProvider.d.ts +17 -0
  85. package/dist/headless/ListingsProvider.d.ts.map +1 -0
  86. package/dist/headless/ListingsProvider.js +16 -0
  87. package/dist/headless/ListingsProvider.js.map +1 -0
  88. package/dist/headless/MyListings.d.ts +44 -0
  89. package/dist/headless/MyListings.d.ts.map +1 -0
  90. package/dist/headless/MyListings.js +82 -0
  91. package/dist/headless/MyListings.js.map +1 -0
  92. package/dist/headless/useMandateGate.d.ts +28 -0
  93. package/dist/headless/useMandateGate.d.ts.map +1 -0
  94. package/dist/headless/useMandateGate.js +39 -0
  95. package/dist/headless/useMandateGate.js.map +1 -0
  96. package/dist/i18n/errorsMap.d.ts +34 -0
  97. package/dist/i18n/errorsMap.d.ts.map +1 -0
  98. package/dist/i18n/errorsMap.js +45 -0
  99. package/dist/i18n/errorsMap.js.map +1 -0
  100. package/dist/i18n/es.d.ts +21 -0
  101. package/dist/i18n/es.d.ts.map +1 -0
  102. package/dist/i18n/es.js +146 -0
  103. package/dist/i18n/es.js.map +1 -0
  104. package/dist/i18n/generated/errors.es.gen.d.ts +16 -0
  105. package/dist/i18n/generated/errors.es.gen.d.ts.map +1 -0
  106. package/dist/i18n/generated/errors.es.gen.js +58 -0
  107. package/dist/i18n/generated/errors.es.gen.js.map +1 -0
  108. package/dist/i18n/generated/errors.gen.d.ts +413 -0
  109. package/dist/i18n/generated/errors.gen.d.ts.map +1 -0
  110. package/dist/i18n/generated/errors.gen.js +210 -0
  111. package/dist/i18n/generated/errors.gen.js.map +1 -0
  112. package/dist/i18n/generated/errors.ru.gen.d.ts +16 -0
  113. package/dist/i18n/generated/errors.ru.gen.d.ts.map +1 -0
  114. package/dist/i18n/generated/errors.ru.gen.js +58 -0
  115. package/dist/i18n/generated/errors.ru.gen.js.map +1 -0
  116. package/dist/i18n/keys.d.ts +170 -0
  117. package/dist/i18n/keys.d.ts.map +1 -0
  118. package/dist/i18n/keys.js +295 -0
  119. package/dist/i18n/keys.js.map +1 -0
  120. package/dist/i18n/ru.d.ts +37 -0
  121. package/dist/i18n/ru.d.ts.map +1 -0
  122. package/dist/i18n/ru.js +162 -0
  123. package/dist/i18n/ru.js.map +1 -0
  124. package/dist/index.d.ts +103 -0
  125. package/dist/index.d.ts.map +1 -0
  126. package/dist/index.js +98 -0
  127. package/dist/index.js.map +1 -0
  128. package/dist/model/context.d.ts +11 -0
  129. package/dist/model/context.d.ts.map +1 -0
  130. package/dist/model/context.js +16 -0
  131. package/dist/model/context.js.map +1 -0
  132. package/dist/model/draft.d.ts +138 -0
  133. package/dist/model/draft.d.ts.map +1 -0
  134. package/dist/model/draft.js +192 -0
  135. package/dist/model/draft.js.map +1 -0
  136. package/dist/model/features.d.ts +69 -0
  137. package/dist/model/features.d.ts.map +1 -0
  138. package/dist/model/features.js +73 -0
  139. package/dist/model/features.js.map +1 -0
  140. package/dist/model/mineSource.d.ts +47 -0
  141. package/dist/model/mineSource.d.ts.map +1 -0
  142. package/dist/model/mineSource.js +45 -0
  143. package/dist/model/mineSource.js.map +1 -0
  144. package/dist/model/mutations.d.ts +60 -0
  145. package/dist/model/mutations.d.ts.map +1 -0
  146. package/dist/model/mutations.js +165 -0
  147. package/dist/model/mutations.js.map +1 -0
  148. package/dist/model/queries.d.ts +75 -0
  149. package/dist/model/queries.d.ts.map +1 -0
  150. package/dist/model/queries.js +117 -0
  151. package/dist/model/queries.js.map +1 -0
  152. package/dist/model/queryKeys.d.ts +50 -0
  153. package/dist/model/queryKeys.d.ts.map +1 -0
  154. package/dist/model/queryKeys.js +24 -0
  155. package/dist/model/queryKeys.js.map +1 -0
  156. package/dist/model/runtime.d.ts +69 -0
  157. package/dist/model/runtime.d.ts.map +1 -0
  158. package/dist/model/runtime.js +14 -0
  159. package/dist/model/runtime.js.map +1 -0
  160. package/dist/model/status.d.ts +117 -0
  161. package/dist/model/status.d.ts.map +1 -0
  162. package/dist/model/status.js +164 -0
  163. package/dist/model/status.js.map +1 -0
  164. package/dist/model/transitions.d.ts +41 -0
  165. package/dist/model/transitions.d.ts.map +1 -0
  166. package/dist/model/transitions.js +25 -0
  167. package/dist/model/transitions.js.map +1 -0
  168. package/dist/model/validation.d.ts +135 -0
  169. package/dist/model/validation.d.ts.map +1 -0
  170. package/dist/model/validation.js +191 -0
  171. package/dist/model/validation.js.map +1 -0
  172. package/dist/nav/manifest.d.ts +46 -0
  173. package/dist/nav/manifest.d.ts.map +1 -0
  174. package/dist/nav/manifest.js +56 -0
  175. package/dist/nav/manifest.js.map +1 -0
  176. package/llms.txt +118 -0
  177. package/manifest.json +1044 -0
  178. package/nav-manifest.json +84 -0
  179. package/package.json +121 -0
  180. package/src/analytics/generated/events.json +7 -0
  181. package/src/api/generated/schema.ts +1255 -0
  182. package/src/api/listingsApi.ts +237 -0
  183. package/src/api/types.ts +193 -0
  184. package/src/default/ErrorAlert.tsx +46 -0
  185. package/src/default/FavoritesPane.tsx +123 -0
  186. package/src/default/ListingCard.tsx +178 -0
  187. package/src/default/ListingComposerPage.tsx +466 -0
  188. package/src/default/ListingDetailPane.tsx +271 -0
  189. package/src/default/ListingPhoto.tsx +62 -0
  190. package/src/default/MyListingsPane.tsx +333 -0
  191. package/src/default/StatusTags.tsx +86 -0
  192. package/src/default/icons.tsx +31 -0
  193. package/src/default/index.ts +35 -0
  194. package/src/default/theme.tsx +67 -0
  195. package/src/default/types.ts +12 -0
  196. package/src/flows/registry.ts +45 -0
  197. package/src/headless/Favorites.tsx +137 -0
  198. package/src/headless/ListingActions.tsx +101 -0
  199. package/src/headless/ListingComposer.tsx +476 -0
  200. package/src/headless/ListingDetail.tsx +231 -0
  201. package/src/headless/ListingsProvider.tsx +20 -0
  202. package/src/headless/MyListings.tsx +148 -0
  203. package/src/headless/useMandateGate.ts +40 -0
  204. package/src/i18n/errorsMap.ts +62 -0
  205. package/src/i18n/es.ts +198 -0
  206. package/src/i18n/generated/errors.es.gen.ts +64 -0
  207. package/src/i18n/generated/errors.gen.ts +241 -0
  208. package/src/i18n/generated/errors.json +499 -0
  209. package/src/i18n/generated/errors.ru.gen.ts +64 -0
  210. package/src/i18n/keys.ts +356 -0
  211. package/src/i18n/ru.ts +215 -0
  212. package/src/index.ts +260 -0
  213. package/src/model/context.tsx +28 -0
  214. package/src/model/draft.ts +307 -0
  215. package/src/model/features.ts +122 -0
  216. package/src/model/mineSource.ts +55 -0
  217. package/src/model/mutations.ts +224 -0
  218. package/src/model/queries.ts +150 -0
  219. package/src/model/queryKeys.ts +76 -0
  220. package/src/model/runtime.ts +87 -0
  221. package/src/model/status.ts +279 -0
  222. package/src/model/transitions.ts +62 -0
  223. package/src/model/validation.ts +271 -0
  224. package/src/nav/manifest.ts +97 -0
  225. package/tsconfig.json +26 -0
@@ -0,0 +1,1255 @@
1
+ // AUTO-GENERATED by scripts/gen-api.mjs — do not edit by hand.
2
+ // Source: the backend module's own docs/schema.json (§17-native per-module contract).
3
+ // Regenerate: pnpm gen:api · Drift gate: pnpm gen:api:check
4
+ export interface paths {
5
+ "/listings/api/v1/listings/": {
6
+ parameters: {
7
+ query?: never;
8
+ header?: never;
9
+ path?: never;
10
+ cookie?: never;
11
+ };
12
+ /**
13
+ * @description Listings CRUD plus owner lifecycle actions and favorites.
14
+ *
15
+ * **Permissions:** `IsAuthenticatedOrReadOnly`
16
+ */
17
+ get: operations["listings_api_v1_listings_list"];
18
+ put?: never;
19
+ /**
20
+ * @description Listings CRUD plus owner lifecycle actions and favorites.
21
+ *
22
+ * **Permissions:** `IsAuthenticatedOrReadOnly`
23
+ */
24
+ post: operations["listings_api_v1_listings_create"];
25
+ delete?: never;
26
+ options?: never;
27
+ head?: never;
28
+ patch?: never;
29
+ trace?: never;
30
+ };
31
+ "/listings/api/v1/listings/{id}/": {
32
+ parameters: {
33
+ query?: never;
34
+ header?: never;
35
+ path?: never;
36
+ cookie?: never;
37
+ };
38
+ /**
39
+ * @description Listings CRUD plus owner lifecycle actions and favorites.
40
+ *
41
+ * **Permissions:** `IsAuthenticatedOrReadOnly`
42
+ */
43
+ get: operations["listings_api_v1_listings_retrieve"];
44
+ /**
45
+ * @description Listings CRUD plus owner lifecycle actions and favorites.
46
+ *
47
+ * **Permissions:** `IsAuthenticatedOrReadOnly`
48
+ */
49
+ put: operations["listings_api_v1_listings_update"];
50
+ post?: never;
51
+ /**
52
+ * @description Listings CRUD plus owner lifecycle actions and favorites.
53
+ *
54
+ * **Permissions:** `IsAuthenticatedOrReadOnly`
55
+ */
56
+ delete: operations["listings_api_v1_listings_destroy"];
57
+ options?: never;
58
+ head?: never;
59
+ /**
60
+ * @description Listings CRUD plus owner lifecycle actions and favorites.
61
+ *
62
+ * **Permissions:** `IsAuthenticatedOrReadOnly`
63
+ */
64
+ patch: operations["listings_api_v1_listings_partial_update"];
65
+ trace?: never;
66
+ };
67
+ "/listings/api/v1/listings/{id}/archive/": {
68
+ parameters: {
69
+ query?: never;
70
+ header?: never;
71
+ path?: never;
72
+ cookie?: never;
73
+ };
74
+ get?: never;
75
+ put?: never;
76
+ /**
77
+ * @description Listings CRUD plus owner lifecycle actions and favorites.
78
+ *
79
+ * **Permissions:** `IsAuthenticated`
80
+ */
81
+ post: operations["listings_api_v1_listings_archive_create"];
82
+ delete?: never;
83
+ options?: never;
84
+ head?: never;
85
+ patch?: never;
86
+ trace?: never;
87
+ };
88
+ "/listings/api/v1/listings/{id}/complete/": {
89
+ parameters: {
90
+ query?: never;
91
+ header?: never;
92
+ path?: never;
93
+ cookie?: never;
94
+ };
95
+ get?: never;
96
+ put?: never;
97
+ /**
98
+ * @description Mark a listing sold.
99
+ *
100
+ * **Permissions:** `IsAuthenticated`
101
+ */
102
+ post: operations["listings_api_v1_listings_complete_create"];
103
+ delete?: never;
104
+ options?: never;
105
+ head?: never;
106
+ patch?: never;
107
+ trace?: never;
108
+ };
109
+ "/listings/api/v1/listings/{id}/favorite/": {
110
+ parameters: {
111
+ query?: never;
112
+ header?: never;
113
+ path?: never;
114
+ cookie?: never;
115
+ };
116
+ get?: never;
117
+ put?: never;
118
+ /**
119
+ * @description Listings CRUD plus owner lifecycle actions and favorites.
120
+ *
121
+ * **Permissions:** `IsAuthenticated`
122
+ */
123
+ post: operations["listings_api_v1_listings_favorite_create"];
124
+ delete?: never;
125
+ options?: never;
126
+ head?: never;
127
+ patch?: never;
128
+ trace?: never;
129
+ };
130
+ "/listings/api/v1/listings/{id}/publish/": {
131
+ parameters: {
132
+ query?: never;
133
+ header?: never;
134
+ path?: never;
135
+ cookie?: never;
136
+ };
137
+ get?: never;
138
+ put?: never;
139
+ /**
140
+ * @description Listings CRUD plus owner lifecycle actions and favorites.
141
+ *
142
+ * **Permissions:** `IsAuthenticated`
143
+ */
144
+ post: operations["listings_api_v1_listings_publish_create"];
145
+ delete?: never;
146
+ options?: never;
147
+ head?: never;
148
+ patch?: never;
149
+ trace?: never;
150
+ };
151
+ "/listings/api/v1/listings/{id}/save-draft/": {
152
+ parameters: {
153
+ query?: never;
154
+ header?: never;
155
+ path?: never;
156
+ cookie?: never;
157
+ };
158
+ get?: never;
159
+ put?: never;
160
+ /**
161
+ * @description Persist draft fields (declarative validation via serializer).
162
+ *
163
+ * **Permissions:** `IsAuthenticated`
164
+ */
165
+ post: operations["listings_api_v1_listings_save_draft_create"];
166
+ delete?: never;
167
+ options?: never;
168
+ head?: never;
169
+ patch?: never;
170
+ trace?: never;
171
+ };
172
+ "/listings/api/v1/listings/{id}/status/": {
173
+ parameters: {
174
+ query?: never;
175
+ header?: never;
176
+ path?: never;
177
+ cookie?: never;
178
+ };
179
+ /**
180
+ * @description Listings CRUD plus owner lifecycle actions and favorites.
181
+ *
182
+ * **Permissions:** `AllowAny`
183
+ */
184
+ get: operations["listings_api_v1_listings_status_retrieve"];
185
+ put?: never;
186
+ post?: never;
187
+ delete?: never;
188
+ options?: never;
189
+ head?: never;
190
+ patch?: never;
191
+ trace?: never;
192
+ };
193
+ "/listings/api/v1/listings/{id}/unfavorite/": {
194
+ parameters: {
195
+ query?: never;
196
+ header?: never;
197
+ path?: never;
198
+ cookie?: never;
199
+ };
200
+ get?: never;
201
+ put?: never;
202
+ /**
203
+ * @description Listings CRUD plus owner lifecycle actions and favorites.
204
+ *
205
+ * **Permissions:** `IsAuthenticated`
206
+ */
207
+ post: operations["listings_api_v1_listings_unfavorite_create"];
208
+ delete?: never;
209
+ options?: never;
210
+ head?: never;
211
+ patch?: never;
212
+ trace?: never;
213
+ };
214
+ "/listings/api/v1/listings/{id}/validate-draft/": {
215
+ parameters: {
216
+ query?: never;
217
+ header?: never;
218
+ path?: never;
219
+ cookie?: never;
220
+ };
221
+ /**
222
+ * @description Listings CRUD plus owner lifecycle actions and favorites.
223
+ *
224
+ * **Permissions:** `IsAuthenticated`
225
+ */
226
+ get: operations["listings_api_v1_listings_validate_draft_retrieve"];
227
+ put?: never;
228
+ post?: never;
229
+ delete?: never;
230
+ options?: never;
231
+ head?: never;
232
+ patch?: never;
233
+ trace?: never;
234
+ };
235
+ "/listings/api/v1/listings/my/counters/": {
236
+ parameters: {
237
+ query?: never;
238
+ header?: never;
239
+ path?: never;
240
+ cookie?: never;
241
+ };
242
+ /**
243
+ * @description Listings CRUD plus owner lifecycle actions and favorites.
244
+ *
245
+ * **Permissions:** `IsAuthenticated`
246
+ */
247
+ get: operations["listings_api_v1_listings_my_counters_retrieve"];
248
+ put?: never;
249
+ post?: never;
250
+ delete?: never;
251
+ options?: never;
252
+ head?: never;
253
+ patch?: never;
254
+ trace?: never;
255
+ };
256
+ "/listings/api/v1/listings/my/favorites/": {
257
+ parameters: {
258
+ query?: never;
259
+ header?: never;
260
+ path?: never;
261
+ cookie?: never;
262
+ };
263
+ /**
264
+ * @description Listings CRUD plus owner lifecycle actions and favorites.
265
+ *
266
+ * **Permissions:** `IsAuthenticated`
267
+ */
268
+ get: operations["listings_api_v1_listings_my_favorites_list"];
269
+ put?: never;
270
+ post?: never;
271
+ delete?: never;
272
+ options?: never;
273
+ head?: never;
274
+ patch?: never;
275
+ trace?: never;
276
+ };
277
+ }
278
+ export type webhooks = Record<string, never>;
279
+ export interface components {
280
+ schemas: {
281
+ /** @description Serializer for boolean feature DAO. */
282
+ BoolDao: {
283
+ name?: string | null;
284
+ order?: number | null;
285
+ title?: boolean | null;
286
+ badge?: boolean | null;
287
+ translate?: string | null;
288
+ /**
289
+ * @description discriminator enum property added by openapi-typescript
290
+ * @enum {string}
291
+ */
292
+ type: "bool";
293
+ value?: boolean;
294
+ trueLabel?: string | null;
295
+ falseLabel?: string | null;
296
+ };
297
+ /** @description Serializer for boolean feature DTO. */
298
+ BoolDto: {
299
+ /**
300
+ * @description discriminator enum property added by openapi-typescript
301
+ * @enum {string}
302
+ */
303
+ type: "bool";
304
+ value?: boolean;
305
+ };
306
+ /** @description Serializer for convertible-unit feature DAO. */
307
+ ConvertibleUnitDao: {
308
+ name?: string | null;
309
+ order?: number | null;
310
+ title?: boolean | null;
311
+ badge?: boolean | null;
312
+ translate?: string | null;
313
+ /**
314
+ * @description discriminator enum property added by openapi-typescript
315
+ * @enum {string}
316
+ */
317
+ type: "convertible_unit";
318
+ /** Format: double */
319
+ value?: number;
320
+ unitType?: string | null;
321
+ unit_m?: string | null;
322
+ unit_i?: string | null;
323
+ precision?: number | null;
324
+ prefix?: string | null;
325
+ };
326
+ /** @description Serializer for convertible-unit feature DTO. */
327
+ ConvertibleUnitDto: {
328
+ /**
329
+ * @description discriminator enum property added by openapi-typescript
330
+ * @enum {string}
331
+ */
332
+ type: "convertible_unit";
333
+ /** Format: double */
334
+ value?: number | null;
335
+ unit?: string | null;
336
+ };
337
+ /** @description Serializer for date feature DAO. */
338
+ DateDao: {
339
+ name?: string | null;
340
+ order?: number | null;
341
+ title?: boolean | null;
342
+ badge?: boolean | null;
343
+ translate?: string | null;
344
+ /**
345
+ * @description discriminator enum property added by openapi-typescript
346
+ * @enum {string}
347
+ */
348
+ type: "date";
349
+ value?: number | null;
350
+ };
351
+ /** @description Serializer for date feature DTO. */
352
+ DateDto: {
353
+ /**
354
+ * @description discriminator enum property added by openapi-typescript
355
+ * @enum {string}
356
+ */
357
+ type: "date";
358
+ value?: number | null;
359
+ };
360
+ /** @description Result of a (soft) delete. */
361
+ DeleteResponse: {
362
+ success: boolean;
363
+ deleted: boolean;
364
+ };
365
+ /**
366
+ * @description * `below_minimum` - below_minimum
367
+ * * `above_maximum` - above_maximum
368
+ * * `not_in_options` - not_in_options
369
+ * * `invalid_type` - invalid_type
370
+ * * `invalid_format` - invalid_format
371
+ * * `mandatory_missing` - mandatory_missing
372
+ * * `duplicate_slug` - duplicate_slug
373
+ * * `unknown_feature_type` - unknown_feature_type
374
+ * * `not_allowed` - not_allowed
375
+ * * `unknown_feature` - unknown_feature
376
+ * * `description_too_short` - description_too_short
377
+ * * `description_too_long` - description_too_long
378
+ * * `invalid_config` - invalid_config
379
+ * * `min_greater_than_max` - min_greater_than_max
380
+ * * `empty_options` - empty_options
381
+ * @enum {string}
382
+ */
383
+ ErrorEnum: "below_minimum" | "above_maximum" | "not_in_options" | "invalid_type" | "invalid_format" | "mandatory_missing" | "duplicate_slug" | "unknown_feature_type" | "not_allowed" | "unknown_feature" | "description_too_short" | "description_too_long" | "invalid_config" | "min_greater_than_max" | "empty_options";
384
+ /** @description Result of favoriting / unfavoriting a listing. */
385
+ FavoriteToggleResponse: {
386
+ favorited: boolean;
387
+ listing_id: number;
388
+ };
389
+ FeatureDao: components["schemas"]["IntDao"] | components["schemas"]["FloatDao"] | components["schemas"]["StringDao"] | components["schemas"]["BoolDao"] | components["schemas"]["HexColorDao"] | components["schemas"]["SelectDao"] | components["schemas"]["DateDao"] | components["schemas"]["HeaderDao"] | components["schemas"]["HierarchicalSelectDao"] | components["schemas"]["ConvertibleUnitDao"];
390
+ FeatureDto: components["schemas"]["IntDto"] | components["schemas"]["FloatDto"] | components["schemas"]["StringDto"] | components["schemas"]["BoolDto"] | components["schemas"]["HexColorDto"] | components["schemas"]["SelectDto"] | components["schemas"]["DateDto"] | components["schemas"]["HeaderDto"] | components["schemas"]["HierarchicalSelectDto"] | components["schemas"]["ConvertibleUnitDto"];
391
+ /** @description Serializer for FeatureValidationResult. */
392
+ FeatureValidationResult: {
393
+ id?: unknown;
394
+ slug: string;
395
+ status: components["schemas"]["FeatureValidationResultStatusEnum"];
396
+ error?: (components["schemas"]["ErrorEnum"] | components["schemas"]["NullEnum"]) | null;
397
+ ref_value?: unknown;
398
+ message?: string | null;
399
+ localizable_error?: string | null;
400
+ params?: {
401
+ [key: string]: unknown;
402
+ } | null;
403
+ warnings?: string[] | null;
404
+ };
405
+ /**
406
+ * @description * `ok` - ok
407
+ * * `validation_failed` - validation_failed
408
+ * @enum {string}
409
+ */
410
+ FeatureValidationResultStatusEnum: "ok" | "validation_failed";
411
+ /** @description Serializer for float feature DAO. */
412
+ FloatDao: {
413
+ name?: string | null;
414
+ order?: number | null;
415
+ title?: boolean | null;
416
+ badge?: boolean | null;
417
+ translate?: string | null;
418
+ /**
419
+ * @description discriminator enum property added by openapi-typescript
420
+ * @enum {string}
421
+ */
422
+ type: "float";
423
+ /** Format: double */
424
+ value?: number;
425
+ prefix?: string | null;
426
+ postfix?: string | null;
427
+ postfix1000?: string | null;
428
+ precision?: number | null;
429
+ };
430
+ /** @description Serializer for float feature DTO. */
431
+ FloatDto: {
432
+ /**
433
+ * @description discriminator enum property added by openapi-typescript
434
+ * @enum {string}
435
+ */
436
+ type: "float";
437
+ /** Format: double */
438
+ value?: number;
439
+ };
440
+ /** @description Serializer for header feature DAO. */
441
+ HeaderDao: {
442
+ name?: string | null;
443
+ order?: number | null;
444
+ title?: boolean | null;
445
+ badge?: boolean | null;
446
+ translate?: string | null;
447
+ /**
448
+ * @description discriminator enum property added by openapi-typescript
449
+ * @enum {string}
450
+ */
451
+ type: "header";
452
+ style?: components["schemas"]["StyleEnum"];
453
+ };
454
+ /** @description Serializer for header feature DTO. */
455
+ HeaderDto: {
456
+ /**
457
+ * @description discriminator enum property added by openapi-typescript
458
+ * @enum {string}
459
+ */
460
+ type: "header";
461
+ value?: string | null;
462
+ };
463
+ /** @description Serializer for hex color feature DAO. */
464
+ HexColorDao: {
465
+ name?: string | null;
466
+ order?: number | null;
467
+ title?: boolean | null;
468
+ badge?: boolean | null;
469
+ translate?: string | null;
470
+ /**
471
+ * @description discriminator enum property added by openapi-typescript
472
+ * @enum {string}
473
+ */
474
+ type: "hex_color";
475
+ simple?: string;
476
+ hex?: string | null;
477
+ label?: string | null;
478
+ };
479
+ /** @description Serializer for hex color feature DTO. */
480
+ HexColorDto: {
481
+ value?: components["schemas"]["HexColorValue"] | null;
482
+ /**
483
+ * @description discriminator enum property added by openapi-typescript
484
+ * @enum {string}
485
+ */
486
+ type: "hex_color";
487
+ };
488
+ /** @description Serializer for hex color value. */
489
+ HexColorValue: {
490
+ simple: string;
491
+ hex?: string | null;
492
+ label?: string | null;
493
+ };
494
+ /** @description Serializer for hierarchical select feature DAO. */
495
+ HierarchicalSelectDao: {
496
+ name?: string | null;
497
+ order?: number | null;
498
+ title?: boolean | null;
499
+ badge?: boolean | null;
500
+ translate?: string | null;
501
+ /**
502
+ * @description discriminator enum property added by openapi-typescript
503
+ * @enum {string}
504
+ */
505
+ type: "hierarchical_select";
506
+ value?: string[];
507
+ };
508
+ /** @description Serializer for hierarchical select feature DTO. */
509
+ HierarchicalSelectDto: {
510
+ /**
511
+ * @description discriminator enum property added by openapi-typescript
512
+ * @enum {string}
513
+ */
514
+ type: "hierarchical_select";
515
+ value?: string[];
516
+ };
517
+ /** @description Serializer for integer feature DAO. */
518
+ IntDao: {
519
+ name?: string | null;
520
+ order?: number | null;
521
+ title?: boolean | null;
522
+ badge?: boolean | null;
523
+ translate?: string | null;
524
+ /**
525
+ * @description discriminator enum property added by openapi-typescript
526
+ * @enum {string}
527
+ */
528
+ type: "int";
529
+ value?: number;
530
+ prefix?: string | null;
531
+ postfix?: string | null;
532
+ postfix1000?: string | null;
533
+ precision?: number | null;
534
+ };
535
+ /** @description Serializer for integer feature DTO. */
536
+ IntDto: {
537
+ /**
538
+ * @description discriminator enum property added by openapi-typescript
539
+ * @enum {string}
540
+ */
541
+ type: "int";
542
+ value?: number;
543
+ };
544
+ /** @description Result of a lifecycle action (archive, complete/sold). */
545
+ ListingActionResponse: {
546
+ success: boolean;
547
+ status: string;
548
+ };
549
+ /** @description Compact card projection for lists. */
550
+ ListingCard: {
551
+ readonly id: number;
552
+ title?: string;
553
+ /** Format: decimal */
554
+ price?: string;
555
+ /** Format: decimal */
556
+ price_base?: string | null;
557
+ currency?: string;
558
+ readonly images: string[] | null;
559
+ readonly features_title: components["schemas"]["FeatureDao"][];
560
+ readonly features_badges: components["schemas"]["FeatureDao"][];
561
+ location_label?: string;
562
+ geohash?: string;
563
+ /** Format: decimal */
564
+ lat?: string | null;
565
+ /** Format: decimal */
566
+ lon?: string | null;
567
+ countable?: boolean;
568
+ /** Format: int64 */
569
+ stock_quantity?: number | null;
570
+ status?: components["schemas"]["StatusD41Enum"];
571
+ readonly is_favorited: boolean | null;
572
+ };
573
+ /** @description Full listing detail. */
574
+ ListingDetail: {
575
+ readonly id: number;
576
+ /** Format: uuid */
577
+ owner: string;
578
+ category_id: string;
579
+ title?: string;
580
+ description?: string;
581
+ language?: string;
582
+ /** Format: decimal */
583
+ price?: string;
584
+ /** Format: decimal */
585
+ price_base?: string | null;
586
+ currency?: string;
587
+ readonly images: string[] | null;
588
+ location_id?: string;
589
+ location_label?: string;
590
+ geohash?: string;
591
+ /** Format: decimal */
592
+ lat?: string | null;
593
+ /** Format: decimal */
594
+ lon?: string | null;
595
+ readonly features: components["schemas"]["FeatureDao"][];
596
+ readonly features_title: components["schemas"]["FeatureDao"][];
597
+ readonly features_badges: components["schemas"]["FeatureDao"][];
598
+ readonly features_search: unknown;
599
+ status?: components["schemas"]["StatusD41Enum"];
600
+ moderation_status?: components["schemas"]["ModerationStatusEnum"];
601
+ auto_republish?: boolean;
602
+ countable?: boolean;
603
+ /** Format: int64 */
604
+ stock_quantity?: number | null;
605
+ /** Format: date-time */
606
+ published_at?: string | null;
607
+ /** Format: date-time */
608
+ expires_at?: string | null;
609
+ /** Format: date-time */
610
+ readonly created_at: string;
611
+ /** Format: date-time */
612
+ readonly updated_at: string;
613
+ readonly is_favorited: boolean | null;
614
+ };
615
+ /**
616
+ * @description Create/update the draft twin fields.
617
+ *
618
+ * All user-editable content is a ``*_draft`` field promoted on publish.
619
+ * DRF's declarative field validation (max_length, decimal bounds, types)
620
+ * replaces the source view's hand-rolled per-field checks.
621
+ */
622
+ ListingDraft: {
623
+ readonly id: number;
624
+ category_id: string;
625
+ currency?: string;
626
+ language?: string;
627
+ title_draft?: string;
628
+ description_draft?: string;
629
+ /** Format: decimal */
630
+ price_draft?: string | null;
631
+ images_draft?: string[];
632
+ location_id_draft?: string;
633
+ location_label_draft?: string;
634
+ geohash_draft?: string;
635
+ /** Format: decimal */
636
+ lat_draft?: string | null;
637
+ /** Format: decimal */
638
+ lon_draft?: string | null;
639
+ features_draft?: {
640
+ [key: string]: components["schemas"]["FeatureDto"];
641
+ } | null;
642
+ auto_republish?: boolean;
643
+ countable?: boolean;
644
+ /** Format: int64 */
645
+ stock_quantity?: number | null;
646
+ readonly status: components["schemas"]["StatusD41Enum"];
647
+ readonly moderation_status: components["schemas"]["ModerationStatusEnum"];
648
+ /** Format: date-time */
649
+ readonly created_at: string;
650
+ /** Format: date-time */
651
+ readonly updated_at: string;
652
+ };
653
+ /** @description Lightweight status view (mirrors the listings.status comm Function). */
654
+ ListingStatus: {
655
+ status: components["schemas"]["StatusD41Enum"];
656
+ moderation_status: string;
657
+ is_deleted: boolean;
658
+ is_expired: boolean;
659
+ is_active: boolean;
660
+ owner_id: string;
661
+ };
662
+ /**
663
+ * @description * `pending` - Pending Review
664
+ * * `approved` - Approved
665
+ * * `rejected` - Rejected
666
+ * * `needs_review` - Needs Manual Review
667
+ * @enum {string}
668
+ */
669
+ ModerationStatusEnum: "pending" | "approved" | "rejected" | "needs_review";
670
+ /** @description Listing counts by tab for the current user. */
671
+ MyCountersResponse: {
672
+ active: number;
673
+ archived: number;
674
+ drafts: number;
675
+ };
676
+ /** @enum {unknown} */
677
+ NullEnum: null;
678
+ PaginatedListingCardList: {
679
+ items: components["schemas"]["ListingCard"][];
680
+ /** @description Anchor value for next page */
681
+ next_anchor?: string | null;
682
+ /** @description Anchor value for previous page */
683
+ prev_anchor?: string | null;
684
+ /** @description Whether there are more items after this page */
685
+ has_next: boolean;
686
+ /** @description Whether there are items before this page */
687
+ has_prev: boolean;
688
+ /** @description Number of items in current page */
689
+ count: number;
690
+ };
691
+ /**
692
+ * @description Create/update the draft twin fields.
693
+ *
694
+ * All user-editable content is a ``*_draft`` field promoted on publish.
695
+ * DRF's declarative field validation (max_length, decimal bounds, types)
696
+ * replaces the source view's hand-rolled per-field checks.
697
+ */
698
+ PatchedListingDraft: {
699
+ readonly id?: number;
700
+ category_id?: string;
701
+ currency?: string;
702
+ language?: string;
703
+ title_draft?: string;
704
+ description_draft?: string;
705
+ /** Format: decimal */
706
+ price_draft?: string | null;
707
+ images_draft?: string[];
708
+ location_id_draft?: string;
709
+ location_label_draft?: string;
710
+ geohash_draft?: string;
711
+ /** Format: decimal */
712
+ lat_draft?: string | null;
713
+ /** Format: decimal */
714
+ lon_draft?: string | null;
715
+ features_draft?: {
716
+ [key: string]: components["schemas"]["FeatureDto"];
717
+ } | null;
718
+ auto_republish?: boolean;
719
+ countable?: boolean;
720
+ /** Format: int64 */
721
+ stock_quantity?: number | null;
722
+ readonly status?: components["schemas"]["StatusD41Enum"];
723
+ readonly moderation_status?: components["schemas"]["ModerationStatusEnum"];
724
+ /** Format: date-time */
725
+ readonly created_at?: string;
726
+ /** Format: date-time */
727
+ readonly updated_at?: string;
728
+ };
729
+ /** @description Result of publishing a listing. */
730
+ PublishResponse: {
731
+ published: boolean;
732
+ listing_id: number;
733
+ status: string;
734
+ };
735
+ /** @description Serializer for select feature DAO. */
736
+ SelectDao: {
737
+ name?: string | null;
738
+ order?: number | null;
739
+ title?: boolean | null;
740
+ badge?: boolean | null;
741
+ translate?: string | null;
742
+ /**
743
+ * @description discriminator enum property added by openapi-typescript
744
+ * @enum {string}
745
+ */
746
+ type: "select";
747
+ value?: string[];
748
+ uiStyle?: (components["schemas"]["UiStyleEnum"] | components["schemas"]["NullEnum"]) | null;
749
+ maxSelected?: number | null;
750
+ };
751
+ /** @description Serializer for select feature DTO. */
752
+ SelectDto: {
753
+ /**
754
+ * @description discriminator enum property added by openapi-typescript
755
+ * @enum {string}
756
+ */
757
+ type: "select";
758
+ value?: string[];
759
+ };
760
+ /**
761
+ * @description * `draft` - Draft
762
+ * * `pending` - Pending Moderation
763
+ * * `published` - Published
764
+ * * `paused` - Paused
765
+ * * `expired` - Expired
766
+ * * `sold` - Sold
767
+ * * `rejected` - Rejected
768
+ * * `blocked` - Blocked (moderation takedown)
769
+ * * `archived` - Archived
770
+ * @enum {string}
771
+ */
772
+ StatusD41Enum: "draft" | "pending" | "published" | "paused" | "expired" | "sold" | "rejected" | "blocked" | "archived";
773
+ /** @description Serializer for string feature DAO. */
774
+ StringDao: {
775
+ name?: string | null;
776
+ order?: number | null;
777
+ title?: boolean | null;
778
+ badge?: boolean | null;
779
+ translate?: string | null;
780
+ /**
781
+ * @description discriminator enum property added by openapi-typescript
782
+ * @enum {string}
783
+ */
784
+ type: "string";
785
+ value?: string;
786
+ prefix?: string | null;
787
+ postfix?: string | null;
788
+ };
789
+ /** @description Serializer for string feature DTO. */
790
+ StringDto: {
791
+ /**
792
+ * @description discriminator enum property added by openapi-typescript
793
+ * @enum {string}
794
+ */
795
+ type: "string";
796
+ value?: string;
797
+ };
798
+ /**
799
+ * @description * `l` - l
800
+ * * `m` - m
801
+ * @enum {string}
802
+ */
803
+ StyleEnum: "l" | "m";
804
+ /**
805
+ * @description * `convertible_unit` - convertible_unit
806
+ * @enum {string}
807
+ */
808
+ Type104Enum: "convertible_unit";
809
+ /**
810
+ * @description * `date` - date
811
+ * @enum {string}
812
+ */
813
+ Type37eEnum: "date";
814
+ /**
815
+ * @description * `header` - header
816
+ * @enum {string}
817
+ */
818
+ Type3feEnum: "header";
819
+ /**
820
+ * @description * `hex_color` - hex_color
821
+ * @enum {string}
822
+ */
823
+ Type515Enum: "hex_color";
824
+ /**
825
+ * @description * `hierarchical_select` - hierarchical_select
826
+ * @enum {string}
827
+ */
828
+ Type5beEnum: "hierarchical_select";
829
+ /**
830
+ * @description * `select` - select
831
+ * @enum {string}
832
+ */
833
+ Type63eEnum: "select";
834
+ /**
835
+ * @description * `string` - string
836
+ * @enum {string}
837
+ */
838
+ Type839Enum: "string";
839
+ /**
840
+ * @description * `int` - int
841
+ * @enum {string}
842
+ */
843
+ TypeC1bEnum: "int";
844
+ /**
845
+ * @description * `float` - float
846
+ * @enum {string}
847
+ */
848
+ TypeD7cEnum: "float";
849
+ /**
850
+ * @description * `bool` - bool
851
+ * @enum {string}
852
+ */
853
+ TypeE3eEnum: "bool";
854
+ /**
855
+ * @description * `dropdown` - dropdown
856
+ * * `checkboxes` - checkboxes
857
+ * * `chips` - chips
858
+ * @enum {string}
859
+ */
860
+ UiStyleEnum: "dropdown" | "checkboxes" | "chips";
861
+ /** @description Serializer for ValidationBatchResult. */
862
+ ValidationBatchResult: {
863
+ valid: boolean;
864
+ results: components["schemas"]["FeatureValidationResult"][];
865
+ };
866
+ };
867
+ responses: never;
868
+ parameters: never;
869
+ requestBodies: never;
870
+ headers: never;
871
+ pathItems: never;
872
+ }
873
+ export type $defs = Record<string, never>;
874
+ export interface operations {
875
+ listings_api_v1_listings_list: {
876
+ parameters: {
877
+ query?: {
878
+ /** @description Anchor value to paginate from (exclusive) */
879
+ anchor?: string;
880
+ /** @description Pagination direction */
881
+ direction?: "next" | "prev" | "center";
882
+ /** @description Number of items (default 100, max 1000) */
883
+ limit?: number;
884
+ };
885
+ header?: never;
886
+ path?: never;
887
+ cookie?: never;
888
+ };
889
+ requestBody?: never;
890
+ responses: {
891
+ 200: {
892
+ headers: {
893
+ [name: string]: unknown;
894
+ };
895
+ content: {
896
+ "application/json": components["schemas"]["PaginatedListingCardList"];
897
+ };
898
+ };
899
+ };
900
+ };
901
+ listings_api_v1_listings_create: {
902
+ parameters: {
903
+ query?: never;
904
+ header?: never;
905
+ path?: never;
906
+ cookie?: never;
907
+ };
908
+ requestBody: {
909
+ content: {
910
+ "application/json": components["schemas"]["ListingDraft"];
911
+ "application/x-www-form-urlencoded": components["schemas"]["ListingDraft"];
912
+ "multipart/form-data": components["schemas"]["ListingDraft"];
913
+ };
914
+ };
915
+ responses: {
916
+ 201: {
917
+ headers: {
918
+ [name: string]: unknown;
919
+ };
920
+ content: {
921
+ "application/json": components["schemas"]["ListingDraft"];
922
+ };
923
+ };
924
+ };
925
+ };
926
+ listings_api_v1_listings_retrieve: {
927
+ parameters: {
928
+ query?: never;
929
+ header?: never;
930
+ path: {
931
+ /** @description A unique integer value identifying this listing. */
932
+ id: number;
933
+ };
934
+ cookie?: never;
935
+ };
936
+ requestBody?: never;
937
+ responses: {
938
+ 200: {
939
+ headers: {
940
+ [name: string]: unknown;
941
+ };
942
+ content: {
943
+ "application/json": components["schemas"]["ListingDetail"];
944
+ };
945
+ };
946
+ };
947
+ };
948
+ listings_api_v1_listings_update: {
949
+ parameters: {
950
+ query?: never;
951
+ header?: never;
952
+ path: {
953
+ /** @description A unique integer value identifying this listing. */
954
+ id: number;
955
+ };
956
+ cookie?: never;
957
+ };
958
+ requestBody: {
959
+ content: {
960
+ "application/json": components["schemas"]["ListingDraft"];
961
+ "application/x-www-form-urlencoded": components["schemas"]["ListingDraft"];
962
+ "multipart/form-data": components["schemas"]["ListingDraft"];
963
+ };
964
+ };
965
+ responses: {
966
+ 200: {
967
+ headers: {
968
+ [name: string]: unknown;
969
+ };
970
+ content: {
971
+ "application/json": components["schemas"]["ListingDraft"];
972
+ };
973
+ };
974
+ };
975
+ };
976
+ listings_api_v1_listings_destroy: {
977
+ parameters: {
978
+ query?: never;
979
+ header?: never;
980
+ path: {
981
+ /** @description A unique integer value identifying this listing. */
982
+ id: number;
983
+ };
984
+ cookie?: never;
985
+ };
986
+ requestBody?: never;
987
+ responses: {
988
+ 200: {
989
+ headers: {
990
+ [name: string]: unknown;
991
+ };
992
+ content: {
993
+ "application/json": components["schemas"]["DeleteResponse"];
994
+ };
995
+ };
996
+ };
997
+ };
998
+ listings_api_v1_listings_partial_update: {
999
+ parameters: {
1000
+ query?: never;
1001
+ header?: never;
1002
+ path: {
1003
+ /** @description A unique integer value identifying this listing. */
1004
+ id: number;
1005
+ };
1006
+ cookie?: never;
1007
+ };
1008
+ requestBody?: {
1009
+ content: {
1010
+ "application/json": components["schemas"]["PatchedListingDraft"];
1011
+ "application/x-www-form-urlencoded": components["schemas"]["PatchedListingDraft"];
1012
+ "multipart/form-data": components["schemas"]["PatchedListingDraft"];
1013
+ };
1014
+ };
1015
+ responses: {
1016
+ 200: {
1017
+ headers: {
1018
+ [name: string]: unknown;
1019
+ };
1020
+ content: {
1021
+ "application/json": components["schemas"]["ListingDraft"];
1022
+ };
1023
+ };
1024
+ };
1025
+ };
1026
+ listings_api_v1_listings_archive_create: {
1027
+ parameters: {
1028
+ query?: never;
1029
+ header?: never;
1030
+ path: {
1031
+ /** @description A unique integer value identifying this listing. */
1032
+ id: number;
1033
+ };
1034
+ cookie?: never;
1035
+ };
1036
+ requestBody?: never;
1037
+ responses: {
1038
+ 200: {
1039
+ headers: {
1040
+ [name: string]: unknown;
1041
+ };
1042
+ content: {
1043
+ "application/json": components["schemas"]["ListingActionResponse"];
1044
+ };
1045
+ };
1046
+ };
1047
+ };
1048
+ listings_api_v1_listings_complete_create: {
1049
+ parameters: {
1050
+ query?: never;
1051
+ header?: never;
1052
+ path: {
1053
+ /** @description A unique integer value identifying this listing. */
1054
+ id: number;
1055
+ };
1056
+ cookie?: never;
1057
+ };
1058
+ requestBody?: never;
1059
+ responses: {
1060
+ 200: {
1061
+ headers: {
1062
+ [name: string]: unknown;
1063
+ };
1064
+ content: {
1065
+ "application/json": components["schemas"]["ListingActionResponse"];
1066
+ };
1067
+ };
1068
+ };
1069
+ };
1070
+ listings_api_v1_listings_favorite_create: {
1071
+ parameters: {
1072
+ query?: never;
1073
+ header?: never;
1074
+ path: {
1075
+ /** @description A unique integer value identifying this listing. */
1076
+ id: number;
1077
+ };
1078
+ cookie?: never;
1079
+ };
1080
+ requestBody?: never;
1081
+ responses: {
1082
+ 200: {
1083
+ headers: {
1084
+ [name: string]: unknown;
1085
+ };
1086
+ content: {
1087
+ "application/json": components["schemas"]["FavoriteToggleResponse"];
1088
+ };
1089
+ };
1090
+ };
1091
+ };
1092
+ listings_api_v1_listings_publish_create: {
1093
+ parameters: {
1094
+ query?: never;
1095
+ header?: never;
1096
+ path: {
1097
+ /** @description A unique integer value identifying this listing. */
1098
+ id: number;
1099
+ };
1100
+ cookie?: never;
1101
+ };
1102
+ requestBody?: never;
1103
+ responses: {
1104
+ 200: {
1105
+ headers: {
1106
+ [name: string]: unknown;
1107
+ };
1108
+ content: {
1109
+ "application/json": components["schemas"]["PublishResponse"];
1110
+ };
1111
+ };
1112
+ 400: {
1113
+ headers: {
1114
+ [name: string]: unknown;
1115
+ };
1116
+ content: {
1117
+ "application/json": components["schemas"]["ValidationBatchResult"];
1118
+ };
1119
+ };
1120
+ };
1121
+ };
1122
+ listings_api_v1_listings_save_draft_create: {
1123
+ parameters: {
1124
+ query?: never;
1125
+ header?: never;
1126
+ path: {
1127
+ /** @description A unique integer value identifying this listing. */
1128
+ id: number;
1129
+ };
1130
+ cookie?: never;
1131
+ };
1132
+ requestBody?: never;
1133
+ responses: {
1134
+ 200: {
1135
+ headers: {
1136
+ [name: string]: unknown;
1137
+ };
1138
+ content: {
1139
+ "application/json": components["schemas"]["ListingDraft"];
1140
+ };
1141
+ };
1142
+ };
1143
+ };
1144
+ listings_api_v1_listings_status_retrieve: {
1145
+ parameters: {
1146
+ query?: never;
1147
+ header?: never;
1148
+ path: {
1149
+ /** @description A unique integer value identifying this listing. */
1150
+ id: number;
1151
+ };
1152
+ cookie?: never;
1153
+ };
1154
+ requestBody?: never;
1155
+ responses: {
1156
+ 200: {
1157
+ headers: {
1158
+ [name: string]: unknown;
1159
+ };
1160
+ content: {
1161
+ "application/json": components["schemas"]["ListingStatus"];
1162
+ };
1163
+ };
1164
+ };
1165
+ };
1166
+ listings_api_v1_listings_unfavorite_create: {
1167
+ parameters: {
1168
+ query?: never;
1169
+ header?: never;
1170
+ path: {
1171
+ /** @description A unique integer value identifying this listing. */
1172
+ id: number;
1173
+ };
1174
+ cookie?: never;
1175
+ };
1176
+ requestBody?: never;
1177
+ responses: {
1178
+ 200: {
1179
+ headers: {
1180
+ [name: string]: unknown;
1181
+ };
1182
+ content: {
1183
+ "application/json": components["schemas"]["FavoriteToggleResponse"];
1184
+ };
1185
+ };
1186
+ };
1187
+ };
1188
+ listings_api_v1_listings_validate_draft_retrieve: {
1189
+ parameters: {
1190
+ query?: never;
1191
+ header?: never;
1192
+ path: {
1193
+ /** @description A unique integer value identifying this listing. */
1194
+ id: number;
1195
+ };
1196
+ cookie?: never;
1197
+ };
1198
+ requestBody?: never;
1199
+ responses: {
1200
+ 200: {
1201
+ headers: {
1202
+ [name: string]: unknown;
1203
+ };
1204
+ content: {
1205
+ "application/json": components["schemas"]["ValidationBatchResult"];
1206
+ };
1207
+ };
1208
+ };
1209
+ };
1210
+ listings_api_v1_listings_my_counters_retrieve: {
1211
+ parameters: {
1212
+ query?: never;
1213
+ header?: never;
1214
+ path?: never;
1215
+ cookie?: never;
1216
+ };
1217
+ requestBody?: never;
1218
+ responses: {
1219
+ 200: {
1220
+ headers: {
1221
+ [name: string]: unknown;
1222
+ };
1223
+ content: {
1224
+ "application/json": components["schemas"]["MyCountersResponse"];
1225
+ };
1226
+ };
1227
+ };
1228
+ };
1229
+ listings_api_v1_listings_my_favorites_list: {
1230
+ parameters: {
1231
+ query?: {
1232
+ /** @description Anchor value to paginate from (exclusive) */
1233
+ anchor?: string;
1234
+ /** @description Pagination direction */
1235
+ direction?: "next" | "prev" | "center";
1236
+ /** @description Number of items (default 100, max 1000) */
1237
+ limit?: number;
1238
+ };
1239
+ header?: never;
1240
+ path?: never;
1241
+ cookie?: never;
1242
+ };
1243
+ requestBody?: never;
1244
+ responses: {
1245
+ 200: {
1246
+ headers: {
1247
+ [name: string]: unknown;
1248
+ };
1249
+ content: {
1250
+ "application/json": components["schemas"]["PaginatedListingCardList"];
1251
+ };
1252
+ };
1253
+ };
1254
+ };
1255
+ }