<?php
/**
 * @author  Magediary
 * @package Magediary_ProductQuestion
 */

namespace Magediary\ProductQuestion\Api\Data;

use Magento\Framework\Api\ExtensibleDataInterface;

interface QuestionInterface extends ExtensibleDataInterface
{
    public const QUESTION_ID = 'question_id';
    public const PRODUCT_ID = 'product_id';
    public const CUSTOMER_ID = 'customer_id';
    public const TYPE = 'type';
    public const NICKNAME = 'nickname';
    public const EMAIL = 'email';
    public const STATUS = 'status';
    public const DETAIL = 'detail';
    public const STORE_ID = 'store_id';
    public const CREATED_AT = 'created_at';
    public const UPDATED_AT = 'updated_at';

    /**
     * Get question_id
     *
     * @return int|null
     */
    public function getQuestionId();

    /**
     * Set question_id
     *
     * @param string $questionId
     * @return QuestionInterface
     */
    public function setQuestionId($questionId);

    /**
     * Get question id
     *
     * @return mixed
     */
    public function getId();

    /**
     * Get product_id
     *
     * @return int|null
     */
    public function getProductId();

    /**
     * Set product_id
     *
     * @param int $productId
     * @return QuestionInterface
     */
    public function setProductId($productId);

    /**
     * Get customer_id
     *
     * @return int|null
     */
    public function getCustomerId();

    /**
     * Set customer_id
     *
     * @param int $customerId
     * @return QuestionInterface
     */
    public function setCustomerId($customerId);

    /**
     * Get type
     *
     * @return int|null
     */
    public function getType();

    /**
     * Set type
     *
     * @param int $type
     * @return QuestionInterface
     */
    public function setType($type);

    /**
     * Get nickname
     *
     * @return string|null
     */
    public function getNickname();

    /**
     * Set nickname
     *
     * @param string $nickname
     * @return QuestionInterface
     */
    public function setNickname($nickname);

    /**
     * Get email
     *
     * @return string|null
     */
    public function getEmail();

    /**
     * Set email
     *
     * @param string $email
     * @return QuestionInterface
     */
    public function setEmail($email);

    /**
     * Get status
     *
     * @return int|null
     */
    public function getStatus();

    /**
     * Set status
     *
     * @param int $status
     * @return QuestionInterface
     */
    public function setStatus($status);

    /**
     * Get detail
     *
     * @return string|null
     */
    public function getDetail();

    /**
     * Set detail
     *
     * @param string $detail
     * @return QuestionInterface
     */
    public function setDetail($detail);

    /**
     * Get store_id
     *
     * @return int|null
     */
    public function getStoreId();

    /**
     * Set store_id
     *
     * @param int $storeId
     * @return QuestionInterface
     */
    public function setStoreId($storeId);

    /**
     * Get created_at
     *
     * @return string
     */
    public function getCreatedAt();

    /**
     * Set created_at
     *
     * @param string $createdAt
     * @return QuestionInterface
     */
    public function setCreatedAt($createdAt);

    /**
     * Get updated_at
     *
     * @return string
     */
    public function getUpdatedAt();

    /**
     * Set updated_at
     *
     * @param string $updatedAt
     * @return QuestionInterface
     */
    public function setUpdatedAt($updatedAt);

    /**
     * Retrieve existing extension attributes object or create a new one.
     *
     * @return \Magediary\ProductQuestion\Api\Data\QuestionExtensionInterface|null
     */
    public function getExtensionAttributes();

    /**
     * Set an extension attributes object.
     *
     * @param \Magediary\ProductQuestion\Api\Data\QuestionExtensionInterface $extensionAttributes
     * @return $this
     */
    public function setExtensionAttributes(
        \Magediary\ProductQuestion\Api\Data\QuestionExtensionInterface $extensionAttributes
    );
}
