<?php

namespace Yajny\Helpers\LoyaltyProgram\Requests;

use Yajny\Member\Models\LoyaltyProgram;

class UserBonusInsertRequest
{
    /**
     * @var int
     */
    public $user_id;

    /**
     * @var LoyaltyProgram
     */
    public $selected_program;

    /**
     * @var int
     */
    public $confirmed_sales_count;

    /**
     * @var array
     */
    public $eligible_sale_ids;

    /**
     * UserBonusInsertRequest constructor.
     * @param int $user_id
     * @param LoyaltyProgram $selected_program
     * @param int $confirmed_sales_count
     * @param array $eligible_sale_ids
     */
    public function __construct(int $user_id, LoyaltyProgram $selected_program, int $confirmed_sales_count, array $eligible_sale_ids)
    {
        $this->user_id = $user_id;
        $this->selected_program = $selected_program;
        $this->confirmed_sales_count = $confirmed_sales_count;
        $this->eligible_sale_ids = $eligible_sale_ids;
    }

    /**
     * @return int
     */
    public function getUserId(): int
    {
        return $this->user_id;
    }

    /**
     * @param int $user_id
     */
    public function setUserId(int $user_id): void
    {
        $this->user_id = $user_id;
    }

    /**
     * @return LoyaltyProgram
     */
    public function getSelectedProgram(): LoyaltyProgram
    {
        return $this->selected_program;
    }

    /**
     * @param LoyaltyProgram $selected_program
     */
    public function setSelectedProgram(LoyaltyProgram $selected_program): void
    {
        $this->selected_program = $selected_program;
    }

    /**
     * @return int
     */
    public function getConfirmedSalesCount(): int
    {
        return $this->confirmed_sales_count;
    }

    /**
     * @param int $confirmed_sales_count
     */
    public function setConfirmedSalesCount(int $confirmed_sales_count): void
    {
        $this->confirmed_sales_count = $confirmed_sales_count;
    }

    /**
     * @return array
     */
    public function getEligibleSaleIds(): array
    {
        return $this->eligible_sale_ids;
    }

    /**
     * @param array $eligible_sale_ids
     */
    public function setEligibleSaleIds(array $eligible_sale_ids): void
    {
        $this->eligible_sale_ids = $eligible_sale_ids;
    }
}
