<?php

namespace AppBundle\Entity\Billing;

use AppBundle\Entity\AccessAndFunction\Access;
use AppBundle\Entity\Booking\EducationalProject;
use AppBundle\Entity\Core\File;
use AppBundle\Entity\Product\EquipmentLoan;
use Doctrine\ORM\Mapping as ORM;
use Dunglas\ApiBundle\Annotation\Iri;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints as Assert;
use AppBundle\Entity\Traits\TimestampableEntity;
use AppBundle\Entity\Traits\CreatorUpdaterEntity;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Doctrine\Common\Collections\ArrayCollection;


/**
 * PayfipReturn
 *
 * @see http://schema.org/PayfipPaymentReturn Documentation on Schema.org
 *
 * @Iri("http://schema.org/PayfipPaymentReturn")
 */
#[ORM\Entity]
class PayfipPaymentReturn
{
    use TimestampableEntity;
    use CreatorUpdaterEntity;
    /**
     * @var int
     */
    #[ORM\Column(type: 'integer')]
    #[ORM\Id]
    #[ORM\GeneratedValue(strategy: 'AUTO')]
    #[Groups(['pes', 'pes_list', 'billaccounting_list'])]
    private $id;
    /**
     * @var Bill
     */
    #[ORM\ManyToOne(targetEntity: 'AppBundle\Entity\Billing\Bill', cascade: ['persist'])]
    #[ORM\JoinColumn(nullable: false)]
    #[Assert\NotNull]
    #[Groups(['payfipreturn'])]
    private $bill;
    /**
     * @var int
     */
    #[ORM\Column(type: 'integer', nullable: true)]
    #[Groups(['payfipreturn'])]
    private $numcli;
    /**
     * @var int
     */
    #[ORM\Column(type: 'integer', nullable: true)]
    #[Groups(['payfipreturn'])]
    private $exerc;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Groups(['payfipreturn'])]
    private $refdet;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Groups(['payfipreturn'])]
    private $object;
    /**
     * @var int
     */
    #[ORM\Column(type: 'integer', nullable: true)]
    #[Groups(['payfipreturn'])]
    private $montant;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Groups(['payfipreturn'])]
    private $mel;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Groups(['payfipreturn'])]
    private $urlcl;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Groups(['payfipreturn'])]
    private $saisie;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Groups(['payfipreturn'])]
    private $resultrans;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Groups(['payfipreturn'])]
    private $numautoCb;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Groups(['payfipreturn'])]
    private $numautoPrel;
    /**
     * @var \DateTime
     */
    #[ORM\Column(type: 'date', nullable: true)]
    #[Assert\Date]
    #[Groups(['pes', 'pes_list'])]
    private $dattrans;
    /**
     * @var \DateTime
     */
    #[ORM\Column(type: 'date', nullable: true)]
    #[Assert\Date]
    #[Groups(['pes', 'pes_list'])]
    private $heurtrans;
    /**
     * The constructor
     */
    public function __construct() {
        $this->bills = new ArrayCollection();
    }
    /**
     * Sets id.
     *
     * @param int $id
     *
     * @return $this
     */
    public function setId($id)
    {
        $this->id = $id;

        return $this;
    }
    /**
     * Gets id.
     *
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }
    /**
     * Set numcli
     *
     * @param integer $numcli
     *
     * @return PayfipReturn
     */
    public function setNumcli($numcli)
    {
        $this->numcli = $numcli;

        return $this;
    }
    /**
     * Get numcli
     *
     * @return integer
     */
    public function getNumcli()
    {
        return $this->numcli;
    }
    /**
     * Set exerc
     *
     * @param integer $exerc
     *
     * @return PayfipReturn
     */
    public function setExerc($exerc)
    {
        $this->exerc = $exerc;

        return $this;
    }
    /**
     * Get exerc
     *
     * @return integer
     */
    public function getExerc()
    {
        return $this->exerc;
    }
    /**
     * Set refdet
     *
     * @param string $refdet
     *
     * @return PayfipReturn
     */
    public function setRefdet($refdet)
    {
        $this->refdet = $refdet;

        return $this;
    }
    /**
     * Get refdet
     *
     * @return string
     */
    public function getRefdet()
    {
        return $this->refdet;
    }
    /**
     * Set object
     *
     * @param string $object
     *
     * @return PayfipReturn
     */
    public function setObject($object)
    {
        $this->object = $object;

        return $this;
    }
    /**
     * Get object
     *
     * @return string
     */
    public function getObject()
    {
        return $this->object;
    }
    /**
     * Set montant
     *
     * @param integer $montant
     *
     * @return PayfipReturn
     */
    public function setMontant($montant)
    {
        $this->montant = $montant;

        return $this;
    }
    /**
     * Get montant
     *
     * @return integer
     */
    public function getMontant()
    {
        return $this->montant;
    }
    /**
     * Set mel
     *
     * @param string $mel
     *
     * @return PayfipReturn
     */
    public function setMel($mel)
    {
        $this->mel = $mel;

        return $this;
    }
    /**
     * Get mel
     *
     * @return string
     */
    public function getMel()
    {
        return $this->mel;
    }
    /**
     * Set urlcl
     *
     * @param string $urlcl
     *
     * @return PayfipReturn
     */
    public function setUrlcl($urlcl)
    {
        $this->urlcl = $urlcl;

        return $this;
    }
    /**
     * Get urlcl
     *
     * @return string
     */
    public function getUrlcl()
    {
        return $this->urlcl;
    }
    /**
     * Set saisie
     *
     * @param string $saisie
     *
     * @return PayfipReturn
     */
    public function setSaisie($saisie)
    {
        $this->saisie = $saisie;

        return $this;
    }
    /**
     * Get saisie
     *
     * @return string
     */
    public function getSaisie()
    {
        return $this->saisie;
    }
    /**
     * Set resultrans
     *
     * @param string $resultrans
     *
     * @return PayfipReturn
     */
    public function setResultrans($resultrans)
    {
        $this->resultrans = $resultrans;

        return $this;
    }
    /**
     * Get resultrans
     *
     * @return string
     */
    public function getResultrans()
    {
        return $this->resultrans;
    }
    /**
     * Set numautoCb
     *
     * @param string $numautoCb
     *
     * @return PayfipReturn
     */
    public function setNumautoCb($numautoCb)
    {
        $this->numautoCb = $numautoCb;

        return $this;
    }
    /**
     * Get numautoCb
     *
     * @return string
     */
    public function getNumautoCb()
    {
        return $this->numautoCb;
    }
    /**
     * Set numautoPrel
     *
     * @param string $numautoPrel
     *
     * @return PayfipReturn
     */
    public function setNumautoPrel($numautoPrel)
    {
        $this->numautoPrel = $numautoPrel;

        return $this;
    }
    /**
     * Get numautoPrel
     *
     * @return string
     */
    public function getNumautoPrel()
    {
        return $this->numautoPrel;
    }
    /**
     * Set dattrans
     *
     * @param \DateTime $dattrans
     *
     * @return PayfipReturn
     */
    public function setDattrans($dattrans)
    {
        $this->dattrans = $dattrans;

        return $this;
    }
    /**
     * Get dattrans
     *
     * @return \DateTime
     */
    public function getDattrans()
    {
        return $this->dattrans;
    }
    /**
     * Set heurtrans
     *
     * @param \DateTime $heurtrans
     *
     * @return PayfipReturn
     */
    public function setHeurtrans($heurtrans)
    {
        $this->heurtrans = $heurtrans;

        return $this;
    }
    /**
     * Get heurtrans
     *
     * @return \DateTime
     */
    public function getHeurtrans()
    {
        return $this->heurtrans;
    }
    /**
     * Set bill
     *
     * @param \AppBundle\Entity\Billing\Bill $bill
     *
     * @return PayfipPaymentReturn
     */
    public function setBill(\AppBundle\Entity\Billing\Bill $bill)
    {
        $this->bill = $bill;

        return $this;
    }
    /**
     * Get bill
     *
     * @return \AppBundle\Entity\Billing\Bill
     */
    public function getBill()
    {
        return $this->bill;
    }
}
