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

namespace Magediary\ProductQuestion\Controller\Adminhtml\Answer;

use Magediary\ProductQuestion\Model\Answer;
use Magento\Backend\Model\View\Result\Redirect;
use Magento\Framework\Exception\LocalizedException;

class MassApprove extends \Magediary\ProductQuestion\Controller\Adminhtml\Answer
{
    public const ADMIN_RESOURCE = 'Magediary_ProductQuestion::question_answer_save';

    /**
     * Execute action
     *
     * @return Redirect
     * @throws LocalizedException|\Exception
     */
    public function execute()
    {
        $collection = $this->_massActionFilter->getCollection($this->_collectionFactory->create());
        $approveSize = 0;

        foreach ($collection as $model) {
            if ($model->getStatus() != Answer::STATUS_APPROVED) {
                $model->setStatus(Answer::STATUS_APPROVED);
                $model->save();
                $approveSize++;
            }
        }

        $this->messageManager->addSuccessMessage(__('A total of %1 answer(s) have been approved.', $approveSize));

        /** @var Redirect $resultRedirect */
        $resultRedirect = $this->resultRedirectFactory->create();
        return $resultRedirect->setPath('*/*/');
    }
}
