<?php

namespace App\Generated\V1\Messages\Pair;

use Kamicloud\StubApi\Concerns\ValueHelper;
use Kamicloud\StubApi\Http\Messages\Message;
use Kamicloud\StubApi\Utils\Constants;

class EnrollProMessage extends Message
{
    use ValueHelper;

    protected $couponId;
    protected $stageId;
    protected $mediaId;
    protected $totalFee;
    protected $state;
    protected $addScore;
    protected $activityType;
    protected $allowPhoto;
    protected $result;

    /**
     * 优惠券ID
     * @return int|null
     */
    public function getCouponId()
    {
        return $this->couponId;
    }

    /**
     * @return int|null
     */
    public function getStageId()
    {
        return $this->stageId;
    }

    /**
     * @return string|null
     */
    public function getMediaId()
    {
        return $this->mediaId;
    }

    /**
     * @return int
     */
    public function getTotalFee()
    {
        return $this->totalFee;
    }

    /**
     * @return int
     */
    public function getState()
    {
        return $this->state;
    }

    /**
     * @return int
     */
    public function getAddScore()
    {
        return $this->addScore;
    }

    /**
     * @return string|null
     */
    public function getActivityType()
    {
        return $this->activityType;
    }

    /**
     * @return string|null
     */
    public function getAllowPhoto()
    {
        return $this->allowPhoto;
    }

    public function requestRules()
    {
        return [
            ['couponId', 'coupon_id', 'bail|nullable|integer', Constants::INTEGER | Constants::OPTIONAL, null],
            ['stageId', 'stage_id', 'bail|nullable|integer', Constants::INTEGER | Constants::OPTIONAL, null],
            ['mediaId', 'media_id', 'bail|nullable|string', Constants::STRING | Constants::OPTIONAL, null],
            ['totalFee', 'total_fee', 'bail|integer', Constants::INTEGER, null],
            ['state', 'state', 'bail|integer', Constants::INTEGER, null],
            ['addScore', 'add_score', 'bail|integer', Constants::INTEGER, null],
            ['activityType', 'activity_type', 'bail|nullable|string', Constants::STRING | Constants::OPTIONAL, null],
            ['allowPhoto', 'allow_photo', 'bail|nullable|string', Constants::STRING | Constants::OPTIONAL, null],
        ];
    }

    public function responseRules()
    {
        return [
            ['result', 'result', 'bail', null, null],
        ];
    }

    public function setResponse($result)
    {
        $this->result = $result;
    }

}
