src/AtechNet/CoreBundle/Entity/Country.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\AtechNet\CoreBundle\Entity;
  3. use App\AtechNet\CoreBundle\Repository\CountryRepository;
  4. use Doctrine\ORM\Mapping\Column;
  5. use Doctrine\ORM\Mapping\Entity;
  6. use Doctrine\ORM\Mapping\JoinColumn;
  7. use Doctrine\ORM\Mapping\ManyToOne;
  8. use Doctrine\ORM\Mapping\Table as Table;
  9. use Symfony\Component\Validator\Constraints as Assert;
  10. /**
  11.  * Country
  12.  *
  13.  * @Table(name="countries")
  14.  * @Entity(repositoryClass="App\AtechNet\CoreBundle\Repository\CountryRepository")
  15.  */
  16. class Country extends AbstractEntity
  17. {
  18.     /**
  19.      * @var string
  20.      *
  21.      * @Assert\NotNull
  22.      *
  23.      * @Column(name="country_code", type="string", length=10)
  24.      */
  25.     private string $countryCode;
  26.     /**
  27.      * @var string
  28.      *
  29.      * @Assert\NotNull
  30.      *
  31.      * @Column(name="country_name", type="string", length=255)
  32.      */
  33.     private string $countryName;
  34.     /**
  35.      * @var Language
  36.      *
  37.      * @ManyToOne(targetEntity="Language", inversedBy="countries")
  38.      * @JoinColumn(name="language_id", referencedColumnName="id")
  39.      */
  40.     private $language;
  41.     public static array $countries = [
  42.         'AL' => 'Albania',
  43.         'AD' => 'Andorra',
  44.         'AT' => 'Austria',
  45.         'BY' => 'Belarus',
  46.         'BE' => 'Belgium',
  47.         'BA' => 'Bosnia and Herzegovina',
  48.         'BG' => 'Bulgaria',
  49.         'HR' => 'Croatia',
  50.         'CY' => 'Cyprus',
  51.         'CZ' => 'Czech Republic',
  52.         'DK' => 'Denmark',
  53.         'EE' => 'Estonia',
  54.         'FI' => 'Finland',
  55.         'FR' => 'France',
  56.         'DE' => 'Germany',
  57.         'GR' => 'Greece',
  58.         'HU' => 'Hungary',
  59.         'IS' => 'Iceland',
  60.         'IE' => 'Ireland',
  61.         'IT' => 'Italy',
  62.         'XK' => 'Kosovo',
  63.         'LV' => 'Latvia',
  64.         'LI' => 'Liechtenstein',
  65.         'LT' => 'Lithuania',
  66.         'LU' => 'Luxembourg',
  67.         'MT' => 'Malta',
  68.         'MD' => 'Moldova',
  69.         'MC' => 'Monaco',
  70.         'ME' => 'Montenegro',
  71.         'NL' => 'Netherlands',
  72.         'MK' => 'North Macedonia',
  73.         'NO' => 'Norway',
  74.         'PL' => 'Poland',
  75.         'PT' => 'Portugal',
  76.         'RO' => 'Romania',
  77.         'RU' => 'Russia',
  78.         'SM' => 'San Marino',
  79.         'RS' => 'Serbia',
  80.         'SK' => 'Slovakia',
  81.         'SI' => 'Slovenia',
  82.         'ES' => 'Spain',
  83.         'SE' => 'Sweden',
  84.         'CH' => 'Switzerland',
  85.         'UA' => 'Ukraine',
  86.         'GB' => 'United Kingdom',
  87.         'VA' => 'Vatican City',
  88.     ];
  89.     public static function getCountyCodes(): array
  90.     {
  91.         return array_keys(self::$countries);
  92.     }
  93.     public static function getCountyNames(): array
  94.     {
  95.         return array_values(self::$countries);
  96.     }
  97.     public static function getCountryNameByCode(string $countryCode): string
  98.     {
  99.         return self::$countries[$countryCode] ?? '';
  100.     }
  101.     /**
  102.      * @return string
  103.      */
  104.     public function getCountryCode(): string
  105.     {
  106.         return $this->countryCode;
  107.     }
  108.     /**
  109.      * @param string $countryCode
  110.      *
  111.      * @return void
  112.      */
  113.     public function setCountryCode(string $countryCode): void
  114.     {
  115.         $this->countryCode = $countryCode;
  116.     }
  117.     /**
  118.      * @return string
  119.      */
  120.     public function getCountryName(): string
  121.     {
  122.         return $this->countryName;
  123.     }
  124.     /**
  125.      * @param string $countryName
  126.      *
  127.      * @return void
  128.      */
  129.     public function setCountryName(string $countryName): void
  130.     {
  131.         $this->countryName = $countryName;
  132.     }
  133.     /**
  134.      * @return Language|null
  135.      */
  136.     public function getLanguage(): ?Language
  137.     {
  138.         return $this->language;
  139.     }
  140.     /**
  141.      * @param Language|null $language
  142.      *
  143.      * @return void
  144.      */
  145.     public function setLanguage(?Language $language): void
  146.     {
  147.         $this->language = $language;
  148.     }
  149. }