<?php

namespace AppBundle\Entity\Core;

use AppBundle\Annotation\DefaultField;
use AppBundle\Entity\Organization\Organization;
use AppBundle\Entity\Traits\CreatorUpdaterEntity;
use AppBundle\Entity\Traits\TimestampableEntity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints as Assert;


/**
 * Tag, étiquette
 */
#[ORM\Entity]
class Tagg
{
    use TimestampableEntity;
    use CreatorUpdaterEntity;
    /**
     * @var int
     */
    #[ORM\Column(type: 'integer')]
    #[ORM\Id]
    #[ORM\GeneratedValue(strategy: 'AUTO')]
    #[Groups(['tag', 'student_list', 'messagesend_list', 'message_list', 'guardians_list', 'teachers_list', 'adherent_list', 'personnels_list', 'board_list', 'ca_list', 'morals_list', 'othercontact_list', 'accesses_list', 'student_registration', 'education_student_next_year', 'accesses_no_reregistred_list', 'commission_list', 'booking_event', 'event_details', 'course_informations_edit', 'course_details', 'educationalproject_informations_edit', 'educationalproject_details', 'examen_informations_edit', 'examen_details', 'equipment_list', 'equipmentaccounting_list', 'equipmentcostume_list', 'equipmentcontrol_list', 'equipmentrepair_list', 'equipmentloan_list', 'equipmentloan_list_borrower', 'equipmentmediatheque_list', 'equipmentrent_list', 'repair_edit', 'education_input_list_access', 'educationnotation_list_educationstudent', 'examenconvocation_list_student', 'intangible_list', 'access_intangible_list', 'billaccounting_list', 'bill_list', 'billcredit_list', 'template_list', 'place_list', 'education_edit', 'planning_list', 'email_detail', 'network_list', 'federations_list', 'advancepayment_list', 'billpayment_list', 'payer_list_billingpayers', 'attendancebooking_list_access', 'attendance_list_access', 'payer_list'])]
    private $id;
    /**
     * @var Organization
     *
     * @DefaultField
     */
    #[ORM\ManyToOne(targetEntity: 'AppBundle\Entity\Organization\Organization')]
    #[ORM\JoinColumn(nullable: false)]
    #[Assert\NotNull]
    #[Groups(['tag_organization', 'tag_create', 'tag_list', 'access_informations_edit'])]
    private $organization;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', length: 50)]
    #[Assert\Type(type: 'string')]
    #[Assert\NotNull]
    #[Groups(['tag', 'tag_create', 'tag_list', 'student_list_tags', 'access_informations_edit_tags', 'messagesend_list_tags', 'message_list_tags', 'guardians_list_tags', 'teachers_list_tags', 'adherent_list_tags', 'personnels_list_tags', 'board_list_tags', 'ca_list_tags', 'morals_list_tags', 'othercontact_list_tags', 'accesses_list_tags', 'student_registration_tags', 'education_student_next_year_access', 'accesses_no_reregistred_list_tags', 'commission_list_tags', 'booking_event_tags', 'event_details_tags', 'course_informations_edit_tags', 'course_details_tags', 'educationalproject_informations_edit_tags', 'educationalproject_details_tags', 'examen_informations_edit_tags', 'examen_details_tags', 'equipment_list_tags', 'equipmentaccounting_list_tags', 'equipmentcostume_list_tags', 'equipmentcontrol_list_tags', 'equipmentrepair_list_tags', 'equipmentloan_list_tags', 'equipmentloan_list_borrower', 'equipmentmediatheque_list_tags', 'equipmentrent_list_borrower', 'equipmentrent_list_tags', 'repair_edit_tags', 'education_input_list_access', 'educationnotation_list_educationstudent', 'examenconvocation_list_student', 'intangible_list_tags', 'access_intangible_list_access', 'access_intangible_list_tags', 'billaccounting_list_tags', 'billaccounting_list_billlines', 'billaccounting_list_bill', 'bill_list_tags', 'bill_list_billlines', 'billcredit_list_tags', 'billcredit_list_bill', 'template_list_tags', 'place_list_tags', 'education_edit_tags', 'planning_list', 'email_detail_tags', 'network_list_tags', 'federations_list_tags', 'advancepayment_list_tags', 'education_student_wish_list_accesswishreregistrations', 'education_student_next_year_edit_access', 'federations_list_tags', 'advancepayment_list_tags', 'advancepayment_list_tags', 'billpayment_list_tags', 'payer_list_billingpayers', 'billpayment_list_bill', 'online_registration_validation_accessoriginal', 'payer_list_tags', 'attendancebooking_list_access', 'attendance_list_access'])]
    private $label;
    /**
     * @var string
     */
    #[ORM\Column(type: 'text', nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Groups(['tag', 'tag_create', 'tag_list'])]
    private $description;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', length: 50, nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Groups(['tag', 'tag_create', 'tag_list', 'student_list_tags', 'access_informations_edit_tags', 'messagesend_list_tags', 'message_list_tags', 'guardians_list_tags', 'teachers_list_tags', 'adherent_list_tags', 'personnels_list_tags', 'board_list_tags', 'ca_list_tags', 'morals_list_tags', 'othercontact_list_tags', 'accesses_list_tags', 'student_registration_tags', 'education_student_next_year_access', 'accesses_no_reregistred_list_tags', 'commission_list_tags', 'booking_event_tags', 'event_details_tags', 'course_informations_edit_tags', 'course_details_tags', 'educationalproject_informations_edit_tags', 'educationalproject_details_tags', 'examen_informations_edit_tags', 'examen_details_tags', 'equipment_list_tags', 'equipmentaccounting_list_tags', 'equipmentcostume_list_tags', 'equipmentcontrol_list_tags', 'equipmentrepair_list_tags', 'equipmentloan_list_tags', 'equipmentloan_list_borrower', 'equipmentmediatheque_list_tags', 'equipmentrent_list_borrower', 'equipmentrent_list_tags', 'repair_edit_tags', 'education_input_list_access', 'educationnotation_list_educationstudent', 'examenconvocation_list_student', 'intangible_list_tags', 'access_intangible_list_access', 'access_intangible_list_tags', 'billaccounting_list_tags', 'billaccounting_list_billlines', 'billaccounting_list_bill', 'bill_list_tags', 'bill_list_billlines', 'billcredit_list_tags', 'billcredit_list_bill', 'template_list_tags', 'place_list_tags', 'education_edit_tags', 'planning_list', 'email_detail_tags', 'network_list_tags', 'federations_list_tags', 'advancepayment_list_tags', 'education_student_wish_list_accesswishreregistrations', 'education_student_next_year_edit_access', 'federations_list_tags', 'advancepayment_list_tags', 'advancepayment_list_tags', 'billpayment_list_tags', 'payer_list_billingpayers', 'billpayment_list_bill', 'online_registration_validation_accessoriginal', 'payer_list_tags', 'attendancebooking_list_access', 'attendance_list_access'])]
    private $color;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Assert\Choice(callback: ['\AppBundle\Enum\Core\TagTextColorEnum', 'toArray'])]
    #[Groups(['tag', 'tag_list', 'tag_create', 'student_list_tags', 'access_informations_edit_tags', 'messagesend_list_tags', 'message_list_tags', 'guardians_list_tags', 'teachers_list_tags', 'adherent_list_tags', 'personnels_list_tags', 'board_list_tags', 'ca_list_tags', 'morals_list_tags', 'othercontact_list_tags', 'accesses_list_tags', 'student_registration_tags', 'education_student_next_year_access', 'accesses_no_reregistred_list_tags', 'commission_list_tags', 'booking_event_tags', 'event_details_tags', 'course_informations_edit_tags', 'course_details_tags', 'educationalproject_informations_edit_tags', 'educationalproject_details_tags', 'examen_informations_edit_tags', 'examen_details_tags', 'equipment_list_tags', 'equipmentaccounting_list_tags', 'equipmentcostume_list_tags', 'equipmentcontrol_list_tags', 'equipmentrepair_list_tags', 'equipmentloan_list_tags', 'equipmentloan_list_borrower', 'equipmentmediatheque_list_tags', 'equipmentrent_list_borrower', 'equipmentrent_list_tags', 'repair_edit_tags', 'education_input_list_access', 'educationnotation_list_educationstudent', 'examenconvocation_list_student', 'intangible_list_tags', 'access_intangible_list_access', 'access_intangible_list_tags', 'billaccounting_list_tags', 'billaccounting_list_billlines', 'billaccounting_list_bill', 'bill_list_tags', 'bill_list_billlines', 'billcredit_list_tags', 'billcredit_list_bill', 'template_list_tags', 'place_list_tags', 'education_edit_tags', 'planning_list', 'email_detail_tags', 'network_list_tags', 'federations_list_tags', 'advancepayment_list_tags', 'education_student_wish_list_accesswishreregistrations', 'education_student_next_year_edit_access', 'federations_list_tags', 'advancepayment_list_tags', 'billpayment_list_tags', 'payer_list_billingpayers', 'billpayment_list_bill', 'online_registration_validation_accessoriginal', 'payer_list_tags', 'attendancebooking_list_access', 'attendance_list_access'])]
    private $textColor;
    #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\AccessAndFunction\Access', mappedBy: 'tags')]
    protected $accesses;
    #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\Organization\Organization', mappedBy: 'tags')]
    protected $organizations;
    #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\Billing\BillAccounting', mappedBy: 'tags')]
    protected $billAccountings;
    #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\Product\AbstractProduct', mappedBy: 'tags')]
    protected $products;
    #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\Booking\AbstractBooking', mappedBy: 'tags')]
    protected $bookings;
    #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\Organization\Activity', mappedBy: 'tags')]
    protected $activities;
    #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\Billing\BillPayment', mappedBy: 'tags')]
    protected $payments;
    #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\Person\Commission', mappedBy: 'tags')]
    protected $commissions;
    #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\Education\Education', mappedBy: 'tags')]
    protected $educations;
    #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\Education\EducationNotation', mappedBy: 'tags')]
    protected $educationNotations;
    #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\Education\EducationStudent', mappedBy: 'tags')]
    protected $educationStudents;
    #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\Message\Message', mappedBy: 'tags')]
    protected $messages;
    #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\Organization\Jury', mappedBy: 'tags')]
    protected $juries;
    #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\Place\AbstractPlace', mappedBy: 'tags')]
    protected $places;
    #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\Core\AbstractRepair', mappedBy: 'tags')]
    protected $repairs;
    #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\Core\AbstractControl', mappedBy: 'tags')]
    protected $controls;
    #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\AccessWish\AccessWish', mappedBy: 'tags')]
    protected $accessWishes;
    #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\Billing\AbstractBillingIntangible', mappedBy: 'tags')]
    protected $billingIntangibles;
    #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\Product\EquipmentLoan', mappedBy: 'tags')]
    protected $equipmentLoans;
    public function __construct()
    {
        $this->accesses = new ArrayCollection();
        $this->billAccountings = new ArrayCollection();
        $this->products = new ArrayCollection();
        $this->bookings = new ArrayCollection();
        $this->activities = new ArrayCollection();
        $this->payments = new ArrayCollection();
        $this->commissions = new ArrayCollection();
        $this->educations = new ArrayCollection();
        $this->educationNotations = new ArrayCollection();
        $this->educationStudents = new ArrayCollection();
        $this->messages = new ArrayCollection();
        $this->juries = new ArrayCollection();
        $this->places = new ArrayCollection();
        $this->repairs = new ArrayCollection();
        $this->controls = new ArrayCollection();
        $this->accesses = new ArrayCollection();
        $this->billingIntangibles = new ArrayCollection();
        $this->equipmentLoans = new ArrayCollection();
    }
    /**
     * Get id
     *
     * @return integer
     */
    public function getId()
    {
        return $this->id;
    }
    /**
     * Sets id.
     *
     * @param int $id
     *
     * @return $this
     */
    public function setId($id)
    {
        $this->id = $id;

        return $this;
    }
    /**
     * Set label
     *
     * @param string $label
     *
     * @return Tag
     */
    public function setLabel($label)
    {
        $this->label = $label;

        return $this;
    }
    /**
     * Get label
     *
     * @return string
     */
    public function getLabel()
    {
        return $this->label;
    }
    /**
     * Set description
     *
     * @param string $description
     *
     * @return Tag
     */
    public function setDescription($description)
    {
        $this->description = $description;

        return $this;
    }
    /**
     * Get description
     *
     * @return string
     */
    public function getDescription()
    {
        return $this->description;
    }
    /**
     * Set organization
     *
     * @param \AppBundle\Entity\Organization\Organization $organization
     *
     * @return Tag
     */
    public function setOrganization(\AppBundle\Entity\Organization\Organization $organization)
    {
        $this->organization = $organization;

        return $this;
    }
    /**
     * Get organization
     *
     * @return \AppBundle\Entity\Organization\Organization
     */
    public function getOrganization()
    {
        return $this->organization;
    }
    /**
     * Set color
     *
     * @param string $color
     *
     * @return Tag
     */
    public function setColor($color)
    {
        $this->color = $color;

        return $this;
    }
    /**
     * Get color
     *
     * @return string
     */
    public function getColor()
    {
        return $this->color;
    }
    /**
     * Add access
     *
     * @param \AppBundle\Entity\AccessAndFunction\Access $access
     *
     * @return Tag
     */
    public function addAccess(\AppBundle\Entity\AccessAndFunction\Access $access)
    {
        $this->accesses[] = $access;

        return $this;
    }
    /**
     * Remove access
     *
     * @param \AppBundle\Entity\AccessAndFunction\Access $access
     */
    public function removeAccess(\AppBundle\Entity\AccessAndFunction\Access $access)
    {
        $access->removeTag($this);
        $this->accesses->removeElement($access);
    }
    /**
     * Get accesses
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getAccesses()
    {
        return $this->accesses;
    }
    /**
     * Set textColor
     *
     * @param string $textColor
     *
     * @return Tagg
     */
    public function setTextColor($textColor)
    {
        $this->textColor = $textColor;

        return $this;
    }
    /**
     * Get textColor
     *
     * @return string
     */
    public function getTextColor()
    {
        return $this->textColor;
    }
    /**
     * Add billAccounting
     *
     * @param \AppBundle\Entity\Billing\BillAccounting $billAccounting
     *
     * @return Tagg
     */
    public function addBillAccounting(\AppBundle\Entity\Billing\BillAccounting $billAccounting)
    {
        $this->billAccountings[] = $billAccounting;

        return $this;
    }
    /**
     * Remove billAccounting
     *
     * @param \AppBundle\Entity\Billing\BillAccounting $billAccounting
     */
    public function removeBillAccounting(\AppBundle\Entity\Billing\BillAccounting $billAccounting)
    {
        $billAccounting->removeTag($this);
        $this->billAccountings->removeElement($billAccounting);
    }
    /**
     * Get billAccountings
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getBillAccountings()
    {
        return $this->billAccountings;
    }
    /**
     * Add product
     *
     * @param \AppBundle\Entity\Product\AbstractProduct $product
     *
     * @return Tagg
     */
    public function addProduct(\AppBundle\Entity\Product\AbstractProduct $product)
    {
        $this->products[] = $product;

        return $this;
    }
    /**
     * Remove product
     *
     * @param \AppBundle\Entity\Product\AbstractProduct $product
     */
    public function removeProduct(\AppBundle\Entity\Product\AbstractProduct $product)
    {
        $product->removeTag($this);
        $this->products->removeElement($product);
    }
    /**
     * Get products
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getProducts()
    {
        return $this->products;
    }
    /**
     * Add booking
     *
     * @param \AppBundle\Entity\Booking\AbstractBooking $booking
     *
     * @return Tagg
     */
    public function addBooking(\AppBundle\Entity\Booking\AbstractBooking $booking)
    {
        $this->bookings[] = $booking;

        return $this;
    }
    /**
     * Remove booking
     *
     * @param \AppBundle\Entity\Booking\AbstractBooking $booking
     */
    public function removeBooking(\AppBundle\Entity\Booking\AbstractBooking $booking)
    {
        $booking->removeTag($this);
        $this->bookings->removeElement($booking);
    }
    /**
     * Get bookings
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getBookings()
    {
        return $this->bookings;
    }
    /**
     * Add activity
     *
     * @param \AppBundle\Entity\Organization\Activity $activity
     *
     * @return Tagg
     */
    public function addActivity(\AppBundle\Entity\Organization\Activity $activity)
    {
        $this->activities[] = $activity;

        return $this;
    }
    /**
     * Remove activity
     *
     * @param \AppBundle\Entity\Organization\Activity $activity
     */
    public function removeActivity(\AppBundle\Entity\Organization\Activity $activity)
    {
        $activity->removeTag($this);
        $this->activities->removeElement($activity);
    }
    /**
     * Get activities
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getActivities()
    {
        return $this->activities;
    }
    /**
     * Add payment
     *
     * @param \AppBundle\Entity\Billing\BillPayment $payment
     *
     * @return Tagg
     */
    public function addPayment(\AppBundle\Entity\Billing\BillPayment $payment)
    {
        $this->payments[] = $payment;

        return $this;
    }
    /**
     * Remove payment
     *
     * @param \AppBundle\Entity\Billing\BillPayment $payment
     */
    public function removePayment(\AppBundle\Entity\Billing\BillPayment $payment)
    {
        $payment->removeTag($this);
        $this->payments->removeElement($payment);
    }
    /**
     * Get payments
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getPayments()
    {
        return $this->payments;
    }
    /**
     * Add commission
     *
     * @param \AppBundle\Entity\Person\Commission $commission
     *
     * @return Tagg
     */
    public function addCommission(\AppBundle\Entity\Person\Commission $commission)
    {
        $this->commissions[] = $commission;

        return $this;
    }
    /**
     * Remove commission
     *
     * @param \AppBundle\Entity\Person\Commission $commission
     */
    public function removeCommission(\AppBundle\Entity\Person\Commission $commission)
    {
        $commission->removeTag($this);
        $this->commissions->removeElement($commission);
    }
    /**
     * Get commissions
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getCommissions()
    {
        return $this->commissions;
    }
    /**
     * Add education
     *
     * @param \AppBundle\Entity\Education\Education $education
     *
     * @return Tagg
     */
    public function addEducation(\AppBundle\Entity\Education\Education $education)
    {
        $this->educations[] = $education;

        return $this;
    }
    /**
     * Remove education
     *
     * @param \AppBundle\Entity\Education\Education $education
     */
    public function removeEducation(\AppBundle\Entity\Education\Education $education)
    {
        $education->removeTag($this);
        $this->educations->removeElement($education);
    }
    /**
     * Get educations
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getEducations()
    {
        return $this->educations;
    }
    /**
     * Add educationNotation
     *
     * @param \AppBundle\Entity\Education\EducationNotation $educationNotation
     *
     * @return Tagg
     */
    public function addEducationNotation(\AppBundle\Entity\Education\EducationNotation $educationNotation)
    {
        $this->educationNotations[] = $educationNotation;

        return $this;
    }
    /**
     * Remove educationNotation
     *
     * @param \AppBundle\Entity\Education\EducationNotation $educationNotation
     */
    public function removeEducationNotation(\AppBundle\Entity\Education\EducationNotation $educationNotation)
    {
        $educationNotation->removeTag($this);
        $this->educationNotations->removeElement($educationNotation);
    }
    /**
     * Get educationNotations
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getEducationNotations()
    {
        return $this->educationNotations;
    }
    /**
     * Add educationStudent
     *
     * @param \AppBundle\Entity\Education\EducationStudent $educationStudent
     *
     * @return Tagg
     */
    public function addEducationStudent(\AppBundle\Entity\Education\EducationStudent $educationStudent)
    {
        $this->educationStudents[] = $educationStudent;

        return $this;
    }
    /**
     * Remove educationStudent
     *
     * @param \AppBundle\Entity\Education\EducationStudent $educationStudent
     */
    public function removeEducationStudent(\AppBundle\Entity\Education\EducationStudent $educationStudent)
    {
        $educationStudent->removeTag($this);
        $this->educationStudents->removeElement($educationStudent);
    }
    /**
     * Get educationStudents
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getEducationStudents()
    {
        return $this->educationStudents;
    }
    /**
     * Add message
     *
     * @param \AppBundle\Entity\Message\Message $message
     *
     * @return Tagg
     */
    public function addMessage(\AppBundle\Entity\Message\Message $message)
    {
        $this->messages[] = $message;

        return $this;
    }
    /**
     * Remove message
     *
     * @param \AppBundle\Entity\Message\Message $message
     */
    public function removeMessage(\AppBundle\Entity\Message\Message $message)
    {
        $message->removeTag($this);
        $this->messages->removeElement($message);
    }
    /**
     * Get messages
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getMessages()
    {
        return $this->messages;
    }
    /**
     * Add jury
     *
     * @param \AppBundle\Entity\Organization\Jury $jury
     *
     * @return Tagg
     */
    public function addJury(\AppBundle\Entity\Organization\Jury $jury)
    {
        $this->juries[] = $jury;

        return $this;
    }
    /**
     * Remove jury
     *
     * @param \AppBundle\Entity\Organization\Jury $jury
     */
    public function removeJury(\AppBundle\Entity\Organization\Jury $jury)
    {
        $jury->removeTag($this);
        $this->juries->removeElement($jury);
    }
    /**
     * Get juries
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getJuries()
    {
        return $this->juries;
    }
    /**
     * Add place
     *
     * @param \AppBundle\Entity\Place\AbstractPlace $place
     *
     * @return Tagg
     */
    public function addPlace(\AppBundle\Entity\Place\AbstractPlace $place)
    {
        $this->places[] = $place;

        return $this;
    }
    /**
     * Remove place
     *
     * @param \AppBundle\Entity\Place\AbstractPlace $place
     */
    public function removePlace(\AppBundle\Entity\Place\AbstractPlace $place)
    {
        $place->removeTag($this);
        $this->places->removeElement($place);
    }
    /**
     * Get places
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getPlaces()
    {
        return $this->places;
    }
    /**
     * Add repair
     *
     * @param \AppBundle\Entity\Core\AbstractRepair $repair
     *
     * @return Tagg
     */
    public function addRepair(\AppBundle\Entity\Core\AbstractRepair $repair)
    {
        $this->repairs[] = $repair;

        return $this;
    }
    /**
     * Remove repair
     *
     * @param \AppBundle\Entity\Core\AbstractRepair $repair
     */
    public function removeRepair(\AppBundle\Entity\Core\AbstractRepair $repair)
    {
        $repair->removeTag($this);
        $this->repairs->removeElement($repair);
    }
    /**
     * Get repairs
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getRepairs()
    {
        return $this->repairs;
    }
    /**
     * Add control
     *
     * @param \AppBundle\Entity\Core\AbstractControl $control
     *
     * @return Tagg
     */
    public function addControl(\AppBundle\Entity\Core\AbstractControl $control)
    {
        $this->controls[] = $control;

        return $this;
    }
    /**
     * Remove control
     *
     * @param \AppBundle\Entity\Core\AbstractControl $control
     */
    public function removeControl(\AppBundle\Entity\Core\AbstractControl $control)
    {
        $control->removeTag($this);
        $this->controls->removeElement($control);
    }
    /**
     * Get controls
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getControls()
    {
        return $this->controls;
    }
    /**
     * Add accessWish
     *
     * @param \AppBundle\Entity\AccessWish\AccessWish $accessWish
     *
     * @return Tagg
     */
    public function addAccessWish(\AppBundle\Entity\AccessWish\AccessWish $accessWish)
    {
        $this->accessWishes[] = $accessWish;

        return $this;
    }
    /**
     * Remove accessWish
     *
     * @param \AppBundle\Entity\AccessWish\AccessWish $accessWish
     */
    public function removeAccessWish(\AppBundle\Entity\AccessWish\AccessWish $accessWish)
    {
        $accessWish->removeTag($this);
        $this->accessWishes->removeElement($accessWish);
    }
    /**
     * Get accessWishes
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getAccessWishes()
    {
        return $this->accessWishes;
    }
    /**
     * Add billingIntangible
     *
     * @param \AppBundle\Entity\Billing\AbstractBillingIntangible $billingIntangible
     *
     * @return Tagg
     */
    public function addBillingIntangible(\AppBundle\Entity\Billing\AbstractBillingIntangible $billingIntangible)
    {
        $this->billingIntangibles[] = $billingIntangible;

        return $this;
    }
    /**
     * Remove billingIntangible
     *
     * @param \AppBundle\Entity\Billing\AbstractBillingIntangible $billingIntangible
     */
    public function removeBillingIntangible(\AppBundle\Entity\Billing\AbstractBillingIntangible $billingIntangible)
    {
        $billingIntangible->removeTag($this);
        $this->billingIntangibles->removeElement($billingIntangible);
    }
    /**
     * Get billingIntangibles
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getBillingIntangibles()
    {
        return $this->billingIntangibles;
    }
    /**
     * Add equipmentLoan
     *
     * @param \AppBundle\Entity\Product\EquipmentLoan $equipmentLoan
     *
     * @return Tagg
     */
    public function addEquipmentLoan(\AppBundle\Entity\Product\EquipmentLoan $equipmentLoan)
    {
        $this->equipmentLoans[] = $equipmentLoan;

        return $this;
    }
    /**
     * Remove equipmentLoan
     *
     * @param \AppBundle\Entity\Product\EquipmentLoan $equipmentLoan
     */
    public function removeEquipmentLoan(\AppBundle\Entity\Product\EquipmentLoan $equipmentLoan)
    {
        $equipmentLoan->removeTag($this);
        $this->equipmentLoans->removeElement($equipmentLoan);
    }
    /**
     * Get equipmentLoans
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getEquipmentLoans()
    {
        return $this->equipmentLoans;
    }
    /**
     * Add organization
     *
     * @param \AppBundle\Entity\Organization\Organization $organization
     *
     * @return Tagg
     */
    public function addOrganization(\AppBundle\Entity\Organization\Organization $organization)
    {
        $this->organizations[] = $organization;

        return $this;
    }
    /**
     * Remove organization
     *
     * @param \AppBundle\Entity\Organization\Organization $organization
     */
    public function removeOrganization(\AppBundle\Entity\Organization\Organization $organization)
    {
        $this->organizations->removeElement($organization);
    }
    /**
     * Get organizations
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getOrganizations()
    {
        return $this->organizations;
    }
}
