<?php

namespace Razorpay\Api;

/**
 * Settlement related actions can be done from here
 */
class Settlement extends Entity
{
    /**
    * create Ondemand Settlemententity
    * @param  array $attributes
    * @return Settlement
    */
    public function createOndemandSettlement($attributes = [])
    {
        $relativeUrl = $this->getEntityUrl() . 'ondemand' ;

        return $this->request('POST', $relativeUrl, $attributes);
    }

    /**
     * Fetch single settlement entity
     * @param  string $id
     * @return Settlement
     */
    public function fetch($id)
    {
        return parent::fetch($id);
    }

    /**
     * Get all settlements according to options
     * @param  array $options
     * @return Collection
     */
    public function all($options = [])
    {
        return parent::all($options);
    }

    /**
     * Get combined report of settlements
     * @param  array  $options
     * @return array
     */
    public function reports($options = [])
    {
        $relativeUrl = $this->getEntityUrl() . 'report/combined';

        return $this->request('GET', $relativeUrl, $options);
    }

    /**
    * Get Settlement Recon
    * @param  array  $options
    * @return array
    */
    public function settlementRecon($options = [])
    {
        $relativeUrl = $this->getEntityUrl() . 'recon/combined';

        return $this->request('GET', $relativeUrl, $options);
    }
    /**
    * fetch Ondemand Settlement by Id
    * @param  string $id
    * @return array
    */
    public function fetchOndemandSettlementById()
    {
        $relativeUrl = $this->getEntityUrl() . 'ondemand/' . $this->id ;

        return $this->request('GET', $relativeUrl);
    }
    /**
     * fetch all Ondemand Settlement
     * @return array
     */
    public function fetchAllOndemandSettlement()
    {
        $relativeUrl = $this->getEntityUrl() . 'ondemand/';

        return $this->request('GET', $relativeUrl);
    }
}
