# Optimizer Endpoints

## Purpose
Document optimizer API endpoints for content optimization tasks.

## Code Locations (exact paths)
- Routing: `backend/igny8_core/modules/optimizer/urls.py`
- Views: `backend/igny8_core/modules/optimizer/views.py`
- Models/Services: `backend/igny8_core/business/optimization/models.py`, `services/*`

## High-Level Responsibilities
- Expose optimizer-related endpoints (as defined in `OptimizerViewSet`) to manage optimization tasks and results.

## Detailed Behavior
- Base path: `/api/v1/optimizer/`
- Router registers root `OptimizerViewSet` (see module code for actions/fields).
- Inherits base viewset scoping, unified responses, permissions, throttling defined in module views.

## Data Structures / Models Involved (no code)
- `OptimizationTask` and related optimization services.

## Execution Flow
- Requests → DRF auth → OptimizerViewSet → service logic → unified response.

## Cross-Module Interactions
- Operates on writer `Content`; may influence publishing readiness and optimization scores.

## State Transitions
- As defined by OptimizerViewSet actions (e.g., pending/running/completed/failed).

## Error Handling
- Standard unified responses and throttling.

## Tenancy Rules
- Inherits account/site scoping from base classes.

## Billing Rules
- Optimization credits are tracked in optimization tasks; deductions occur in billing services when AI optimization runs (see optimization module docs).

## Background Tasks / Schedulers
- Optimization runs may execute via services/Celery; endpoints trigger/manage these flows.

## Key Design Considerations
- Keep scoping intact; reuse services for optimization execution.

## How Developers Should Work With This Module
- Extend OptimizerViewSet with new actions as needed; ensure billing/credit checks are applied when adding AI-driven optimization.

