Commit Graph

134 Commits

Author SHA1 Message Date
fb3aa89086 feat: add CMS service layer and API endpoints
Implement complete CMS business logic and REST API:

Service Layer (content_page_service.py):
- get_page_for_vendor() - Two-tier lookup with fallback
- list_pages_for_vendor() - Merge vendor + platform pages
- create_page(), update_page(), delete_page() - CRUD operations
- Support for published/draft workflow
- Footer/header navigation filtering

API Endpoints:

Admin API (/api/v1/admin/content-pages):
- POST /platform - Create platform defaults
- GET /platform - List platform defaults
- GET / - List all pages with vendor filtering
- PUT /{id} - Update any page
- DELETE /{id} - Delete any page

Vendor API (/api/v1/vendor/{code}/content-pages):
- GET / - List available pages (vendor + platform merged)
- GET /overrides - List only vendor overrides
- POST / - Create vendor override
- PUT /{id} - Update vendor page
- DELETE /{id} - Delete vendor page

Shop API (/api/v1/shop/content-pages):
- GET /navigation - Get footer/header navigation pages
- GET /{slug} - Get specific page (public, with fallback)

All endpoints include proper authentication, authorization,
and validation using Pydantic schemas.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:54:48 +01:00
c219f5b5f8 feat: add CMS database model and migrations
Implement Content Management System database layer:

Database Model:
- ContentPage model with two-tier architecture
- Platform defaults (vendor_id=NULL)
- Vendor-specific overrides (vendor_id=123)
- SEO fields (meta_description, meta_keywords)
- Publishing workflow (is_published, published_at)
- Navigation flags (show_in_footer, show_in_header)
- Display ordering and timestamps

Migrations:
- Create content_pages table with all columns
- Add indexes for performance (vendor_id, slug, published status)
- Add unique constraint on (vendor_id, slug)
- Add foreign key relationships with cascade delete

Model Registration:
- Add ContentPage to Vendor relationship
- Import model in alembic/env.py for migration detection

This provides the foundation for managing static content pages
(About, FAQ, Contact, etc.) with platform defaults and vendor overrides.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:54:29 +01:00
2dfda3e312 docs: update frontend architecture documentation
Update frontend architecture documentation across all three frontends
(admin, vendor, shop) to reflect current implementation:

- Document template inheritance patterns
- Update Alpine.js component usage
- Add CDN fallback strategy references
- Clarify context variable usage
- Update template structure diagrams

Also update base templates with improved comments and organization.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:54:12 +01:00
03a487eba9 fix: implement correct base_url routing for shop frontend
Fix shop frontend links to work correctly across all three access methods:
- Custom domain (wizamart.shop)
- Subdomain (wizamart.localhost)
- Path-based (/vendor/wizamart/)

Changes:
- Update get_shop_context() to calculate base_url based on access method
- Update all shop templates to use {{ base_url }} for links
- Add base_url to shop-layout.js Alpine.js component
- Document multi-access routing in shop architecture docs

This ensures links work correctly regardless of how the shop is accessed,
solving broken navigation issues with path-based access.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:54:00 +01:00
cadf771138 feat: add shared templates and static assets infrastructure
Add shared template infrastructure and static assets:
- Shared Jinja2 templates for reusable components
- Favicon for branding
- Local Tailwind CSS fallback
- Shop CSS styles directory

This provides the foundation for consistent UI components across
admin, vendor, and shop frontends with CDN fallback support.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:53:23 +01:00
7879e2f70a docs: add CDN fallback strategy documentation
Add comprehensive documentation for CDN fallback strategy used across
the platform's frontend. Documents the pattern for loading external
libraries (Alpine.js, Tailwind CSS, etc.) with automatic fallback to
local copies when CDN is unavailable.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:52:46 +01:00
e5f5a2ebf8 Updated vendor documentation 2025-11-22 07:43:26 +01:00
608fa8b95c Fixed login redirecting issues 2025-11-21 23:38:03 +01:00
2532a977c1 Adding vendor api tests 2025-11-21 23:16:21 +01:00
6ad308e250 Fixing vendor dashboard area 2025-11-21 23:15:59 +01:00
86f1e16ef2 Fixing vendor dashboard area 2025-11-21 23:15:25 +01:00
5aff76a27e adding test documentation 2025-11-20 22:06:49 +01:00
96803c2708 adding integration tests for the middleware layer 2025-11-19 22:52:43 +01:00
23cf568c82 reaching 100% test coverage for the middleware unit tests 2025-11-19 22:26:45 +01:00
a18ad48721 updating middleware doc 2025-11-19 21:55:34 +01:00
92a2610b70 renaming properly all middleware test cases and fixing bugs 2025-11-19 21:21:29 +01:00
21bd390685 unit test bug fixes 2025-11-19 20:21:11 +01:00
c38da2780a fixed connection closing issues in fixtures 2025-11-18 23:57:18 +01:00
7d2eb96553 fixed coverage issues when running pytest 2025-11-18 23:53:34 +01:00
c10bdfdf42 fixing vendor context detection bug 2025-11-18 23:41:51 +01:00
d947fa5ca0 removing legacy code on path_rewrite_middleware 2025-11-18 23:32:07 +01:00
f14686c131 Fixed url pattern in the doc for path-based shops 2025-11-18 23:18:13 +01:00
b3009e3795 Fixed middleware authentication issues 2025-11-18 22:50:55 +01:00
3a65a800bc gitignore improvement 2025-11-17 23:05:37 +01:00
807033be16 revamping documentation 2025-11-17 22:59:42 +01:00
bbd64a6f21 RBAC alembic 2025-11-15 20:59:51 +01:00
424450b802 RBAC documentation 2025-11-15 20:59:22 +01:00
e3ed4a3295 data seed feature for demo and prod 2025-11-15 20:57:39 +01:00
41439eed09 Vendor team member management features 2025-11-14 21:08:57 +01:00
af23f5b88f replacing letzshop by wizamart 2025-11-13 15:23:47 +01:00
5fa911df00 adding docstring to classes 2025-11-10 19:42:41 +01:00
a685fe202a adding docstring to classes 2025-11-10 19:42:07 +01:00
971631f575 adding docstring to classes 2025-11-10 19:41:52 +01:00
ede80f41ea adding docstring to classes 2025-11-10 19:41:40 +01:00
6794a1bbb9 middleware fix for path-based vendor url 2025-11-09 18:48:11 +01:00
adbcee4ce3 middleware fix for path-based vendor url 2025-11-09 18:47:53 +01:00
79dfcab09f frontend error management enhancement 2025-11-05 21:52:22 +01:00
e4bc438069 revamped authentication system 2025-11-02 18:40:03 +01:00
9cc92e5fc4 created specific route files for frontends 2025-11-02 15:26:55 +01:00
9611c03a36 migrating vendor frontend to new architecture 2025-10-31 20:51:30 +01:00
9420483ae6 migrating vendor frontend to new architecture 2025-10-30 19:11:51 +01:00
cd5097fc04 migrating vendor frontend to new architecture 2025-10-28 22:58:55 +01:00
b0cc0385f8 revamping frontend logging system and reorganising documentation 2025-10-28 21:07:26 +01:00
5c80ba17c5 Main exception renamed to WizamartException 2025-10-27 21:55:05 +01:00
1e0cbf5927 Multitenant implementation with custom Domain, theme per vendor 2025-10-26 23:49:29 +01:00
c88775134d Multitenant implementation with custom Domain, theme per vendor 2025-10-26 20:05:02 +01:00
091067a729 frontend migration to jinja, alpine.js 2025-10-26 20:04:10 +01:00
2c3223f9f9 compiling project documentation 2025-10-26 20:02:04 +01:00
a340a6149e Adding jinja shop templates 2025-10-26 20:01:35 +01:00
6746d0af37 compiling project documentation 2025-10-26 20:00:39 +01:00