<?php
require_once 'php-amqplib/amqp.inc';

class RabbitMq
{
    static private $doPush = FALSE;

    /**
     * Sets a flag to push the schedule at the end of the request.
     */
    public static function PushSchedule() {
        RabbitMq::$doPush = TRUE;
    }

    /**
     * Push the current schedule to RabbitMQ, to be picked up by Pypo.
     * Will push the schedule in the range from 24 hours ago to 24 hours
     * in the future.
     */
    public static function PushScheduleFinal()
    {
        global $CC_CONFIG;
        if (RabbitMq::$doPush) {
            $conn = new AMQPConnection($CC_CONFIG["rabbitmq"]["host"],
                                             $CC_CONFIG["rabbitmq"]["port"],
                                             $CC_CONFIG["rabbitmq"]["user"],
                                             $CC_CONFIG["rabbitmq"]["password"]);
            $channel = $conn->channel();
            $channel->access_request($CC_CONFIG["rabbitmq"]["vhost"], false, false, true, true);

            $EXCHANGE = 'airtime-schedule';
            $channel->exchange_declare($EXCHANGE, 'direct', false, true);

            $data = json_encode(Schedule::GetScheduledPlaylists());
            $msg = new AMQPMessage($data, array('content_type' => 'text/plain'));

            $channel->basic_publish($msg, $EXCHANGE);
            $channel->close();
            $conn->close();
        }
    }

}