<?php

namespace App\Generated\Controllers\V1;

use App\Generated\V1\Messages\Pair\GetActivityListMessage;
use App\Generated\V1\Messages\Pair\RemoveKeepCpMessage;
use App\Generated\V1\Messages\Pair\AddScoreByFlowerMessage;
use App\Generated\V1\Messages\Pair\GetActivityConductStageIdMessage;
use App\Generated\V1\Messages\Pair\RegretsMessage;
use App\Generated\V1\Messages\Pair\EnrollProMessage;
use App\Generated\V1\Messages\Pair\ConfirmBeAloneMessage;
use App\Generated\V1\Messages\Pair\OperationalLogMessage;
use App\Http\Controllers\Controller;
use App\Http\Services\V1\PairService;
use App\Generated\V1\Messages\Pair\RefundMessage;
use App\Generated\V1\Messages\Pair\EnrollFreeMessage;
use App\Generated\V1\Messages\Pair\ActivityLastMessage;
use App\Generated\V1\Messages\Pair\EnrollNextMessage;
use App\Generated\V1\Messages\Pair\GetKeepRoomMessage;
use App\Generated\V1\Messages\Pair\GetAllTagsMessage;
use App\Generated\V1\Messages\Pair\GetAloneGroupMessage;
use App\Generated\V1\Messages\Pair\LastenrollMessage;
use App\Generated\V1\Messages\Pair\ActivityInfoMessage;
use App\Generated\V1\Messages\Pair\ActivityRecentMessage;
use App\Generated\V1\Messages\Pair\ConfirmCpMessage;
use DB;
use App\Generated\V1\Messages\Pair\KeepCpMessage;

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 addScoreByFlower(AddScoreByFlowerMessage $message)
    {
        $message->validateInput();
        $this->handler->addScoreByFlower($message);
        $message->validateOutput();
        return $message->getResponse();
    }

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

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

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

    public function enrollFree(EnrollFreeMessage $message)
    {
        $message->validateInput();
        $this->handler->enrollFree($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();
    }

}
