<?php
declare(strict_types=1);
// ==================================================
// Nuclear Fancy Pants Edition™ — NUCLEAR+++
// File: /includes/channel-interface.php
// Description: Contract for all AutoMarketer AI social channel modules - NUCLEAR+++
// Last Edited: 2026-03-28
// ==================================================

namespace AutoMarketerAI;

if (!defined('ABSPATH')) {
    exit('No direct script access allowed.');
}

interface ChannelInterface
{
    // Unique slug matching the ?channel= param — e.g. 'facebook', 'instagram'
    public function get_slug(): string;

    // Human-readable label shown in the channel nav — e.g. 'Facebook'
    public function get_label(): string;

    // Brand hex color for nav indicator — e.g. '#1877F2'
    public function get_color(): string;

    // Whether this channel is built and available.
    // Returning false causes SocialPage to render the coming-soon template.
    public function is_available(): bool;

    // Current connection state: 'connected' | 'disconnected' | 'coming_soon'
    public function get_connection_status(): string;

    // Handle any GET/POST actions for this channel (called from admin_init).
    // Only fires when ?page=automarketer-ai-social is active.
    public function handle_actions(): void;

    // Render the channel content area — called from social-shell.php.
    // Responsible for including the correct template (connect, picker, dashboard, etc.)
    public function render(): void;
}