<?php

namespace App\Entity;

use App\Repository\InterventionMediaRepository;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\Groups;

/**
 * @ORM\Entity(repositoryClass=InterventionMediaRepository::class)
 * @ORM\Table(schema="sav")
 */
class InterventionMedia
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     * @Groups({"api"})
     */
    private $id;

    /**
     * @ORM\ManyToOne(targetEntity=Intervention::class, inversedBy="interventionMedias")
     * @ORM\JoinColumn(nullable=false, name="idintervention")
     */
    private $intervention;

    /**
     * @ORM\Column(type="binary", nullable=true)
     * @Groups({"api"})
     */
    private $media;

    /**
     * @ORM\Column(type="text", nullable=true)
     * @Groups({"api"})
     */
    private $commentaire;

//    public static function create(InterventionMedia $media, Intervention $intervention) {
//        var_dump($media->getMedia());die('ok');
//        $interventionMedia = new InterventionMedia();
//        $interventionMedia
//            ->setIntervention($intervention)
//            ->setMedia($media->getMedia())
//            ->setCommentaire($media->getCommentaire())
//        ;
//        return $interventionMedia;
//    }

    public function getId(): ?int
    {
        return $this->id;
    }

    public function setId(?int $id): self
    {
        $this->id = $id;

        return $this;
    }

    public function getIntervention(): ?Intervention
    {
        return $this->intervention;
    }

    public function setIntervention(?Intervention $intervention): self
    {
        $this->intervention = $intervention;

        return $this;
    }

    public function getMedia()
    {
        return stream_get_contents($this->media);
    }

    public function getMediaString()
    {
        return $this->media;
    }

    public function setMedia($media): self
    {
        $this->media = $media;

        return $this;
    }

    public function getCommentaire(): ?string
    {
        return $this->commentaire;
    }

    public function setCommentaire(?string $commentaire): self
    {
        $this->commentaire = $commentaire;

        return $this;
    }
}
