<?php
namespace App\Application\Internit\IntegracaoBundle\Sienge\Entity;
use Doctrine\ORM\Mapping as ORM;
use App\Application\Internit\IntegracaoBundle\Sienge\Repository\UnidadeRepository;
/**
* Unidade - Cache local de unidades do Sienge
*/
#[ORM\Table(name: 'integracao_sienge_unidade')]
#[ORM\Entity(repositoryClass: UnidadeRepository::class)]
#[ORM\Index(columns: ['sienge_unit_id'])]
#[ORM\Index(columns: ['empreendimento_id'])]
class Unidade
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(name: 'id', type: 'integer', unique: true, nullable: false)]
private ?int $id = null;
/**
* ID da unidade no Sienge
*/
#[ORM\Column(name: 'sienge_unit_id', type: 'string', length: 255, nullable: false)]
private string $siengeUnitId;
/**
* Tipo de unidade (apto, loja, sala, etc)
*/
#[ORM\Column(name: 'tipo', type: 'string', length: 100, nullable: true)]
private ?string $tipo = null;
/**
* Número/Identificação da unidade
*/
#[ORM\Column(name: 'numero', type: 'string', length: 50, nullable: true)]
private ?string $numero = null;
/**
* Bloco/Torre
*/
#[ORM\Column(name: 'bloco', type: 'string', length: 50, nullable: true)]
private ?string $bloco = null;
/**
* Andar
*/
#[ORM\Column(name: 'andar', type: 'integer', nullable: true)]
private ?int $andar = null;
/**
* Metragem
*/
#[ORM\Column(name: 'metragem', type: 'decimal', precision: 10, scale: 2, nullable: true)]
private ?string $metragem = null;
/**
* Valor da unidade
*/
#[ORM\Column(name: 'valor', type: 'decimal', precision: 15, scale: 2, nullable: true)]
private ?string $valor = null;
/**
* Status da unidade
*/
#[ORM\Column(name: 'status', type: 'string', length: 50, nullable: true)]
private ?string $status = null;
/**
* Empreendimento relacionado
*/
#[ORM\ManyToOne(targetEntity: Empreendimento::class, inversedBy: 'unidades')]
#[ORM\JoinColumn(name: 'empreendimento_id', referencedColumnName: 'id', nullable: false)]
private ?Empreendimento $empreendimento = null;
/**
* Data de sincronização
*/
#[ORM\Column(name: 'data_sincronizacao', type: 'datetime', nullable: false)]
private \DateTimeInterface $dataSincronizacao;
public function __construct()
{
$this->dataSincronizacao = new \DateTime();
}
public function getId(): ?int
{
return $this->id;
}
public function getSiengeUnitId(): string
{
return $this->siengeUnitId;
}
public function setSiengeUnitId(string $siengeUnitId): self
{
$this->siengeUnitId = $siengeUnitId;
return $this;
}
public function getTipo(): ?string
{
return $this->tipo;
}
public function setTipo(?string $tipo): self
{
$this->tipo = $tipo;
return $this;
}
public function getNumero(): ?string
{
return $this->numero;
}
public function setNumero(?string $numero): self
{
$this->numero = $numero;
return $this;
}
public function getBloco(): ?string
{
return $this->bloco;
}
public function setBloco(?string $bloco): self
{
$this->bloco = $bloco;
return $this;
}
public function getAndar(): ?int
{
return $this->andar;
}
public function setAndar(?int $andar): self
{
$this->andar = $andar;
return $this;
}
public function getMetragem(): ?string
{
return $this->metragem;
}
public function setMetragem(?string $metragem): self
{
$this->metragem = $metragem;
return $this;
}
public function getValor(): ?string
{
return $this->valor;
}
public function setValor(?string $valor): self
{
$this->valor = $valor;
return $this;
}
public function getStatus(): ?string
{
return $this->status;
}
public function setStatus(?string $status): self
{
$this->status = $status;
return $this;
}
public function getEmpreendimento(): ?Empreendimento
{
return $this->empreendimento;
}
public function setEmpreendimento(?Empreendimento $empreendimento): self
{
$this->empreendimento = $empreendimento;
return $this;
}
public function getDataSincronizacao(): \DateTimeInterface
{
return $this->dataSincronizacao;
}
public function setDataSincronizacao(\DateTimeInterface $dataSincronizacao): self
{
$this->dataSincronizacao = $dataSincronizacao;
return $this;
}
}