<?php

namespace App\Generated\Controllers\V1_1;

use App\Generated\V1_1\Messages\Pair\EnrollByEnergyMessage;
use App\Generated\V1_1\Messages\Pair\EnrollByFreeMessage;
use App\Generated\V1_1\Messages\Pair\GetActivityConductStageIdMessage;
use App\Http\Controllers\Controller;
use App\Generated\V1_1\Messages\Pair\GetActivityListMessage;
use App\Http\Services\V1_1\PairService;
use App\Generated\V1_1\Messages\Pair\GetAllTagsMessage;
use App\Generated\V1_1\Messages\Pair\ConfirmBeAloneMessage;
use App\Generated\V1_1\Messages\Pair\ActivityLastMessage;
use App\Generated\V1_1\Messages\Pair\EnrollBySuperVipMessage;
use App\Generated\V1_1\Messages\Pair\LastenrollMessage;
use App\Generated\V1_1\Messages\Pair\GetAloneGroupMessage;
use App\Generated\V1_1\Messages\Pair\AddScoreByEnergyMessage;
use App\Generated\V1_1\Messages\Pair\AddScoreByOrderMessage;
use App\Generated\V1_1\Messages\Pair\RefundMessage;
use App\Generated\V1_1\Messages\Pair\ConfirmCpMessage;
use App\Generated\V1_1\Messages\Pair\ActivityRecentMessage;
use App\Generated\V1_1\Messages\Pair\OperationalLogMessage;
use App\Generated\V1_1\Messages\Pair\KeepCpMessage;
use App\Generated\V1_1\Messages\Pair\AddScoreBySuperVipMessage;
use App\Generated\V1_1\Messages\Pair\EnrollByNextMessage;
use App\Generated\V1_1\Messages\Pair\RegretsMessage;
use App\Generated\V1_1\Messages\Pair\RemoveKeepCpMessage;
use App\Generated\V1_1\Messages\Pair\UpdateMessage;
use App\Generated\V1_1\Messages\Pair\GetRecommendPairApplyContactsMessage;
use App\Generated\V1_1\Messages\Pair\ActivityInfoMessage;
use App\Generated\V1_1\Messages\Pair\EnrollByPaymentMessage;
use App\Generated\V1_1\Messages\Pair\GetKeepRoomMessage;
use DB;

class PairController extends Controller
{
    public $handler;

    public function __construct(PairService $handler)
    {
        $this->handler = $handler;
    }

    public function getAloneGroup(GetAloneGroupMessage $message)
    {
        $message->validateInput();
        $this->handler->getAloneGroup($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function removeKeepCp(RemoveKeepCpMessage $message)
    {
        $message->validateInput();
        $this->handler->removeKeepCp($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function keepCp(KeepCpMessage $message)
    {
        $message->validateInput();
        $this->handler->keepCp($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function getKeepRoom(GetKeepRoomMessage $message)
    {
        $message->validateInput();
        $this->handler->getKeepRoom($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function confirmBeAlone(ConfirmBeAloneMessage $message)
    {
        $message->validateInput();
        $this->handler->confirmBeAlone($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function operationalLog(OperationalLogMessage $message)
    {
        $message->validateInput();
        $this->handler->operationalLog($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function regrets(RegretsMessage $message)
    {
        $message->validateInput();
        $this->handler->regrets($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function confirmCp(ConfirmCpMessage $message)
    {
        $message->validateInput();
        $this->handler->confirmCp($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function addScoreByEnergy(AddScoreByEnergyMessage $message)
    {
        $message->validateInput();
        $this->handler->addScoreByEnergy($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function addScoreByOrder(AddScoreByOrderMessage $message)
    {
        $message->validateInput();
        $this->handler->addScoreByOrder($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function addScoreBySuperVip(AddScoreBySuperVipMessage $message)
    {
        $message->validateInput();
        $this->handler->addScoreBySuperVip($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function refund(RefundMessage $message)
    {
        $message->validateInput();
        $this->handler->refund($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function update(UpdateMessage $message)
    {
        $message->validateInput();
        $this->handler->update($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function enrollByNext(EnrollByNextMessage $message)
    {
        $message->validateInput();
        $this->handler->enrollByNext($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function enrollByEnergy(EnrollByEnergyMessage $message)
    {
        $message->validateInput();
        $this->handler->enrollByEnergy($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function enrollBySuperVip(EnrollBySuperVipMessage $message)
    {
        $message->validateInput();
        $this->handler->enrollBySuperVip($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function enrollByPayment(EnrollByPaymentMessage $message)
    {
        $message->validateInput();
        $this->handler->enrollByPayment($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function enrollByFree(EnrollByFreeMessage $message)
    {
        $message->validateInput();
        $this->handler->enrollByFree($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function getAllTags(GetAllTagsMessage $message)
    {
        $message->validateInput();
        $this->handler->getAllTags($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function getActivityList(GetActivityListMessage $message)
    {
        $message->validateInput();
        $this->handler->getActivityList($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function lastenroll(LastenrollMessage $message)
    {
        $message->validateInput();
        $this->handler->lastenroll($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function getActivityConductStageId(GetActivityConductStageIdMessage $message)
    {
        $message->validateInput();
        $this->handler->getActivityConductStageId($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function activityInfo(ActivityInfoMessage $message)
    {
        $message->validateInput();
        $this->handler->activityInfo($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function activityRecent(ActivityRecentMessage $message)
    {
        $message->validateInput();
        $this->handler->activityRecent($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function activityLast(ActivityLastMessage $message)
    {
        $message->validateInput();
        $this->handler->activityLast($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function getRecommendPairApplyContacts(GetRecommendPairApplyContactsMessage $message)
    {
        $message->validateInput();
        $this->handler->getRecommendPairApplyContacts($message);
        $message->validateOutput();
        return $message->getResponse();
    }

}
