1 Commits

Author SHA1 Message Date
858aa36773 Make all entity classes final 2025-10-21 22:13:08 +02:00
12 changed files with 71 additions and 68 deletions

117
composer.lock generated
View File

@@ -164,16 +164,16 @@
}, },
{ {
"name": "doctrine/collections", "name": "doctrine/collections",
"version": "2.4.0", "version": "2.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/collections.git", "url": "https://github.com/doctrine/collections.git",
"reference": "9acfeea2e8666536edff3d77c531261c63680160" "reference": "2eb07e5953eed811ce1b309a7478a3b236f2273d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/collections/zipball/9acfeea2e8666536edff3d77c531261c63680160", "url": "https://api.github.com/repos/doctrine/collections/zipball/2eb07e5953eed811ce1b309a7478a3b236f2273d",
"reference": "9acfeea2e8666536edff3d77c531261c63680160", "reference": "2eb07e5953eed811ce1b309a7478a3b236f2273d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -182,11 +182,11 @@
"symfony/polyfill-php84": "^1.30" "symfony/polyfill-php84": "^1.30"
}, },
"require-dev": { "require-dev": {
"doctrine/coding-standard": "^14", "doctrine/coding-standard": "^12",
"ext-json": "*", "ext-json": "*",
"phpstan/phpstan": "^2.1.30", "phpstan/phpstan": "^1.8",
"phpstan/phpstan-phpunit": "^2.0.7", "phpstan/phpstan-phpunit": "^1.0",
"phpunit/phpunit": "^10.5.58 || ^11.5.42 || ^12.4" "phpunit/phpunit": "^10.5"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@@ -230,7 +230,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/doctrine/collections/issues", "issues": "https://github.com/doctrine/collections/issues",
"source": "https://github.com/doctrine/collections/tree/2.4.0" "source": "https://github.com/doctrine/collections/tree/2.3.0"
}, },
"funding": [ "funding": [
{ {
@@ -246,7 +246,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-10-25T09:18:13+00:00" "time": "2025-03-22T10:17:19+00:00"
}, },
{ {
"name": "doctrine/dbal", "name": "doctrine/dbal",
@@ -1036,16 +1036,16 @@
}, },
{ {
"name": "doctrine/orm", "name": "doctrine/orm",
"version": "3.5.3", "version": "3.5.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/orm.git", "url": "https://github.com/doctrine/orm.git",
"reference": "1220edf9535303feb6dbfcf171beeef842fc9e1c" "reference": "5a541b8b3a327ab1ea5f93b1615b4ff67a34e109"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/orm/zipball/1220edf9535303feb6dbfcf171beeef842fc9e1c", "url": "https://api.github.com/repos/doctrine/orm/zipball/5a541b8b3a327ab1ea5f93b1615b4ff67a34e109",
"reference": "1220edf9535303feb6dbfcf171beeef842fc9e1c", "reference": "5a541b8b3a327ab1ea5f93b1615b4ff67a34e109",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1065,14 +1065,15 @@
"symfony/var-exporter": "^6.3.9 || ^7.0" "symfony/var-exporter": "^6.3.9 || ^7.0"
}, },
"require-dev": { "require-dev": {
"doctrine/coding-standard": "^14.0", "doctrine/coding-standard": "^13.0",
"phpbench/phpbench": "^1.0", "phpbench/phpbench": "^1.0",
"phpdocumentor/guides-cli": "^1.4", "phpdocumentor/guides-cli": "^1.4",
"phpstan/extension-installer": "^1.4", "phpstan/extension-installer": "^1.4",
"phpstan/phpstan": "2.1.22", "phpstan/phpstan": "2.0.3",
"phpstan/phpstan-deprecation-rules": "^2", "phpstan/phpstan-deprecation-rules": "^2",
"phpunit/phpunit": "^10.5.0 || ^11.5", "phpunit/phpunit": "^10.4.0",
"psr/log": "^1 || ^2 || ^3", "psr/log": "^1 || ^2 || ^3",
"squizlabs/php_codesniffer": "3.12.0",
"symfony/cache": "^5.4 || ^6.2 || ^7.0" "symfony/cache": "^5.4 || ^6.2 || ^7.0"
}, },
"suggest": { "suggest": {
@@ -1119,9 +1120,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/doctrine/orm/issues", "issues": "https://github.com/doctrine/orm/issues",
"source": "https://github.com/doctrine/orm/tree/3.5.3" "source": "https://github.com/doctrine/orm/tree/3.5.2"
}, },
"time": "2025-10-27T22:06:52+00:00" "time": "2025-08-08T17:00:40+00:00"
}, },
{ {
"name": "doctrine/persistence", "name": "doctrine/persistence",
@@ -1960,16 +1961,16 @@
}, },
{ {
"name": "phpoffice/phpspreadsheet", "name": "phpoffice/phpspreadsheet",
"version": "5.2.0", "version": "5.1.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/PHPOffice/PhpSpreadsheet.git", "url": "https://github.com/PHPOffice/PhpSpreadsheet.git",
"reference": "3b8994b3aac4b61018bc04fc8c441f4fd68c18eb" "reference": "fd26e45a814e94ae2aad0df757d9d1739c4bf2e0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/3b8994b3aac4b61018bc04fc8c441f4fd68c18eb", "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/fd26e45a814e94ae2aad0df757d9d1739c4bf2e0",
"reference": "3b8994b3aac4b61018bc04fc8c441f4fd68c18eb", "reference": "fd26e45a814e94ae2aad0df757d9d1739c4bf2e0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1999,7 +2000,7 @@
"dealerdirect/phpcodesniffer-composer-installer": "dev-main", "dealerdirect/phpcodesniffer-composer-installer": "dev-main",
"dompdf/dompdf": "^2.0 || ^3.0", "dompdf/dompdf": "^2.0 || ^3.0",
"friendsofphp/php-cs-fixer": "^3.2", "friendsofphp/php-cs-fixer": "^3.2",
"mitoteam/jpgraph": "^10.5", "mitoteam/jpgraph": "^10.3",
"mpdf/mpdf": "^8.1.1", "mpdf/mpdf": "^8.1.1",
"phpcompatibility/php-compatibility": "^9.3", "phpcompatibility/php-compatibility": "^9.3",
"phpstan/phpstan": "^1.1 || ^2.0", "phpstan/phpstan": "^1.1 || ^2.0",
@@ -2011,7 +2012,7 @@
}, },
"suggest": { "suggest": {
"dompdf/dompdf": "Option for rendering PDF with PDF Writer", "dompdf/dompdf": "Option for rendering PDF with PDF Writer",
"ext-intl": "PHP Internationalization Functions, regquired for NumberFormat Wizard", "ext-intl": "PHP Internationalization Functions",
"mitoteam/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers", "mitoteam/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers",
"mpdf/mpdf": "Option for rendering PDF with PDF Writer", "mpdf/mpdf": "Option for rendering PDF with PDF Writer",
"tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer" "tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer"
@@ -2060,9 +2061,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues",
"source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/5.2.0" "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/5.1.0"
}, },
"time": "2025-10-26T15:54:22+00:00" "time": "2025-09-04T05:34:49+00:00"
}, },
{ {
"name": "phpstan/phpdoc-parser", "name": "phpstan/phpdoc-parser",
@@ -6811,16 +6812,16 @@
}, },
{ {
"name": "symfony/stimulus-bundle", "name": "symfony/stimulus-bundle",
"version": "v2.31.0", "version": "v2.30.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/stimulus-bundle.git", "url": "https://github.com/symfony/stimulus-bundle.git",
"reference": "c5ea8ee2ccd45447b7f4b6b82f704ee5e76127f0" "reference": "668b9efe9d0ab8b4e50091263171609e0459c0c8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/stimulus-bundle/zipball/c5ea8ee2ccd45447b7f4b6b82f704ee5e76127f0", "url": "https://api.github.com/repos/symfony/stimulus-bundle/zipball/668b9efe9d0ab8b4e50091263171609e0459c0c8",
"reference": "c5ea8ee2ccd45447b7f4b6b82f704ee5e76127f0", "reference": "668b9efe9d0ab8b4e50091263171609e0459c0c8",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -6860,7 +6861,7 @@
"symfony-ux" "symfony-ux"
], ],
"support": { "support": {
"source": "https://github.com/symfony/stimulus-bundle/tree/v2.31.0" "source": "https://github.com/symfony/stimulus-bundle/tree/v2.30.0"
}, },
"funding": [ "funding": [
{ {
@@ -6880,7 +6881,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-09-24T13:27:42+00:00" "time": "2025-08-27T15:25:48+00:00"
}, },
{ {
"name": "symfony/stopwatch", "name": "symfony/stopwatch",
@@ -7574,16 +7575,16 @@
}, },
{ {
"name": "symfony/ux-turbo", "name": "symfony/ux-turbo",
"version": "v2.31.0", "version": "v2.30.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/ux-turbo.git", "url": "https://github.com/symfony/ux-turbo.git",
"reference": "06d5e4cf4573efe4faf648f3810a28c63684c706" "reference": "c5e88c7e16713e84a2a35f36276ccdb05c2c78d8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/ux-turbo/zipball/06d5e4cf4573efe4faf648f3810a28c63684c706", "url": "https://api.github.com/repos/symfony/ux-turbo/zipball/c5e88c7e16713e84a2a35f36276ccdb05c2c78d8",
"reference": "06d5e4cf4573efe4faf648f3810a28c63684c706", "reference": "c5e88c7e16713e84a2a35f36276ccdb05c2c78d8",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -7596,7 +7597,7 @@
"require-dev": { "require-dev": {
"dbrekelmans/bdi": "dev-main", "dbrekelmans/bdi": "dev-main",
"doctrine/doctrine-bundle": "^2.4.3", "doctrine/doctrine-bundle": "^2.4.3",
"doctrine/orm": "^2.8|^3.0", "doctrine/orm": "^2.8 | 3.0",
"php-webdriver/webdriver": "^1.15", "php-webdriver/webdriver": "^1.15",
"phpstan/phpstan": "^2.1.17", "phpstan/phpstan": "^2.1.17",
"symfony/asset-mapper": "^6.4|^7.0|^8.0", "symfony/asset-mapper": "^6.4|^7.0|^8.0",
@@ -7653,7 +7654,7 @@
"turbo-stream" "turbo-stream"
], ],
"support": { "support": {
"source": "https://github.com/symfony/ux-turbo/tree/v2.31.0" "source": "https://github.com/symfony/ux-turbo/tree/v2.30.0"
}, },
"funding": [ "funding": [
{ {
@@ -7673,20 +7674,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-10-16T07:24:06+00:00" "time": "2025-08-27T15:25:48+00:00"
}, },
{ {
"name": "symfony/validator", "name": "symfony/validator",
"version": "v7.3.5", "version": "v7.3.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/validator.git", "url": "https://github.com/symfony/validator.git",
"reference": "724086992fb7c7882d05c9d2219d70401ab9fdda" "reference": "5e29a348b5fac2227b6938a54db006d673bb813a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/validator/zipball/724086992fb7c7882d05c9d2219d70401ab9fdda", "url": "https://api.github.com/repos/symfony/validator/zipball/5e29a348b5fac2227b6938a54db006d673bb813a",
"reference": "724086992fb7c7882d05c9d2219d70401ab9fdda", "reference": "5e29a348b5fac2227b6938a54db006d673bb813a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -7755,7 +7756,7 @@
"description": "Provides tools to validate values", "description": "Provides tools to validate values",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/validator/tree/v7.3.5" "source": "https://github.com/symfony/validator/tree/v7.3.4"
}, },
"funding": [ "funding": [
{ {
@@ -7775,7 +7776,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-10-24T14:27:20+00:00" "time": "2025-09-24T06:32:27+00:00"
}, },
{ {
"name": "symfony/var-dumper", "name": "symfony/var-dumper",
@@ -8946,16 +8947,16 @@
}, },
{ {
"name": "friendsofphp/php-cs-fixer", "name": "friendsofphp/php-cs-fixer",
"version": "v3.89.1", "version": "v3.89.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
"reference": "f34967da2866ace090a2b447de1f357356474573" "reference": "4dd6768cb7558440d27d18f54909eee417317ce9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/f34967da2866ace090a2b447de1f357356474573", "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/4dd6768cb7558440d27d18f54909eee417317ce9",
"reference": "f34967da2866ace090a2b447de1f357356474573", "reference": "4dd6768cb7558440d27d18f54909eee417317ce9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -9037,7 +9038,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.89.1" "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.89.0"
}, },
"funding": [ "funding": [
{ {
@@ -9045,7 +9046,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2025-10-24T12:05:10+00:00" "time": "2025-10-18T19:30:16+00:00"
}, },
{ {
"name": "masterminds/html5", "name": "masterminds/html5",
@@ -10615,16 +10616,16 @@
}, },
{ {
"name": "rector/rector", "name": "rector/rector",
"version": "2.2.6", "version": "2.2.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/rectorphp/rector.git", "url": "https://github.com/rectorphp/rector.git",
"reference": "5c5bbc956b9a056a26cb593379253104b7ed9c2d" "reference": "d27f976a332a87b5d03553c2e6f04adbe5da034f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/rectorphp/rector/zipball/5c5bbc956b9a056a26cb593379253104b7ed9c2d", "url": "https://api.github.com/repos/rectorphp/rector/zipball/d27f976a332a87b5d03553c2e6f04adbe5da034f",
"reference": "5c5bbc956b9a056a26cb593379253104b7ed9c2d", "reference": "d27f976a332a87b5d03553c2e6f04adbe5da034f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -10663,7 +10664,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/rectorphp/rector/issues", "issues": "https://github.com/rectorphp/rector/issues",
"source": "https://github.com/rectorphp/rector/tree/2.2.6" "source": "https://github.com/rectorphp/rector/tree/2.2.3"
}, },
"funding": [ "funding": [
{ {
@@ -10671,7 +10672,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2025-10-27T11:35:56+00:00" "time": "2025-10-11T21:50:23+00:00"
}, },
{ {
"name": "roave/security-advisories", "name": "roave/security-advisories",

View File

@@ -42,6 +42,8 @@ when@test:
when@prod: when@prod:
doctrine: doctrine:
orm: orm:
auto_generate_proxy_classes: false
proxy_dir: '%kernel.build_dir%/doctrine/orm/Proxies'
query_cache_driver: query_cache_driver:
type: pool type: pool
pool: doctrine.system_cache_pool pool: doctrine.system_cache_pool

View File

@@ -13,7 +13,7 @@ use Symfony\Component\Uid\Uuid;
use Tvdt\Repository\AnswerRepository; use Tvdt\Repository\AnswerRepository;
#[ORM\Entity(repositoryClass: AnswerRepository::class)] #[ORM\Entity(repositoryClass: AnswerRepository::class)]
class Answer final class Answer
{ {
#[ORM\Column(type: UuidType::NAME)] #[ORM\Column(type: UuidType::NAME)]
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')] #[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]

View File

@@ -14,7 +14,7 @@ use Tvdt\Repository\CandidateRepository;
#[ORM\Entity(repositoryClass: CandidateRepository::class)] #[ORM\Entity(repositoryClass: CandidateRepository::class)]
#[ORM\UniqueConstraint(fields: ['name', 'season'])] #[ORM\UniqueConstraint(fields: ['name', 'season'])]
class Candidate final class Candidate
{ {
#[ORM\Column(type: UuidType::NAME, unique: true)] #[ORM\Column(type: UuidType::NAME, unique: true)]
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')] #[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]

View File

@@ -14,7 +14,7 @@ use Tvdt\Repository\EliminationRepository;
#[ORM\Entity(repositoryClass: EliminationRepository::class)] #[ORM\Entity(repositoryClass: EliminationRepository::class)]
#[ORM\HasLifecycleCallbacks] #[ORM\HasLifecycleCallbacks]
class Elimination final class Elimination
{ {
public const string SCREEN_GREEN = 'green'; public const string SCREEN_GREEN = 'green';

View File

@@ -13,7 +13,7 @@ use Tvdt\Repository\GivenAnswerRepository;
#[ORM\Entity(repositoryClass: GivenAnswerRepository::class)] #[ORM\Entity(repositoryClass: GivenAnswerRepository::class)]
#[ORM\HasLifecycleCallbacks] #[ORM\HasLifecycleCallbacks]
class GivenAnswer final class GivenAnswer
{ {
#[ORM\Column(type: UuidType::NAME, unique: true)] #[ORM\Column(type: UuidType::NAME, unique: true)]
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')] #[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]

View File

@@ -13,7 +13,7 @@ use Symfony\Component\Uid\Uuid;
use Tvdt\Repository\QuestionRepository; use Tvdt\Repository\QuestionRepository;
#[ORM\Entity(repositoryClass: QuestionRepository::class)] #[ORM\Entity(repositoryClass: QuestionRepository::class)]
class Question final class Question
{ {
#[ORM\Column(type: UuidType::NAME)] #[ORM\Column(type: UuidType::NAME)]
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')] #[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]

View File

@@ -13,7 +13,7 @@ use Tvdt\Repository\QuizRepository;
#[ORM\Entity(repositoryClass: QuizRepository::class)] #[ORM\Entity(repositoryClass: QuizRepository::class)]
#[ORM\UniqueConstraint(fields: ['name', 'season'])] #[ORM\UniqueConstraint(fields: ['name', 'season'])]
class Quiz final class Quiz
{ {
#[ORM\Column(type: UuidType::NAME)] #[ORM\Column(type: UuidType::NAME)]
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')] #[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]

View File

@@ -14,7 +14,7 @@ use Tvdt\Repository\QuizCandidateRepository;
#[ORM\Entity(repositoryClass: QuizCandidateRepository::class)] #[ORM\Entity(repositoryClass: QuizCandidateRepository::class)]
#[ORM\HasLifecycleCallbacks] #[ORM\HasLifecycleCallbacks]
#[ORM\UniqueConstraint(columns: ['candidate_id', 'quiz_id'])] #[ORM\UniqueConstraint(columns: ['candidate_id', 'quiz_id'])]
class QuizCandidate final class QuizCandidate
{ {
#[ORM\Column(type: UuidType::NAME, unique: true)] #[ORM\Column(type: UuidType::NAME, unique: true)]
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')] #[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]

View File

@@ -12,7 +12,7 @@ use Symfony\Component\Uid\Uuid;
use Tvdt\Repository\SeasonRepository; use Tvdt\Repository\SeasonRepository;
#[ORM\Entity(repositoryClass: SeasonRepository::class)] #[ORM\Entity(repositoryClass: SeasonRepository::class)]
class Season final class Season
{ {
private const string SEASON_CODE_CHARACTERS = 'bcdfghjklmnpqrstvwxz'; private const string SEASON_CODE_CHARACTERS = 'bcdfghjklmnpqrstvwxz';

View File

@@ -11,7 +11,7 @@ use Symfony\Component\Uid\Uuid;
use Tvdt\Repository\SeasonSettingsRepository; use Tvdt\Repository\SeasonSettingsRepository;
#[ORM\Entity(repositoryClass: SeasonSettingsRepository::class)] #[ORM\Entity(repositoryClass: SeasonSettingsRepository::class)]
class SeasonSettings final class SeasonSettings
{ {
#[ORM\Column(type: UuidType::NAME)] #[ORM\Column(type: UuidType::NAME)]
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')] #[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]

View File

@@ -19,7 +19,7 @@ use Tvdt\Repository\UserRepository;
#[ORM\Table(name: '`user`')] #[ORM\Table(name: '`user`')]
#[ORM\UniqueConstraint(name: 'UNIQ_IDENTIFIER_EMAIL', fields: ['email'])] #[ORM\UniqueConstraint(name: 'UNIQ_IDENTIFIER_EMAIL', fields: ['email'])]
#[UniqueEntity(fields: ['email'], message: 'There is already an account with this email')] #[UniqueEntity(fields: ['email'], message: 'There is already an account with this email')]
class User implements UserInterface, PasswordAuthenticatedUserInterface final class User implements UserInterface, PasswordAuthenticatedUserInterface
{ {
#[ORM\Column(type: UuidType::NAME, unique: true)] #[ORM\Column(type: UuidType::NAME, unique: true)]
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')] #[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]