Files
igny8/docs/planning/phases/PHASE-6-SITE-INTEGRATION-PUBLISHING.md
2025-11-16 23:15:45 +05:00

7.8 KiB

PHASE 6: SITE INTEGRATION & MULTI-DESTINATION PUBLISHING

Detailed Implementation Plan

Goal: Support multiple publishing destinations (WordPress, Sites, Shopify).

Timeline: 2-3 weeks
Priority: MEDIUM
Dependencies: Phase 5


TABLE OF CONTENTS

  1. Overview
  2. Site Integration Models
  3. Integration Service
  4. Publishing Adapters
  5. Multi-Destination Publishing
  6. Site Model Extensions
  7. Integration API
  8. Integration UI
  9. Publishing Settings UI
  10. Site Management UI
  11. Testing & Validation
  12. Implementation Checklist

OVERVIEW

Objectives

  • Support multiple site integrations per site
  • Multi-destination publishing (WordPress, Sites, Shopify)
  • Two-way sync with external platforms
  • Site management UI (CMS)
  • Publishing settings UI

Key Principles

  • Multiple Integrations: One site can have multiple integrations
  • Adapter Pattern: Platform-specific adapters for publishing
  • Two-Way Sync: Sync content both ways
  • User-Friendly: "Site Manager" or "Content Manager" in UI

SITE INTEGRATION MODELS

6.1 Site Integration Models

Task File Dependencies Implementation
SiteIntegration Model domain/integration/models.py Phase 1 Store integration configs

SiteIntegration Model:

# domain/integration/models.py
class SiteIntegration(SiteSectorBaseModel):
    site = models.ForeignKey(Site, on_delete=models.CASCADE)
    platform = models.CharField(max_length=50)  # 'wordpress', 'shopify', 'custom'
    platform_type = models.CharField(max_length=50)  # 'cms', 'ecommerce', 'custom_api'
    config_json = models.JSONField(default=dict)
    credentials = models.EncryptedField()  # Encrypted API keys
    is_active = models.BooleanField(default=True)
    sync_enabled = models.BooleanField(default=False)
    last_sync_at = models.DateTimeField(null=True, blank=True)
    sync_status = models.CharField(max_length=20)  # 'success', 'failed', 'pending'

INTEGRATION SERVICE

6.2 Integration Service

Task File Dependencies Implementation
IntegrationService domain/integration/services/integration_service.py Phase 1 Manage integrations
SyncService domain/integration/services/sync_service.py Phase 1 Handle two-way sync

PUBLISHING ADAPTERS

6.3 Publishing Adapters

Task File Dependencies Implementation
BaseAdapter domain/publishing/services/adapters/base_adapter.py Phase 5 Base adapter interface
WordPressAdapter domain/publishing/services/adapters/wordpress_adapter.py EXISTING (refactor) WordPress publishing
SitesRendererAdapter domain/publishing/services/adapters/sites_renderer_adapter.py Phase 5 IGNY8 Sites deployment
ShopifyAdapter domain/publishing/services/adapters/shopify_adapter.py Phase 5 (future) Shopify publishing

MULTI-DESTINATION PUBLISHING

6.4 Multi-Destination Publishing

Task File Dependencies Implementation
Extend PublisherService domain/publishing/services/publisher_service.py Phase 5 Support multiple destinations
Update PublishingRecord domain/publishing/models.py Phase 5 Track multiple destinations

Multi-Destination Publishing:

# domain/publishing/services/publisher_service.py
class PublisherService:
    def publish(self, content, destinations):
        """Publish content to multiple destinations"""
        results = []
        for destination in destinations:
            adapter = self.get_adapter(destination)
            result = adapter.publish(content)
            results.append(result)
        return results

SITE MODEL EXTENSIONS

6.5 Site Model Extensions

Task File Dependencies Implementation
Add site_type field core/auth/models.py None Track site type
Add hosting_type field core/auth/models.py None Track hosting type
Add integrations relationship core/auth/models.py Phase 6.1 Link to SiteIntegration

INTEGRATION API

6.6 Integration API

Task File Dependencies Implementation
Integration ViewSet modules/integration/views.py IntegrationService CRUD for integrations
Integration URLs modules/integration/urls.py None Register integration routes

INTEGRATION UI

6.7 Integration UI (Update Existing)

Task File Dependencies Implementation
Update Integration Settings frontend/src/pages/Settings/Integration.tsx EXISTING (update) Add SiteIntegration support
Multi-Platform Support frontend/src/components/integration/PlatformSelector.tsx NEW Platform selector
Integration Status frontend/src/components/integration/IntegrationStatus.tsx NEW Show integration status

PUBLISHING SETTINGS UI

6.8 Publishing Settings UI

Task File Dependencies Implementation
Publishing Settings Page frontend/src/pages/Settings/Publishing.tsx NEW Publishing configuration
Destination Management frontend/src/pages/Settings/Publishing.tsx Phase 6 Manage publishing destinations
Publishing Rules frontend/src/components/publishing/PublishingRules.tsx NEW Publishing rules configuration

SITE MANAGEMENT UI

6.9 Individual Site Management (CMS)

User-Friendly Name: "Site Manager" or "Content Manager"

Task File Dependencies Implementation
Site Management Dashboard frontend/src/pages/Sites/Manage.tsx NEW Site management overview
Site Content Editor frontend/src/pages/Sites/Editor.tsx NEW Edit site content
Post Editor frontend/src/pages/Sites/PostEditor.tsx NEW Edit posts
Page Manager frontend/src/pages/Sites/PageManager.tsx NEW Manage pages
Site Settings frontend/src/pages/Sites/Settings.tsx NEW Site settings

Site Management Features:

  • View all pages/posts for a site
  • Add new pages
  • Remove pages
  • Edit page content
  • Manage page order
  • Change page templates
  • Update site settings
  • Preview site

TESTING & VALIDATION

6.9 Testing

Test Cases:

  • Site integrations work correctly
  • Multi-destination publishing works
  • WordPress sync works (when plugin connected)
  • Two-way sync functions properly
  • Site management UI works

IMPLEMENTATION CHECKLIST

Backend Tasks

  • Create SiteIntegration model
  • Create IntegrationService
  • Create SyncService
  • Create BaseAdapter
  • Refactor WordPressAdapter
  • Create SitesRendererAdapter
  • Extend PublisherService for multi-destination
  • Extend Site model
  • Create Integration ViewSet

Frontend Tasks

  • Update Integration Settings page
  • Create Publishing Settings page
  • Create Site Management Dashboard
  • Create Site Content Editor
  • Create Page Manager
  • Create Site Settings page

SUCCESS CRITERIA

  • Site integrations work correctly
  • Multi-destination publishing works
  • WordPress sync works
  • Two-way sync functions properly
  • Site management UI works

END OF PHASE 6 DOCUMENT