refactor: migrate vendor APIs to token-based context and consolidate architecture

## Vendor-in-Token Architecture (Complete Migration)
- Migrate all vendor API endpoints from require_vendor_context() to token_vendor_id
- Update permission dependencies to extract vendor from JWT token
- Add vendor exceptions: VendorAccessDeniedException, VendorOwnerOnlyException,
  InsufficientVendorPermissionsException
- Shop endpoints retain require_vendor_context() for URL-based detection
- Add AUTH-004 architecture rule enforcing vendor context patterns
- Fix marketplace router missing /marketplace prefix

## Exception Pattern Fixes (API-003/API-004)
- Services raise domain exceptions, endpoints let them bubble up
- Add code_quality and content_page exception modules
- Move business logic from endpoints to services (admin, auth, content_page)
- Fix exception handling in admin, shop, and vendor endpoints

## Tailwind CSS Consolidation
- Consolidate CSS to per-area files (admin, vendor, shop, platform)
- Remove shared/cdn-fallback.html and shared/css/tailwind.min.css
- Update all templates to use area-specific Tailwind output files
- Remove Node.js config (package.json, postcss.config.js, tailwind.config.js)

## Documentation & Cleanup
- Update vendor-in-token-architecture.md with completed migration status
- Update architecture-rules.md with new rules
- Move migration docs to docs/development/migration/
- Remove duplicate/obsolete documentation files
- Merge pytest.ini settings into pyproject.toml

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-04 22:24:45 +01:00
parent 76f8a59954
commit 8a367077e1
85 changed files with 21787 additions and 134978 deletions

View File

@@ -1,7 +1,7 @@
# Wizamart Multi-Tenant E-Commerce Platform Makefile
# Cross-platform compatible (Windows & Linux)
.PHONY: install install-dev install-docs install-all dev test test-coverage lint format check docker-build docker-up docker-down clean help npm-install tailwind-dev tailwind-build arch-check arch-check-file arch-check-object
.PHONY: install install-dev install-docs install-all dev test test-coverage lint format check docker-build docker-up docker-down clean help tailwind-install tailwind-dev tailwind-build tailwind-watch arch-check arch-check-file arch-check-object
# Detect OS
ifeq ($(OS),Windows_NT)
@@ -282,29 +282,40 @@ docs-check:
$(PYTHON) -m mkdocs build --strict --verbose
# =============================================================================
# FRONTEND / TAILWIND CSS
# FRONTEND / TAILWIND CSS (Standalone CLI - No Node.js Required)
# =============================================================================
npm-install:
@echo "Installing npm dependencies..."
npm install
@echo "npm dependencies installed"
# Tailwind CLI binary location
TAILWIND_CLI := $(HOME)/.local/bin/tailwindcss
tailwind-install:
@echo "Installing Tailwind CSS standalone CLI..."
@mkdir -p $(HOME)/.local/bin
@curl -sLO https://github.com/tailwindlabs/tailwindcss/releases/latest/download/tailwindcss-linux-x64
@chmod +x tailwindcss-linux-x64
@mv tailwindcss-linux-x64 $(TAILWIND_CLI)
@echo "Tailwind CLI installed: $$($(TAILWIND_CLI) --help | head -1)"
tailwind-dev:
@echo "Building Tailwind CSS (development - all classes)..."
npm run tailwind:admin
npm run tailwind:vendor
@echo "Tailwind CSS built (admin + vendor)"
@echo "Building Tailwind CSS (development)..."
$(TAILWIND_CLI) -i static/admin/css/tailwind.css -o static/admin/css/tailwind.output.css
$(TAILWIND_CLI) -i static/vendor/css/tailwind.css -o static/vendor/css/tailwind.output.css
$(TAILWIND_CLI) -i static/shop/css/tailwind.css -o static/shop/css/tailwind.output.css
$(TAILWIND_CLI) -i static/platform/css/tailwind.css -o static/platform/css/tailwind.output.css
@echo "Tailwind CSS built (admin + vendor + shop + platform)"
tailwind-build:
@echo "Building Tailwind CSS (production - purged)..."
npm run build
@echo "Tailwind CSS built for production"
@echo "Building Tailwind CSS (production - minified)..."
$(TAILWIND_CLI) -i static/admin/css/tailwind.css -o static/admin/css/tailwind.output.css --minify
$(TAILWIND_CLI) -i static/vendor/css/tailwind.css -o static/vendor/css/tailwind.output.css --minify
$(TAILWIND_CLI) -i static/shop/css/tailwind.css -o static/shop/css/tailwind.output.css --minify
$(TAILWIND_CLI) -i static/platform/css/tailwind.css -o static/platform/css/tailwind.output.css --minify
@echo "Tailwind CSS built and minified for production"
tailwind-watch:
@echo "Watching Tailwind CSS for changes..."
@echo "Note: This watches admin CSS only. Run in separate terminal."
npx tailwindcss build static/admin/css/tailwind.css -o static/admin/css/tailwind.output.css --watch
$(TAILWIND_CLI) -i static/admin/css/tailwind.css -o static/admin/css/tailwind.output.css --watch
# =============================================================================
# DOCKER
@@ -425,10 +436,10 @@ help:
@echo " docs-serve - Start documentation server"
@echo " docs-build - Build documentation"
@echo ""
@echo "=== FRONTEND / TAILWIND ==="
@echo " npm-install - Install npm dependencies"
@echo "=== FRONTEND / TAILWIND (No Node.js Required) ==="
@echo " tailwind-install - Install Tailwind standalone CLI"
@echo " tailwind-dev - Build Tailwind CSS (development)"
@echo " tailwind-build - Build Tailwind CSS (production)"
@echo " tailwind-build - Build Tailwind CSS (production, minified)"
@echo " tailwind-watch - Watch and rebuild on changes"
@echo ""
@echo "=== DOCKER ==="