diff --git a/packages/shared/src/server/AbstractProduct.ts b/packages/shared/src/server/products/AbstractProduct.ts similarity index 100% rename from packages/shared/src/server/AbstractProduct.ts rename to packages/shared/src/server/products/AbstractProduct.ts diff --git a/packages/shared/src/server/EventBus.ts b/packages/shared/src/server/products/EventBus.ts similarity index 100% rename from packages/shared/src/server/EventBus.ts rename to packages/shared/src/server/products/EventBus.ts diff --git a/packages/shared/src/server/enums.ts b/packages/shared/src/server/products/enums.ts similarity index 100% rename from packages/shared/src/server/enums.ts rename to packages/shared/src/server/products/enums.ts diff --git a/packages/shared/src/server/errors.ts b/packages/shared/src/server/products/errors.ts similarity index 100% rename from packages/shared/src/server/errors.ts rename to packages/shared/src/server/products/errors.ts diff --git a/packages/shared/src/server/locations/__tests__/e2e-gadm.test.ts b/packages/shared/src/server/products/locations/__tests__/e2e-gadm.test.ts similarity index 100% rename from packages/shared/src/server/locations/__tests__/e2e-gadm.test.ts rename to packages/shared/src/server/products/locations/__tests__/e2e-gadm.test.ts diff --git a/packages/shared/src/server/locations/__tests__/e2e.test.ts b/packages/shared/src/server/products/locations/__tests__/e2e.test.ts similarity index 100% rename from packages/shared/src/server/locations/__tests__/e2e.test.ts rename to packages/shared/src/server/products/locations/__tests__/e2e.test.ts diff --git a/packages/shared/src/server/locations/cache.ts b/packages/shared/src/server/products/locations/cache.ts similarity index 100% rename from packages/shared/src/server/locations/cache.ts rename to packages/shared/src/server/products/locations/cache.ts diff --git a/packages/shared/src/server/locations/constants.ts b/packages/shared/src/server/products/locations/constants.ts similarity index 100% rename from packages/shared/src/server/locations/constants.ts rename to packages/shared/src/server/products/locations/constants.ts diff --git a/packages/shared/src/server/locations/db.ts b/packages/shared/src/server/products/locations/db.ts similarity index 100% rename from packages/shared/src/server/locations/db.ts rename to packages/shared/src/server/products/locations/db.ts diff --git a/packages/shared/src/server/locations/enrichers/__tests__/meta.test.ts b/packages/shared/src/server/products/locations/enrichers/__tests__/meta.test.ts similarity index 100% rename from packages/shared/src/server/locations/enrichers/__tests__/meta.test.ts rename to packages/shared/src/server/products/locations/enrichers/__tests__/meta.test.ts diff --git a/packages/shared/src/server/locations/enrichers/__tests__/registry.test.ts b/packages/shared/src/server/products/locations/enrichers/__tests__/registry.test.ts similarity index 100% rename from packages/shared/src/server/locations/enrichers/__tests__/registry.test.ts rename to packages/shared/src/server/products/locations/enrichers/__tests__/registry.test.ts diff --git a/packages/shared/src/server/locations/enrichers/meta.ts b/packages/shared/src/server/products/locations/enrichers/meta.ts similarity index 100% rename from packages/shared/src/server/locations/enrichers/meta.ts rename to packages/shared/src/server/products/locations/enrichers/meta.ts diff --git a/packages/shared/src/server/locations/enrichers/registry.ts b/packages/shared/src/server/products/locations/enrichers/registry.ts similarity index 100% rename from packages/shared/src/server/locations/enrichers/registry.ts rename to packages/shared/src/server/products/locations/enrichers/registry.ts diff --git a/packages/shared/src/server/locations/enrichers/service.ts b/packages/shared/src/server/products/locations/enrichers/service.ts similarity index 100% rename from packages/shared/src/server/locations/enrichers/service.ts rename to packages/shared/src/server/products/locations/enrichers/service.ts diff --git a/packages/shared/src/server/locations/gadm_wrapper.py b/packages/shared/src/server/products/locations/gadm_wrapper.py similarity index 100% rename from packages/shared/src/server/locations/gadm_wrapper.py rename to packages/shared/src/server/products/locations/gadm_wrapper.py diff --git a/packages/shared/src/server/locations/index.ts b/packages/shared/src/server/products/locations/index.ts similarity index 100% rename from packages/shared/src/server/locations/index.ts rename to packages/shared/src/server/products/locations/index.ts diff --git a/packages/shared/src/server/locations/jobs-find.ts b/packages/shared/src/server/products/locations/jobs-find.ts similarity index 100% rename from packages/shared/src/server/locations/jobs-find.ts rename to packages/shared/src/server/products/locations/jobs-find.ts diff --git a/packages/shared/src/server/locations/logger.ts b/packages/shared/src/server/products/locations/logger.ts similarity index 100% rename from packages/shared/src/server/locations/logger.ts rename to packages/shared/src/server/products/locations/logger.ts diff --git a/packages/shared/src/server/locations/meta.ts b/packages/shared/src/server/products/locations/meta.ts similarity index 100% rename from packages/shared/src/server/locations/meta.ts rename to packages/shared/src/server/products/locations/meta.ts diff --git a/packages/shared/src/server/locations/pgboss.ts b/packages/shared/src/server/products/locations/pgboss.ts similarity index 100% rename from packages/shared/src/server/locations/pgboss.ts rename to packages/shared/src/server/products/locations/pgboss.ts diff --git a/packages/shared/src/server/locations/routes.ts b/packages/shared/src/server/products/locations/routes.ts similarity index 100% rename from packages/shared/src/server/locations/routes.ts rename to packages/shared/src/server/products/locations/routes.ts diff --git a/packages/shared/src/server/locations/schemas.ts b/packages/shared/src/server/products/locations/schemas.ts similarity index 100% rename from packages/shared/src/server/locations/schemas.ts rename to packages/shared/src/server/products/locations/schemas.ts diff --git a/packages/shared/src/server/locations/stream.ts b/packages/shared/src/server/products/locations/stream.ts similarity index 100% rename from packages/shared/src/server/locations/stream.ts rename to packages/shared/src/server/products/locations/stream.ts diff --git a/packages/shared/src/server/registry.ts b/packages/shared/src/server/products/registry.ts similarity index 100% rename from packages/shared/src/server/registry.ts rename to packages/shared/src/server/products/registry.ts diff --git a/packages/shared/src/server/subscriber.ts b/packages/shared/src/server/products/subscriber.ts similarity index 100% rename from packages/shared/src/server/subscriber.ts rename to packages/shared/src/server/products/subscriber.ts diff --git a/packages/shared/src/server/schemas/index.ts b/packages/shared/src/server/schemas/index.ts new file mode 100644 index 00000000..789db63b --- /dev/null +++ b/packages/shared/src/server/schemas/index.ts @@ -0,0 +1,48 @@ +import { z } from '@hono/zod-openapi' + +export const ProductSchema = z.object({ + id: z.number().openapi({ example: 1 }), + name: z.string().openapi({ example: 'Product A' }), + slug: z.string().openapi({ example: 'product-a' }), + description: z.string().optional().openapi({ example: 'Great product' }), + price: z.number().openapi({ example: 100 }), + variants: z.any().optional().openapi({ example: [] }), +}) + +export const SubscriptionSchema = z.object({ + id: z.number().openapi({ example: 1 }), + name: z.string().openapi({ example: 'Basic' }), + price: z.number().openapi({ example: 10 }), +}) + +export const StatsSchema = z.object({ + users: z.number().openapi({ example: 100 }), + revenue: z.number().openapi({ example: 5000 }), +}) + +export const ErrorSchema = z.object({ + error: z.string(), +}) + +export type Product = z.infer +export type Subscription = z.infer +export type Stats = z.infer + +export const ImageSchema = z.object({ + idx: z.number().openapi({ example: 0 }), + id: z.number().openapi({ example: 6 }), + name: z.string().openapi({ example: 'images' }), + slug: z.string().openapi({ example: 'images' }), + description: z.string().openapi({ example: 'fcghdfgh' }), + price: z.string().openapi({ example: '10.00' }), + variants: z.string().openapi({ example: '[]' }), + created_at: z.string().openapi({ example: '2025-11-22 10:46:09.77718+00' }), + updated_at: z.string().openapi({ example: '2025-11-22 10:46:09.77718+00' }), +}) + +export const ImageResponseSchema = z.object({ + message: z.string().openapi({ example: 'Success' }), + data: z.array(ImageSchema).optional(), +}) + +