<?php
namespace App\Application\Internit\OrdemServicoBundle\Entity;
use App\Application\Internit\AgendamentoBundle\Entity\Agendamento;
use App\Application\Internit\OrdemServicoBundle\Repository\OrdemServicoRepository;
use App\Application\Internit\DepartamentoBundle\Entity\Departamento;
use App\Application\Internit\ProfissionalBundle\Entity\Profissional;
use App\Application\Internit\UnidadeBundle\Entity\Unidade;
use App\Application\Internit\ClienteBundle\Entity\Cliente;
use App\Application\Project\ContentBundle\Entity\BaseEntity;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use App\Entity\SonataMediaGallery;
use App\Entity\SonataMediaMedia;
use Doctrine\ORM\Mapping as ORM;
use DateTime;
/** Info: */
#[ORM\Table(name: 'ordem_servico')]
#[ORM\Entity(repositoryClass: OrdemServicoRepository::class)]
#[UniqueEntity('id')]
#[ORM\HasLifecycleCallbacks]
class OrdemServico extends BaseEntity
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(name: 'id', type: 'integer', unique: true, nullable: false)]
private ?int $id = null;
#[ORM\Column(name: 'codigo', type: 'string', unique: true, nullable: true)]
private ?string $codigo = null;
#[ORM\ManyToOne(targetEntity: Agendamento::class, cascade: ['persist'], inversedBy: 'ordemServicos')]
#[ORM\JoinColumn(name: 'agendamento_id', referencedColumnName: 'id', onDelete: 'SET NULL')]
private Agendamento|null $agendamento = null;
#[Assert\Date]
#[ORM\Column(name: 'data', type: 'date', unique: false, nullable: true)]
private DateTime|null $data = null;
#[ORM\Column(name: 'hora', type: 'time', unique: false, nullable: true)]
private DateTime|null $hora;
#[ORM\ManyToOne(targetEntity: Profissional::class, inversedBy: 'ordemServicos')]
#[ORM\JoinColumn(name: 'profissional_id', referencedColumnName: 'id')]
private Profissional|null $profissional = null;
#[ORM\Column(name: 'status', type: 'string', unique: false, nullable: true)]
private ?string $status;
#[ORM\Column(name: 'dataACaminho', type: 'datetime', unique: false, nullable: true)]
private ?DateTime $dataACaminho;
#[ORM\Column(name: 'dataIniciarAtendimento', type: 'datetime', unique: false, nullable: true)]
private ?DateTime $dataIniciarAtendimento;
#[ORM\Column(name: 'dataFinalAtendimento', type: 'datetime', unique: false, nullable: true)]
private ?DateTime $dataFinalAtendimento;
#[ORM\Column(name: 'dataRetorno', type: 'datetime', unique: false, nullable: true)]
private ?DateTime $dataRetorno = null;
#[ORM\ManyToOne(targetEntity: SonataMediaGallery::class, cascade: ['persist'])]
private mixed $anexosPreparacao;
#[ORM\ManyToOne(targetEntity: SonataMediaGallery::class, cascade: ['persist'])]
private mixed $anexosTrabalhoAndamento;
#[ORM\ManyToOne(targetEntity: SonataMediaGallery::class, cascade: ['persist'])]
private mixed $anexosTrabalhoFinalizado;
#[ORM\Column(name: 'descricao', type: 'text', unique: false, nullable: true)]
private ?string $descricao;
#[ORM\ManyToOne(targetEntity: SonataMediaMedia::class, cascade: ['persist'])]
private mixed $assinaturaCliente;
#[ORM\ManyToOne(targetEntity: SonataMediaMedia::class, cascade: ['persist'])]
private mixed $assinaturaProfissional;
public function __construct()
{}
public function getId(): ?int
{
return $this->id;
}
public function setId(?int $id): void
{
$this->id = $id;
}
public function getCodigo(): ?string
{
return $this->codigo;
}
public function setCodigo($codigo): void
{
$this->codigo = $codigo;
}
public function getAgendamento(): ?Agendamento
{
return $this->agendamento;
}
public function setAgendamento(?Agendamento $agendamento): void
{
$this->agendamento = $agendamento;
}
public function getData(): ?DateTime
{
return $this->data;
}
public function setData(?DateTime $data): void
{
$this->data = $data;
}
public function getHora(): ?DateTime
{
return $this->hora;
}
public function setHora(?DateTime $hora): void
{
$this->hora = $hora;
}
public function getProfissional(): ?Profissional
{
return $this->profissional;
}
public function setProfissional(?Profissional $profissional): void
{
$this->profissional = $profissional;
}
public function getStatus(): ?string
{
return $this->status;
}
public function setStatus(?string $status): void
{
$this->status = $status;
}
public function getDataACaminho(): ?DateTime
{
return $this->dataACaminho;
}
public function setDataACaminho(?DateTime $dataACaminho): void
{
$this->dataACaminho = $dataACaminho;
}
public function getDataIniciarAtendimento(): ?DateTime
{
return $this->dataIniciarAtendimento;
}
public function setDataIniciarAtendimento(?DateTime $dataIniciarAtendimento): void
{
$this->dataIniciarAtendimento = $dataIniciarAtendimento;
}
public function getDataFinalAtendimento(): ?DateTime
{
return $this->dataFinalAtendimento;
}
public function setDataFinalAtendimento(?DateTime $dataFinalAtendimento): void
{
$this->dataFinalAtendimento = $dataFinalAtendimento;
}
public function getDataRetorno(): ?DateTime
{
return $this->dataRetorno;
}
public function setDataRetorno(?DateTime $dataRetorno): void
{
$this->dataRetorno = $dataRetorno;
}
public function getAnexosPreparacao(): mixed
{
return $this->anexosPreparacao;
}
public function setAnexosPreparacao(mixed $anexosPreparacao): void
{
$this->anexosPreparacao = $anexosPreparacao;
}
public function getAnexosTrabalhoAndamento(): mixed
{
return $this->anexosTrabalhoAndamento;
}
public function setAnexosTrabalhoAndamento(mixed $anexosTrabalhoAndamento): void
{
$this->anexosTrabalhoAndamento = $anexosTrabalhoAndamento;
}
public function getAnexosTrabalhoFinalizado(): mixed
{
return $this->anexosTrabalhoFinalizado;
}
public function setAnexosTrabalhoFinalizado(mixed $anexosTrabalhoFinalizado): void
{
$this->anexosTrabalhoFinalizado = $anexosTrabalhoFinalizado;
}
public function getDescricao(): ?string
{
return $this->descricao;
}
public function setDescricao(?string $descricao): void
{
$this->descricao = $descricao;
}
public function getAssinaturaCliente()
{
return $this->assinaturaCliente;
}
public function setAssinaturaCliente( $assinaturaCliente): void
{
$this->assinaturaCliente = $assinaturaCliente;
}
public function getAssinaturaProfissional()
{
return $this->assinaturaProfissional;
}
public function setAssinaturaProfissional( $assinaturaProfissional): void
{
$this->assinaturaProfissional = $assinaturaProfissional;
}
}