<?php
namespace App\AtechNet\CoreBundle\Entity;
use Doctrine\ORM\Mapping\Column;
use Doctrine\ORM\Mapping\Entity;
use Doctrine\ORM\Mapping\HasLifecycleCallbacks;
use Doctrine\ORM\Mapping\JoinColumn;
use Doctrine\ORM\Mapping\ManyToOne;
use Doctrine\ORM\Mapping\Table as Table;
/**
* ClaimError
*
* @Table(name="claim_errors")
* @Entity()
* @HasLifecycleCallbacks
*/
class ClaimError extends AbstractSignedEntity
{
public const int ERROR_TYPE_RAM = 1;
public const int ERROR_TYPE_SSD = 2;
public const int ERROR_TYPE_LCD = 3;
public const int ERROR_TYPE_KEYBOARD = 4;
public const int ERROR_TYPE_BROKEN = 5;
public const int ERROR_TYPE_BATTERY = 6;
public const int ERROR_TYPE_MAINBOARD = 7;
public const int ERROR_TYPE_SW = 8;
public const int ERROR_TYPE_ADAPTER = 9;
public const int ERROR_TYPE_FAN = 10;
public const int ERROR_TYPE_USER_ERROR = 11;
public const int ERROR_TYPE_CMOS_BATTERY = 12;
public const int ERROR_TYPE_SOUND = 13;
public const int ERROR_TYPE_TOUCHPAD = 14;
public const int ERROR_TYPE_PARCEL_SERVICE = 15;
public const int ERROR_TYPE_SALES = 16;
public const int ERROR_TYPE_COVER = 17;
public const int ERROR_TYPE_DOMAIN_ICLOCK_LOCK = 18;
public const int ERROR_TYPE_DOCK = 19;
public const int ERROR_TYPE_MONITOR = 20;
public const int ERROR_TYPE_WIFI_BLUETOOTH = 21;
public const int ERROR_TYPE_OTHER = 22;
public const int ERROR_TYPE_KEYBOARD_BACKLIGHT = 23;
public const int ERROR_TYPE_OVERHEATING = 24;
public const int ERROR_TYPE_WEBCAM = 25;
public const int ERROR_TYPE_PORT_ERROR = 26;
public const int ERROR_TYPE_MARKETPLACE = 27;
public const int ERROR_TYPE_STYLUS_PEN = 28;
public const int ERROR_STATE_SERVICE = 1;
public const int ERROR_STATE_USER = 2;
public const int ERROR_STATE_PRODUCTION = 3;
public const int ERROR_STATE_SALES = 4;
public const int ERROR_STATE_MALFUNCTIONING_PRODUCT = 5;
public const int ERROR_STATE_PACKAGING = 6;
public const int ERROR_STATE_INSTALLATION = 7;
public const int ERROR_STATE_CONFIG = 8;
public const int ERROR_STATE_KEYBOARD = 9;
public const int ERROR_STATE_CARBON = 10;
public const int ERROR_STATE_AIKEN = 11;
public const int ERROR_STATE_OTHER = 12;
public const int USER_ERROR_STATE_GRADE = 13;
public const int USER_ERROR_STATE_FUNCTION = 14;
public const int USER_ERROR_STATE_WRONG_ORDER = 15;
public const int USER_ERROR_STATE_NOT_PROVIDED = 16;
public const int ERROR_STATE_SALES_RISK = 17;
public const int ERROR_STATE_QUALITY = 18;
public const int ERROR_STATE_NOT_SUITABLE_FOR_MARKET = 19;
public const int ERROR_STATE_NEW_BATTERY = 20;
public const int ERROR_STATE_PRESUMABLY = 21;
public const int ERROR_STATE_THERMAL_PASTE_APPLIED = 22;
/**
* @var Claim
*
* @ManyToOne(targetEntity="Claim", inversedBy="errors")
* @JoinColumn(name="claim_id", referencedColumnName="id")
*/
private $claim;
/**
* @var int
*
* @Column(name="error_type", type="integer")
*/
private $errorType;
/**
* @var int
*
* @Column(name="error_state", type="integer")
*/
private $errorState;
/**
* @return array
*/
public static function getErrorTypes(): array
{
return [
self::ERROR_TYPE_RAM => 'RAM',
self::ERROR_TYPE_SSD => 'SSD',
self::ERROR_TYPE_LCD => 'LCD',
self::ERROR_TYPE_KEYBOARD => 'Keyboard',
self::ERROR_TYPE_KEYBOARD_BACKLIGHT => 'Keyboard backlight',
self::ERROR_TYPE_TOUCHPAD => 'Touchpad',
self::ERROR_TYPE_SALES => 'Sales',
self::ERROR_TYPE_BATTERY => 'Battery',
self::ERROR_TYPE_MAINBOARD => 'Mainboard',
self::ERROR_TYPE_SW => 'SW error',
self::ERROR_TYPE_ADAPTER => 'Adapter/Power source',
self::ERROR_TYPE_FAN => 'Fan',
self::ERROR_TYPE_CMOS_BATTERY => 'CMOS battery',
self::ERROR_TYPE_SOUND => 'SOUND',
self::ERROR_TYPE_PARCEL_SERVICE => 'Parcel service',
self::ERROR_TYPE_USER_ERROR => 'User error',
self::ERROR_TYPE_COVER => 'Cover',
self::ERROR_TYPE_DOMAIN_ICLOCK_LOCK => 'Domain - iCloud lock',
self::ERROR_TYPE_DOCK => 'Dock',
self::ERROR_TYPE_MONITOR => 'Monitor',
self::ERROR_TYPE_WIFI_BLUETOOTH => 'Wifi + Bluetooth',
self::ERROR_TYPE_OTHER => 'Other',
self::ERROR_TYPE_OVERHEATING => 'Overheating',
self::ERROR_TYPE_WEBCAM => 'Webcam',
self::ERROR_TYPE_PORT_ERROR => 'Port error',
self::ERROR_TYPE_MARKETPLACE => 'Marketplace',
self::ERROR_TYPE_STYLUS_PEN => 'Stylus Pen'
];
}
/**
* @param bool $includeProduction
* @return array
*/
public static function getErrorStates(bool $includeProduction = false): array
{
$errorStates = [
self::ERROR_STATE_SERVICE => 'Parcel service',
self::ERROR_STATE_USER => 'User',
self::ERROR_STATE_PRODUCTION => 'Production',
self::ERROR_STATE_SALES => 'Sales',
self::ERROR_STATE_SALES_RISK => 'Sales - Risk',
self::ERROR_STATE_MALFUNCTIONING_PRODUCT => 'Malfunctioning product',
self::ERROR_STATE_PACKAGING => 'Production - Packaging',
self::ERROR_STATE_INSTALLATION => 'Production - Installation',
self::ERROR_STATE_CONFIG => 'Production - Config',
self::ERROR_STATE_KEYBOARD => 'Production - Keyboard',
self::ERROR_STATE_CARBON => 'Production - Carbon',
self::ERROR_STATE_AIKEN => 'Production - Aiken',
self::ERROR_STATE_QUALITY => 'Production - Quality',
self::ERROR_STATE_OTHER => 'Production - Other',
self::ERROR_STATE_NOT_SUITABLE_FOR_MARKET => 'A piacnak nem felel meg',
self::ERROR_STATE_NEW_BATTERY => 'New Battery',
self::ERROR_STATE_PRESUMABLY => 'Feltételezhetően',
self::ERROR_STATE_THERMAL_PASTE_APPLIED => 'Pasztázott',
];
if (!$includeProduction) {
unset($errorStates[self::ERROR_STATE_PRODUCTION]);
}
return $errorStates;
}
public static function getUserErrorStates(): array
{
return [
self::USER_ERROR_STATE_GRADE => 'Grade',
self::USER_ERROR_STATE_FUNCTION => 'Function',
self::USER_ERROR_STATE_WRONG_ORDER => 'Wrong order',
self::USER_ERROR_STATE_NOT_PROVIDED => 'Not provided',
];
}
/**
* @return Claim
*/
public function getClaim(): Claim
{
return $this->claim;
}
/**
* @param Claim $claim
*/
public function setClaim(Claim $claim)
{
$this->claim = $claim;
}
/**
* @return int
*/
public function getErrorType(): int
{
return $this->errorType;
}
/**
* @param int $errorType
*/
public function setErrorType(int $errorType)
{
$this->errorType = $errorType;
}
/**
* @return int
*/
public function getErrorState(): int
{
return $this->errorState;
}
/**
* @param int $errorState
*/
public function setErrorState(int $errorState)
{
$this->errorState = $errorState;
}
}