57 lines
1.7 KiB
PHP
57 lines
1.7 KiB
PHP
<?php declare(strict_types=1);
|
|
|
|
namespace App\Entity;
|
|
|
|
use Doctrine\ORM\Mapping as ORM;
|
|
|
|
/**
|
|
* Trait CameraTrait
|
|
*
|
|
* Shared columns for camera, and previously_owned_camera tables
|
|
*/
|
|
trait CameraTrait
|
|
{
|
|
use GetSetTrait;
|
|
use PurchasePriceTrait;
|
|
|
|
#[ORM\ManyToOne(targetEntity: 'CameraType')]
|
|
#[ORM\JoinColumn(name: 'type_id', referencedColumnName: 'id', nullable: FALSE)]
|
|
private CameraType $type;
|
|
|
|
#[ORM\Column(name: 'brand', type: 'string', length: 64, nullable: FALSE)]
|
|
private string $brand;
|
|
|
|
#[ORM\Column(name: 'mount', type: 'string', length: 32, nullable: FALSE)]
|
|
private string $mount;
|
|
|
|
#[ORM\Column(name: 'model', type: 'string', length: 255, nullable: FALSE)]
|
|
private string $model;
|
|
|
|
#[ORM\Column(name: 'is_digital', type: 'boolean', nullable: FALSE)]
|
|
private bool $isDigital;
|
|
|
|
#[ORM\Column(name: 'crop_factor', type: 'decimal', precision: 10, scale: 0, nullable: FALSE)]
|
|
private string $cropFactor = '1.0';
|
|
|
|
#[ORM\Column(name: 'is_working', type: 'boolean', nullable: FALSE)]
|
|
private bool $isWorking;
|
|
|
|
#[ORM\Column(name: 'notes', type: 'text', nullable: TRUE)]
|
|
private ?string $notes = null;
|
|
|
|
#[ORM\Column(name: 'serial', type: 'string', length: 20, nullable: FALSE)]
|
|
private string $serial;
|
|
|
|
#[ORM\Column(name: 'formerly_owned', type: 'boolean', nullable: FALSE)]
|
|
private bool $formerlyOwned = FALSE;
|
|
|
|
#[ORM\Column(name: 'battery_type', type: 'string', nullable: TRUE)]
|
|
private ?string $batteryType;
|
|
|
|
#[ORM\Column(name: 'film_format', type: 'string', nullable: TRUE)]
|
|
private ?string $filmFormat = '135';
|
|
|
|
#[ORM\Column(name: 'received', type: 'boolean', nullable: TRUE)]
|
|
private ?bool $received = FALSE;
|
|
}
|