unitysvc-services 0.1.24__py3-none-any.whl

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 (37) hide show
  1. unitysvc_services/__init__.py +4 -0
  2. unitysvc_services/api.py +421 -0
  3. unitysvc_services/cli.py +23 -0
  4. unitysvc_services/format_data.py +140 -0
  5. unitysvc_services/interactive_prompt.py +1132 -0
  6. unitysvc_services/list.py +216 -0
  7. unitysvc_services/models/__init__.py +71 -0
  8. unitysvc_services/models/base.py +1375 -0
  9. unitysvc_services/models/listing_data.py +118 -0
  10. unitysvc_services/models/listing_v1.py +56 -0
  11. unitysvc_services/models/provider_data.py +79 -0
  12. unitysvc_services/models/provider_v1.py +54 -0
  13. unitysvc_services/models/seller_data.py +120 -0
  14. unitysvc_services/models/seller_v1.py +42 -0
  15. unitysvc_services/models/service_data.py +114 -0
  16. unitysvc_services/models/service_v1.py +81 -0
  17. unitysvc_services/populate.py +207 -0
  18. unitysvc_services/publisher.py +1628 -0
  19. unitysvc_services/py.typed +0 -0
  20. unitysvc_services/query.py +688 -0
  21. unitysvc_services/scaffold.py +1103 -0
  22. unitysvc_services/schema/base.json +777 -0
  23. unitysvc_services/schema/listing_v1.json +1286 -0
  24. unitysvc_services/schema/provider_v1.json +952 -0
  25. unitysvc_services/schema/seller_v1.json +379 -0
  26. unitysvc_services/schema/service_v1.json +1306 -0
  27. unitysvc_services/test.py +965 -0
  28. unitysvc_services/unpublisher.py +505 -0
  29. unitysvc_services/update.py +287 -0
  30. unitysvc_services/utils.py +533 -0
  31. unitysvc_services/validator.py +731 -0
  32. unitysvc_services-0.1.24.dist-info/METADATA +184 -0
  33. unitysvc_services-0.1.24.dist-info/RECORD +37 -0
  34. unitysvc_services-0.1.24.dist-info/WHEEL +5 -0
  35. unitysvc_services-0.1.24.dist-info/entry_points.txt +3 -0
  36. unitysvc_services-0.1.24.dist-info/licenses/LICENSE +21 -0
  37. unitysvc_services-0.1.24.dist-info/top_level.txt +1 -0
@@ -0,0 +1,379 @@
1
+ {
2
+ "$defs": {
3
+ "Document": {
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "category": {
7
+ "$ref": "#/$defs/DocumentCategoryEnum",
8
+ "description": "Document category for organization and filtering"
9
+ },
10
+ "description": {
11
+ "anyOf": [
12
+ {
13
+ "maxLength": 500,
14
+ "type": "string"
15
+ },
16
+ {
17
+ "type": "null"
18
+ }
19
+ ],
20
+ "default": null,
21
+ "description": "Document description",
22
+ "title": "Description"
23
+ },
24
+ "external_url": {
25
+ "anyOf": [
26
+ {
27
+ "maxLength": 1000,
28
+ "type": "string"
29
+ },
30
+ {
31
+ "type": "null"
32
+ }
33
+ ],
34
+ "default": null,
35
+ "description": "External URL for the document (mutually exclusive with object_key)",
36
+ "title": "External Url"
37
+ },
38
+ "file_path": {
39
+ "anyOf": [
40
+ {
41
+ "maxLength": 1000,
42
+ "type": "string"
43
+ },
44
+ {
45
+ "type": "null"
46
+ }
47
+ ],
48
+ "default": null,
49
+ "description": "Path to file to upload (mutually exclusive with external_url)",
50
+ "title": "File Path"
51
+ },
52
+ "is_active": {
53
+ "default": true,
54
+ "description": "Whether document is active",
55
+ "title": "Is Active",
56
+ "type": "boolean"
57
+ },
58
+ "is_public": {
59
+ "default": false,
60
+ "description": "Whether document is publicly accessible without authentication",
61
+ "title": "Is Public",
62
+ "type": "boolean"
63
+ },
64
+ "meta": {
65
+ "anyOf": [
66
+ {
67
+ "additionalProperties": true,
68
+ "type": "object"
69
+ },
70
+ {
71
+ "type": "null"
72
+ }
73
+ ],
74
+ "default": null,
75
+ "description": "JSON containing operation stats",
76
+ "title": "Meta"
77
+ },
78
+ "mime_type": {
79
+ "$ref": "#/$defs/MimeTypeEnum",
80
+ "description": "Document MIME type"
81
+ },
82
+ "sort_order": {
83
+ "default": 0,
84
+ "description": "Sort order within category",
85
+ "title": "Sort Order",
86
+ "type": "integer"
87
+ },
88
+ "title": {
89
+ "description": "Document title",
90
+ "maxLength": 255,
91
+ "minLength": 5,
92
+ "title": "Title",
93
+ "type": "string"
94
+ },
95
+ "version": {
96
+ "anyOf": [
97
+ {
98
+ "maxLength": 50,
99
+ "type": "string"
100
+ },
101
+ {
102
+ "type": "null"
103
+ }
104
+ ],
105
+ "default": null,
106
+ "description": "Document version",
107
+ "title": "Version"
108
+ }
109
+ },
110
+ "required": [
111
+ "title",
112
+ "mime_type",
113
+ "category"
114
+ ],
115
+ "title": "Document",
116
+ "type": "object"
117
+ },
118
+ "DocumentCategoryEnum": {
119
+ "enum": [
120
+ "getting_started",
121
+ "api_reference",
122
+ "tutorial",
123
+ "code_example",
124
+ "code_example_output",
125
+ "use_case",
126
+ "troubleshooting",
127
+ "changelog",
128
+ "best_practice",
129
+ "specification",
130
+ "service_level_agreement",
131
+ "terms_of_service",
132
+ "statement",
133
+ "invoice",
134
+ "logo",
135
+ "avatar",
136
+ "other"
137
+ ],
138
+ "title": "DocumentCategoryEnum",
139
+ "type": "string"
140
+ },
141
+ "MimeTypeEnum": {
142
+ "enum": [
143
+ "markdown",
144
+ "python",
145
+ "javascript",
146
+ "bash",
147
+ "html",
148
+ "text",
149
+ "pdf",
150
+ "jpeg",
151
+ "png",
152
+ "svg",
153
+ "url"
154
+ ],
155
+ "title": "MimeTypeEnum",
156
+ "type": "string"
157
+ },
158
+ "SellerStatusEnum": {
159
+ "description": "Seller status enum.",
160
+ "enum": [
161
+ "active",
162
+ "pending",
163
+ "disabled",
164
+ "draft"
165
+ ],
166
+ "title": "SellerStatusEnum",
167
+ "type": "string"
168
+ },
169
+ "SellerTypeEnum": {
170
+ "enum": [
171
+ "individual",
172
+ "organization",
173
+ "partnership",
174
+ "corporation"
175
+ ],
176
+ "title": "SellerTypeEnum",
177
+ "type": "string"
178
+ }
179
+ },
180
+ "additionalProperties": false,
181
+ "description": "Seller information for marketplace sellers (seller_v1 schema).\n\nExtends SellerData with:\n- schema_version: Schema identifier for file validation\n- time_created: Timestamp for file creation\n- logo: Convenience field (converted to documents during import)\n- Typed Document model instead of dict for file validation\n- Field validators for name format\n\nEach repository can only have one seller.json file at the root of the data directory.",
182
+ "properties": {
183
+ "account_manager": {
184
+ "anyOf": [
185
+ {
186
+ "maxLength": 100,
187
+ "type": "string"
188
+ },
189
+ {
190
+ "type": "null"
191
+ }
192
+ ],
193
+ "default": null,
194
+ "description": "Email or username of the user managing this seller account",
195
+ "title": "Account Manager"
196
+ },
197
+ "business_registration": {
198
+ "anyOf": [
199
+ {
200
+ "maxLength": 100,
201
+ "type": "string"
202
+ },
203
+ {
204
+ "type": "null"
205
+ }
206
+ ],
207
+ "default": null,
208
+ "description": "Business registration number (if organization)",
209
+ "title": "Business Registration"
210
+ },
211
+ "contact_email": {
212
+ "description": "Primary contact email for the seller",
213
+ "format": "email",
214
+ "title": "Contact Email",
215
+ "type": "string"
216
+ },
217
+ "description": {
218
+ "anyOf": [
219
+ {
220
+ "maxLength": 1000,
221
+ "type": "string"
222
+ },
223
+ {
224
+ "type": "null"
225
+ }
226
+ ],
227
+ "default": null,
228
+ "description": "Brief description of the seller",
229
+ "title": "Description"
230
+ },
231
+ "display_name": {
232
+ "anyOf": [
233
+ {
234
+ "maxLength": 200,
235
+ "type": "string"
236
+ },
237
+ {
238
+ "type": "null"
239
+ }
240
+ ],
241
+ "default": null,
242
+ "description": "Human-readable seller name (e.g., 'ACME Corporation', 'John Doe')",
243
+ "title": "Display Name"
244
+ },
245
+ "documents": {
246
+ "anyOf": [
247
+ {
248
+ "items": {
249
+ "$ref": "#/$defs/Document"
250
+ },
251
+ "type": "array"
252
+ },
253
+ {
254
+ "type": "null"
255
+ }
256
+ ],
257
+ "default": null,
258
+ "description": "List of documents associated with the seller (e.g. business registration, tax documents)",
259
+ "title": "Documents"
260
+ },
261
+ "homepage": {
262
+ "anyOf": [
263
+ {
264
+ "format": "uri",
265
+ "maxLength": 2083,
266
+ "minLength": 1,
267
+ "type": "string"
268
+ },
269
+ {
270
+ "type": "null"
271
+ }
272
+ ],
273
+ "default": null,
274
+ "description": "Seller's homepage URL",
275
+ "title": "Homepage"
276
+ },
277
+ "is_verified": {
278
+ "default": false,
279
+ "description": "Whether the seller has been verified (KYC/business verification)",
280
+ "title": "Is Verified",
281
+ "type": "boolean"
282
+ },
283
+ "logo": {
284
+ "anyOf": [
285
+ {
286
+ "type": "string"
287
+ },
288
+ {
289
+ "format": "uri",
290
+ "maxLength": 2083,
291
+ "minLength": 1,
292
+ "type": "string"
293
+ },
294
+ {
295
+ "type": "null"
296
+ }
297
+ ],
298
+ "default": null,
299
+ "title": "Logo"
300
+ },
301
+ "name": {
302
+ "description": "Unique seller identifier (URL-friendly, e.g., 'acme-corp', 'john-doe')",
303
+ "maxLength": 100,
304
+ "minLength": 2,
305
+ "title": "Name",
306
+ "type": "string"
307
+ },
308
+ "schema": {
309
+ "default": "seller_v1",
310
+ "description": "Schema identifier",
311
+ "title": "Schema",
312
+ "type": "string"
313
+ },
314
+ "secondary_contact_email": {
315
+ "anyOf": [
316
+ {
317
+ "format": "email",
318
+ "type": "string"
319
+ },
320
+ {
321
+ "type": "null"
322
+ }
323
+ ],
324
+ "default": null,
325
+ "description": "Secondary contact email",
326
+ "title": "Secondary Contact Email"
327
+ },
328
+ "seller_type": {
329
+ "$ref": "#/$defs/SellerTypeEnum",
330
+ "default": "individual",
331
+ "description": "Type of seller entity"
332
+ },
333
+ "status": {
334
+ "$ref": "#/$defs/SellerStatusEnum",
335
+ "default": "active",
336
+ "description": "Seller status: active, disabled, or draft (skip publish)"
337
+ },
338
+ "stripe_connect_id": {
339
+ "anyOf": [
340
+ {
341
+ "maxLength": 255,
342
+ "type": "string"
343
+ },
344
+ {
345
+ "type": "null"
346
+ }
347
+ ],
348
+ "default": null,
349
+ "description": "Stripe Connect account ID for payment processing",
350
+ "title": "Stripe Connect Id"
351
+ },
352
+ "tax_id": {
353
+ "anyOf": [
354
+ {
355
+ "maxLength": 100,
356
+ "type": "string"
357
+ },
358
+ {
359
+ "type": "null"
360
+ }
361
+ ],
362
+ "default": null,
363
+ "description": "Tax identification number (EIN, VAT, etc.)",
364
+ "title": "Tax Id"
365
+ },
366
+ "time_created": {
367
+ "format": "date-time",
368
+ "title": "Time Created",
369
+ "type": "string"
370
+ }
371
+ },
372
+ "required": [
373
+ "name",
374
+ "contact_email",
375
+ "time_created"
376
+ ],
377
+ "title": "SellerV1",
378
+ "type": "object"
379
+ }