Add brand relationship to sockets, fix some things to work with new Doctrine version

This commit is contained in:
Timothy Warren 2024-04-04 18:11:51 -04:00
parent 540949b9d5
commit 7732999fa5
25 changed files with 573 additions and 206 deletions

View File

@ -4,25 +4,25 @@
"require": {
"php": ">=8.2",
"composer/package-versions-deprecated": "1.11.99.5",
"doctrine/doctrine-bundle": "^2.8.2",
"doctrine/doctrine-migrations-bundle": "^3.2.2",
"doctrine/doctrine-bundle": "^2.12.0",
"doctrine/doctrine-migrations-bundle": "^3.3.0",
"doctrine/orm": "^3.1.1",
"symfony/form": "^7.0.4",
"symfony/maker-bundle": "^1.48",
"symfony/monolog-bundle": "^3.8",
"symfony/security-bundle": "^7.0.5",
"symfony/form": "^7.0.6",
"symfony/maker-bundle": "^1.57",
"symfony/monolog-bundle": "^3.10",
"symfony/security-bundle": "^7.0.6",
"symfony/security-csrf": "^7.0.3",
"symfony/translation": "^7.0.4",
"symfony/twig-bundle": "^7.0.4",
"symfony/validator": "^7.0.5",
"symfony/validator": "^7.0.6",
"symfony/yaml": "^7.0.3",
"twig/twig": "^2.12|^3.5"
"twig/twig": "^2.12|^3.8"
},
"require-dev": {
"phpunit/phpunit": "^11.0.8",
"phpunit/phpunit": "^11.0.9",
"roave/security-advisories": "dev-master",
"symfony/dotenv": "^7.0.4",
"symfony/flex": "^2.2.4",
"symfony/flex": "^2.4.5",
"symfony/stopwatch": "^7.0.3",
"symfony/web-profiler-bundle": "^7.0.4"
},

322
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "85806096bd6f8773941231eb16c2ae43",
"content-hash": "b75f34aab27ac42762f29acd2a18f8bd",
"packages": [
{
"name": "composer/package-versions-deprecated",
@ -1704,16 +1704,16 @@
},
{
"name": "symfony/cache",
"version": "v7.0.4",
"version": "v7.0.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache.git",
"reference": "fc822951dd360a593224bb2cef90a087d0dff60f"
"reference": "2d0d3f92c74c445410d05374908b03e0a1131e2b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/cache/zipball/fc822951dd360a593224bb2cef90a087d0dff60f",
"reference": "fc822951dd360a593224bb2cef90a087d0dff60f",
"url": "https://api.github.com/repos/symfony/cache/zipball/2d0d3f92c74c445410d05374908b03e0a1131e2b",
"reference": "2d0d3f92c74c445410d05374908b03e0a1131e2b",
"shasum": ""
},
"require": {
@ -1780,7 +1780,7 @@
"psr6"
],
"support": {
"source": "https://github.com/symfony/cache/tree/v7.0.4"
"source": "https://github.com/symfony/cache/tree/v7.0.6"
},
"funding": [
{
@ -1796,20 +1796,20 @@
"type": "tidelift"
}
],
"time": "2024-02-22T20:27:20+00:00"
"time": "2024-03-27T19:55:25+00:00"
},
{
"name": "symfony/cache-contracts",
"version": "v3.4.0",
"version": "v3.4.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache-contracts.git",
"reference": "1d74b127da04ffa87aa940abe15446fa89653778"
"reference": "2c9db6509a1b21dad229606897639d3284f54b2a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/cache-contracts/zipball/1d74b127da04ffa87aa940abe15446fa89653778",
"reference": "1d74b127da04ffa87aa940abe15446fa89653778",
"url": "https://api.github.com/repos/symfony/cache-contracts/zipball/2c9db6509a1b21dad229606897639d3284f54b2a",
"reference": "2c9db6509a1b21dad229606897639d3284f54b2a",
"shasum": ""
},
"require": {
@ -1856,7 +1856,7 @@
"standards"
],
"support": {
"source": "https://github.com/symfony/cache-contracts/tree/v3.4.0"
"source": "https://github.com/symfony/cache-contracts/tree/v3.4.2"
},
"funding": [
{
@ -1872,7 +1872,7 @@
"type": "tidelift"
}
],
"time": "2023-09-25T12:52:38+00:00"
"time": "2024-01-23T14:51:35+00:00"
},
{
"name": "symfony/clock",
@ -1950,16 +1950,16 @@
},
{
"name": "symfony/config",
"version": "v7.0.4",
"version": "v7.0.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/config.git",
"reference": "44deeba7233f08f383185ffa37dace3b3bc87364"
"reference": "7fc7e18a73ec8125fd95928c0340470d64760deb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/config/zipball/44deeba7233f08f383185ffa37dace3b3bc87364",
"reference": "44deeba7233f08f383185ffa37dace3b3bc87364",
"url": "https://api.github.com/repos/symfony/config/zipball/7fc7e18a73ec8125fd95928c0340470d64760deb",
"reference": "7fc7e18a73ec8125fd95928c0340470d64760deb",
"shasum": ""
},
"require": {
@ -2005,7 +2005,7 @@
"description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/config/tree/v7.0.4"
"source": "https://github.com/symfony/config/tree/v7.0.6"
},
"funding": [
{
@ -2021,20 +2021,20 @@
"type": "tidelift"
}
],
"time": "2024-02-26T07:52:39+00:00"
"time": "2024-03-27T19:55:25+00:00"
},
{
"name": "symfony/console",
"version": "v7.0.4",
"version": "v7.0.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "6b099f3306f7c9c2d2786ed736d0026b2903205f"
"reference": "fde915cd8e7eb99b3d531d3d5c09531429c3f9e5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/6b099f3306f7c9c2d2786ed736d0026b2903205f",
"reference": "6b099f3306f7c9c2d2786ed736d0026b2903205f",
"url": "https://api.github.com/repos/symfony/console/zipball/fde915cd8e7eb99b3d531d3d5c09531429c3f9e5",
"reference": "fde915cd8e7eb99b3d531d3d5c09531429c3f9e5",
"shasum": ""
},
"require": {
@ -2098,7 +2098,7 @@
"terminal"
],
"support": {
"source": "https://github.com/symfony/console/tree/v7.0.4"
"source": "https://github.com/symfony/console/tree/v7.0.6"
},
"funding": [
{
@ -2114,20 +2114,20 @@
"type": "tidelift"
}
],
"time": "2024-02-22T20:27:20+00:00"
"time": "2024-04-01T11:04:53+00:00"
},
{
"name": "symfony/dependency-injection",
"version": "v7.0.4",
"version": "v7.0.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
"reference": "47f37af245df8457ea63409fc242b3cc825ce5eb"
"reference": "ff57b5c7d518c39eeb4e69dc0d1ec70723a117b9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/47f37af245df8457ea63409fc242b3cc825ce5eb",
"reference": "47f37af245df8457ea63409fc242b3cc825ce5eb",
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/ff57b5c7d518c39eeb4e69dc0d1ec70723a117b9",
"reference": "ff57b5c7d518c39eeb4e69dc0d1ec70723a117b9",
"shasum": ""
},
"require": {
@ -2178,7 +2178,7 @@
"description": "Allows you to standardize and centralize the way objects are constructed in your application",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/dependency-injection/tree/v7.0.4"
"source": "https://github.com/symfony/dependency-injection/tree/v7.0.6"
},
"funding": [
{
@ -2194,7 +2194,7 @@
"type": "tidelift"
}
],
"time": "2024-02-22T20:27:20+00:00"
"time": "2024-03-28T09:20:36+00:00"
},
{
"name": "symfony/deprecation-contracts",
@ -2265,16 +2265,16 @@
},
{
"name": "symfony/doctrine-bridge",
"version": "v7.0.5",
"version": "v7.0.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/doctrine-bridge.git",
"reference": "e3cf34996df541c62acc1bd5f187aacc18a204d2"
"reference": "929527febf8e134eaba620de1f9396da1db0df85"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/e3cf34996df541c62acc1bd5f187aacc18a204d2",
"reference": "e3cf34996df541c62acc1bd5f187aacc18a204d2",
"url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/929527febf8e134eaba620de1f9396da1db0df85",
"reference": "929527febf8e134eaba620de1f9396da1db0df85",
"shasum": ""
},
"require": {
@ -2291,7 +2291,7 @@
"doctrine/orm": "<2.15",
"symfony/cache": "<6.4",
"symfony/dependency-injection": "<6.4",
"symfony/form": "<6.4",
"symfony/form": "<6.4.6|>=7,<7.0.6",
"symfony/http-foundation": "<6.4",
"symfony/http-kernel": "<6.4",
"symfony/lock": "<6.4",
@ -2312,7 +2312,7 @@
"symfony/dependency-injection": "^6.4|^7.0",
"symfony/doctrine-messenger": "^6.4|^7.0",
"symfony/expression-language": "^6.4|^7.0",
"symfony/form": "^6.4|^7.0",
"symfony/form": "^6.4.6|^7.0.6",
"symfony/http-kernel": "^6.4|^7.0",
"symfony/lock": "^6.4|^7.0",
"symfony/messenger": "^6.4|^7.0",
@ -2351,7 +2351,7 @@
"description": "Provides integration for Doctrine with various Symfony components",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/doctrine-bridge/tree/v7.0.5"
"source": "https://github.com/symfony/doctrine-bridge/tree/v7.0.6"
},
"funding": [
{
@ -2367,20 +2367,20 @@
"type": "tidelift"
}
],
"time": "2024-02-27T12:34:35+00:00"
"time": "2024-03-19T09:29:21+00:00"
},
{
"name": "symfony/error-handler",
"version": "v7.0.4",
"version": "v7.0.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
"reference": "677b24759decff69e65b1e9d1471d90f95ced880"
"reference": "46a4cc138f799886d4bd70477c55c699d3e9dfc8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/error-handler/zipball/677b24759decff69e65b1e9d1471d90f95ced880",
"reference": "677b24759decff69e65b1e9d1471d90f95ced880",
"url": "https://api.github.com/repos/symfony/error-handler/zipball/46a4cc138f799886d4bd70477c55c699d3e9dfc8",
"reference": "46a4cc138f799886d4bd70477c55c699d3e9dfc8",
"shasum": ""
},
"require": {
@ -2426,7 +2426,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/error-handler/tree/v7.0.4"
"source": "https://github.com/symfony/error-handler/tree/v7.0.6"
},
"funding": [
{
@ -2442,7 +2442,7 @@
"type": "tidelift"
}
],
"time": "2024-02-22T20:27:20+00:00"
"time": "2024-03-19T11:57:22+00:00"
},
{
"name": "symfony/event-dispatcher",
@ -2526,16 +2526,16 @@
},
{
"name": "symfony/event-dispatcher-contracts",
"version": "v3.4.0",
"version": "v3.4.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
"reference": "a76aed96a42d2b521153fb382d418e30d18b59df"
"reference": "4e64b49bf370ade88e567de29465762e316e4224"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df",
"reference": "a76aed96a42d2b521153fb382d418e30d18b59df",
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/4e64b49bf370ade88e567de29465762e316e4224",
"reference": "4e64b49bf370ade88e567de29465762e316e4224",
"shasum": ""
},
"require": {
@ -2582,7 +2582,7 @@
"standards"
],
"support": {
"source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0"
"source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.2"
},
"funding": [
{
@ -2598,20 +2598,20 @@
"type": "tidelift"
}
],
"time": "2023-05-23T14:45:45+00:00"
"time": "2024-01-23T14:51:35+00:00"
},
{
"name": "symfony/filesystem",
"version": "v7.0.3",
"version": "v7.0.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
"reference": "2890e3a825bc0c0558526c04499c13f83e1b6b12"
"reference": "408105dff4c104454100730bdfd1a9cdd993f04d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/2890e3a825bc0c0558526c04499c13f83e1b6b12",
"reference": "2890e3a825bc0c0558526c04499c13f83e1b6b12",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/408105dff4c104454100730bdfd1a9cdd993f04d",
"reference": "408105dff4c104454100730bdfd1a9cdd993f04d",
"shasum": ""
},
"require": {
@ -2645,7 +2645,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/filesystem/tree/v7.0.3"
"source": "https://github.com/symfony/filesystem/tree/v7.0.6"
},
"funding": [
{
@ -2661,7 +2661,7 @@
"type": "tidelift"
}
],
"time": "2024-01-23T15:02:46+00:00"
"time": "2024-03-21T19:37:36+00:00"
},
{
"name": "symfony/finder",
@ -2729,16 +2729,16 @@
},
{
"name": "symfony/form",
"version": "v7.0.4",
"version": "v7.0.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/form.git",
"reference": "5cfe85c74caf924c7cec2134e169320b464ede84"
"reference": "d5db6599775a563792391d0045decc240e7ebd1e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/form/zipball/5cfe85c74caf924c7cec2134e169320b464ede84",
"reference": "5cfe85c74caf924c7cec2134e169320b464ede84",
"url": "https://api.github.com/repos/symfony/form/zipball/d5db6599775a563792391d0045decc240e7ebd1e",
"reference": "d5db6599775a563792391d0045decc240e7ebd1e",
"shasum": ""
},
"require": {
@ -2805,7 +2805,7 @@
"description": "Allows to easily create, process and reuse HTML forms",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/form/tree/v7.0.4"
"source": "https://github.com/symfony/form/tree/v7.0.6"
},
"funding": [
{
@ -2821,20 +2821,20 @@
"type": "tidelift"
}
],
"time": "2024-02-12T11:15:03+00:00"
"time": "2024-03-28T09:20:36+00:00"
},
{
"name": "symfony/framework-bundle",
"version": "v7.0.4",
"version": "v7.0.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/framework-bundle.git",
"reference": "b58bcb2f9c32405b8fbaa24a1e38c8a10bad7b21"
"reference": "5ebf6771f92d135c2bdbda7133998feb74713658"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/framework-bundle/zipball/b58bcb2f9c32405b8fbaa24a1e38c8a10bad7b21",
"reference": "b58bcb2f9c32405b8fbaa24a1e38c8a10bad7b21",
"url": "https://api.github.com/repos/symfony/framework-bundle/zipball/5ebf6771f92d135c2bdbda7133998feb74713658",
"reference": "5ebf6771f92d135c2bdbda7133998feb74713658",
"shasum": ""
},
"require": {
@ -2951,7 +2951,7 @@
"description": "Provides a tight integration between Symfony components and the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/framework-bundle/tree/v7.0.4"
"source": "https://github.com/symfony/framework-bundle/tree/v7.0.6"
},
"funding": [
{
@ -2967,20 +2967,20 @@
"type": "tidelift"
}
],
"time": "2024-02-26T07:52:39+00:00"
"time": "2024-03-27T19:55:25+00:00"
},
{
"name": "symfony/http-foundation",
"version": "v7.0.4",
"version": "v7.0.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
"reference": "439fdfdd344943254b1ef6278613e79040548045"
"reference": "8789625dcf36e5fbf753014678a1e090f1bc759c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/439fdfdd344943254b1ef6278613e79040548045",
"reference": "439fdfdd344943254b1ef6278613e79040548045",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/8789625dcf36e5fbf753014678a1e090f1bc759c",
"reference": "8789625dcf36e5fbf753014678a1e090f1bc759c",
"shasum": ""
},
"require": {
@ -3028,7 +3028,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/http-foundation/tree/v7.0.4"
"source": "https://github.com/symfony/http-foundation/tree/v7.0.6"
},
"funding": [
{
@ -3044,20 +3044,20 @@
"type": "tidelift"
}
],
"time": "2024-02-08T19:22:56+00:00"
"time": "2024-03-19T11:46:48+00:00"
},
{
"name": "symfony/http-kernel",
"version": "v7.0.5",
"version": "v7.0.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
"reference": "37c24ca28f65e3121a68f3dd4daeb36fb1fa2a72"
"reference": "34c872391046d59af804af62d4573b829cfe4824"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/37c24ca28f65e3121a68f3dd4daeb36fb1fa2a72",
"reference": "37c24ca28f65e3121a68f3dd4daeb36fb1fa2a72",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/34c872391046d59af804af62d4573b829cfe4824",
"reference": "34c872391046d59af804af62d4573b829cfe4824",
"shasum": ""
},
"require": {
@ -3140,7 +3140,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/http-kernel/tree/v7.0.5"
"source": "https://github.com/symfony/http-kernel/tree/v7.0.6"
},
"funding": [
{
@ -3156,7 +3156,7 @@
"type": "tidelift"
}
],
"time": "2024-03-04T21:05:24+00:00"
"time": "2024-04-03T06:12:25+00:00"
},
{
"name": "symfony/maker-bundle",
@ -4170,16 +4170,16 @@
},
{
"name": "symfony/property-access",
"version": "v7.0.4",
"version": "v7.0.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/property-access.git",
"reference": "44e3746d4de8d0961a44ee332c74dd0918266127"
"reference": "1c268ba954ccc5e78cf035b391abb67759e24423"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/property-access/zipball/44e3746d4de8d0961a44ee332c74dd0918266127",
"reference": "44e3746d4de8d0961a44ee332c74dd0918266127",
"url": "https://api.github.com/repos/symfony/property-access/zipball/1c268ba954ccc5e78cf035b391abb67759e24423",
"reference": "1c268ba954ccc5e78cf035b391abb67759e24423",
"shasum": ""
},
"require": {
@ -4226,7 +4226,7 @@
"reflection"
],
"support": {
"source": "https://github.com/symfony/property-access/tree/v7.0.4"
"source": "https://github.com/symfony/property-access/tree/v7.0.6"
},
"funding": [
{
@ -4242,20 +4242,20 @@
"type": "tidelift"
}
],
"time": "2024-02-16T13:44:10+00:00"
"time": "2024-03-19T11:57:22+00:00"
},
{
"name": "symfony/property-info",
"version": "v7.0.3",
"version": "v7.0.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/property-info.git",
"reference": "e160f92ea827243abf2dbf36b8460b1377194406"
"reference": "b8844ddce7d53f78b57ec9be59da80fceddf3167"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/property-info/zipball/e160f92ea827243abf2dbf36b8460b1377194406",
"reference": "e160f92ea827243abf2dbf36b8460b1377194406",
"url": "https://api.github.com/repos/symfony/property-info/zipball/b8844ddce7d53f78b57ec9be59da80fceddf3167",
"reference": "b8844ddce7d53f78b57ec9be59da80fceddf3167",
"shasum": ""
},
"require": {
@ -4309,7 +4309,7 @@
"validator"
],
"support": {
"source": "https://github.com/symfony/property-info/tree/v7.0.3"
"source": "https://github.com/symfony/property-info/tree/v7.0.6"
},
"funding": [
{
@ -4325,20 +4325,20 @@
"type": "tidelift"
}
],
"time": "2024-01-23T15:02:46+00:00"
"time": "2024-03-28T09:20:36+00:00"
},
{
"name": "symfony/routing",
"version": "v7.0.5",
"version": "v7.0.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
"reference": "ba6bf07d43289c6a4b4591ddb75bc3bc5f069c19"
"reference": "cded64e5bbf9f31786f1055fcc76718fdd77519c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/routing/zipball/ba6bf07d43289c6a4b4591ddb75bc3bc5f069c19",
"reference": "ba6bf07d43289c6a4b4591ddb75bc3bc5f069c19",
"url": "https://api.github.com/repos/symfony/routing/zipball/cded64e5bbf9f31786f1055fcc76718fdd77519c",
"reference": "cded64e5bbf9f31786f1055fcc76718fdd77519c",
"shasum": ""
},
"require": {
@ -4390,7 +4390,7 @@
"url"
],
"support": {
"source": "https://github.com/symfony/routing/tree/v7.0.5"
"source": "https://github.com/symfony/routing/tree/v7.0.6"
},
"funding": [
{
@ -4406,20 +4406,20 @@
"type": "tidelift"
}
],
"time": "2024-02-27T12:34:35+00:00"
"time": "2024-03-28T21:02:11+00:00"
},
{
"name": "symfony/security-bundle",
"version": "v7.0.5",
"version": "v7.0.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/security-bundle.git",
"reference": "5d620bd5493d62d8016b2383d8690fade66163c1"
"reference": "96a9e4eaf76514674d8ffd6127d8ec1204b72e7f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/security-bundle/zipball/5d620bd5493d62d8016b2383d8690fade66163c1",
"reference": "5d620bd5493d62d8016b2383d8690fade66163c1",
"url": "https://api.github.com/repos/symfony/security-bundle/zipball/96a9e4eaf76514674d8ffd6127d8ec1204b72e7f",
"reference": "96a9e4eaf76514674d8ffd6127d8ec1204b72e7f",
"shasum": ""
},
"require": {
@ -4501,7 +4501,7 @@
"description": "Provides a tight integration of the Security component into the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/security-bundle/tree/v7.0.5"
"source": "https://github.com/symfony/security-bundle/tree/v7.0.6"
},
"funding": [
{
@ -4517,7 +4517,7 @@
"type": "tidelift"
}
],
"time": "2024-03-02T12:46:12+00:00"
"time": "2024-03-15T12:53:12+00:00"
},
{
"name": "symfony/security-core",
@ -4760,16 +4760,16 @@
},
{
"name": "symfony/service-contracts",
"version": "v3.4.1",
"version": "v3.4.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
"reference": "fe07cbc8d837f60caf7018068e350cc5163681a0"
"reference": "11bbf19a0fb7b36345861e85c5768844c552906e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0",
"reference": "fe07cbc8d837f60caf7018068e350cc5163681a0",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/11bbf19a0fb7b36345861e85c5768844c552906e",
"reference": "11bbf19a0fb7b36345861e85c5768844c552906e",
"shasum": ""
},
"require": {
@ -4822,7 +4822,7 @@
"standards"
],
"support": {
"source": "https://github.com/symfony/service-contracts/tree/v3.4.1"
"source": "https://github.com/symfony/service-contracts/tree/v3.4.2"
},
"funding": [
{
@ -4838,7 +4838,7 @@
"type": "tidelift"
}
],
"time": "2023-12-26T14:02:43+00:00"
"time": "2023-12-19T21:51:00+00:00"
},
{
"name": "symfony/stopwatch",
@ -5084,16 +5084,16 @@
},
{
"name": "symfony/translation-contracts",
"version": "v3.4.1",
"version": "v3.4.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
"reference": "06450585bf65e978026bda220cdebca3f867fde7"
"reference": "43810bdb2ddb5400e5c5e778e27b210a0ca83b6b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/06450585bf65e978026bda220cdebca3f867fde7",
"reference": "06450585bf65e978026bda220cdebca3f867fde7",
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/43810bdb2ddb5400e5c5e778e27b210a0ca83b6b",
"reference": "43810bdb2ddb5400e5c5e778e27b210a0ca83b6b",
"shasum": ""
},
"require": {
@ -5142,7 +5142,7 @@
"standards"
],
"support": {
"source": "https://github.com/symfony/translation-contracts/tree/v3.4.1"
"source": "https://github.com/symfony/translation-contracts/tree/v3.4.2"
},
"funding": [
{
@ -5158,20 +5158,20 @@
"type": "tidelift"
}
],
"time": "2023-12-26T14:02:43+00:00"
"time": "2024-01-23T14:51:35+00:00"
},
{
"name": "symfony/twig-bridge",
"version": "v7.0.4",
"version": "v7.0.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/twig-bridge.git",
"reference": "d16aa4eb5bdaeb6e7407782431dc70530f3b1df5"
"reference": "1d5745dac2e043553177a3b88a76b99c2a2f6c2e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/twig-bridge/zipball/d16aa4eb5bdaeb6e7407782431dc70530f3b1df5",
"reference": "d16aa4eb5bdaeb6e7407782431dc70530f3b1df5",
"url": "https://api.github.com/repos/symfony/twig-bridge/zipball/1d5745dac2e043553177a3b88a76b99c2a2f6c2e",
"reference": "1d5745dac2e043553177a3b88a76b99c2a2f6c2e",
"shasum": ""
},
"require": {
@ -5250,7 +5250,7 @@
"description": "Provides integration for Twig with various Symfony components",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/twig-bridge/tree/v7.0.4"
"source": "https://github.com/symfony/twig-bridge/tree/v7.0.6"
},
"funding": [
{
@ -5266,7 +5266,7 @@
"type": "tidelift"
}
],
"time": "2024-02-15T11:33:06+00:00"
"time": "2024-03-28T21:02:11+00:00"
},
{
"name": "symfony/twig-bundle",
@ -5354,16 +5354,16 @@
},
{
"name": "symfony/validator",
"version": "v7.0.5",
"version": "v7.0.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/validator.git",
"reference": "6a73d479191a0bbbd9ffa3886af6e6ff6e79fb86"
"reference": "a2df2c63b7944a162dee86ab8065f2f91b7d6e36"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/validator/zipball/6a73d479191a0bbbd9ffa3886af6e6ff6e79fb86",
"reference": "6a73d479191a0bbbd9ffa3886af6e6ff6e79fb86",
"url": "https://api.github.com/repos/symfony/validator/zipball/a2df2c63b7944a162dee86ab8065f2f91b7d6e36",
"reference": "a2df2c63b7944a162dee86ab8065f2f91b7d6e36",
"shasum": ""
},
"require": {
@ -5428,7 +5428,7 @@
"description": "Provides tools to validate values",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/validator/tree/v7.0.5"
"source": "https://github.com/symfony/validator/tree/v7.0.6"
},
"funding": [
{
@ -5444,20 +5444,20 @@
"type": "tidelift"
}
],
"time": "2024-02-27T12:53:56+00:00"
"time": "2024-03-28T09:20:36+00:00"
},
{
"name": "symfony/var-dumper",
"version": "v7.0.4",
"version": "v7.0.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
"reference": "e03ad7c1535e623edbb94c22cc42353e488c6670"
"reference": "66d13dc207d5dab6b4f4c2b5460efe1bea29dbfb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/e03ad7c1535e623edbb94c22cc42353e488c6670",
"reference": "e03ad7c1535e623edbb94c22cc42353e488c6670",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/66d13dc207d5dab6b4f4c2b5460efe1bea29dbfb",
"reference": "66d13dc207d5dab6b4f4c2b5460efe1bea29dbfb",
"shasum": ""
},
"require": {
@ -5511,7 +5511,7 @@
"dump"
],
"support": {
"source": "https://github.com/symfony/var-dumper/tree/v7.0.4"
"source": "https://github.com/symfony/var-dumper/tree/v7.0.6"
},
"funding": [
{
@ -5527,26 +5527,28 @@
"type": "tidelift"
}
],
"time": "2024-02-15T11:33:06+00:00"
"time": "2024-03-19T11:57:22+00:00"
},
{
"name": "symfony/var-exporter",
"version": "v7.0.4",
"version": "v7.0.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-exporter.git",
"reference": "dfb0acb6803eb714f05d97dd4c5abe6d5fa9fe41"
"reference": "c74c568d2a15a1d407cf40d61ea82bc2d521e27b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/var-exporter/zipball/dfb0acb6803eb714f05d97dd4c5abe6d5fa9fe41",
"reference": "dfb0acb6803eb714f05d97dd4c5abe6d5fa9fe41",
"url": "https://api.github.com/repos/symfony/var-exporter/zipball/c74c568d2a15a1d407cf40d61ea82bc2d521e27b",
"reference": "c74c568d2a15a1d407cf40d61ea82bc2d521e27b",
"shasum": ""
},
"require": {
"php": ">=8.2"
},
"require-dev": {
"symfony/property-access": "^6.4|^7.0",
"symfony/serializer": "^6.4|^7.0",
"symfony/var-dumper": "^6.4|^7.0"
},
"type": "library",
@ -5585,7 +5587,7 @@
"serialize"
],
"support": {
"source": "https://github.com/symfony/var-exporter/tree/v7.0.4"
"source": "https://github.com/symfony/var-exporter/tree/v7.0.6"
},
"funding": [
{
@ -5601,7 +5603,7 @@
"type": "tidelift"
}
],
"time": "2024-02-26T10:35:24+00:00"
"time": "2024-03-20T21:25:22+00:00"
},
{
"name": "symfony/yaml",
@ -6250,16 +6252,16 @@
},
{
"name": "phpunit/phpunit",
"version": "11.0.8",
"version": "11.0.9",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "48ea58408879a9aad630022186398364051482fc"
"reference": "591bbfe416400385527d5086b346b92c06de404b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/48ea58408879a9aad630022186398364051482fc",
"reference": "48ea58408879a9aad630022186398364051482fc",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/591bbfe416400385527d5086b346b92c06de404b",
"reference": "591bbfe416400385527d5086b346b92c06de404b",
"shasum": ""
},
"require": {
@ -6330,7 +6332,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/11.0.8"
"source": "https://github.com/sebastianbergmann/phpunit/tree/11.0.9"
},
"funding": [
{
@ -6346,7 +6348,7 @@
"type": "tidelift"
}
],
"time": "2024-03-22T04:21:01+00:00"
"time": "2024-03-28T10:09:42+00:00"
},
{
"name": "roave/security-advisories",
@ -6354,12 +6356,12 @@
"source": {
"type": "git",
"url": "https://github.com/Roave/SecurityAdvisories.git",
"reference": "a2c33d8cc3719997b91b628eec3570d725cebf7e"
"reference": "55338196704d6dae11257b34c4f5cdde484dfaa9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/a2c33d8cc3719997b91b628eec3570d725cebf7e",
"reference": "a2c33d8cc3719997b91b628eec3570d725cebf7e",
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/55338196704d6dae11257b34c4f5cdde484dfaa9",
"reference": "55338196704d6dae11257b34c4f5cdde484dfaa9",
"shasum": ""
},
"conflict": {
@ -6375,7 +6377,7 @@
"alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1",
"amazing/media2click": ">=1,<1.3.3",
"amphp/artax": "<1.0.6|>=2,<2.0.6",
"amphp/http": "<1.0.1",
"amphp/http": "<=1.7.2|>=2,<=2.1",
"amphp/http-client": ">=4,<4.4",
"anchorcms/anchor-cms": "<=0.12.7",
"andreapollastri/cipi": "<=3.1.15",
@ -6429,8 +6431,9 @@
"cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4",
"cartalyst/sentry": "<=2.1.6",
"catfan/medoo": "<1.7.5",
"causal/oidc": "<2.1",
"cecil/cecil": "<7.47.1",
"centreon/centreon": "<22.10.0.0-beta1",
"centreon/centreon": "<22.10.15",
"cesnet/simplesamlphp-module-proxystatistics": "<3.1",
"chriskacerguis/codeigniter-restserver": "<=2.7.1",
"civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3",
@ -6438,11 +6441,11 @@
"cockpit-hq/cockpit": "<=2.6.3|==2.7",
"codeception/codeception": "<3.1.3|>=4,<4.1.22",
"codeigniter/framework": "<3.1.9",
"codeigniter4/framework": "<=4.4.2",
"codeigniter4/framework": "<4.4.7",
"codeigniter4/shield": "<1.0.0.0-beta8",
"codiad/codiad": "<=2.8.4",
"composer/composer": "<1.10.27|>=2,<2.2.23|>=2.3,<2.7",
"concrete5/concrete5": "<9.2.7",
"concrete5/concrete5": "<9.2.8",
"concrete5/core": "<8.5.8|>=9,<9.1",
"contao-components/mediaelement": ">=2.14.2,<2.21.1",
"contao/contao": ">=4,<4.4.56|>=4.5,<4.9.40|>=4.10,<4.11.7|>=4.13,<4.13.21|>=5.1,<5.1.4",
@ -6475,7 +6478,7 @@
"doctrine/mongodb-odm": "<1.0.2",
"doctrine/mongodb-odm-bundle": "<3.0.1",
"doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4",
"dolibarr/dolibarr": "<18.0.2",
"dolibarr/dolibarr": "<=19",
"dompdf/dompdf": "<2.0.4",
"doublethreedigital/guest-entries": "<3.1.2",
"drupal/core": ">=6,<6.38|>=7,<7.96|>=8,<10.1.8|>=10.2,<10.2.2",
@ -6537,7 +6540,7 @@
"fooman/tcpdf": "<6.2.22",
"forkcms/forkcms": "<5.11.1",
"fossar/tcpdf-parser": "<6.2.22",
"francoisjacquet/rosariosis": "<11",
"francoisjacquet/rosariosis": "<=11.5.1",
"frappant/frp-form-answers": "<3.1.2|>=4,<4.0.2",
"friendsofsymfony/oauth2-php": "<1.3",
"friendsofsymfony/rest-bundle": ">=1.2,<1.2.2",
@ -6623,7 +6626,7 @@
"kelvinmo/simplexrd": "<3.1.1",
"kevinpapst/kimai2": "<1.16.7",
"khodakhah/nodcms": "<=3",
"kimai/kimai": "<2.1",
"kimai/kimai": "<2.13",
"kitodo/presentation": "<3.2.3|>=3.3,<3.3.4",
"klaviyo/magento2-extension": ">=1,<3",
"knplabs/knp-snappy": "<=1.4.2",
@ -6970,6 +6973,7 @@
"userfrosting/userfrosting": ">=0.3.1,<4.6.3",
"usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2",
"uvdesk/community-skeleton": "<=1.1.1",
"uvdesk/core-framework": "<=1.1.1",
"vanilla/safecurl": "<0.9.2",
"verot/class.upload.php": "<=2.1.6",
"vova07/yii2-fileapi-widget": "<0.1.9",
@ -6989,7 +6993,7 @@
"willdurand/js-translation-bundle": "<2.1.1",
"winter/wn-backend-module": "<1.2.4",
"winter/wn-system-module": "<1.2.4",
"wintercms/winter": "<1.2.3",
"wintercms/winter": "<=1.2.3",
"woocommerce/woocommerce": "<6.6",
"wp-cli/wp-cli": ">=0.12,<2.5",
"wp-graphql/wp-graphql": "<=1.14.5",
@ -7088,7 +7092,7 @@
"type": "tidelift"
}
],
"time": "2024-03-26T22:04:37+00:00"
"time": "2024-04-03T22:04:54+00:00"
},
{
"name": "sebastian/cli-parser",

View File

@ -28,7 +28,7 @@ trait CameraBase {
#[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)]
#[ORM\Column(name: 'crop_factor', type: 'string', nullable: FALSE)]
private string $cropFactor = '1.0';
#[ORM\Column(name: 'is_working', type: 'boolean', nullable: FALSE)]

View File

@ -43,10 +43,10 @@ trait LensTrait {
#[ORM\Column(name: 'mount', type: 'string', length: 40, nullable: TRUE)]
private readonly ?string $mount;
#[ORM\Column(name: 'front_filter_size', type: 'decimal', precision: 10, scale: 0, nullable: TRUE)]
#[ORM\Column(name: 'front_filter_size', type: 'string', nullable: TRUE)]
private readonly ?string $frontFilterSize;
#[ORM\Column(name: 'rear_filter_size', type: 'decimal', precision: 10, scale: 0, nullable: TRUE)]
#[ORM\Column(name: 'rear_filter_size', type: 'string', nullable: TRUE)]
private readonly ?string $rearFilterSize;
#[ORM\Column(name: 'is_teleconverter', type: 'boolean', nullable: FALSE)]

View File

@ -53,10 +53,10 @@ class Motherboard {
private int $ramSlots;
#[ORM\Column(name: 'max_ram', type: 'string', nullable: TRUE)]
private int $ramMaximum;
private ?string $ramMaximum;
#[ORM\Column(name: 'max_ram_speed', type: 'string', nullable: TRUE)]
private int $ramMaxSpeed;
private ?string $ramMaxSpeed;
// ------------------------------------------------------------------------
// Misc

View File

@ -20,7 +20,7 @@ class PreviouslyOwnedCpu {
/**
* @var Collection<int, Socket>
*/
#[ORM\ManyToMany(targetEntity: Socket::class, inversedBy: 'previously_owned_cpu', fetch: 'LAZY')]
#[ORM\ManyToMany(targetEntity: Socket::class, fetch: 'LAZY')]
#[ORM\JoinTable('collection.previously_owned_cpu_socket_link')]
#[ORM\JoinColumn('cpu_id', referencedColumnName: 'id')]
#[ORM\InverseJoinColumn('socket_id', referencedColumnName: 'id')]

View File

@ -20,6 +20,11 @@ class Socket implements Stringable {
#[ORM\GeneratedValue(strategy: 'IDENTITY')]
private int $id;
#[ORM\ManyToOne(targetEntity: Brand::class, fetch: 'EAGER')]
#[ORM\JoinColumn('brand_id', referencedColumnName: 'id', nullable: TRUE)]
#[ORM\OrderBy(['name' => 'asc'])]
private ?Brand $brand;
#[ORM\Column(name: 'name', type: 'string', nullable: FALSE)]
private string $name;
@ -44,10 +49,18 @@ class Socket implements Stringable {
// ------------------------------------------------------------------------
public function getLabel(): string
{
$name = (empty($this->otherName)) ? $this->name : "$this->name / $this->otherName";
return "{$name} ({$this->type->value} $this->pinCount)";
}
public function __toString(): string
{
$name = (empty($this->otherName)) ? $this->name : "$this->name/$this->otherName";
$brand = ($this->brand !== null) ? "[{$this->brand->getName()}] " : "";
$name = $this->getLabel();
return (string) "{$name} ({$this->type->value} $this->pinCount)";
return $brand . $name;
}
}

View File

@ -1,16 +0,0 @@
<?php declare(strict_types=1);
namespace App\Form;
use Doctrine\ORM\{EntityRepository, QueryBuilder};
trait BrandCategoryTrait {
public static function filterBrands(string $filter): callable
{
return static fn (EntityRepository $e) => $e->createQueryBuilder('b')
->join('b.categories', 'bc')
->where('bc.name=:name')
->orderBy('b.name', 'ASC')
->setParameter('name', $filter);
}
}

View File

@ -8,7 +8,7 @@ use Symfony\Component\Form\{AbstractType, FormBuilderInterface};
use Symfony\Component\OptionsResolver\OptionsResolver;
class ChipsetType extends AbstractType {
use BrandCategoryTrait;
use FormHelperTrait;
public function buildForm(FormBuilderInterface $builder, array $options): void
{

View File

@ -2,7 +2,8 @@
namespace App\Form;
use App\Entity\{Brand, Cpu};
use App\Entity\
{Brand, Cpu, Socket};
use App\Enum\CpuArchitecture;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\Extension\Core\Type\{EnumType, UrlType};
@ -11,7 +12,7 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
use UnitEnum;
class CpuType extends AbstractType {
use BrandCategoryTrait;
use FormHelperTrait;
public function buildForm(FormBuilderInterface $builder, array $options): void
{
@ -25,7 +26,17 @@ class CpuType extends AbstractType {
'class' => Brand::class,
'query_builder' => self::filterBrands('cpu'),
])
->add('sockets')
->add('sockets', EntityType::class, [
'class' => Socket::class,
'multiple' => true,
'expanded' => false,
'query_builder' => self::getSockets(),
'choice_label' => fn (Socket $socket) => $socket->getLabel(),
'group_by' => fn (Socket $choice) => $choice->getBrand()?->getName(),
'attr' => [
'rows' => 40,
],
])
->add('productLine')
->add('model')
->add('partNumber')

View File

@ -0,0 +1,36 @@
<?php declare(strict_types=1);
namespace App\Form;
use Doctrine\ORM\{EntityRepository, QueryBuilder};
trait FormHelperTrait {
public static function filterBrands(string $filter): callable
{
return static fn (EntityRepository $e) => $e->createQueryBuilder('b')
->join('b.categories', 'bc')
->where('bc.name=:name')
->orderBy('b.name', 'ASC')
->setParameter('name', $filter);
}
public static function getSocketBrands(): callable
{
return static fn (EntityRepository $e) => $e->createQueryBuilder('b')
->join('b.categories', 'bc')
->where('bc.name=:name1')
->orWhere('bc.name=:name2')
->orderBy('b.name', 'ASC')
->setParameter('name1', 'cpu')
->setParameter('name2', 'fpu');
}
public static function getSockets(): callable
{
return static fn (EntityRepository $e) => $e->createQueryBuilder('s')
->leftJoin('s.brand', 'sb')
->orderBy('sb.name', 'ASC')
->addOrderBy('s.pinCount', 'ASC')
->addOrderBy('s.name', 'ASC');
}
}

View File

@ -9,7 +9,7 @@ use Symfony\Component\Form\{AbstractType, FormBuilderInterface};
use Symfony\Component\OptionsResolver\OptionsResolver;
class FpuType extends AbstractType {
use BrandCategoryTrait;
use FormHelperTrait;
public function buildForm(FormBuilderInterface $builder, array $options): void
{

View File

@ -8,7 +8,7 @@ use Symfony\Component\Form\{AbstractType, FormBuilderInterface};
use Symfony\Component\OptionsResolver\OptionsResolver;
class GPUCoreType extends AbstractType {
use BrandCategoryTrait;
use FormHelperTrait;
public function buildForm(FormBuilderInterface $builder, array $options): void
{

View File

@ -12,7 +12,7 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
use UnitEnum;
class GpuType extends AbstractType {
use BrandCategoryTrait;
use FormHelperTrait;
public function buildForm(FormBuilderInterface $builder, array $options): void
{

View File

@ -16,6 +16,7 @@ class PreviouslyOwnedCameraType extends AbstractType {
{
$builder->add('brand')
->add('mount')
->add('type')
->add('model')
->add('isDigital')
->add('cropFactor')
@ -26,8 +27,7 @@ class PreviouslyOwnedCameraType extends AbstractType {
->add('purchasePrice')
->add('batteryType')
->add('filmFormat')
->add('received')
->add('type');
->add('received');
}
/**

View File

@ -12,7 +12,7 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
use UnitEnum;
class PreviouslyOwnedCpuType extends AbstractType {
use BrandCategoryTrait;
use FormHelperTrait;
public function buildForm(FormBuilderInterface $builder, array $options): void
{

View File

@ -13,7 +13,7 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
use UnitEnum;
class PreviouslyOwnedGpuType extends AbstractType {
use BrandCategoryTrait;
use FormHelperTrait;
public function buildForm(FormBuilderInterface $builder, array $options): void
{

View File

@ -2,16 +2,25 @@
namespace App\Form;
use App\Entity\Socket;
use App\Entity\{Brand, Socket};
use App\Enum\SocketType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\Extension\Core\Type\EnumType;
use Symfony\Component\Form\{AbstractType, FormBuilderInterface};
use Symfony\Component\OptionsResolver\OptionsResolver;
class SocketTypeForm extends AbstractType {
use FormHelperTrait;
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('brand', EntityType::class, [
'class' => Brand::class,
'query_builder' => self::getSocketBrands(),
'placeholder' => '[Generic]',
'required' => false,
])
->add('name')
->add('otherName')
->add('pinCount')

View File

@ -0,0 +1,36 @@
<?php
declare(strict_types=1);
namespace App\Migrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20240404181128 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE collection.socket ADD brand_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE collection.socket ADD CONSTRAINT FK_BDDF4BD244F5D008 FOREIGN KEY (brand_id) REFERENCES collection.brand (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('CREATE INDEX IDX_BDDF4BD244F5D008 ON collection.socket (brand_id)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE SCHEMA public');
$this->addSql('ALTER TABLE collection.socket DROP CONSTRAINT FK_BDDF4BD244F5D008');
$this->addSql('DROP INDEX IDX_BDDF4BD244F5D008');
$this->addSql('ALTER TABLE collection.socket DROP brand_id');
}
}

View File

@ -0,0 +1,34 @@
<?php
declare(strict_types=1);
namespace App\Migrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20240404191927 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE collection.camera ALTER crop_factor TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.previously_owned_camera ALTER crop_factor TYPE VARCHAR(255)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE SCHEMA public');
$this->addSql('ALTER TABLE collection.previously_owned_camera ALTER crop_factor TYPE NUMERIC(10, 0)');
$this->addSql('ALTER TABLE collection.camera ALTER crop_factor TYPE NUMERIC(10, 0)');
}
}

View File

@ -0,0 +1,38 @@
<?php
declare(strict_types=1);
namespace App\Migrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20240404194022 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE collection.lenses ALTER front_filter_size TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.lenses ALTER rear_filter_size TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.previously_owned_lenses ALTER front_filter_size TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.previously_owned_lenses ALTER rear_filter_size TYPE VARCHAR(255)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE SCHEMA public');
$this->addSql('ALTER TABLE collection.lenses ALTER front_filter_size TYPE NUMERIC(10, 0)');
$this->addSql('ALTER TABLE collection.lenses ALTER rear_filter_size TYPE NUMERIC(10, 0)');
$this->addSql('ALTER TABLE collection.previously_owned_lenses ALTER front_filter_size TYPE NUMERIC(10, 0)');
$this->addSql('ALTER TABLE collection.previously_owned_lenses ALTER rear_filter_size TYPE NUMERIC(10, 0)');
}
}

View File

@ -0,0 +1,186 @@
<?php
declare(strict_types=1);
namespace App\Migrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20240404194147 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE collection.brand ALTER id DROP DEFAULT');
$this->addSql('ALTER TABLE collection.brand ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
$this->addSql('ALTER TABLE collection.brand ALTER name TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.brand_category ALTER category_name TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.camera ALTER id DROP DEFAULT');
$this->addSql('ALTER TABLE collection.camera ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
$this->addSql('ALTER TABLE collection.camera ALTER battery_type TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.camera ALTER film_format TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.camera_type ALTER id DROP DEFAULT');
$this->addSql('ALTER TABLE collection.camera_type ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
$this->addSql('ALTER TABLE collection.chipset ALTER id DROP DEFAULT');
$this->addSql('ALTER TABLE collection.chipset ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
$this->addSql('ALTER TABLE collection.cpu ALTER id DROP DEFAULT');
$this->addSql('ALTER TABLE collection.cpu ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
$this->addSql('ALTER TABLE collection.expansion_slot ALTER id DROP DEFAULT');
$this->addSql('ALTER TABLE collection.expansion_slot ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
$this->addSql('ALTER TABLE collection.film ALTER id DROP DEFAULT');
$this->addSql('ALTER TABLE collection.film ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
$this->addSql('ALTER TABLE collection.film_format ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
$this->addSql('ALTER TABLE collection.flash ALTER id DROP DEFAULT');
$this->addSql('ALTER TABLE collection.flash ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
$this->addSql('ALTER TABLE collection.flash ALTER brand TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.flash ALTER model TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.flash ALTER ttl_type TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.flash ALTER p_ttl_type TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.flash ALTER guide_number TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.flash ALTER batteries TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.flash ALTER serial TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.fpu ALTER id DROP DEFAULT');
$this->addSql('ALTER TABLE collection.fpu ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
$this->addSql('ALTER TABLE collection.gpu ALTER id DROP DEFAULT');
$this->addSql('ALTER TABLE collection.gpu ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
$this->addSql('ALTER TABLE collection.gpu ALTER reference_model_name TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.gpu ALTER alternate_model_name TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.gpu ALTER card_key TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.gpu ALTER link TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.gpu ALTER bus_interface TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.gpu ALTER memory_type TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.gpu ALTER l1_cache TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.gpu ALTER l2_cache TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.gpu ALTER direct_x_support TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.gpu ALTER opengl_support TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.gpu ALTER opencl_support TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.gpu ALTER vulkan_support TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.gpu ALTER shader_model TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.gpu_core ALTER id DROP DEFAULT');
$this->addSql('ALTER TABLE collection.gpu_core ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
$this->addSql('ALTER TABLE collection.gpu_core ALTER name TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.gpu_core ALTER variant TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.gpu_core ALTER generation_name TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.gpu_core ALTER architecture TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.gpu_core ALTER architecture_link TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.gpu_core ALTER generation_link TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.lenses ALTER id DROP DEFAULT');
$this->addSql('ALTER TABLE collection.lenses ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
$this->addSql('ALTER TABLE collection.motherboard ALTER id DROP DEFAULT');
$this->addSql('ALTER TABLE collection.motherboard ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
$this->addSql('ALTER TABLE collection.previously_owned_camera ALTER id DROP DEFAULT');
$this->addSql('ALTER TABLE collection.previously_owned_camera ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
$this->addSql('ALTER TABLE collection.previously_owned_camera ALTER battery_type TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.previously_owned_camera ALTER film_format TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.previously_owned_cpu ALTER id DROP DEFAULT');
$this->addSql('ALTER TABLE collection.previously_owned_cpu ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
$this->addSql('ALTER TABLE collection.previously_owned_flash ALTER id DROP DEFAULT');
$this->addSql('ALTER TABLE collection.previously_owned_flash ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
$this->addSql('ALTER TABLE collection.previously_owned_flash ALTER brand TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.previously_owned_flash ALTER model TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.previously_owned_flash ALTER ttl_type TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.previously_owned_flash ALTER p_ttl_type TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.previously_owned_flash ALTER guide_number TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.previously_owned_flash ALTER batteries TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.previously_owned_flash ALTER serial TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE collection.previously_owned_gpu ALTER id DROP DEFAULT');
$this->addSql('ALTER TABLE collection.previously_owned_gpu ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
$this->addSql('ALTER TABLE collection.previously_owned_lenses ALTER id DROP DEFAULT');
$this->addSql('ALTER TABLE collection.previously_owned_lenses ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
$this->addSql('ALTER TABLE collection.socket ALTER id DROP DEFAULT');
$this->addSql('ALTER TABLE collection.socket ALTER id ADD GENERATED BY DEFAULT AS IDENTITY');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE SCHEMA public');
$this->addSql('ALTER TABLE collection.previously_owned_cpu ALTER id SET DEFAULT collection.previously_owned_cpu_id_seq');
$this->addSql('ALTER TABLE collection.previously_owned_cpu ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.socket ALTER id SET DEFAULT collection.socket_id_seq');
$this->addSql('ALTER TABLE collection.socket ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.film ALTER id SET DEFAULT collection.film_id_seq');
$this->addSql('ALTER TABLE collection.film ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.flash ALTER id SET DEFAULT collection.flash_id_seq');
$this->addSql('ALTER TABLE collection.flash ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.flash ALTER brand TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.flash ALTER model TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.flash ALTER ttl_type TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.flash ALTER p_ttl_type TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.flash ALTER guide_number TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.flash ALTER batteries TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.flash ALTER serial TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.lenses ALTER id SET DEFAULT collection.lenses_id_seq');
$this->addSql('ALTER TABLE collection.lenses ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.expansion_slot ALTER id SET DEFAULT collection.expansion_slot_id_seq');
$this->addSql('ALTER TABLE collection.expansion_slot ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.gpu ALTER id SET DEFAULT collection.gpu_id_seq');
$this->addSql('ALTER TABLE collection.gpu ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.gpu ALTER reference_model_name TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.gpu ALTER alternate_model_name TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.gpu ALTER card_key TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.gpu ALTER bus_interface TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.gpu ALTER memory_type TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.gpu ALTER l1_cache TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.gpu ALTER l2_cache TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.gpu ALTER direct_x_support TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.gpu ALTER opengl_support TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.gpu ALTER opencl_support TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.gpu ALTER vulkan_support TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.gpu ALTER shader_model TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.gpu ALTER link TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.previously_owned_camera ALTER id SET DEFAULT collection.previously_owned_camera_id_seq');
$this->addSql('ALTER TABLE collection.previously_owned_camera ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.previously_owned_camera ALTER battery_type TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.previously_owned_camera ALTER film_format TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.cpu ALTER id SET DEFAULT collection.cpu_id_seq');
$this->addSql('ALTER TABLE collection.cpu ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.fpu ALTER id SET DEFAULT collection.fpu_id_seq');
$this->addSql('ALTER TABLE collection.fpu ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.previously_owned_gpu ALTER id SET DEFAULT collection.previously_owned_gpu_id_seq');
$this->addSql('ALTER TABLE collection.previously_owned_gpu ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.brand ALTER id SET DEFAULT collection.brand_id_seq');
$this->addSql('ALTER TABLE collection.brand ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.brand ALTER name TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.camera_type ALTER id SET DEFAULT collection.camera_type_id_seq');
$this->addSql('ALTER TABLE collection.camera_type ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.camera ALTER id SET DEFAULT collection.camera_id_seq');
$this->addSql('ALTER TABLE collection.camera ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.camera ALTER battery_type TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.camera ALTER film_format TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.brand_category ALTER category_name TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.previously_owned_lenses ALTER id SET DEFAULT collection.previously_owned_lenses_id_seq');
$this->addSql('ALTER TABLE collection.previously_owned_lenses ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.chipset ALTER id SET DEFAULT collection.chipset_id_seq');
$this->addSql('ALTER TABLE collection.chipset ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.film_format ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.motherboard ALTER id SET DEFAULT collection.motherboard_id_seq');
$this->addSql('ALTER TABLE collection.motherboard ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.previously_owned_flash ALTER id SET DEFAULT collection.previously_owned_flash_id_seq');
$this->addSql('ALTER TABLE collection.previously_owned_flash ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.previously_owned_flash ALTER brand TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.previously_owned_flash ALTER model TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.previously_owned_flash ALTER ttl_type TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.previously_owned_flash ALTER p_ttl_type TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.previously_owned_flash ALTER guide_number TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.previously_owned_flash ALTER batteries TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.previously_owned_flash ALTER serial TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.gpu_core ALTER id SET DEFAULT collection.gpu_core_id_seq');
$this->addSql('ALTER TABLE collection.gpu_core ALTER id DROP IDENTITY');
$this->addSql('ALTER TABLE collection.gpu_core ALTER name TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.gpu_core ALTER variant TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.gpu_core ALTER generation_name TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.gpu_core ALTER generation_link TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.gpu_core ALTER architecture TYPE VARCHAR');
$this->addSql('ALTER TABLE collection.gpu_core ALTER architecture_link TYPE VARCHAR');
}
}

View File

@ -5,7 +5,7 @@
{% endblock %}
{% block form %}
<h2>Edit Camera</h2>
<h2>Edit Previously Owned Camera</h2>
<div class="small callout">
<ul>

View File

@ -18,6 +18,7 @@
<tr>
<th>&nbsp;</th>
<th>Id</th>
<th>Brand</th>
<th>Name</th>
<th>OtherName</th>
<th>PinCount</th>
@ -39,6 +40,11 @@
</ul>
</td>
<td>{{ socket.id }}</td>
<td>
{% if socket.brand %}
{{ socket.brand.name }}
{% endif %}
</td>
<td>{{ socket.name }}</td>
<td>{{ socket.otherName }}</td>
<td>{{ socket.pinCount }}</td>

View File

@ -33,6 +33,16 @@
<th>Id</th>
<td>{{ socket.id }}</td>
</tr>
<tr>
<th>Brand</th>
<td>
{% if socket.brand %}
{{ socket.brand.name }}
{% else %}
[Generic]
{% endif %}
</td>
</tr>
<tr>
<th>Name</th>
<td>{{ socket.name }}</td>