# Content Planning API - Modular Architecture ## Overview The Content Planning API has been refactored from a monolithic structure into a modular, maintainable architecture. This document provides comprehensive documentation for the new modular structure. ## Architecture ``` backend/api/content_planning/ ├── __init__.py ├── api/ │ ├── __init__.py │ ├── routes/ │ │ ├── __init__.py │ │ ├── strategies.py # Strategy management endpoints │ │ ├── calendar_events.py # Calendar event endpoints │ │ ├── gap_analysis.py # Content gap analysis endpoints │ │ ├── ai_analytics.py # AI analytics endpoints │ │ ├── calendar_generation.py # Calendar generation endpoints │ │ └── health_monitoring.py # Health monitoring endpoints │ ├── models/ │ │ ├── __init__.py │ │ ├── requests.py # Request models │ │ └── responses.py # Response models │ └── router.py # Main router ├── services/ │ ├── __init__.py │ ├── strategy_service.py # Strategy business logic │ ├── calendar_service.py # Calendar business logic │ ├── gap_analysis_service.py # Gap analysis business logic │ ├── ai_analytics_service.py # AI analytics business logic │ └── calendar_generation_service.py # Calendar generation business logic ├── utils/ │ ├── __init__.py │ ├── error_handlers.py # Centralized error handling │ ├── response_builders.py # Response formatting │ └── constants.py # API constants └── tests/ ├── __init__.py ├── functionality_test.py # Functionality tests ├── before_after_test.py # Before/after comparison tests └── test_data.py # Test data fixtures ``` ## API Endpoints ### Base URL ``` /api/content-planning ``` ### Health Check ``` GET /health ``` Returns the operational status of all content planning modules. ### Strategy Management #### Create Strategy ``` POST /strategies/ ``` Creates a new content strategy. **Request Body:** ```json { "user_id": 1, "name": "Digital Marketing Strategy", "industry": "technology", "target_audience": { "demographics": ["professionals", "business_owners"], "interests": ["digital_marketing", "content_creation"] }, "content_pillars": [ { "name": "Educational Content", "description": "How-to guides and tutorials" } ] } ``` #### Get Strategies ``` GET /strategies/?user_id=1 ``` Retrieves content strategies for a user. #### Get Strategy by ID ``` GET /strategies/{strategy_id} ``` Retrieves a specific strategy by ID. #### Update Strategy ``` PUT /strategies/{strategy_id} ``` Updates an existing strategy. #### Delete Strategy ``` DELETE /strategies/{strategy_id} ``` Deletes a strategy. ### Calendar Events #### Create Calendar Event ``` POST /calendar-events/ ``` Creates a new calendar event. **Request Body:** ```json { "strategy_id": 1, "title": "Blog Post: AI in Marketing", "description": "Comprehensive guide on AI applications in marketing", "content_type": "blog", "platform": "website", "scheduled_date": "2024-08-15T10:00:00Z" } ``` #### Get Calendar Events ``` GET /calendar-events/?strategy_id=1 ``` Retrieves calendar events, optionally filtered by strategy. #### Get Calendar Event by ID ``` GET /calendar-events/{event_id} ``` Retrieves a specific calendar event. #### Update Calendar Event ``` PUT /calendar-events/{event_id} ``` Updates an existing calendar event. #### Delete Calendar Event ``` DELETE /calendar-events/{event_id} ``` Deletes a calendar event. ### Content Gap Analysis #### Get Gap Analysis ``` GET /gap-analysis/?user_id=1&force_refresh=false ``` Retrieves content gap analysis with AI insights. **Query Parameters:** - `user_id`: User ID (optional, defaults to 1) - `strategy_id`: Strategy ID (optional) - `force_refresh`: Force refresh analysis (default: false) #### Create Gap Analysis ``` POST /gap-analysis/ ``` Creates a new content gap analysis. **Request Body:** ```json { "user_id": 1, "website_url": "https://example.com", "competitor_urls": ["https://competitor1.com", "https://competitor2.com"], "target_keywords": ["digital marketing", "content creation"], "industry": "technology" } ``` #### Analyze Content Gaps ``` POST /gap-analysis/analyze ``` Performs comprehensive content gap analysis. **Request Body:** ```json { "website_url": "https://example.com", "competitor_urls": ["https://competitor1.com"], "target_keywords": ["digital marketing"], "industry": "technology" } ``` ### AI Analytics #### Get AI Analytics ``` GET /ai-analytics/?user_id=1&force_refresh=false ``` Retrieves AI-powered analytics and insights. **Query Parameters:** - `user_id`: User ID (optional, defaults to 1) - `strategy_id`: Strategy ID (optional) - `force_refresh`: Force refresh analysis (default: false) #### Content Evolution Analysis ``` POST /ai-analytics/content-evolution ``` Analyzes content evolution over time. **Request Body:** ```json { "strategy_id": 1, "time_period": "30d" } ``` #### Performance Trends Analysis ``` POST /ai-analytics/performance-trends ``` Analyzes performance trends. **Request Body:** ```json { "strategy_id": 1, "metrics": ["engagement_rate", "reach", "conversion_rate"] } ``` #### Strategic Intelligence ``` POST /ai-analytics/strategic-intelligence ``` Generates strategic intelligence insights. **Request Body:** ```json { "strategy_id": 1, "market_data": { "industry_trends": ["AI adoption", "Digital transformation"], "competitor_analysis": ["competitor1.com", "competitor2.com"] } } ``` ### Calendar Generation #### Generate Comprehensive Calendar ``` POST /calendar-generation/generate-calendar ``` Generates a comprehensive AI-powered content calendar. **Request Body:** ```json { "user_id": 1, "strategy_id": 1, "calendar_type": "monthly", "industry": "technology", "business_size": "sme", "force_refresh": false } ``` #### Optimize Content for Platform ``` POST /calendar-generation/optimize-content ``` Optimizes content for specific platforms. **Request Body:** ```json { "user_id": 1, "title": "AI Marketing Guide", "description": "Comprehensive guide on AI in marketing", "content_type": "blog", "target_platform": "linkedin" } ``` #### Predict Content Performance ``` POST /calendar-generation/performance-predictions ``` Predicts content performance using AI. **Request Body:** ```json { "user_id": 1, "strategy_id": 1, "content_type": "blog", "platform": "linkedin", "content_data": { "title": "AI Marketing Guide", "description": "Comprehensive guide on AI in marketing" } } ``` #### Get Trending Topics ``` GET /calendar-generation/trending-topics?user_id=1&industry=technology&limit=10 ``` Retrieves trending topics relevant to the user's industry. **Query Parameters:** - `user_id`: User ID (required) - `industry`: Industry (required) - `limit`: Number of topics to return (default: 10) #### Get Comprehensive User Data ``` GET /calendar-generation/comprehensive-user-data?user_id=1 ``` Retrieves comprehensive user data for calendar generation. **Query Parameters:** - `user_id`: User ID (required) ### Health Monitoring #### Backend Health Check ``` GET /health/backend ``` Checks core backend health (independent of AI services). #### AI Services Health Check ``` GET /health/ai ``` Checks AI services health separately. #### Database Health Check ``` GET /health/database ``` Checks database connectivity and operations. #### Calendar Generation Health Check ``` GET /calendar-generation/health ``` Checks calendar generation services health. ## Response Formats ### Success Response ```json { "status": "success", "data": {...}, "message": "Operation completed successfully", "timestamp": "2024-08-01T10:00:00Z" } ``` ### Error Response ```json { "status": "error", "error": "Error description", "message": "Detailed error message", "timestamp": "2024-08-01T10:00:00Z" } ``` ### Health Check Response ```json { "service": "content_planning", "status": "healthy", "timestamp": "2024-08-01T10:00:00Z", "modules": { "strategies": "operational", "calendar_events": "operational", "gap_analysis": "operational", "ai_analytics": "operational", "calendar_generation": "operational", "health_monitoring": "operational" }, "version": "2.0.0", "architecture": "modular" } ``` ## Error Codes - `200`: Success - `400`: Bad Request - Invalid input data - `404`: Not Found - Resource not found - `422`: Validation Error - Request validation failed - `500`: Internal Server Error - Server-side error - `503`: Service Unavailable - AI services unavailable ## Authentication All endpoints require proper authentication. Include authentication headers as required by your application. ## Rate Limiting API requests are subject to rate limiting to ensure fair usage and system stability. ## Caching The API implements intelligent caching for: - AI analysis results (24-hour cache) - User data and preferences - Strategy and calendar data ## Versioning Current API version: `2.0.0` The API follows semantic versioning. Breaking changes will be communicated in advance. ## Migration from Monolithic Structure The API has been migrated from a monolithic structure to a modular architecture. Key improvements: 1. **Separation of Concerns**: Business logic separated from API routes 2. **Service Layer**: Dedicated services for each domain 3. **Error Handling**: Centralized and standardized error handling 4. **Performance**: Optimized imports and dependencies 5. **Maintainability**: Smaller, focused modules 6. **Testability**: Isolated components for better testing ## Support For API support and questions, please refer to the project documentation or contact the development team.