<?php

/**

 * 2007-2014 [PagSeguro Internet Ltda.]

 *

 * NOTICE OF LICENSE

 *

 *Licensed under the Apache License, Version 2.0 (the "License");

 *you may not use this file except in compliance with the License.

 *You may obtain a copy of the License at

 *

 *http://www.apache.org/licenses/LICENSE-2.0

 *

 *Unless required by applicable law or agreed to in writing, software

 *distributed under the License is distributed on an "AS IS" BASIS,

 *WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

 *See the License for the specific language governing permissions and

 *limitations under the License.

 *

 *  @author    PagSeguro Internet Ltda.

 *  @copyright 2007-2014 PagSeguro Internet Ltda.

 *  @license   http://www.apache.org/licenses/LICENSE-2.0

 */



/***

 * Represents a summary of a PagSeguro transaction, typically returned by search services.

 */

class PagSeguroTransactionSummary

{



    /***

     * Transaction date

     */

    private $date;



    /***

     * Last event date

     * Date the last notification about this transaction was sent

     */

    private $lastEventDate;



    /***

     * Transaction code

     */

    private $code;



    /***

     *  Reference code

     *  You can use the reference code to store an identifier so you can

     *  associate the PagSeguro transaction to a transaction in your system.

     */

    private $reference;



    /***

     * Groos amount of the transaction

     */

    private $grossAmount;



    /***

     * Transaction type

     * @see PagSeguroTransactionType

     */

    private $type;



    /***

     * Transaction status

     * @see PagSeguroTransactionStatus

     */

    private $status;



    /***

     * Net amount

     */

    private $netAmount;



    /***

     * Discount amount

     */

    private $discountAmount;



    /***

     * Fee amount

     */

    private $feeAmount;



    /***

     * Extra amount

     */

    private $extraAmount;



    /***

     * Cancellation Source

     * @see PagSeguroTransactionCancellationSource

     */

    private $cancellationSource;



    /**

     * Payment method

     * @see PagSeguroPaymentMethod

     */

    private $paymentMethod;



    /***

     * Recovery Code

     */

    private $recoveryCode;

    

    /***

     * @return the transaction date

     */

    public function getDate()

    {

        return $this->date;

    }



    /***

     * Sets the transaction date

     * @param String $date

     */

    public function setDate($date)

    {

        $this->date = $date;

    }



    /***

     * @return the transaction code

     */

    public function getCode()

    {

        return $this->code;

    }



    /***

     * Sets transaction code

     * @param String $code

     */

    public function setCode($code)

    {

        $this->code = $code;

    }



    /***

     * You can use the reference code to store an identifier so you can

     *  associate the PagSeguro transaction to a transaction in your system.

     *

     * @return the reference code

     */

    public function getReference()

    {

        return $this->reference;

    }



    /***

     * Sets the reference code

     *

     * @param reference

     */

    public function setReference($reference)

    {

        $this->reference = $reference;

    }



    /***

     * @return the transaction gross amount

     */

    public function getGrossAmount()

    {

        return $this->grossAmount;

    }



    /***

     * Sets the gorss amount

     * @param float $grossAmount

     */

    public function setGrossAmount($grossAmount)

    {

        $this->grossAmount = $grossAmount;

    }



    /***

     * @return the transaction type

     * @see PagSeguroTransactionType

     */

    public function getType()

    {

        return $this->type;

    }



    /***

     * Sets the transaction sype

     * @param PagSeguroTransactionType $type

     */

    public function setType(PagSeguroTransactionType $type)

    {

        $this->type = $type;

    }



    /***

     * Date the last notification about this transaction was sent

     * @return the last event date

     */

    public function getLastEventDate()

    {

        return $this->lastEventDate;

    }



    /***

     * Sets the last event date

     * @param String $lastEventDate

     */

    public function setLastEventDate($lastEventDate)

    {

        $this->lastEventDate = $lastEventDate;

    }



    /***

     * @return the transaction status

     * @see PagSeguroTransactionStatus

     */

    public function getStatus()

    {

        return $this->status;

    }



    /***

     * Sets the transaction status

     * @param PagSeguroTransactionStatus $status

     */

    public function setStatus(PagSeguroTransactionStatus $status)

    {

        $this->status = $status;

    }



    /***

     * @return the net amount

     */

    public function getNetAmount()

    {

        return $this->netAmount;

    }



    /***

     * Sets the net amount

     * @param float $netAmount

     */

    public function setNetAmount($netAmount)

    {

        $this->netAmount = $netAmount;

    }



    /***

     * @return the discount amount

     */

    public function getDiscountAmount()

    {

        return $this->discountAmount;

    }



    /***

     * Sets the discount amount

     * @param float $discountAmount

     */

    public function setDiscountAmount($discountAmount)

    {

        $this->discountAmount = $discountAmount;

    }



    /***

     * @return the fee amount

     */

    public function getFeeAmount()

    {

        return $this->feeAmount;

    }



    /***

     * Sets the fee amount

     * @param float $feeAmount

     */

    public function setFeeAmount($feeAmount)

    {

        $this->feeAmount = $feeAmount;

    }



    /***

     * @return the extra amount

     */

    public function getExtraAmount()

    {

        return $this->extraAmount;

    }



    /***

     * Sets the extra amount

     * @param float $extraAmount

     */

    public function setExtraAmount($extraAmount)

    {

        $this->extraAmount = $extraAmount;

    }



    /***

     * Sets the cancellation source

     * @param PagSeguroTransactionCancellationSource $cancellationSource

     */

    public function setCancellationSource(PagSeguroTransactionCancellationSource $cancellationSource)

    {

        $this->cancellationSource = $cancellationSource;

    }



    /**

     * @return the cancellation source

     * @see PagSeguroTransactionCancellationSource

     */

    public function getCancellationSource()

    {

        return $this->cancellationSource;

    }



    /**

     * Sets the payment method

     * @param PagSeguroPaymentMethod $paymentMethod

     */

    public function setPaymentMethod(PagSeguroPaymentMethod $paymentMethod)

    {

        $this->paymentMethod = $paymentMethod;

    }



    /***

     * @return the payment method

     * @see PagSeguroPaymentMethod

     */

    public function getPaymentMethod()

    {

        return $this->paymentMethod;

    }

    

    /***

     * @return the recovery code

     */

    public function getRecoveryCode()

    {

        return $this->recoveryCode;

    }

    

    /***

     * Sets the recovery code

     * @param string $recoveryCode

     */

    public function setRecoveryCode($recoverycode)

    {

        $this->recoveryCode = $recoverycode;

    }

}

