diff --git a/backend/app/services/design_service.py b/backend/app/services/design_service.py
index 1164dd9..834ad3d 100644
--- a/backend/app/services/design_service.py
+++ b/backend/app/services/design_service.py
@@ -140,7 +140,7 @@ class DesignService:
DesignProduct(
type=p.get("type", ""),
provider=p.get("provider", ""),
- sku=p.get("sku", ""),
+ sku=str(p.get("sku", "")), # Convert to string (some SKUs are integers)
variants=p.get("variants", []),
retail_price=float(p.get("retail_price", 0)),
)
diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml
new file mode 100644
index 0000000..240753a
--- /dev/null
+++ b/docker-compose.dev.yml
@@ -0,0 +1,42 @@
+version: "3.8"
+
+# Development overrides - use with: docker compose -f docker-compose.yml -f docker-compose.dev.yml up
+
+services:
+ db:
+ ports:
+ - "5432:5432"
+
+ redis:
+ ports:
+ - "6379:6379"
+
+ backend:
+ build:
+ context: ./backend
+ dockerfile: Dockerfile
+ volumes:
+ # Mount source for hot reload
+ - ./backend/app:/app/app:ro
+ # Mount designs from sibling repo
+ - ../mycopunk-swag/designs:/app/designs:ro
+ - ../mycopunk-swag/config:/app/config:ro
+ environment:
+ - DEBUG=true
+ - POD_SANDBOX_MODE=true
+ ports:
+ - "8000:8000"
+ command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
+
+ frontend:
+ build:
+ context: ./frontend
+ dockerfile: Dockerfile
+ args:
+ - NEXT_PUBLIC_API_URL=http://localhost:8000/api
+ ports:
+ - "3000:3000"
+
+networks:
+ traefik-public:
+ driver: bridge # Override external for local dev
diff --git a/frontend/next-env.d.ts b/frontend/next-env.d.ts
new file mode 100644
index 0000000..830fb59
--- /dev/null
+++ b/frontend/next-env.d.ts
@@ -0,0 +1,6 @@
+///
+///
+///
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.