<?php
namespace App\AtechNet\CoreBundle\Entity;
use App\AtechNet\CoreBundle\Repository\CountryRepository;
use Doctrine\ORM\Mapping\Column;
use Doctrine\ORM\Mapping\Entity;
use Doctrine\ORM\Mapping\JoinColumn;
use Doctrine\ORM\Mapping\ManyToOne;
use Doctrine\ORM\Mapping\Table as Table;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Country
*
* @Table(name="countries")
* @Entity(repositoryClass="App\AtechNet\CoreBundle\Repository\CountryRepository")
*/
class Country extends AbstractEntity
{
/**
* @var string
*
* @Assert\NotNull
*
* @Column(name="country_code", type="string", length=10)
*/
private string $countryCode;
/**
* @var string
*
* @Assert\NotNull
*
* @Column(name="country_name", type="string", length=255)
*/
private string $countryName;
/**
* @var Language
*
* @ManyToOne(targetEntity="Language", inversedBy="countries")
* @JoinColumn(name="language_id", referencedColumnName="id")
*/
private $language;
public static array $countries = [
'AL' => 'Albania',
'AD' => 'Andorra',
'AT' => 'Austria',
'BY' => 'Belarus',
'BE' => 'Belgium',
'BA' => 'Bosnia and Herzegovina',
'BG' => 'Bulgaria',
'HR' => 'Croatia',
'CY' => 'Cyprus',
'CZ' => 'Czech Republic',
'DK' => 'Denmark',
'EE' => 'Estonia',
'FI' => 'Finland',
'FR' => 'France',
'DE' => 'Germany',
'GR' => 'Greece',
'HU' => 'Hungary',
'IS' => 'Iceland',
'IE' => 'Ireland',
'IT' => 'Italy',
'XK' => 'Kosovo',
'LV' => 'Latvia',
'LI' => 'Liechtenstein',
'LT' => 'Lithuania',
'LU' => 'Luxembourg',
'MT' => 'Malta',
'MD' => 'Moldova',
'MC' => 'Monaco',
'ME' => 'Montenegro',
'NL' => 'Netherlands',
'MK' => 'North Macedonia',
'NO' => 'Norway',
'PL' => 'Poland',
'PT' => 'Portugal',
'RO' => 'Romania',
'RU' => 'Russia',
'SM' => 'San Marino',
'RS' => 'Serbia',
'SK' => 'Slovakia',
'SI' => 'Slovenia',
'ES' => 'Spain',
'SE' => 'Sweden',
'CH' => 'Switzerland',
'UA' => 'Ukraine',
'GB' => 'United Kingdom',
'VA' => 'Vatican City',
];
public static function getCountyCodes(): array
{
return array_keys(self::$countries);
}
public static function getCountyNames(): array
{
return array_values(self::$countries);
}
public static function getCountryNameByCode(string $countryCode): string
{
return self::$countries[$countryCode] ?? '';
}
/**
* @return string
*/
public function getCountryCode(): string
{
return $this->countryCode;
}
/**
* @param string $countryCode
*
* @return void
*/
public function setCountryCode(string $countryCode): void
{
$this->countryCode = $countryCode;
}
/**
* @return string
*/
public function getCountryName(): string
{
return $this->countryName;
}
/**
* @param string $countryName
*
* @return void
*/
public function setCountryName(string $countryName): void
{
$this->countryName = $countryName;
}
/**
* @return Language|null
*/
public function getLanguage(): ?Language
{
return $this->language;
}
/**
* @param Language|null $language
*
* @return void
*/
public function setLanguage(?Language $language): void
{
$this->language = $language;
}
}