diff --git a/.docs/phpstorm_cli_xdebug_config.png b/.docs/phpstorm_cli_xdebug_config.png
new file mode 100644
index 0000000..fd045a0
Binary files /dev/null and b/.docs/phpstorm_cli_xdebug_config.png differ
diff --git a/README.md b/README.md
index 0ba3b33..8ed7de0 100644
--- a/README.md
+++ b/README.md
@@ -35,6 +35,11 @@
# Xdebug
ddev ssh -> export XDEBUG_CONFIG="idekey=PHPSTORM"
+
+- Cli Skript xebug läuft nicht korrekt:
+ - ddev ssh
+ - in Terminal: PHP_IDE_CONFIG="serverName=matsen-tool-be.ddev.site"
+ - Servername ist hier konfiguriert: 
-------------------------
# Symfony:
diff --git a/migrations/Version20231221143009.php b/migrations/Version20231221143009.php
deleted file mode 100644
index c2bb9c7..0000000
--- a/migrations/Version20231221143009.php
+++ /dev/null
@@ -1,45 +0,0 @@
-addSql('CREATE TABLE api_token (id INT AUTO_INCREMENT NOT NULL, owned_by_id INT NOT NULL, expires_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', token VARCHAR(68) NOT NULL, scopes JSON NOT NULL COMMENT \'(DC2Type:json)\', INDEX IDX_7BA2F5EB5E70BCD7 (owned_by_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
- $this->addSql('CREATE TABLE partner (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, type VARCHAR(255) NOT NULL, street VARCHAR(255) DEFAULT NULL, street_no VARCHAR(255) DEFAULT NULL, zip VARCHAR(255) DEFAULT NULL, city VARCHAR(255) DEFAULT NULL, country VARCHAR(255) DEFAULT NULL, website VARCHAR(255) DEFAULT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', logo VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
- $this->addSql('CREATE TABLE partner_contact (id INT AUTO_INCREMENT NOT NULL, partner_id INT NOT NULL, first_name VARCHAR(255) NOT NULL, last_name VARCHAR(255) NOT NULL, birthday DATE DEFAULT NULL, picture VARCHAR(255) DEFAULT NULL, position VARCHAR(255) DEFAULT NULL, phone VARCHAR(255) DEFAULT NULL, email VARCHAR(255) DEFAULT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_8B8885259393F8FE (partner_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
- $this->addSql('CREATE TABLE posting (id INT AUTO_INCREMENT NOT NULL, owner_id INT NOT NULL, message LONGTEXT NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_BD275D737E3C61F9 (owner_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
- $this->addSql('CREATE TABLE `user` (id INT AUTO_INCREMENT NOT NULL, email VARCHAR(180) NOT NULL, first_name VARCHAR(255) NOT NULL, last_name VARCHAR(255) NOT NULL, roles JSON NOT NULL COMMENT \'(DC2Type:json)\', password VARCHAR(255) NOT NULL, active TINYINT(1) NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', UNIQUE INDEX UNIQ_8D93D649E7927C74 (email), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
- $this->addSql('ALTER TABLE api_token ADD CONSTRAINT FK_7BA2F5EB5E70BCD7 FOREIGN KEY (owned_by_id) REFERENCES `user` (id)');
- $this->addSql('ALTER TABLE partner_contact ADD CONSTRAINT FK_8B8885259393F8FE FOREIGN KEY (partner_id) REFERENCES partner (id)');
- $this->addSql('ALTER TABLE posting ADD CONSTRAINT FK_BD275D737E3C61F9 FOREIGN KEY (owner_id) REFERENCES `user` (id)');
- }
-
- public function down(Schema $schema): void
- {
- // this down() migration is auto-generated, please modify it to your needs
- $this->addSql('ALTER TABLE api_token DROP FOREIGN KEY FK_7BA2F5EB5E70BCD7');
- $this->addSql('ALTER TABLE partner_contact DROP FOREIGN KEY FK_8B8885259393F8FE');
- $this->addSql('ALTER TABLE posting DROP FOREIGN KEY FK_BD275D737E3C61F9');
- $this->addSql('DROP TABLE api_token');
- $this->addSql('DROP TABLE partner');
- $this->addSql('DROP TABLE partner_contact');
- $this->addSql('DROP TABLE posting');
- $this->addSql('DROP TABLE `user`');
- }
-}
diff --git a/migrations/Version20240125102320.php b/migrations/Version20240125102320.php
deleted file mode 100644
index 356bb44..0000000
--- a/migrations/Version20240125102320.php
+++ /dev/null
@@ -1,35 +0,0 @@
-addSql('CREATE TABLE media_object (id INT AUTO_INCREMENT NOT NULL, file_path VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
- $this->addSql('ALTER TABLE api_token DROP FOREIGN KEY FK_7BA2F5EB5E70BCD7');
- $this->addSql('DROP TABLE api_token');
- }
-
- public function down(Schema $schema): void
- {
- // this down() migration is auto-generated, please modify it to your needs
- $this->addSql('CREATE TABLE api_token (id INT AUTO_INCREMENT NOT NULL, owned_by_id INT NOT NULL, expires_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', token VARCHAR(68) CHARACTER SET utf8mb4 NOT NULL COLLATE `utf8mb4_unicode_ci`, scopes JSON NOT NULL COMMENT \'(DC2Type:json)\', INDEX IDX_7BA2F5EB5E70BCD7 (owned_by_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB COMMENT = \'\' ');
- $this->addSql('ALTER TABLE api_token ADD CONSTRAINT FK_7BA2F5EB5E70BCD7 FOREIGN KEY (owned_by_id) REFERENCES user (id)');
- $this->addSql('DROP TABLE media_object');
- }
-}
diff --git a/migrations/Version20240206152234.php b/migrations/Version20240206152234.php
new file mode 100644
index 0000000..474d1ce
--- /dev/null
+++ b/migrations/Version20240206152234.php
@@ -0,0 +1,45 @@
+addSql('CREATE TABLE contact (id INT AUTO_INCREMENT NOT NULL, partner_id INT NOT NULL, first_name VARCHAR(255) NOT NULL, last_name VARCHAR(255) NOT NULL, birthday DATE DEFAULT NULL, image VARCHAR(255) DEFAULT NULL, position VARCHAR(255) DEFAULT NULL, phone VARCHAR(255) DEFAULT NULL, email VARCHAR(255) DEFAULT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_4C62E6389393F8FE (partner_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
+ $this->addSql('CREATE TABLE media_object (id INT AUTO_INCREMENT NOT NULL, file_path VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
+ $this->addSql('CREATE TABLE partner (id INT AUTO_INCREMENT NOT NULL, logo_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, type VARCHAR(255) NOT NULL, street VARCHAR(255) DEFAULT NULL, street_no VARCHAR(255) DEFAULT NULL, zip VARCHAR(255) DEFAULT NULL, city VARCHAR(255) DEFAULT NULL, country VARCHAR(255) DEFAULT NULL, website VARCHAR(255) DEFAULT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_312B3E16F98F144A (logo_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
+ $this->addSql('CREATE TABLE posting (id INT AUTO_INCREMENT NOT NULL, owner_id INT NOT NULL, message LONGTEXT NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_BD275D737E3C61F9 (owner_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
+ $this->addSql('CREATE TABLE `user` (id INT AUTO_INCREMENT NOT NULL, email VARCHAR(180) NOT NULL, first_name VARCHAR(255) NOT NULL, last_name VARCHAR(255) NOT NULL, roles JSON NOT NULL COMMENT \'(DC2Type:json)\', password VARCHAR(255) NOT NULL, active TINYINT(1) NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', UNIQUE INDEX UNIQ_8D93D649E7927C74 (email), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
+ $this->addSql('ALTER TABLE contact ADD CONSTRAINT FK_4C62E6389393F8FE FOREIGN KEY (partner_id) REFERENCES partner (id)');
+ $this->addSql('ALTER TABLE partner ADD CONSTRAINT FK_312B3E16F98F144A FOREIGN KEY (logo_id) REFERENCES media_object (id)');
+ $this->addSql('ALTER TABLE posting ADD CONSTRAINT FK_BD275D737E3C61F9 FOREIGN KEY (owner_id) REFERENCES `user` (id)');
+ }
+
+ public function down(Schema $schema): void
+ {
+ // this down() migration is auto-generated, please modify it to your needs
+ $this->addSql('ALTER TABLE contact DROP FOREIGN KEY FK_4C62E6389393F8FE');
+ $this->addSql('ALTER TABLE partner DROP FOREIGN KEY FK_312B3E16F98F144A');
+ $this->addSql('ALTER TABLE posting DROP FOREIGN KEY FK_BD275D737E3C61F9');
+ $this->addSql('DROP TABLE contact');
+ $this->addSql('DROP TABLE media_object');
+ $this->addSql('DROP TABLE partner');
+ $this->addSql('DROP TABLE posting');
+ $this->addSql('DROP TABLE `user`');
+ }
+}
diff --git a/public/media/1176-65c24ec9c380a321491226.png b/public/media/1176-65c24ec9c380a321491226.png
new file mode 100644
index 0000000..54a8ef6
Binary files /dev/null and b/public/media/1176-65c24ec9c380a321491226.png differ
diff --git a/public/media/13051765-65c23aa0abd2d227118351.png b/public/media/13051765-65c23aa0abd2d227118351.png
new file mode 100644
index 0000000..8c456f7
Binary files /dev/null and b/public/media/13051765-65c23aa0abd2d227118351.png differ
diff --git a/public/media/13051765-65c2496ddf1bf518226485.png b/public/media/13051765-65c2496ddf1bf518226485.png
new file mode 100644
index 0000000..8c456f7
Binary files /dev/null and b/public/media/13051765-65c2496ddf1bf518226485.png differ
diff --git a/public/media/13051765-65c24ec9bc0df020542734.png b/public/media/13051765-65c24ec9bc0df020542734.png
new file mode 100644
index 0000000..8c456f7
Binary files /dev/null and b/public/media/13051765-65c24ec9bc0df020542734.png differ
diff --git a/public/media/21601-65c23aa092710988237038.png b/public/media/21601-65c23aa092710988237038.png
new file mode 100644
index 0000000..1b01049
Binary files /dev/null and b/public/media/21601-65c23aa092710988237038.png differ
diff --git a/public/media/21601-65c23aa09b12d403520624.png b/public/media/21601-65c23aa09b12d403520624.png
new file mode 100644
index 0000000..1b01049
Binary files /dev/null and b/public/media/21601-65c23aa09b12d403520624.png differ
diff --git a/public/media/21601-65c23aa0a6aad723421009.png b/public/media/21601-65c23aa0a6aad723421009.png
new file mode 100644
index 0000000..1b01049
Binary files /dev/null and b/public/media/21601-65c23aa0a6aad723421009.png differ
diff --git a/public/media/21601-65c23aa0ae5e1986365646.png b/public/media/21601-65c23aa0ae5e1986365646.png
new file mode 100644
index 0000000..1b01049
Binary files /dev/null and b/public/media/21601-65c23aa0ae5e1986365646.png differ
diff --git a/public/media/21601-65c23aa0b3614765904303.png b/public/media/21601-65c23aa0b3614765904303.png
new file mode 100644
index 0000000..1b01049
Binary files /dev/null and b/public/media/21601-65c23aa0b3614765904303.png differ
diff --git a/public/media/21601-65c23aa0b4aee960523927.png b/public/media/21601-65c23aa0b4aee960523927.png
new file mode 100644
index 0000000..1b01049
Binary files /dev/null and b/public/media/21601-65c23aa0b4aee960523927.png differ
diff --git a/public/media/21601-65c23aa0b5759294002607.png b/public/media/21601-65c23aa0b5759294002607.png
new file mode 100644
index 0000000..1b01049
Binary files /dev/null and b/public/media/21601-65c23aa0b5759294002607.png differ
diff --git a/public/media/21601-65c2496dd7546782222069.png b/public/media/21601-65c2496dd7546782222069.png
new file mode 100644
index 0000000..1b01049
Binary files /dev/null and b/public/media/21601-65c2496dd7546782222069.png differ
diff --git a/public/media/21601-65c2496de8948656968834.png b/public/media/21601-65c2496de8948656968834.png
new file mode 100644
index 0000000..1b01049
Binary files /dev/null and b/public/media/21601-65c2496de8948656968834.png differ
diff --git a/public/media/21601-65c24ec9baf5e834407748.png b/public/media/21601-65c24ec9baf5e834407748.png
new file mode 100644
index 0000000..1b01049
Binary files /dev/null and b/public/media/21601-65c24ec9baf5e834407748.png differ
diff --git a/public/media/21601-65c24ec9ceddf666095479.png b/public/media/21601-65c24ec9ceddf666095479.png
new file mode 100644
index 0000000..1b01049
Binary files /dev/null and b/public/media/21601-65c24ec9ceddf666095479.png differ
diff --git a/public/media/2673787-65c23aa0976a7986243831.webp b/public/media/2673787-65c23aa0976a7986243831.webp
new file mode 100644
index 0000000..9fc736a
Binary files /dev/null and b/public/media/2673787-65c23aa0976a7986243831.webp differ
diff --git a/public/media/2673787-65c2496dd5b0f583174227.webp b/public/media/2673787-65c2496dd5b0f583174227.webp
new file mode 100644
index 0000000..9fc736a
Binary files /dev/null and b/public/media/2673787-65c2496dd5b0f583174227.webp differ
diff --git a/public/media/2673787-65c2496dd88c0024149973.webp b/public/media/2673787-65c2496dd88c0024149973.webp
new file mode 100644
index 0000000..9fc736a
Binary files /dev/null and b/public/media/2673787-65c2496dd88c0024149973.webp differ
diff --git a/public/media/2673787-65c2496ddd4ff707623636.webp b/public/media/2673787-65c2496ddd4ff707623636.webp
new file mode 100644
index 0000000..9fc736a
Binary files /dev/null and b/public/media/2673787-65c2496ddd4ff707623636.webp differ
diff --git a/public/media/2673787-65c2496de1636995275379.webp b/public/media/2673787-65c2496de1636995275379.webp
new file mode 100644
index 0000000..9fc736a
Binary files /dev/null and b/public/media/2673787-65c2496de1636995275379.webp differ
diff --git a/public/media/282540-65c23aa0a4068489321398.webp b/public/media/282540-65c23aa0a4068489321398.webp
new file mode 100644
index 0000000..e6b39ed
Binary files /dev/null and b/public/media/282540-65c23aa0a4068489321398.webp differ
diff --git a/public/media/282540-65c23aa0b13c6502481119.webp b/public/media/282540-65c23aa0b13c6502481119.webp
new file mode 100644
index 0000000..e6b39ed
Binary files /dev/null and b/public/media/282540-65c23aa0b13c6502481119.webp differ
diff --git a/public/media/61109-65c23aa0a1877799155642.png b/public/media/61109-65c23aa0a1877799155642.png
new file mode 100644
index 0000000..92881e7
Binary files /dev/null and b/public/media/61109-65c23aa0a1877799155642.png differ
diff --git a/public/media/61109-65c23aa0a9230859344189.png b/public/media/61109-65c23aa0a9230859344189.png
new file mode 100644
index 0000000..92881e7
Binary files /dev/null and b/public/media/61109-65c23aa0a9230859344189.png differ
diff --git a/public/media/61109-65c23aa0af0eb920602959.png b/public/media/61109-65c23aa0af0eb920602959.png
new file mode 100644
index 0000000..92881e7
Binary files /dev/null and b/public/media/61109-65c23aa0af0eb920602959.png differ
diff --git a/public/media/61109-65c2496de03b0786749525.png b/public/media/61109-65c2496de03b0786749525.png
new file mode 100644
index 0000000..92881e7
Binary files /dev/null and b/public/media/61109-65c2496de03b0786749525.png differ
diff --git a/public/media/61109-65c2496de31b4854311388.png b/public/media/61109-65c2496de31b4854311388.png
new file mode 100644
index 0000000..92881e7
Binary files /dev/null and b/public/media/61109-65c2496de31b4854311388.png differ
diff --git a/public/media/61109-65c2496de8032628647392.png b/public/media/61109-65c2496de8032628647392.png
new file mode 100644
index 0000000..92881e7
Binary files /dev/null and b/public/media/61109-65c2496de8032628647392.png differ
diff --git a/public/media/61109-65c2496dedaec202440106.png b/public/media/61109-65c2496dedaec202440106.png
new file mode 100644
index 0000000..92881e7
Binary files /dev/null and b/public/media/61109-65c2496dedaec202440106.png differ
diff --git a/public/media/61109-65c2496def5f0669817874.png b/public/media/61109-65c2496def5f0669817874.png
new file mode 100644
index 0000000..92881e7
Binary files /dev/null and b/public/media/61109-65c2496def5f0669817874.png differ
diff --git a/public/media/61109-65c24ec9bb854442684447.png b/public/media/61109-65c24ec9bb854442684447.png
new file mode 100644
index 0000000..92881e7
Binary files /dev/null and b/public/media/61109-65c24ec9bb854442684447.png differ
diff --git a/public/media/61109-65c24ec9c26cd833065167.png b/public/media/61109-65c24ec9c26cd833065167.png
new file mode 100644
index 0000000..92881e7
Binary files /dev/null and b/public/media/61109-65c24ec9c26cd833065167.png differ
diff --git a/public/media/61109-65c24ec9c405e651961332.png b/public/media/61109-65c24ec9c405e651961332.png
new file mode 100644
index 0000000..92881e7
Binary files /dev/null and b/public/media/61109-65c24ec9c405e651961332.png differ
diff --git a/public/media/61109-65c24ec9c65c1048997913.png b/public/media/61109-65c24ec9c65c1048997913.png
new file mode 100644
index 0000000..92881e7
Binary files /dev/null and b/public/media/61109-65c24ec9c65c1048997913.png differ
diff --git a/public/media/61109-65c24ec9ca3ec033376298.png b/public/media/61109-65c24ec9ca3ec033376298.png
new file mode 100644
index 0000000..92881e7
Binary files /dev/null and b/public/media/61109-65c24ec9ca3ec033376298.png differ
diff --git a/public/media/61109-65c24ec9cc8c8389523576.png b/public/media/61109-65c24ec9cc8c8389523576.png
new file mode 100644
index 0000000..92881e7
Binary files /dev/null and b/public/media/61109-65c24ec9cc8c8389523576.png differ
diff --git a/public/media/731972-65c23aa0ad049637421495.png b/public/media/731972-65c23aa0ad049637421495.png
new file mode 100644
index 0000000..831c823
Binary files /dev/null and b/public/media/731972-65c23aa0ad049637421495.png differ
diff --git a/public/media/731972-65c2496ddaa21722627925.png b/public/media/731972-65c2496ddaa21722627925.png
new file mode 100644
index 0000000..831c823
Binary files /dev/null and b/public/media/731972-65c2496ddaa21722627925.png differ
diff --git a/public/media/731972-65c2496dec050340971419.png b/public/media/731972-65c2496dec050340971419.png
new file mode 100644
index 0000000..831c823
Binary files /dev/null and b/public/media/731972-65c2496dec050340971419.png differ
diff --git a/public/media/731972-65c24ec9ba640346823854.png b/public/media/731972-65c24ec9ba640346823854.png
new file mode 100644
index 0000000..831c823
Binary files /dev/null and b/public/media/731972-65c24ec9ba640346823854.png differ
diff --git a/public/media/732228-65c23aa09f095210222982.png b/public/media/732228-65c23aa09f095210222982.png
new file mode 100644
index 0000000..c8eb273
Binary files /dev/null and b/public/media/732228-65c23aa09f095210222982.png differ
diff --git a/public/media/732228-65c2496dd6b29264561608.png b/public/media/732228-65c2496dd6b29264561608.png
new file mode 100644
index 0000000..c8eb273
Binary files /dev/null and b/public/media/732228-65c2496dd6b29264561608.png differ
diff --git a/public/media/732228-65c2496deecfa875290072.png b/public/media/732228-65c2496deecfa875290072.png
new file mode 100644
index 0000000..c8eb273
Binary files /dev/null and b/public/media/732228-65c2496deecfa875290072.png differ
diff --git a/public/media/732228-65c24ec9d3d72830997540.png b/public/media/732228-65c24ec9d3d72830997540.png
new file mode 100644
index 0000000..c8eb273
Binary files /dev/null and b/public/media/732228-65c24ec9d3d72830997540.png differ
diff --git a/public/media/87390-65c23aa094e74318686881.png b/public/media/87390-65c23aa094e74318686881.png
new file mode 100644
index 0000000..c76aeff
Binary files /dev/null and b/public/media/87390-65c23aa094e74318686881.png differ
diff --git a/public/media/87390-65c23aa0a0b53823069429.png b/public/media/87390-65c23aa0a0b53823069429.png
new file mode 100644
index 0000000..c76aeff
Binary files /dev/null and b/public/media/87390-65c23aa0a0b53823069429.png differ
diff --git a/public/media/87390-65c23aa0b6f2d493419588.png b/public/media/87390-65c23aa0b6f2d493419588.png
new file mode 100644
index 0000000..c76aeff
Binary files /dev/null and b/public/media/87390-65c23aa0b6f2d493419588.png differ
diff --git a/public/media/87390-65c2496ddbaf0465275319.png b/public/media/87390-65c2496ddbaf0465275319.png
new file mode 100644
index 0000000..c76aeff
Binary files /dev/null and b/public/media/87390-65c2496ddbaf0465275319.png differ
diff --git a/public/media/87390-65c24ec9cb74e354893959.png b/public/media/87390-65c24ec9cb74e354893959.png
new file mode 100644
index 0000000..c76aeff
Binary files /dev/null and b/public/media/87390-65c24ec9cb74e354893959.png differ
diff --git a/public/media/87390-65c24ec9d5308805633531.png b/public/media/87390-65c24ec9d5308805633531.png
new file mode 100644
index 0000000..c76aeff
Binary files /dev/null and b/public/media/87390-65c24ec9d5308805633531.png differ
diff --git a/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c23aa096145072761078.webp b/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c23aa096145072761078.webp
new file mode 100644
index 0000000..c54493e
Binary files /dev/null and b/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c23aa096145072761078.webp differ
diff --git a/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c23aa09fd74603954608.webp b/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c23aa09fd74603954608.webp
new file mode 100644
index 0000000..c54493e
Binary files /dev/null and b/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c23aa09fd74603954608.webp differ
diff --git a/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c23aa0b068c401749393.webp b/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c23aa0b068c401749393.webp
new file mode 100644
index 0000000..c54493e
Binary files /dev/null and b/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c23aa0b068c401749393.webp differ
diff --git a/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c2496dea401621286484.webp b/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c2496dea401621286484.webp
new file mode 100644
index 0000000..c54493e
Binary files /dev/null and b/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c2496dea401621286484.webp differ
diff --git a/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c24ec9b9bbf381153453.webp b/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c24ec9b9bbf381153453.webp
new file mode 100644
index 0000000..c54493e
Binary files /dev/null and b/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c24ec9b9bbf381153453.webp differ
diff --git a/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c24ec9c15a8465091438.webp b/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c24ec9c15a8465091438.webp
new file mode 100644
index 0000000..c54493e
Binary files /dev/null and b/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c24ec9c15a8465091438.webp differ
diff --git a/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c24ec9c79fc885946880.webp b/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c24ec9c79fc885946880.webp
new file mode 100644
index 0000000..c54493e
Binary files /dev/null and b/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c24ec9c79fc885946880.webp differ
diff --git a/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c24ec9d30f3369989604.webp b/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c24ec9d30f3369989604.webp
new file mode 100644
index 0000000..c54493e
Binary files /dev/null and b/public/media/com-gamerlogomaker-esportslogomakerpro-gaminglogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9-512x512-65c24ec9d30f3369989604.webp differ
diff --git a/public/media/google-chrome-portable-logo-1-1-30-65c23a9bdbd68224579037.webp b/public/media/google-chrome-portable-logo-1-1-30-65c23a9bdbd68224579037.webp
new file mode 100644
index 0000000..730e961
Binary files /dev/null and b/public/media/google-chrome-portable-logo-1-1-30-65c23a9bdbd68224579037.webp differ
diff --git a/public/media/google-chrome-portable-logo-1-1-30-65c23a9c4d02f626756858.webp b/public/media/google-chrome-portable-logo-1-1-30-65c23a9c4d02f626756858.webp
new file mode 100644
index 0000000..730e961
Binary files /dev/null and b/public/media/google-chrome-portable-logo-1-1-30-65c23a9c4d02f626756858.webp differ
diff --git a/public/media/google-chrome-portable-logo-1-1-30-65c2496de3a0c589023515.webp b/public/media/google-chrome-portable-logo-1-1-30-65c2496de3a0c589023515.webp
new file mode 100644
index 0000000..730e961
Binary files /dev/null and b/public/media/google-chrome-portable-logo-1-1-30-65c2496de3a0c589023515.webp differ
diff --git a/public/media/google-chrome-portable-logo-1-1-30-65c24ec9c5c06396358753.webp b/public/media/google-chrome-portable-logo-1-1-30-65c24ec9c5c06396358753.webp
new file mode 100644
index 0000000..730e961
Binary files /dev/null and b/public/media/google-chrome-portable-logo-1-1-30-65c24ec9c5c06396358753.webp differ
diff --git a/public/media/hsv-65c2496ddc321446965823.svg b/public/media/hsv-65c2496ddc321446965823.svg
new file mode 100644
index 0000000..dc65f16
--- /dev/null
+++ b/public/media/hsv-65c2496ddc321446965823.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/media/hsv-65c2496dead69230638127.svg b/public/media/hsv-65c2496dead69230638127.svg
new file mode 100644
index 0000000..dc65f16
--- /dev/null
+++ b/public/media/hsv-65c2496dead69230638127.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/media/hsv-65c24ec9d0bc6642519982.svg b/public/media/hsv-65c24ec9d0bc6642519982.svg
new file mode 100644
index 0000000..dc65f16
--- /dev/null
+++ b/public/media/hsv-65c24ec9d0bc6642519982.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/media/huawei-logo-9-65c2496de9b22414512522.png b/public/media/huawei-logo-9-65c2496de9b22414512522.png
new file mode 100644
index 0000000..f1e9f5b
Binary files /dev/null and b/public/media/huawei-logo-9-65c2496de9b22414512522.png differ
diff --git a/public/media/huawei-logo-9-65c24ec9c1e71753731034.png b/public/media/huawei-logo-9-65c24ec9c1e71753731034.png
new file mode 100644
index 0000000..f1e9f5b
Binary files /dev/null and b/public/media/huawei-logo-9-65c24ec9c1e71753731034.png differ
diff --git a/public/media/huawei-logo-9-65c24ec9c83e5979879881.png b/public/media/huawei-logo-9-65c24ec9c83e5979879881.png
new file mode 100644
index 0000000..f1e9f5b
Binary files /dev/null and b/public/media/huawei-logo-9-65c24ec9c83e5979879881.png differ
diff --git a/public/media/images-65c23aa099d9f812308960.jpg b/public/media/images-65c23aa099d9f812308960.jpg
new file mode 100644
index 0000000..81bdbb7
Binary files /dev/null and b/public/media/images-65c23aa099d9f812308960.jpg differ
diff --git a/public/media/images-65c23aa0aa61e763781547.jpg b/public/media/images-65c23aa0aa61e763781547.jpg
new file mode 100644
index 0000000..81bdbb7
Binary files /dev/null and b/public/media/images-65c23aa0aa61e763781547.jpg differ
diff --git a/public/media/images-65c23aa0afc3e845515892.jpg b/public/media/images-65c23aa0afc3e845515892.jpg
new file mode 100644
index 0000000..81bdbb7
Binary files /dev/null and b/public/media/images-65c23aa0afc3e845515892.jpg differ
diff --git a/public/media/images-65c2496dd7f3e021279072.jpg b/public/media/images-65c2496dd7f3e021279072.jpg
new file mode 100644
index 0000000..81bdbb7
Binary files /dev/null and b/public/media/images-65c2496dd7f3e021279072.jpg differ
diff --git a/public/media/images-65c2496de0d20953198228.jpg b/public/media/images-65c2496de0d20953198228.jpg
new file mode 100644
index 0000000..81bdbb7
Binary files /dev/null and b/public/media/images-65c2496de0d20953198228.jpg differ
diff --git a/public/media/images-65c24ec9b89dc154508770.jpg b/public/media/images-65c24ec9b89dc154508770.jpg
new file mode 100644
index 0000000..81bdbb7
Binary files /dev/null and b/public/media/images-65c24ec9b89dc154508770.jpg differ
diff --git a/public/media/images-65c24ec9c52ee465268195.jpg b/public/media/images-65c24ec9c52ee465268195.jpg
new file mode 100644
index 0000000..81bdbb7
Binary files /dev/null and b/public/media/images-65c24ec9c52ee465268195.jpg differ
diff --git a/public/media/images-65c24ec9cd1cb986409037.jpg b/public/media/images-65c24ec9cd1cb986409037.jpg
new file mode 100644
index 0000000..81bdbb7
Binary files /dev/null and b/public/media/images-65c24ec9cd1cb986409037.jpg differ
diff --git a/public/media/images-65c24ec9cf6a0579754687.jpg b/public/media/images-65c24ec9cf6a0579754687.jpg
new file mode 100644
index 0000000..81bdbb7
Binary files /dev/null and b/public/media/images-65c24ec9cf6a0579754687.jpg differ
diff --git a/public/media/images-65c24ec9d24bb593356002.jpg b/public/media/images-65c24ec9d24bb593356002.jpg
new file mode 100644
index 0000000..81bdbb7
Binary files /dev/null and b/public/media/images-65c24ec9d24bb593356002.jpg differ
diff --git a/public/media/logo-65c23aa0a7527819794330.png b/public/media/logo-65c23aa0a7527819794330.png
new file mode 100644
index 0000000..7615456
Binary files /dev/null and b/public/media/logo-65c23aa0a7527819794330.png differ
diff --git a/public/media/logo-65c2496de6e59050778803.png b/public/media/logo-65c2496de6e59050778803.png
new file mode 100644
index 0000000..7615456
Binary files /dev/null and b/public/media/logo-65c2496de6e59050778803.png differ
diff --git a/public/media/logo-65c2496df1174895290718.png b/public/media/logo-65c2496df1174895290718.png
new file mode 100644
index 0000000..7615456
Binary files /dev/null and b/public/media/logo-65c2496df1174895290718.png differ
diff --git a/public/media/logo-65c24ec9c9995340219904.png b/public/media/logo-65c24ec9c9995340219904.png
new file mode 100644
index 0000000..7615456
Binary files /dev/null and b/public/media/logo-65c24ec9c9995340219904.png differ
diff --git a/public/media/logo-logoexample-header-1-en-65c23aa0a885b970447612.webp b/public/media/logo-logoexample-header-1-en-65c23aa0a885b970447612.webp
new file mode 100644
index 0000000..eff501d
Binary files /dev/null and b/public/media/logo-logoexample-header-1-en-65c23aa0a885b970447612.webp differ
diff --git a/public/media/logo-logoexample-header-1-en-65c23aa0b3faa345363965.webp b/public/media/logo-logoexample-header-1-en-65c23aa0b3faa345363965.webp
new file mode 100644
index 0000000..eff501d
Binary files /dev/null and b/public/media/logo-logoexample-header-1-en-65c23aa0b3faa345363965.webp differ
diff --git a/public/media/logo-logoexample-header-1-en-65c2496de28dd704344409.webp b/public/media/logo-logoexample-header-1-en-65c2496de28dd704344409.webp
new file mode 100644
index 0000000..eff501d
Binary files /dev/null and b/public/media/logo-logoexample-header-1-en-65c2496de28dd704344409.webp differ
diff --git a/public/media/logo-logoexample-header-1-en-65c2496de5cd4479657072.webp b/public/media/logo-logoexample-header-1-en-65c2496de5cd4479657072.webp
new file mode 100644
index 0000000..eff501d
Binary files /dev/null and b/public/media/logo-logoexample-header-1-en-65c2496de5cd4479657072.webp differ
diff --git a/public/media/logo-logoexample-header-1-en-65c2496deb707523911762.webp b/public/media/logo-logoexample-header-1-en-65c2496deb707523911762.webp
new file mode 100644
index 0000000..eff501d
Binary files /dev/null and b/public/media/logo-logoexample-header-1-en-65c2496deb707523911762.webp differ
diff --git a/public/media/logo-logoexample-header-1-en-65c2496df07e8149142336.webp b/public/media/logo-logoexample-header-1-en-65c2496df07e8149142336.webp
new file mode 100644
index 0000000..eff501d
Binary files /dev/null and b/public/media/logo-logoexample-header-1-en-65c2496df07e8149142336.webp differ
diff --git a/public/media/logo-logoexample-header-3-en-65c23a9cea937223489880.webp b/public/media/logo-logoexample-header-3-en-65c23a9cea937223489880.webp
new file mode 100644
index 0000000..8491d87
Binary files /dev/null and b/public/media/logo-logoexample-header-3-en-65c23a9cea937223489880.webp differ
diff --git a/public/media/logo-logoexample-header-3-en-65c2496dd932e053127531.webp b/public/media/logo-logoexample-header-3-en-65c2496dd932e053127531.webp
new file mode 100644
index 0000000..8491d87
Binary files /dev/null and b/public/media/logo-logoexample-header-3-en-65c2496dd932e053127531.webp differ
diff --git a/public/media/logo-logoexample-header-3-en-65c2496dde8bd602063630.webp b/public/media/logo-logoexample-header-3-en-65c2496dde8bd602063630.webp
new file mode 100644
index 0000000..8491d87
Binary files /dev/null and b/public/media/logo-logoexample-header-3-en-65c2496dde8bd602063630.webp differ
diff --git a/public/media/logo-logoexample-header-3-en-65c24ec9c8e42973108040.webp b/public/media/logo-logoexample-header-3-en-65c24ec9c8e42973108040.webp
new file mode 100644
index 0000000..8491d87
Binary files /dev/null and b/public/media/logo-logoexample-header-3-en-65c24ec9c8e42973108040.webp differ
diff --git a/public/media/logo-logoexample-header-3-en-65c24ec9cad4d625742448.webp b/public/media/logo-logoexample-header-3-en-65c24ec9cad4d625742448.webp
new file mode 100644
index 0000000..8491d87
Binary files /dev/null and b/public/media/logo-logoexample-header-3-en-65c24ec9cad4d625742448.webp differ
diff --git a/public/media/logo-logoexample-header-4-en-65c23aa0ab107202924140.webp b/public/media/logo-logoexample-header-4-en-65c23aa0ab107202924140.webp
new file mode 100644
index 0000000..dd0edeb
Binary files /dev/null and b/public/media/logo-logoexample-header-4-en-65c23aa0ab107202924140.webp differ
diff --git a/public/media/logo-logoexample-header-4-en-65c23aa0b626f141235529.webp b/public/media/logo-logoexample-header-4-en-65c23aa0b626f141235529.webp
new file mode 100644
index 0000000..dd0edeb
Binary files /dev/null and b/public/media/logo-logoexample-header-4-en-65c23aa0b626f141235529.webp differ
diff --git a/public/media/logo-logoexample-header-4-en-65c2496ddb269380816456.webp b/public/media/logo-logoexample-header-4-en-65c2496ddb269380816456.webp
new file mode 100644
index 0000000..dd0edeb
Binary files /dev/null and b/public/media/logo-logoexample-header-4-en-65c2496ddb269380816456.webp differ
diff --git a/public/media/logo-logoexample-header-4-en-65c2496ddfa9a728426277.webp b/public/media/logo-logoexample-header-4-en-65c2496ddfa9a728426277.webp
new file mode 100644
index 0000000..dd0edeb
Binary files /dev/null and b/public/media/logo-logoexample-header-4-en-65c2496ddfa9a728426277.webp differ
diff --git a/public/media/logo-logoexample-header-4-en-65c24ec9bc987447557768.webp b/public/media/logo-logoexample-header-4-en-65c24ec9bc987447557768.webp
new file mode 100644
index 0000000..dd0edeb
Binary files /dev/null and b/public/media/logo-logoexample-header-4-en-65c24ec9bc987447557768.webp differ
diff --git a/public/media/logo-logoexample-header-4-en-65c24ec9bd270818495910.webp b/public/media/logo-logoexample-header-4-en-65c24ec9bd270818495910.webp
new file mode 100644
index 0000000..dd0edeb
Binary files /dev/null and b/public/media/logo-logoexample-header-4-en-65c24ec9bd270818495910.webp differ
diff --git a/public/media/logo-logoexample-header-4-en-65c24ec9c2f30542849381.webp b/public/media/logo-logoexample-header-4-en-65c24ec9c2f30542849381.webp
new file mode 100644
index 0000000..dd0edeb
Binary files /dev/null and b/public/media/logo-logoexample-header-4-en-65c24ec9c2f30542849381.webp differ
diff --git a/public/media/logo-vb-kreis-small-65c23aa0ac6e3339902018.png b/public/media/logo-vb-kreis-small-65c23aa0ac6e3339902018.png
new file mode 100644
index 0000000..93cc203
Binary files /dev/null and b/public/media/logo-vb-kreis-small-65c23aa0ac6e3339902018.png differ
diff --git a/public/media/logo-vb-kreis-small-65c2496de4b62674002270.png b/public/media/logo-vb-kreis-small-65c2496de4b62674002270.png
new file mode 100644
index 0000000..93cc203
Binary files /dev/null and b/public/media/logo-vb-kreis-small-65c2496de4b62674002270.png differ
diff --git a/public/media/logo-vb-kreis-small-65c2496de7779086595130.png b/public/media/logo-vb-kreis-small-65c2496de7779086595130.png
new file mode 100644
index 0000000..93cc203
Binary files /dev/null and b/public/media/logo-vb-kreis-small-65c2496de7779086595130.png differ
diff --git a/public/media/logo-vb-kreis-small-65c2496ded206473266099.png b/public/media/logo-vb-kreis-small-65c2496ded206473266099.png
new file mode 100644
index 0000000..93cc203
Binary files /dev/null and b/public/media/logo-vb-kreis-small-65c2496ded206473266099.png differ
diff --git a/public/media/logo-vb-kreis-small-65c24ec9b7e2b176493123.png b/public/media/logo-vb-kreis-small-65c24ec9b7e2b176493123.png
new file mode 100644
index 0000000..93cc203
Binary files /dev/null and b/public/media/logo-vb-kreis-small-65c24ec9b7e2b176493123.png differ
diff --git a/public/media/logo-vb-kreis-small-65c24ec9be300951508838.png b/public/media/logo-vb-kreis-small-65c24ec9be300951508838.png
new file mode 100644
index 0000000..93cc203
Binary files /dev/null and b/public/media/logo-vb-kreis-small-65c24ec9be300951508838.png differ
diff --git a/public/media/logo-vb-kreis-small-65c24ec9cbff5070173996.png b/public/media/logo-vb-kreis-small-65c24ec9cbff5070173996.png
new file mode 100644
index 0000000..93cc203
Binary files /dev/null and b/public/media/logo-vb-kreis-small-65c24ec9cbff5070173996.png differ
diff --git a/public/media/mobile-icon-65c23a9ca39b4796411335.png b/public/media/mobile-icon-65c23a9ca39b4796411335.png
new file mode 100644
index 0000000..720a37f
Binary files /dev/null and b/public/media/mobile-icon-65c23a9ca39b4796411335.png differ
diff --git a/public/media/mobile-icon-65c23aa0a7f99530023413.png b/public/media/mobile-icon-65c23aa0a7f99530023413.png
new file mode 100644
index 0000000..720a37f
Binary files /dev/null and b/public/media/mobile-icon-65c23aa0a7f99530023413.png differ
diff --git a/public/media/mobile-icon-65c23aa0adb91982825655.png b/public/media/mobile-icon-65c23aa0adb91982825655.png
new file mode 100644
index 0000000..720a37f
Binary files /dev/null and b/public/media/mobile-icon-65c23aa0adb91982825655.png differ
diff --git a/public/media/mobile-icon-65c2496dd4e38038534741.png b/public/media/mobile-icon-65c2496dd4e38038534741.png
new file mode 100644
index 0000000..720a37f
Binary files /dev/null and b/public/media/mobile-icon-65c2496dd4e38038534741.png differ
diff --git a/public/media/mobile-icon-65c24ec9bfbb7847624356.png b/public/media/mobile-icon-65c24ec9bfbb7847624356.png
new file mode 100644
index 0000000..720a37f
Binary files /dev/null and b/public/media/mobile-icon-65c24ec9bfbb7847624356.png differ
diff --git a/public/media/reddit-fill-logo-icon-256x256-3z8kcz41-65c23aa08f1fa138433218.png b/public/media/reddit-fill-logo-icon-256x256-3z8kcz41-65c23aa08f1fa138433218.png
new file mode 100644
index 0000000..9dfe9a1
Binary files /dev/null and b/public/media/reddit-fill-logo-icon-256x256-3z8kcz41-65c23aa08f1fa138433218.png differ
diff --git a/public/media/reddit-fill-logo-icon-256x256-3z8kcz41-65c23aa098b18116549040.png b/public/media/reddit-fill-logo-icon-256x256-3z8kcz41-65c23aa098b18116549040.png
new file mode 100644
index 0000000..9dfe9a1
Binary files /dev/null and b/public/media/reddit-fill-logo-icon-256x256-3z8kcz41-65c23aa098b18116549040.png differ
diff --git a/public/media/reddit-fill-logo-icon-256x256-3z8kcz41-65c23aa09e31a377390382.png b/public/media/reddit-fill-logo-icon-256x256-3z8kcz41-65c23aa09e31a377390382.png
new file mode 100644
index 0000000..9dfe9a1
Binary files /dev/null and b/public/media/reddit-fill-logo-icon-256x256-3z8kcz41-65c23aa09e31a377390382.png differ
diff --git a/public/media/reddit-fill-logo-icon-256x256-3z8kcz41-65c2496de5427284169049.png b/public/media/reddit-fill-logo-icon-256x256-3z8kcz41-65c2496de5427284169049.png
new file mode 100644
index 0000000..9dfe9a1
Binary files /dev/null and b/public/media/reddit-fill-logo-icon-256x256-3z8kcz41-65c2496de5427284169049.png differ
diff --git a/public/media/reddit-fill-logo-icon-256x256-3z8kcz41-65c2496dec918249834352.png b/public/media/reddit-fill-logo-icon-256x256-3z8kcz41-65c2496dec918249834352.png
new file mode 100644
index 0000000..9dfe9a1
Binary files /dev/null and b/public/media/reddit-fill-logo-icon-256x256-3z8kcz41-65c2496dec918249834352.png differ
diff --git a/public/media/reddit-fill-logo-icon-256x256-3z8kcz41-65c24ec9beb0f000912365.png b/public/media/reddit-fill-logo-icon-256x256-3z8kcz41-65c24ec9beb0f000912365.png
new file mode 100644
index 0000000..9dfe9a1
Binary files /dev/null and b/public/media/reddit-fill-logo-icon-256x256-3z8kcz41-65c24ec9beb0f000912365.png differ
diff --git a/public/media/sketchup-logo-65c23aa0a613c142786288.png b/public/media/sketchup-logo-65c23aa0a613c142786288.png
new file mode 100644
index 0000000..d45668d
Binary files /dev/null and b/public/media/sketchup-logo-65c23aa0a613c142786288.png differ
diff --git a/public/media/sketchup-logo-65c23aa0a9b6d846262630.png b/public/media/sketchup-logo-65c23aa0a9b6d846262630.png
new file mode 100644
index 0000000..d45668d
Binary files /dev/null and b/public/media/sketchup-logo-65c23aa0a9b6d846262630.png differ
diff --git a/public/media/sketchup-logo-65c23aa0b1f8f750311656.png b/public/media/sketchup-logo-65c23aa0b1f8f750311656.png
new file mode 100644
index 0000000..d45668d
Binary files /dev/null and b/public/media/sketchup-logo-65c23aa0b1f8f750311656.png differ
diff --git a/public/media/sketchup-logo-65c23aa0b2bb1525281981.png b/public/media/sketchup-logo-65c23aa0b2bb1525281981.png
new file mode 100644
index 0000000..d45668d
Binary files /dev/null and b/public/media/sketchup-logo-65c23aa0b2bb1525281981.png differ
diff --git a/public/media/sketchup-logo-65c2496ddcc17217474898.png b/public/media/sketchup-logo-65c2496ddcc17217474898.png
new file mode 100644
index 0000000..d45668d
Binary files /dev/null and b/public/media/sketchup-logo-65c2496ddcc17217474898.png differ
diff --git a/public/media/spotify-icon-249751-65c2496de922c170111130.png b/public/media/spotify-icon-249751-65c2496de922c170111130.png
new file mode 100644
index 0000000..e8bb26b
Binary files /dev/null and b/public/media/spotify-icon-249751-65c2496de922c170111130.png differ
diff --git a/public/media/spotify-icon-249751-65c2496defee4310325281.png b/public/media/spotify-icon-249751-65c2496defee4310325281.png
new file mode 100644
index 0000000..e8bb26b
Binary files /dev/null and b/public/media/spotify-icon-249751-65c2496defee4310325281.png differ
diff --git a/public/media/spotify-icon-249751-65c24ec9c045e739570497.png b/public/media/spotify-icon-249751-65c24ec9c045e739570497.png
new file mode 100644
index 0000000..e8bb26b
Binary files /dev/null and b/public/media/spotify-icon-249751-65c24ec9c045e739570497.png differ
diff --git a/public/media/spotify-icon-249751-65c24ec9d4853207506330.png b/public/media/spotify-icon-249751-65c24ec9d4853207506330.png
new file mode 100644
index 0000000..e8bb26b
Binary files /dev/null and b/public/media/spotify-icon-249751-65c24ec9d4853207506330.png differ
diff --git a/public/media/unbenannt-65c23a9b0c2fc124539068.png b/public/media/unbenannt-65c23a9b0c2fc124539068.png
new file mode 100644
index 0000000..23a0721
Binary files /dev/null and b/public/media/unbenannt-65c23a9b0c2fc124539068.png differ
diff --git a/public/media/unbenannt-65c24ec9bdb09413016697.png b/public/media/unbenannt-65c24ec9bdb09413016697.png
new file mode 100644
index 0000000..23a0721
Binary files /dev/null and b/public/media/unbenannt-65c24ec9bdb09413016697.png differ
diff --git a/public/media/unbenannt-65c24ec9c0d58974867698.png b/public/media/unbenannt-65c24ec9c0d58974867698.png
new file mode 100644
index 0000000..23a0721
Binary files /dev/null and b/public/media/unbenannt-65c24ec9c0d58974867698.png differ
diff --git a/public/media/unbenannt-65c24ec9c6ffc526278769.png b/public/media/unbenannt-65c24ec9c6ffc526278769.png
new file mode 100644
index 0000000..23a0721
Binary files /dev/null and b/public/media/unbenannt-65c24ec9c6ffc526278769.png differ
diff --git a/public/media/unbenannt-65c24ec9ce4ec645088620.png b/public/media/unbenannt-65c24ec9ce4ec645088620.png
new file mode 100644
index 0000000..23a0721
Binary files /dev/null and b/public/media/unbenannt-65c24ec9ce4ec645088620.png differ
diff --git a/public/media/urn-ard-image-e86f6849215ea7e6-65c23aa09c223854052067.jpg b/public/media/urn-ard-image-e86f6849215ea7e6-65c23aa09c223854052067.jpg
new file mode 100644
index 0000000..5951a71
Binary files /dev/null and b/public/media/urn-ard-image-e86f6849215ea7e6-65c23aa09c223854052067.jpg differ
diff --git a/public/media/urn-ard-image-e86f6849215ea7e6-65c23aa0a4c5e346331740.jpg b/public/media/urn-ard-image-e86f6849215ea7e6-65c23aa0a4c5e346331740.jpg
new file mode 100644
index 0000000..5951a71
Binary files /dev/null and b/public/media/urn-ard-image-e86f6849215ea7e6-65c23aa0a4c5e346331740.jpg differ
diff --git a/public/media/urn-ard-image-e86f6849215ea7e6-65c2496dddf14330814735.jpg b/public/media/urn-ard-image-e86f6849215ea7e6-65c2496dddf14330814735.jpg
new file mode 100644
index 0000000..5951a71
Binary files /dev/null and b/public/media/urn-ard-image-e86f6849215ea7e6-65c2496dddf14330814735.jpg differ
diff --git a/public/media/urn-ard-image-e86f6849215ea7e6-65c24ec9b92ea171326157.jpg b/public/media/urn-ard-image-e86f6849215ea7e6-65c24ec9b92ea171326157.jpg
new file mode 100644
index 0000000..5951a71
Binary files /dev/null and b/public/media/urn-ard-image-e86f6849215ea7e6-65c24ec9b92ea171326157.jpg differ
diff --git a/public/media/urn-ard-image-e86f6849215ea7e6-65c24ec9c48f5720088236.jpg b/public/media/urn-ard-image-e86f6849215ea7e6-65c24ec9c48f5720088236.jpg
new file mode 100644
index 0000000..5951a71
Binary files /dev/null and b/public/media/urn-ard-image-e86f6849215ea7e6-65c24ec9c48f5720088236.jpg differ
diff --git a/public/media/urn-ard-image-e86f6849215ea7e6-65c24ec9cdb4f981965014.jpg b/public/media/urn-ard-image-e86f6849215ea7e6-65c24ec9cdb4f981965014.jpg
new file mode 100644
index 0000000..5951a71
Binary files /dev/null and b/public/media/urn-ard-image-e86f6849215ea7e6-65c24ec9cdb4f981965014.jpg differ
diff --git a/public/media/volkswagen-65c23aa09d3d2740558850.png b/public/media/volkswagen-65c23aa09d3d2740558850.png
new file mode 100644
index 0000000..ae9a4b8
Binary files /dev/null and b/public/media/volkswagen-65c23aa09d3d2740558850.png differ
diff --git a/public/media/volkswagen-65c23aa0a5772061323559.png b/public/media/volkswagen-65c23aa0a5772061323559.png
new file mode 100644
index 0000000..ae9a4b8
Binary files /dev/null and b/public/media/volkswagen-65c23aa0a5772061323559.png differ
diff --git a/public/media/volkswagen-65c2496de42d5849521615.png b/public/media/volkswagen-65c2496de42d5849521615.png
new file mode 100644
index 0000000..ae9a4b8
Binary files /dev/null and b/public/media/volkswagen-65c2496de42d5849521615.png differ
diff --git a/public/media/volkswagen-65c2496de65db976934502.png b/public/media/volkswagen-65c2496de65db976934502.png
new file mode 100644
index 0000000..ae9a4b8
Binary files /dev/null and b/public/media/volkswagen-65c2496de65db976934502.png differ
diff --git a/public/media/volkswagen-65c2496dee3f4847142592.png b/public/media/volkswagen-65c2496dee3f4847142592.png
new file mode 100644
index 0000000..ae9a4b8
Binary files /dev/null and b/public/media/volkswagen-65c2496dee3f4847142592.png differ
diff --git a/public/media/volkswagen-65c24ec9bf345448689960.png b/public/media/volkswagen-65c24ec9bf345448689960.png
new file mode 100644
index 0000000..ae9a4b8
Binary files /dev/null and b/public/media/volkswagen-65c24ec9bf345448689960.png differ
diff --git a/public/media/volkswagen-65c24ec9cffac353734493.png b/public/media/volkswagen-65c24ec9cffac353734493.png
new file mode 100644
index 0000000..ae9a4b8
Binary files /dev/null and b/public/media/volkswagen-65c24ec9cffac353734493.png differ
diff --git a/public/media/volkswagen-65c24ec9d184e734966425.png b/public/media/volkswagen-65c24ec9d184e734966425.png
new file mode 100644
index 0000000..ae9a4b8
Binary files /dev/null and b/public/media/volkswagen-65c24ec9d184e734966425.png differ
diff --git a/public/media/web-de-logo-65c23aa0a2412027851620.svg b/public/media/web-de-logo-65c23aa0a2412027851620.svg
new file mode 100644
index 0000000..88fa9ff
--- /dev/null
+++ b/public/media/web-de-logo-65c23aa0a2412027851620.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/media/web-de-logo-65c2496dd9ce6099821767.svg b/public/media/web-de-logo-65c2496dd9ce6099821767.svg
new file mode 100644
index 0000000..88fa9ff
--- /dev/null
+++ b/public/media/web-de-logo-65c2496dd9ce6099821767.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/media/web-de-logo-65c2496de1f49095889044.svg b/public/media/web-de-logo-65c2496de1f49095889044.svg
new file mode 100644
index 0000000..88fa9ff
--- /dev/null
+++ b/public/media/web-de-logo-65c2496de1f49095889044.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/media/web-de-logo-65c2496df1aa5849653345.svg b/public/media/web-de-logo-65c2496df1aa5849653345.svg
new file mode 100644
index 0000000..88fa9ff
--- /dev/null
+++ b/public/media/web-de-logo-65c2496df1aa5849653345.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/ApiResource/ContactApi.php b/src/ApiResource/ContactApi.php
new file mode 100644
index 0000000..e7a100d
--- /dev/null
+++ b/src/ApiResource/ContactApi.php
@@ -0,0 +1,72 @@
+
+ * @date 12.12.23
+ */
+
+
+namespace App\ApiResource;
+
+use ApiPlatform\Doctrine\Orm\State\Options;
+use ApiPlatform\Metadata\ApiProperty;
+use ApiPlatform\Metadata\ApiResource;
+use App\Entity\MediaObject;
+use App\Entity\Partner;
+use App\Enum\PartnerType;
+use App\State\EntityClassDtoStateProcessor;
+use App\State\EntityToDtoStateProvider;
+use ApiPlatform\Metadata\Delete;
+use ApiPlatform\Metadata\Get;
+use ApiPlatform\Metadata\GetCollection;
+use ApiPlatform\Metadata\Patch;
+use ApiPlatform\Metadata\Post;
+use Symfony\Component\Validator\Constraints\NotBlank;
+
+#[ApiResource(
+ shortName: 'Contact',
+ operations: [
+ new Get(
+ security: 'is_granted("ROLE_USER")'
+ ),
+ new GetCollection(),
+ new Post(
+ security: 'is_granted("ROLE_USER")',
+ ),
+ new Patch(
+ security: 'is_granted("EDIT", object)',
+ ),
+ new Delete(
+ security: 'is_granted("ROLE_ADMIN")',
+ )
+ ],
+ paginationItemsPerPage: 10,
+ security: 'is_granted("ROLE_USER")',
+ provider: EntityToDtoStateProvider::class,
+ processor: EntityClassDtoStateProcessor::class,
+ stateOptions: new Options(entityClass: Partner::class),
+)]
+class ContactApi
+{
+ #[ApiProperty(readable: false, writable: false, identifier: true)]
+ public ?int $id = null;
+
+ #[NotBlank]
+ public ?string $firstName = null;
+
+ #[NotBlank]
+ public ?string $lastName = null;
+
+ public ?Partner $partner = null;
+
+ public ?\DateTimeInterface $birthday = null;
+
+ public ?string $image = null;
+
+ public ?string $position = null;
+
+ public ?string $phone = null;
+
+ public ?string $email = null;
+
+ public ?\DateTimeImmutable $createdAt = null;
+}
\ No newline at end of file
diff --git a/src/ApiResource/PartnerApi.php b/src/ApiResource/PartnerApi.php
new file mode 100644
index 0000000..86e684e
--- /dev/null
+++ b/src/ApiResource/PartnerApi.php
@@ -0,0 +1,79 @@
+
+ * @date 12.12.23
+ */
+
+
+namespace App\ApiResource;
+
+use ApiPlatform\Doctrine\Orm\State\Options;
+use ApiPlatform\Metadata\ApiProperty;
+use ApiPlatform\Metadata\ApiResource;
+use App\Entity\MediaObject;
+use App\Entity\Partner;
+use App\Enum\PartnerType;
+use App\State\EntityClassDtoStateProcessor;
+use App\State\EntityToDtoStateProvider;
+use ApiPlatform\Metadata\Delete;
+use ApiPlatform\Metadata\Get;
+use ApiPlatform\Metadata\GetCollection;
+use ApiPlatform\Metadata\Patch;
+use ApiPlatform\Metadata\Post;
+use Symfony\Component\Validator\Constraints\NotBlank;
+
+#[ApiResource(
+ shortName: 'Partner',
+ operations: [
+ new Get(
+ security: 'is_granted("ROLE_USER")'
+ ),
+ new GetCollection(),
+ new Post(
+ security: 'is_granted("ROLE_USER")',
+ ),
+ new Patch(
+ security: 'is_granted("EDIT", object)',
+ ),
+ new Delete(
+ security: 'is_granted("ROLE_ADMIN")',
+ )
+ ],
+ paginationItemsPerPage: 10,
+ security: 'is_granted("ROLE_USER")',
+ provider: EntityToDtoStateProvider::class,
+ processor: EntityClassDtoStateProcessor::class,
+ stateOptions: new Options(entityClass: Partner::class),
+)]
+class PartnerApi
+{
+ #[ApiProperty(readable: false, writable: false, identifier: true)]
+ public ?int $id = null;
+
+ #[NotBlank]
+ public string $name;
+
+ #[NotBlank]
+ public PartnerType $type;
+
+ public ?string $street = null;
+
+ public ?string $streetNo = null;
+
+ public ?string $zip = null;
+
+ public ?string $city = null;
+
+ public ?string $country = null;
+
+ public ?string $website = null;
+
+ public ?MediaObject $logo = null;
+
+ public ?\DateTimeImmutable $createdAt = null;
+
+ /**
+ * @var array
+ */
+ public array $contacts = [];
+}
\ No newline at end of file
diff --git a/src/ApiResource/PostingApi.php b/src/ApiResource/PostingApi.php
index e6ac88f..5f92a0d 100644
--- a/src/ApiResource/PostingApi.php
+++ b/src/ApiResource/PostingApi.php
@@ -22,7 +22,7 @@ use App\Validator\IsValidOwner;
use Symfony\Component\Validator\Constraints\NotBlank;
#[ApiResource(
- shortName: 'Post',
+ shortName: 'Posting',
operations: [
new Get(
security: 'is_granted("ROLE_USER")'
diff --git a/src/ApiResource/UserApi.php b/src/ApiResource/UserApi.php
index 774ca98..1170cac 100644
--- a/src/ApiResource/UserApi.php
+++ b/src/ApiResource/UserApi.php
@@ -78,5 +78,5 @@ class UserApi
/**
* @var array
*/
- public array $userPosts = [];
+ public array $postings = [];
}
\ No newline at end of file
diff --git a/src/Controller/CreateMediaObjectAction.php b/src/Controller/CreateMediaObjectAction.php
index 819d16b..cddf6dd 100644
--- a/src/Controller/CreateMediaObjectAction.php
+++ b/src/Controller/CreateMediaObjectAction.php
@@ -9,7 +9,6 @@ namespace App\Controller;
use App\Entity\MediaObject;
-use App\Serializer\MediaObjectNormalizer;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Attribute\AsController;
@@ -30,4 +29,4 @@ final class CreateMediaObjectAction extends AbstractController
return $mediaObject;
}
-}
+}
\ No newline at end of file
diff --git a/src/DataFixtures/AppFixtures.php b/src/DataFixtures/AppFixtures.php
index dc31a78..de3c08b 100644
--- a/src/DataFixtures/AppFixtures.php
+++ b/src/DataFixtures/AppFixtures.php
@@ -2,6 +2,7 @@
namespace App\DataFixtures;
+use App\Factory\MediaObjectFactory;
use App\Factory\PartnerFactory;
use App\Factory\PostingFactory;
use App\Factory\UserFactory;
@@ -39,6 +40,12 @@ class AppFixtures extends Fixture
];
});
- //PartnerFactory::createMany(50);
+ MediaObjectFactory::createMany(50);
+ PartnerFactory::createMany(50, function() {
+ return [
+ 'logo' => MediaObjectFactory::random()
+ ];
+ });
+
}
}
diff --git a/src/DataFixtures/FakeValues.php b/src/DataFixtures/FakeValues.php
new file mode 100644
index 0000000..3909c9e
--- /dev/null
+++ b/src/DataFixtures/FakeValues.php
@@ -0,0 +1,174 @@
+
+ * @date 06.02.24
+ */
+
+
+namespace App\DataFixtures;
+
+
+class FakeValues
+{
+ const FIRST_NAMES = [
+ 'Alice', 'Bob', 'Charlie', 'David', 'Emma',
+ 'Frank', 'Grace', 'Henry', 'Ivy', 'Jack',
+ 'Kate', 'Liam', 'Mia', 'Noah', 'Olivia',
+ 'Paul', 'Quinn', 'Ryan', 'Sophia', 'Thomas',
+ 'Ursula', 'Victor', 'Wendy', 'Xander', 'Yvonne'
+ ];
+
+ const LAST_NAMES = [
+ 'Smith', 'Johnson', 'Williams', 'Jones', 'Brown',
+ 'Davis', 'Miller', 'Wilson', 'Moore', 'Taylor',
+ 'Anderson', 'Thomas', 'Jackson', 'White', 'Harris',
+ 'Martin', 'Thompson', 'Garcia', 'Martinez', 'Robinson',
+ 'Clark', 'Lewis', 'Lee', 'Walker', 'Hall'
+ ];
+
+ const COMPANY_NAMES = [
+ "QuantumSolutions", "InnovateHub", "NexusDynamics", "ZenithTech",
+ "StellarCraft", "SynergeticSystems", "PinnacleInnovations", "HorizonForge",
+ "ApexVentures", "QuantumQuotient", "NebulaLabs", "CatalystX",
+ "ZenithInventia", "EclipticEnterprises", "NovaSynth", "ProdigySolutions",
+ "TechnoSphereX", "InfinitiInnovate", "FusionForge", "EpochTech",
+ "QuantumLeapIndustries", "VertexVanguard", "RadiantInvent", "NebulaNex",
+ "StellarSprint", "AscendInnovations", "PulsarSolutions", "SynergyCraft",
+ "InfinityCatalyst", "ZenithDynamics", "QuantumHorizon", "EvolveNex",
+ "OrionInnovate", "FusionFrontiers", "ApexArc", "NebulaTech", "QuantumSynergies",
+ "InnovateMinds", "PinnaclePulse", "EpochElite", "ZenithForge", "InfinitiSprint",
+ "RadiantRealm", "QuantumQuasar", "HorizonHarbor", "ApexNucleus", "NebulaNovus",
+ "SynergeticSynth", "QuantumQuotum", "InnovateVista", "CrimsonCatalyst",
+ "InfernoSolutions", "LunarInnovations", "VortexVentures", "StratosCraft",
+ "CelestialSynergies", "AuroraInventia", "PhoenixFrontiers", "IgniteIndustries",
+ "SolsticeSprint", "GalacticGears", "EquinoxEnterprises", "EclipseElite",
+ "OrbitInnovate", "AstralArc", "MeridianMinds", "PolarisPulse", "PlasmaPinnacle",
+ "ThunderTech", "QuasarQuest", "CosmicCatalyst", "RadiantRift", "VividVista",
+ "SpectrumSolutions", "AetherAegis", "PrimePulse", "NebulaNest", "QuantumQuell",
+ "EternalEcliptic", "ParagonPinnacle", "OmniverseOrbit", "ZenithZephyr",
+ "CeruleanCraft", "SerenitySynergetic", "VelocityVortex", "LuminousLabs",
+ "VistaVortex", "PinnaclePanorama", "NebulaNurture", "QuantumQuell", "EclipseEden",
+ "NebulaNectar", "SynergeticSerene", "QuantumQuasar", "InnovateInfinity",
+ "RadiantRapture", "ZenithZest", "AuroraAegis", "CelestialCascade"
+ ];
+
+ const COMPANY_LEGAL_FORMS = [
+ "GmbH", "AG", "Limited", "LLC",
+ "SRL", "SAS", "S.A.", "Inc.",
+ "Pte Ltd", "Ltd.", "K.K.", "B.V.",
+ "S.A.S.", "Oy", "S.A.R.L.", "A/S",
+ "N.V.", "LLP", "PLC", "GmbH & Co. KG",
+ "Co. Ltd.", "AB", "SPA", "S.C.",
+ "Ltda.", "S.R.L.", "JSC", "PTY Ltd",
+ "OÜ", "Sdn Bhd"
+ ];
+
+ const CITIES = [
+ "Tokio", "New York City", "London", "Paris",
+ "Berlin", "Peking", "Moskau", "Istanbul",
+ "Mumbai", "Kairo", "Sydney", "Rom",
+ "Seoul", "Rio de Janeiro", "Kapstadt", "Toronto",
+ "Kiew", "Dubai", "Bangkok", "Buenos Aires",
+ "Los Angeles", "Singapur", "Mexiko-Stadt", "Stockholm",
+ "Hanoi", "Kopenhagen", "Jakarta", "Kuala Lumpur",
+ "Lissabon", "Amsterdam", "Manila", "Helsinki",
+ "Oslo", "Lima", "Madrid", "Warschau",
+ "Bogotá", "Wien", "Kathmandu", "Johannesburg",
+ "Dublin", "Budapest", "Prag", "Zürich",
+ "Athen", "Nairobi", "Edinburgh", "Melbourne",
+ "San Francisco", "Kuala Lumpur", "Guangzhou", "Riad",
+ "Karatschi", "Kolkata", "Brüssel", "Hamburg",
+ "Vancouver", "Doha", "Wellington", "Reykjavik",
+ "Manhattan", "Shanghai", "Bagdad", "Nairobi",
+ "Tehran", "Kuwait-Stadt", "Phnom Penh", "Accra",
+ "Brisbane", "Montreal", "Bucharest", "Lagos",
+ "Guatemala City", "Quito", "Caracas", "Panama City",
+ "Havanna", "Baku", "Dhaka", "Colombo",
+ "Kampala", "Tunis", "Port-au-Prince", "Tallinn",
+ "Tbilisi", "Ulaanbaatar", "Lusaka", "Yerevan",
+ "Kinshasa", "Brazzaville", "Suva", "Honiara",
+ "Tripolis", "Minsk", "Naypyidaw", "Windhoek",
+ "Lilongwe", "Astana", "Ashgabat", "Tirana",
+ "Antananarivo", "Vientiane", "Maputo", "Ouagadougou"
+ ];
+
+ const STREETS = [
+ "Main Street", "Broadway", "Park Avenue", "Market Street",
+ "High Street", "Champs-Élysées", "Red Square", "Istiklal Avenue",
+ "Nanjing Road", "Rodeo Drive", "Oxford Street", "Sunset Boulevard",
+ "Wall Street", "Abbey Road", "Fifth Avenue", "Lombard Street",
+ "Bourbon Street", "Baker Street", "Sesame Street", "La Rambla",
+ "Rue de la Paix", "Avenida Paulista", "Ginza", "Khao San Road",
+ "King's Road", "Via del Corso", "Changan Avenue", "Gran Vía",
+ "Alexanderplatz", "Kurfürstendamm", "Grafton Street", "Nevsky Prospect",
+ "Vaci Street", "Queen Street", "Gran Via", "Nathan Road",
+ "Shibuya Crossing", "Michigan Avenue", "Passeig de Gràcia", "Nile Street",
+ "Bleecker Street", "Via Dolorosa", "Roppongi Hills", "Rua Augusta",
+ "Knez Mihailova Street", "Kingsway", "Magazine Street", "Piazza San Marco",
+ "Jalan Bukit Bintang", "Kärntner Strasse", "Lombard Street", "Národní třída",
+ "Orchard Road", "Rua das Flores", "Tverskaya Street", "Avenue Habib Bourguiba",
+ "Maidan Nezalezhnosti", "Ipanema Beach", "Avenue des Champs-Élysées", "Penny Lane",
+ "Via Appia", "Calle Ocho", "Montmartre", "Brick Lane",
+ "Pearl Street", "Portobello Road", "Aoyama Dori", "Rua do Ouvidor",
+ "Grønnegade", "Istedgade", "Strøget", "Knez Mihailova",
+ "Piotrkowska Street", "Laugavegur", "Bahnhofstrasse", "Kauppatori",
+ "Ulica Floriańska", "Drottninggatan", "Mannerheimintie", "Leidsestraat",
+ "Via della Conciliazione", "Jermyn Street", "Nørrebrogade", "Strandvägen",
+ "Bund Street", "Rue du Faubourg Saint-Honoré", "Kalverstraat", "The Mall",
+ "Nikolskaya Street", "Stroget", "Laugavegur", "Princes Street",
+ "Esplanade Avenue", "Lincoln Road", "Ilica Street", "Plaza de España",
+ "Paseo de la Reforma", "Copacabana Beach", "Köpmangatan", "O'Connell Street"
+ ];
+
+ const COUNTRIES = [
+ "Afghanistan", "Albania", "Algeria", "Andorra",
+ "Angola", "Antigua and Barbuda", "Argentina", "Armenia",
+ "Australia", "Austria", "Azerbaijan", "Bahamas",
+ "Bahrain", "Bangladesh", "Barbados", "Belarus",
+ "Belgium", "Belize", "Benin", "Bhutan",
+ "Bolivia", "Bosnia and Herzegovina", "Botswana", "Brazil",
+ "Brunei", "Bulgaria", "Burkina Faso", "Burundi",
+ "Cabo Verde", "Cambodia", "Cameroon", "Canada",
+ "Central African Republic", "Chad", "Chile", "China",
+ "Colombia", "Comoros", "Congo", "Costa Rica",
+ "Côte d'Ivoire", "Croatia", "Cuba", "Cyprus",
+ "Czechia", "Denmark", "Djibouti", "Dominica",
+ "Dominican Republic", "Ecuador", "Egypt", "El Salvador",
+ "Equatorial Guinea", "Eritrea", "Estonia", "Eswatini",
+ "Ethiopia", "Fiji", "Finland", "France",
+ "Gabon", "Gambia", "Georgia", "Germany",
+ "Ghana", "Greece", "Grenada", "Guatemala",
+ "Guinea", "Guinea-Bissau", "Guyana", "Haiti",
+ "Honduras", "Hungary", "Iceland", "India",
+ "Indonesia", "Iran", "Iraq", "Ireland",
+ "Israel", "Italy", "Jamaica", "Japan",
+ "Jordan", "Kazakhstan", "Kenya", "Kiribati",
+ "Korea, North", "Korea, South", "Kuwait", "Kyrgyzstan",
+ "Laos", "Latvia", "Lebanon", "Lesotho",
+ "Liberia", "Libya", "Liechtenstein", "Lithuania",
+ "Luxembourg", "Madagascar", "Malawi", "Malaysia",
+ "Maldives", "Mali", "Malta", "Marshall Islands",
+ "Mauritania", "Mauritius", "Mexico", "Micronesia",
+ "Moldova", "Monaco", "Mongolia", "Montenegro",
+ "Morocco", "Mozambique", "Myanmar", "Namibia",
+ "Nauru", "Nepal", "Netherlands", "New Zealand",
+ "Nicaragua", "Niger", "Nigeria", "North Macedonia",
+ "Norway", "Oman", "Pakistan", "Palau",
+ "Panama", "Papua New Guinea", "Paraguay", "Peru",
+ "Philippines", "Poland", "Portugal", "Qatar",
+ "Romania", "Russia", "Rwanda", "Saint Kitts and Nevis",
+ "Saint Lucia", "Saint Vincent and the Grenadines", "Samoa", "San Marino",
+ "Sao Tome and Principe", "Saudi Arabia", "Senegal", "Serbia",
+ "Seychelles", "Sierra Leone", "Singapore", "Slovakia",
+ "Slovenia", "Solomon Islands", "Somalia", "South Africa",
+ "South Sudan", "Spain", "Sri Lanka", "Sudan",
+ "Suriname", "Sweden", "Switzerland", "Syria",
+ "Taiwan", "Tajikistan", "Tanzania", "Thailand",
+ "Timor-Leste", "Togo", "Tonga", "Trinidad and Tobago",
+ "Tunisia", "Turkey", "Turkmenistan", "Tuvalu",
+ "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom",
+ "United States", "Uruguay", "Uzbekistan", "Vanuatu",
+ "Vatican City", "Venezuela", "Vietnam", "Yemen",
+ "Zambia", "Zimbabwe"
+ ];
+}
\ No newline at end of file
diff --git a/src/DataFixtures/images/logos/1176.png b/src/DataFixtures/images/logos/1176.png
new file mode 100644
index 0000000..54a8ef6
Binary files /dev/null and b/src/DataFixtures/images/logos/1176.png differ
diff --git a/src/DataFixtures/images/logos/13051765.png b/src/DataFixtures/images/logos/13051765.png
new file mode 100644
index 0000000..8c456f7
Binary files /dev/null and b/src/DataFixtures/images/logos/13051765.png differ
diff --git a/src/DataFixtures/images/logos/21601.png b/src/DataFixtures/images/logos/21601.png
new file mode 100644
index 0000000..1b01049
Binary files /dev/null and b/src/DataFixtures/images/logos/21601.png differ
diff --git a/src/DataFixtures/images/logos/2673787.webp b/src/DataFixtures/images/logos/2673787.webp
new file mode 100644
index 0000000..9fc736a
Binary files /dev/null and b/src/DataFixtures/images/logos/2673787.webp differ
diff --git a/src/DataFixtures/images/logos/282540.webp b/src/DataFixtures/images/logos/282540.webp
new file mode 100644
index 0000000..e6b39ed
Binary files /dev/null and b/src/DataFixtures/images/logos/282540.webp differ
diff --git a/src/DataFixtures/images/logos/61109.png b/src/DataFixtures/images/logos/61109.png
new file mode 100644
index 0000000..92881e7
Binary files /dev/null and b/src/DataFixtures/images/logos/61109.png differ
diff --git a/src/DataFixtures/images/logos/731972.png b/src/DataFixtures/images/logos/731972.png
new file mode 100644
index 0000000..831c823
Binary files /dev/null and b/src/DataFixtures/images/logos/731972.png differ
diff --git a/src/DataFixtures/images/logos/732228.png b/src/DataFixtures/images/logos/732228.png
new file mode 100644
index 0000000..c8eb273
Binary files /dev/null and b/src/DataFixtures/images/logos/732228.png differ
diff --git a/src/DataFixtures/images/logos/73970c892d748c7507db8e10d71535b0-apple-logo-symbol.png b/src/DataFixtures/images/logos/73970c892d748c7507db8e10d71535b0-apple-logo-symbol.png
new file mode 100644
index 0000000..6ab7b39
Binary files /dev/null and b/src/DataFixtures/images/logos/73970c892d748c7507db8e10d71535b0-apple-logo-symbol.png differ
diff --git a/src/DataFixtures/images/logos/87390.png b/src/DataFixtures/images/logos/87390.png
new file mode 100644
index 0000000..c76aeff
Binary files /dev/null and b/src/DataFixtures/images/logos/87390.png differ
diff --git a/src/DataFixtures/images/logos/DropTableIcon_HollywoodHoganCollectible.png b/src/DataFixtures/images/logos/DropTableIcon_HollywoodHoganCollectible.png
new file mode 100644
index 0000000..2775db8
Binary files /dev/null and b/src/DataFixtures/images/logos/DropTableIcon_HollywoodHoganCollectible.png differ
diff --git a/src/DataFixtures/images/logos/LOGO-VB-Kreis-small.png b/src/DataFixtures/images/logos/LOGO-VB-Kreis-small.png
new file mode 100644
index 0000000..93cc203
Binary files /dev/null and b/src/DataFixtures/images/logos/LOGO-VB-Kreis-small.png differ
diff --git a/src/DataFixtures/images/logos/Logo_LogoExample_Header_1_EN.webp b/src/DataFixtures/images/logos/Logo_LogoExample_Header_1_EN.webp
new file mode 100644
index 0000000..eff501d
Binary files /dev/null and b/src/DataFixtures/images/logos/Logo_LogoExample_Header_1_EN.webp differ
diff --git a/src/DataFixtures/images/logos/Logo_LogoExample_Header_3_EN.webp b/src/DataFixtures/images/logos/Logo_LogoExample_Header_3_EN.webp
new file mode 100644
index 0000000..8491d87
Binary files /dev/null and b/src/DataFixtures/images/logos/Logo_LogoExample_Header_3_EN.webp differ
diff --git a/src/DataFixtures/images/logos/Logo_LogoExample_Header_4_EN.webp b/src/DataFixtures/images/logos/Logo_LogoExample_Header_4_EN.webp
new file mode 100644
index 0000000..dd0edeb
Binary files /dev/null and b/src/DataFixtures/images/logos/Logo_LogoExample_Header_4_EN.webp differ
diff --git a/src/DataFixtures/images/logos/SketchUp-Logo.png b/src/DataFixtures/images/logos/SketchUp-Logo.png
new file mode 100644
index 0000000..d45668d
Binary files /dev/null and b/src/DataFixtures/images/logos/SketchUp-Logo.png differ
diff --git a/src/DataFixtures/images/logos/Unbenannt.png b/src/DataFixtures/images/logos/Unbenannt.png
new file mode 100644
index 0000000..23a0721
Binary files /dev/null and b/src/DataFixtures/images/logos/Unbenannt.png differ
diff --git a/src/DataFixtures/images/logos/Web.de_logo.svg b/src/DataFixtures/images/logos/Web.de_logo.svg
new file mode 100644
index 0000000..88fa9ff
--- /dev/null
+++ b/src/DataFixtures/images/logos/Web.de_logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/DataFixtures/images/logos/com.gamerlogomaker.eSportsLogoMakerPro.GamingLogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9_512x512.webp b/src/DataFixtures/images/logos/com.gamerlogomaker.eSportsLogoMakerPro.GamingLogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9_512x512.webp
new file mode 100644
index 0000000..c54493e
Binary files /dev/null and b/src/DataFixtures/images/logos/com.gamerlogomaker.eSportsLogoMakerPro.GamingLogos-8b47d6d9-1690-46c0-898b-b5f1d4d9b5f9_512x512.webp differ
diff --git a/src/DataFixtures/images/logos/google-chrome-portable-logo_1-1-30.webp b/src/DataFixtures/images/logos/google-chrome-portable-logo_1-1-30.webp
new file mode 100644
index 0000000..730e961
Binary files /dev/null and b/src/DataFixtures/images/logos/google-chrome-portable-logo_1-1-30.webp differ
diff --git a/src/DataFixtures/images/logos/hsv.svg b/src/DataFixtures/images/logos/hsv.svg
new file mode 100644
index 0000000..dc65f16
--- /dev/null
+++ b/src/DataFixtures/images/logos/hsv.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/DataFixtures/images/logos/huawei-logo-9.png b/src/DataFixtures/images/logos/huawei-logo-9.png
new file mode 100644
index 0000000..f1e9f5b
Binary files /dev/null and b/src/DataFixtures/images/logos/huawei-logo-9.png differ
diff --git a/src/DataFixtures/images/logos/images.jpg b/src/DataFixtures/images/logos/images.jpg
new file mode 100644
index 0000000..81bdbb7
Binary files /dev/null and b/src/DataFixtures/images/logos/images.jpg differ
diff --git a/src/DataFixtures/images/logos/logo.png b/src/DataFixtures/images/logos/logo.png
new file mode 100644
index 0000000..7615456
Binary files /dev/null and b/src/DataFixtures/images/logos/logo.png differ
diff --git a/src/DataFixtures/images/logos/mobile-icon.png b/src/DataFixtures/images/logos/mobile-icon.png
new file mode 100644
index 0000000..720a37f
Binary files /dev/null and b/src/DataFixtures/images/logos/mobile-icon.png differ
diff --git a/src/DataFixtures/images/logos/reddit-fill-logo-icon-256x256-3z8kcz41.png b/src/DataFixtures/images/logos/reddit-fill-logo-icon-256x256-3z8kcz41.png
new file mode 100644
index 0000000..9dfe9a1
Binary files /dev/null and b/src/DataFixtures/images/logos/reddit-fill-logo-icon-256x256-3z8kcz41.png differ
diff --git a/src/DataFixtures/images/logos/spotify_icon_249751.png b/src/DataFixtures/images/logos/spotify_icon_249751.png
new file mode 100644
index 0000000..e8bb26b
Binary files /dev/null and b/src/DataFixtures/images/logos/spotify_icon_249751.png differ
diff --git a/src/DataFixtures/images/logos/urn ard image e86f6849215ea7e6.jpg b/src/DataFixtures/images/logos/urn ard image e86f6849215ea7e6.jpg
new file mode 100644
index 0000000..5951a71
Binary files /dev/null and b/src/DataFixtures/images/logos/urn ard image e86f6849215ea7e6.jpg differ
diff --git a/src/DataFixtures/images/logos/volkswagen.png b/src/DataFixtures/images/logos/volkswagen.png
new file mode 100644
index 0000000..ae9a4b8
Binary files /dev/null and b/src/DataFixtures/images/logos/volkswagen.png differ
diff --git a/src/DataFixtures/images/profiles/0_big.jpg b/src/DataFixtures/images/profiles/0_big.jpg
new file mode 100644
index 0000000..2f05427
Binary files /dev/null and b/src/DataFixtures/images/profiles/0_big.jpg differ
diff --git a/src/DataFixtures/images/profiles/0_big.png b/src/DataFixtures/images/profiles/0_big.png
new file mode 100644
index 0000000..ce0ed94
Binary files /dev/null and b/src/DataFixtures/images/profiles/0_big.png differ
diff --git a/src/DataFixtures/images/profiles/1000_F_177163287_etk8KoMaSVqgPWW7zqvl0WcQpMcW0DOV.jpg b/src/DataFixtures/images/profiles/1000_F_177163287_etk8KoMaSVqgPWW7zqvl0WcQpMcW0DOV.jpg
new file mode 100644
index 0000000..461f840
Binary files /dev/null and b/src/DataFixtures/images/profiles/1000_F_177163287_etk8KoMaSVqgPWW7zqvl0WcQpMcW0DOV.jpg differ
diff --git a/src/DataFixtures/images/profiles/13010084-5154854916918902.jpg b/src/DataFixtures/images/profiles/13010084-5154854916918902.jpg
new file mode 100644
index 0000000..54dc206
Binary files /dev/null and b/src/DataFixtures/images/profiles/13010084-5154854916918902.jpg differ
diff --git a/src/DataFixtures/images/profiles/168809ab65b0d64db1b3b4f4403de0de,id=0b1ab94f,b=bravo,w=1600,rm=sk.jpeg b/src/DataFixtures/images/profiles/168809ab65b0d64db1b3b4f4403de0de,id=0b1ab94f,b=bravo,w=1600,rm=sk.jpeg
new file mode 100644
index 0000000..c6ee04f
Binary files /dev/null and b/src/DataFixtures/images/profiles/168809ab65b0d64db1b3b4f4403de0de,id=0b1ab94f,b=bravo,w=1600,rm=sk.jpeg differ
diff --git a/src/DataFixtures/images/profiles/20583185c2ea579.jpg b/src/DataFixtures/images/profiles/20583185c2ea579.jpg
new file mode 100644
index 0000000..bf5b0c7
Binary files /dev/null and b/src/DataFixtures/images/profiles/20583185c2ea579.jpg differ
diff --git a/src/DataFixtures/images/profiles/2524883796510419.webp b/src/DataFixtures/images/profiles/2524883796510419.webp
new file mode 100644
index 0000000..2d42181
Binary files /dev/null and b/src/DataFixtures/images/profiles/2524883796510419.webp differ
diff --git a/src/DataFixtures/images/profiles/32a62b56546b4804c4599b28ae3b4078.jpg b/src/DataFixtures/images/profiles/32a62b56546b4804c4599b28ae3b4078.jpg
new file mode 100644
index 0000000..a243a16
Binary files /dev/null and b/src/DataFixtures/images/profiles/32a62b56546b4804c4599b28ae3b4078.jpg differ
diff --git a/src/DataFixtures/images/profiles/436007280464-5.jpg b/src/DataFixtures/images/profiles/436007280464-5.jpg
new file mode 100644
index 0000000..0111b63
Binary files /dev/null and b/src/DataFixtures/images/profiles/436007280464-5.jpg differ
diff --git a/src/DataFixtures/images/profiles/6625095-mid_avatar (3).jpg b/src/DataFixtures/images/profiles/6625095-mid_avatar (3).jpg
new file mode 100644
index 0000000..4380f87
Binary files /dev/null and b/src/DataFixtures/images/profiles/6625095-mid_avatar (3).jpg differ
diff --git a/src/DataFixtures/images/profiles/8-fakten-ueber-die-comicfigur-spider-man.jpg b/src/DataFixtures/images/profiles/8-fakten-ueber-die-comicfigur-spider-man.jpg
new file mode 100644
index 0000000..615041b
Binary files /dev/null and b/src/DataFixtures/images/profiles/8-fakten-ueber-die-comicfigur-spider-man.jpg differ
diff --git a/src/DataFixtures/images/profiles/9RtuhpzDa9yB1ClLRFSeq0.webp b/src/DataFixtures/images/profiles/9RtuhpzDa9yB1ClLRFSeq0.webp
new file mode 100644
index 0000000..eb33d41
Binary files /dev/null and b/src/DataFixtures/images/profiles/9RtuhpzDa9yB1ClLRFSeq0.webp differ
diff --git a/src/DataFixtures/images/profiles/BNdZwuCbqzD8ouJap7Sfpn.webp b/src/DataFixtures/images/profiles/BNdZwuCbqzD8ouJap7Sfpn.webp
new file mode 100644
index 0000000..f9f236a
Binary files /dev/null and b/src/DataFixtures/images/profiles/BNdZwuCbqzD8ouJap7Sfpn.webp differ
diff --git a/src/DataFixtures/images/profiles/C_mBRTedqwkBJmqnBpHvw1.webp b/src/DataFixtures/images/profiles/C_mBRTedqwkBJmqnBpHvw1.webp
new file mode 100644
index 0000000..ab27cc7
Binary files /dev/null and b/src/DataFixtures/images/profiles/C_mBRTedqwkBJmqnBpHvw1.webp differ
diff --git a/src/DataFixtures/images/profiles/b22fcca5341f9bc71f4ebb9e928b07d1.jpg b/src/DataFixtures/images/profiles/b22fcca5341f9bc71f4ebb9e928b07d1.jpg
new file mode 100644
index 0000000..ed08b56
Binary files /dev/null and b/src/DataFixtures/images/profiles/b22fcca5341f9bc71f4ebb9e928b07d1.jpg differ
diff --git a/src/DataFixtures/images/profiles/c03fdcdca0fbd768b2a1ce9ba9e5b842.jpg b/src/DataFixtures/images/profiles/c03fdcdca0fbd768b2a1ce9ba9e5b842.jpg
new file mode 100644
index 0000000..44792a2
Binary files /dev/null and b/src/DataFixtures/images/profiles/c03fdcdca0fbd768b2a1ce9ba9e5b842.jpg differ
diff --git a/src/DataFixtures/images/profiles/cartoon-illustration-der-mann-traurig-oder-unglucklich-comic-figur-dnm4r6.jpg b/src/DataFixtures/images/profiles/cartoon-illustration-der-mann-traurig-oder-unglucklich-comic-figur-dnm4r6.jpg
new file mode 100644
index 0000000..c802400
Binary files /dev/null and b/src/DataFixtures/images/profiles/cartoon-illustration-der-mann-traurig-oder-unglucklich-comic-figur-dnm4r6.jpg differ
diff --git a/src/DataFixtures/images/profiles/comic-hund-sticker.jpg b/src/DataFixtures/images/profiles/comic-hund-sticker.jpg
new file mode 100644
index 0000000..5aa8809
Binary files /dev/null and b/src/DataFixtures/images/profiles/comic-hund-sticker.jpg differ
diff --git a/src/DataFixtures/images/profiles/draw-you-into-superhero-comic-cartoon-character.webp b/src/DataFixtures/images/profiles/draw-you-into-superhero-comic-cartoon-character.webp
new file mode 100644
index 0000000..9908768
Binary files /dev/null and b/src/DataFixtures/images/profiles/draw-you-into-superhero-comic-cartoon-character.webp differ
diff --git a/src/DataFixtures/images/profiles/goofy.jpg b/src/DataFixtures/images/profiles/goofy.jpg
new file mode 100644
index 0000000..dedbce9
Binary files /dev/null and b/src/DataFixtures/images/profiles/goofy.jpg differ
diff --git a/src/DataFixtures/images/profiles/il_1588xN.5323657073_ieqj.avif b/src/DataFixtures/images/profiles/il_1588xN.5323657073_ieqj.avif
new file mode 100644
index 0000000..64d42a7
Binary files /dev/null and b/src/DataFixtures/images/profiles/il_1588xN.5323657073_ieqj.avif differ
diff --git a/src/DataFixtures/images/profiles/il_1588xN.5536812441_rkjx.avif b/src/DataFixtures/images/profiles/il_1588xN.5536812441_rkjx.avif
new file mode 100644
index 0000000..2bcd6a1
Binary files /dev/null and b/src/DataFixtures/images/profiles/il_1588xN.5536812441_rkjx.avif differ
diff --git a/src/DataFixtures/images/profiles/images.jpg b/src/DataFixtures/images/profiles/images.jpg
new file mode 100644
index 0000000..aba0436
Binary files /dev/null and b/src/DataFixtures/images/profiles/images.jpg differ
diff --git a/src/DataFixtures/images/profiles/micky-maus.jpg b/src/DataFixtures/images/profiles/micky-maus.jpg
new file mode 100644
index 0000000..f1175cb
Binary files /dev/null and b/src/DataFixtures/images/profiles/micky-maus.jpg differ
diff --git a/src/DataFixtures/images/profiles/supershape-minions-folienballon-balloon-geburtstag-party_600x600.jpg b/src/DataFixtures/images/profiles/supershape-minions-folienballon-balloon-geburtstag-party_600x600.jpg
new file mode 100644
index 0000000..9572fbb
Binary files /dev/null and b/src/DataFixtures/images/profiles/supershape-minions-folienballon-balloon-geburtstag-party_600x600.jpg differ
diff --git a/src/DataFixtures/images/profiles/traum-comic-popeye-deutung-symbol-300x300.jpg b/src/DataFixtures/images/profiles/traum-comic-popeye-deutung-symbol-300x300.jpg
new file mode 100644
index 0000000..1004365
Binary files /dev/null and b/src/DataFixtures/images/profiles/traum-comic-popeye-deutung-symbol-300x300.jpg differ
diff --git a/src/DataFixtures/images/profiles/vector-mascot-character-illustration-sausage-600nw-2296505457.webp b/src/DataFixtures/images/profiles/vector-mascot-character-illustration-sausage-600nw-2296505457.webp
new file mode 100644
index 0000000..951eb8c
Binary files /dev/null and b/src/DataFixtures/images/profiles/vector-mascot-character-illustration-sausage-600nw-2296505457.webp differ
diff --git a/src/Entity/PartnerContact.php b/src/Entity/Contact.php
similarity index 89%
rename from src/Entity/PartnerContact.php
rename to src/Entity/Contact.php
index 4a8f2b6..0d93c18 100644
--- a/src/Entity/PartnerContact.php
+++ b/src/Entity/Contact.php
@@ -2,12 +2,12 @@
namespace App\Entity;
-use App\Repository\PartnerContactRepository;
+use App\Repository\ContactRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
-#[ORM\Entity(repositoryClass: PartnerContactRepository::class)]
-class PartnerContact
+#[ORM\Entity(repositoryClass: ContactRepository::class)]
+class Contact
{
#[ORM\Id]
#[ORM\GeneratedValue]
@@ -28,7 +28,7 @@ class PartnerContact
private ?\DateTimeInterface $birthday = null;
#[ORM\Column(length: 255, nullable: true)]
- private ?string $picture = null;
+ private ?string $image = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $position = null;
@@ -100,14 +100,14 @@ class PartnerContact
return $this;
}
- public function getPicture(): ?string
+ public function getImage(): ?string
{
- return $this->picture;
+ return $this->image;
}
- public function setPicture(?string $picture): static
+ public function setImage(?string $image): static
{
- $this->picture = $picture;
+ $this->image = $image;
return $this;
}
diff --git a/src/Entity/Partner.php b/src/Entity/Partner.php
index 308ff31..e16878c 100644
--- a/src/Entity/Partner.php
+++ b/src/Entity/Partner.php
@@ -17,10 +17,10 @@ class Partner
private ?int $id = null;
#[ORM\Column(length: 255)]
- private ?string $name = null;
+ private string $name;
#[ORM\Column(type: 'string', enumType: PartnerType::class)]
- private ?string $type = null;
+ private PartnerType $type;
#[ORM\Column(length: 255, nullable: true)]
private ?string $street = null;
@@ -43,16 +43,17 @@ class Partner
#[ORM\Column]
private ?\DateTimeImmutable $createdAt = null;
- #[ORM\OneToMany(mappedBy: 'partner', targetEntity: PartnerContact::class, orphanRemoval: true)]
- private Collection $partnerContacts;
+ #[ORM\OneToMany(mappedBy: 'partner', targetEntity: Contact::class, orphanRemoval: true)]
+ private Collection $contacts;
- #[ORM\Column(length: 255, nullable: true)]
- private ?string $logo = null;
+ #[ORM\ManyToOne(targetEntity: MediaObject::class)]
+ #[ORM\JoinColumn(nullable: true)]
+ private ?MediaObject $logo = null;
public function __construct()
{
$this->createdAt = new \DateTimeImmutable();
- $this->partnerContacts = new ArrayCollection();
+ $this->contacts = new ArrayCollection();
}
public function getId(): ?int
@@ -60,28 +61,24 @@ class Partner
return $this->id;
}
- public function getName(): ?string
+ public function getName(): string
{
return $this->name;
}
- public function setName(string $name): static
+ public function setName(string $name): void
{
$this->name = $name;
-
- return $this;
}
- public function getType(): ?string
+ public function getType(): PartnerType
{
return $this->type;
}
- public function setType(string $type): static
+ public function setType(PartnerType $type): void
{
$this->type = $type;
-
- return $this;
}
public function getStreet(): ?string
@@ -89,11 +86,9 @@ class Partner
return $this->street;
}
- public function setStreet(?string $street): static
+ public function setStreet(?string $street): void
{
$this->street = $street;
-
- return $this;
}
public function getStreetNo(): ?string
@@ -101,11 +96,9 @@ class Partner
return $this->streetNo;
}
- public function setStreetNo(?string $streetNo): static
+ public function setStreetNo(?string $streetNo): void
{
$this->streetNo = $streetNo;
-
- return $this;
}
public function getZip(): ?string
@@ -113,11 +106,9 @@ class Partner
return $this->zip;
}
- public function setZip(?string $zip): static
+ public function setZip(?string $zip): void
{
$this->zip = $zip;
-
- return $this;
}
public function getCity(): ?string
@@ -125,11 +116,9 @@ class Partner
return $this->city;
}
- public function setCity(?string $city): static
+ public function setCity(?string $city): void
{
$this->city = $city;
-
- return $this;
}
public function getCountry(): ?string
@@ -137,11 +126,9 @@ class Partner
return $this->country;
}
- public function setCountry(?string $country): static
+ public function setCountry(?string $country): void
{
$this->country = $country;
-
- return $this;
}
public function getWebsite(): ?string
@@ -149,11 +136,9 @@ class Partner
return $this->website;
}
- public function setWebsite(?string $website): static
+ public function setWebsite(?string $website): void
{
$this->website = $website;
-
- return $this;
}
public function getCreatedAt(): ?\DateTimeImmutable
@@ -161,46 +146,29 @@ class Partner
return $this->createdAt;
}
- /**
- * @return Collection
- */
- public function getPartnerContacts(): Collection
+ public function setCreatedAt(?\DateTimeImmutable $createdAt): void
{
- return $this->partnerContacts;
+ $this->createdAt = $createdAt;
}
- public function addPartnerContact(PartnerContact $partnerContact): static
+ public function getContacts(): Collection
{
- if (!$this->partnerContacts->contains($partnerContact)) {
- $this->partnerContacts->add($partnerContact);
- $partnerContact->setPartner($this);
- }
-
- return $this;
+ return $this->contacts;
}
- public function removePartnerContact(PartnerContact $partnerContact): static
+ public function setContacts(Collection $contacts): void
{
- if ($this->partnerContacts->removeElement($partnerContact)) {
- // set the owning side to null (unless already changed)
- if ($partnerContact->getPartner() === $this) {
- $partnerContact->setPartner(null);
- }
- }
-
- return $this;
+ $this->contacts = $contacts;
}
- public function getLogo(): ?string
+ public function getLogo(): ?MediaObject
{
return $this->logo;
}
- public function setLogo(?string $logo): static
+ public function setLogo(?MediaObject $logo): void
{
$this->logo = $logo;
-
- return $this;
}
}
diff --git a/src/Entity/Posting.php b/src/Entity/Posting.php
index 29d27e4..5de914c 100644
--- a/src/Entity/Posting.php
+++ b/src/Entity/Posting.php
@@ -20,7 +20,7 @@ class Posting
#[ORM\Column]
private ?\DateTimeImmutable $createdAt = null;
- #[ORM\ManyToOne(inversedBy: 'userPosts')]
+ #[ORM\ManyToOne(inversedBy: 'postings')]
#[ORM\JoinColumn(nullable: false)]
private ?User $owner = null;
diff --git a/src/Entity/User.php b/src/Entity/User.php
index a24f35c..8b5aff6 100644
--- a/src/Entity/User.php
+++ b/src/Entity/User.php
@@ -43,13 +43,13 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
private ?\DateTimeImmutable $createdAt = null;
#[ORM\OneToMany(mappedBy: 'owner', targetEntity: Posting::class, orphanRemoval: true)]
- private Collection $userPosts;
+ private Collection $postings;
public function __construct()
{
$this->createdAt = new \DateTimeImmutable();
- $this->userPosts = new ArrayCollection();
+ $this->postings = new ArrayCollection();
$this->active = true;
}
@@ -155,15 +155,15 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
/**
* @return Collection
*/
- public function getUserPosts(): Collection
+ public function getPostings(): Collection
{
- return $this->userPosts;
+ return $this->postings;
}
public function addUserPost(Posting $post): static
{
- if (!$this->userPosts->contains($post)) {
- $this->userPosts->add($post);
+ if (!$this->postings->contains($post)) {
+ $this->postings->add($post);
$post->setOwner($this);
}
@@ -172,7 +172,7 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
public function removeUserPost(Posting $post): static
{
- if ($this->userPosts->removeElement($post)) {
+ if ($this->postings->removeElement($post)) {
// set the owning side to null (unless already changed)
if ($post->getOwner() === $this) {
$post->setOwner(null);
diff --git a/src/Factory/MediaObjectFactory.php b/src/Factory/MediaObjectFactory.php
new file mode 100644
index 0000000..4d7f8ae
--- /dev/null
+++ b/src/Factory/MediaObjectFactory.php
@@ -0,0 +1,83 @@
+
+ *
+ * @method MediaObject|Proxy create(array|callable $attributes = [])
+ * @method static MediaObject|Proxy createOne(array $attributes = [])
+ * @method static MediaObject|Proxy find(object|array|mixed $criteria)
+ * @method static MediaObject|Proxy findOrCreate(array $attributes)
+ * @method static MediaObject|Proxy first(string $sortedField = 'id')
+ * @method static MediaObject|Proxy last(string $sortedField = 'id')
+ * @method static MediaObject|Proxy random(array $attributes = [])
+ * @method static MediaObject|Proxy randomOrCreate(array $attributes = [])
+ * @method static EntityRepository|RepositoryProxy repository()
+ * @method static MediaObject[]|Proxy[] all()
+ * @method static MediaObject[]|Proxy[] createMany(int $number, array|callable $attributes = [])
+ * @method static MediaObject[]|Proxy[] createSequence(iterable|callable $sequence)
+ * @method static MediaObject[]|Proxy[] findBy(array $attributes)
+ * @method static MediaObject[]|Proxy[] randomRange(int $min, int $max, array $attributes = [])
+ * @method static MediaObject[]|Proxy[] randomSet(int $number, array $attributes = [])
+ */
+final class MediaObjectFactory extends ModelFactory
+{
+ /**
+ * @see https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#factories-as-services
+ *
+ * @todo inject services if required
+ */
+ public function __construct(
+ private KernelInterface $appKernel
+ )
+ {
+ parent::__construct();
+ }
+
+ /**
+ * @see https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#model-factories
+ *
+ * @todo add your default values here
+ */
+ protected function getDefaults(): array
+ {
+ $projectRoot = $this->appKernel->getProjectDir();
+
+ $folderPath = $projectRoot . '/src/DataFixtures/images/logos/';
+ $files = glob($folderPath . '*.*');
+ $randomFile = null;
+ if ($files !== false && count($files) > 0) {
+ $randomFile = $files[array_rand($files)];
+ }
+
+ return [
+ 'file' => new ReplacingFile($randomFile)
+ ];
+ }
+
+ /**
+ * @see https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#initialization
+ */
+ protected function initialize(): self
+ {
+ return $this
+ // ->afterInstantiate(function(MediaObject $mediaObject): void {})
+ ;
+ }
+
+ protected static function getClass(): string
+ {
+ return MediaObject::class;
+ }
+}
diff --git a/src/Factory/PartnerFactory.php b/src/Factory/PartnerFactory.php
index 3a29c19..62b594c 100644
--- a/src/Factory/PartnerFactory.php
+++ b/src/Factory/PartnerFactory.php
@@ -2,6 +2,7 @@
namespace App\Factory;
+use App\DataFixtures\FakeValues;
use App\Entity\Partner;
use App\Enum\PartnerType;
use App\Repository\PartnerRepository;
@@ -30,6 +31,7 @@ use Zenstruck\Foundry\RepositoryProxy;
*/
final class PartnerFactory extends ModelFactory
{
+
/**
* @see https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#factories-as-services
*
@@ -48,14 +50,14 @@ final class PartnerFactory extends ModelFactory
protected function getDefaults(): array
{
return [
- 'name' => self::faker()->text(255),
+ 'name' => self::faker()->randomElement(FakeValues::COMPANY_NAMES)." ".self::faker()->randomElement(FakeValues::COMPANY_LEGAL_FORMS),
'type' => self::faker()->randomElement(PartnerType::cases()),
- 'street' => self::faker()->text(255),
- 'streetNo' => self::faker()->text(255),
- 'zip' => self::faker()->text(255),
- 'city' => self::faker()->text(255),
- 'country' => self::faker()->text(255),
- 'website' => self::faker()->text(255),
+ 'street' => self::faker()->randomElement(FakeValues::STREETS),
+ 'streetNo' => self::faker()->numberBetween(1,1000),
+ 'zip' => self::faker()->numberBetween(1000,10000),
+ 'city' => self::faker()->randomElement(FakeValues::CITIES),
+ 'country' => self::faker()->randomElement(FakeValues::COUNTRIES),
+ 'website' => 'https://spawntree.de/',
];
}
diff --git a/src/Factory/PostingFactory.php b/src/Factory/PostingFactory.php
index c73838e..7adfef5 100644
--- a/src/Factory/PostingFactory.php
+++ b/src/Factory/PostingFactory.php
@@ -48,7 +48,7 @@ final class PostingFactory extends ModelFactory
{
return [
'message' => self::faker()->text(),
- 'owner' => UserFactory::new(),
+ 'owner' => UserFactory::random(),
];
}
@@ -58,7 +58,7 @@ final class PostingFactory extends ModelFactory
protected function initialize(): self
{
return $this
- // ->afterInstantiate(function(Post $post): void {})
+ // ->afterInstantiate(function(Posting $post): void {})
;
}
diff --git a/src/Factory/UserFactory.php b/src/Factory/UserFactory.php
index 77aea1e..6a1b416 100644
--- a/src/Factory/UserFactory.php
+++ b/src/Factory/UserFactory.php
@@ -2,6 +2,7 @@
namespace App\Factory;
+use App\DataFixtures\FakeValues;
use App\Entity\User;
use App\Repository\UserRepository;
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
@@ -65,8 +66,8 @@ final class UserFactory extends ModelFactory
{
return [
'email' => self::faker()->email(),
- 'firstName' => self::faker()->randomElement(self::FIRST_NAMES),
- 'lastName' => self::faker()->randomElement(self::LAST_NAMES),
+ 'firstName' => self::faker()->randomElement(FakeValues::FIRST_NAMES),
+ 'lastName' => self::faker()->randomElement(FakeValues::LAST_NAMES),
'password' => "test",
'roles' => [],
];
diff --git a/src/Mapper/ContactApiToEntityMapper.php b/src/Mapper/ContactApiToEntityMapper.php
new file mode 100644
index 0000000..4369fc1
--- /dev/null
+++ b/src/Mapper/ContactApiToEntityMapper.php
@@ -0,0 +1,56 @@
+id ? $this->repository->find($dto->id) : new Contact();
+ if (!$entity) {
+ throw new \Exception('Partner not found');
+ }
+
+ return $entity;
+ }
+
+ public function populate(object $from, object $to, array $context): object
+ {
+ $dto = $from;
+ assert($dto instanceof ContactApi);
+ $entity = $to;
+ assert($entity instanceof Contact);
+
+ $entity->setFirstName($dto->firstName);
+ $entity->setLastName($dto->lastName);
+ $entity->setPartner($dto->partner);
+ $entity->setBirthday($dto->birthday);
+ $entity->setImage($dto->image);
+ $entity->setPosition($dto->position);
+ $entity->setPhone($dto->phone);
+ $entity->setEmail($dto->email);
+
+ return $entity;
+ }
+}
diff --git a/src/Mapper/ContactEntityToApiMapper.php b/src/Mapper/ContactEntityToApiMapper.php
new file mode 100644
index 0000000..988c53b
--- /dev/null
+++ b/src/Mapper/ContactEntityToApiMapper.php
@@ -0,0 +1,50 @@
+id = $entity->getId();
+
+ return $dto;
+ }
+
+ public function populate(object $from, object $to, array $context): object
+ {
+ $entity = $from;
+ $dto = $to;
+ assert($entity instanceof Contact);
+ assert($dto instanceof ContactApi);
+
+ $dto->firstName = $entity->getFirstName();
+ $dto->lastName = $entity->getLastName();
+ $dto->partner = $entity->getPartner();
+ $dto->birthday = $entity->getBirthday();
+ $dto->image = $entity->getImage();
+ $dto->position = $entity->getPosition();
+ $dto->phone = $entity->getPhone();
+ $dto->email = $entity->getEmail();
+ $dto->createdAt = $entity->getCreatedAt();
+
+ return $dto;
+ }
+}
diff --git a/src/Mapper/PartnerApiToEntityMapper.php b/src/Mapper/PartnerApiToEntityMapper.php
new file mode 100644
index 0000000..5229a31
--- /dev/null
+++ b/src/Mapper/PartnerApiToEntityMapper.php
@@ -0,0 +1,70 @@
+id ? $this->repository->find($dto->id) : new Partner();
+ if (!$entity) {
+ throw new \Exception('Partner not found');
+ }
+
+ return $entity;
+ }
+
+ public function populate(object $from, object $to, array $context): object
+ {
+ $dto = $from;
+ assert($dto instanceof PartnerApi);
+ $entity = $to;
+ assert($entity instanceof Partner);
+
+ $entity->setName($dto->name);
+ $entity->setStreet($dto->street);
+ $entity->setStreetNo($dto->streetNo);
+ $entity->setZip($dto->zip);
+ $entity->setCity($dto->city);
+ $entity->setCountry($dto->country);
+ $entity->setWebsite($dto->website);
+ $entity->setLogo($dto->logo);
+
+ $contactEntities = [];
+ foreach ($dto->contacts as $contactApi) {
+ $contactEntities[] = $this->microMapper->map($contactApi, Contact::class, [
+ MicroMapperInterface::MAX_DEPTH => 0,
+ ]);
+ }
+ $this->propertyAccessor->setValue($entity, 'postings', $contactEntities);
+
+ return $entity;
+ }
+}
diff --git a/src/Mapper/PartnerEntityToApiMapper.php b/src/Mapper/PartnerEntityToApiMapper.php
new file mode 100644
index 0000000..d8b3ec0
--- /dev/null
+++ b/src/Mapper/PartnerEntityToApiMapper.php
@@ -0,0 +1,60 @@
+id = $entity->getId();
+
+ return $dto;
+ }
+
+ public function populate(object $from, object $to, array $context): object
+ {
+ $entity = $from;
+ $dto = $to;
+ assert($entity instanceof Partner);
+ assert($dto instanceof PartnerApi);
+
+ $dto->name = $entity->getName();
+ $dto->type = $entity->getType();
+ $dto->street = $entity->getStreet();
+ $dto->streetNo = $entity->getStreetNo();
+ $dto->zip = $entity->getZip();
+ $dto->city = $entity->getCity();
+ $dto->country = $entity->getCountry();
+ $dto->website = $entity->getWebsite();
+ $dto->logo = $entity->getLogo();
+ $dto->createdAt = $entity->getCreatedAt();
+ $dto->contacts = array_map(function(Contact $contact) {
+ return $this->microMapper->map($contact, ContactApi::class, [
+ MicroMapperInterface::MAX_DEPTH => 0,
+ ]);
+ }, $entity->getContacts()->getValues());
+ return $dto;
+ }
+}
diff --git a/src/Mapper/PostingApiToEntityMapper.php b/src/Mapper/PostingApiToEntityMapper.php
index a7f4cf0..e3df541 100644
--- a/src/Mapper/PostingApiToEntityMapper.php
+++ b/src/Mapper/PostingApiToEntityMapper.php
@@ -33,7 +33,7 @@ class PostingApiToEntityMapper implements MapperInterface
$entity = $dto->id ? $this->repository->find($dto->id) : new Posting();
if (!$entity) {
- throw new \Exception('DragonTreasure not found');
+ throw new \Exception('Posting not found');
}
return $entity;
@@ -42,8 +42,8 @@ class PostingApiToEntityMapper implements MapperInterface
public function populate(object $from, object $to, array $context): object
{
$dto = $from;
- $entity = $to;
assert($dto instanceof PostingApi);
+ $entity = $to;
assert($entity instanceof Posting);
if ($dto->owner) {
diff --git a/src/Mapper/UserApiToEntityMapper.php b/src/Mapper/UserApiToEntityMapper.php
index d218d94..e2254d5 100644
--- a/src/Mapper/UserApiToEntityMapper.php
+++ b/src/Mapper/UserApiToEntityMapper.php
@@ -3,7 +3,6 @@
namespace App\Mapper;
use App\ApiResource\UserApi;
-use App\Entity\DragonTreasure;
use App\Entity\User;
use App\Entity\Posting;
use App\Repository\UserRepository;
@@ -53,12 +52,12 @@ class UserApiToEntityMapper implements MapperInterface
}
$userPostsEntities = [];
- foreach ($dto->userPosts as $userPostApi) {
+ foreach ($dto->postings as $userPostApi) {
$userPostsEntities[] = $this->microMapper->map($userPostApi, Posting::class, [
MicroMapperInterface::MAX_DEPTH => 0,
]);
}
- $this->propertyAccessor->setValue($entity, 'userPosts', $userPostsEntities);
+ $this->propertyAccessor->setValue($entity, 'postings', $userPostsEntities);
return $entity;
}
diff --git a/src/Mapper/UserEntityToApiMapper.php b/src/Mapper/UserEntityToApiMapper.php
index ccf7086..d82515b 100644
--- a/src/Mapper/UserEntityToApiMapper.php
+++ b/src/Mapper/UserEntityToApiMapper.php
@@ -40,11 +40,11 @@ class UserEntityToApiMapper implements MapperInterface
$dto->email = $entity->getEmail();
$dto->firstName = $entity->getFirstName();
$dto->lastName = $entity->getLastName();
- $dto->userPosts = array_map(function(Posting $userPost) {
+ $dto->postings = array_map(function(Posting $userPost) {
return $this->microMapper->map($userPost, PostingApi::class, [
MicroMapperInterface::MAX_DEPTH => 0,
]);
- }, $entity->getUserPosts()->getValues());
+ }, $entity->getPostings()->getValues());
return $dto;
}
diff --git a/src/Repository/PartnerContactRepository.php b/src/Repository/ContactRepository.php
similarity index 56%
rename from src/Repository/PartnerContactRepository.php
rename to src/Repository/ContactRepository.php
index 7e851b6..54b5113 100644
--- a/src/Repository/PartnerContactRepository.php
+++ b/src/Repository/ContactRepository.php
@@ -2,27 +2,27 @@
namespace App\Repository;
-use App\Entity\PartnerContact;
+use App\Entity\Contact;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
- * @extends ServiceEntityRepository
+ * @extends ServiceEntityRepository
*
- * @method PartnerContact|null find($id, $lockMode = null, $lockVersion = null)
- * @method PartnerContact|null findOneBy(array $criteria, array $orderBy = null)
- * @method PartnerContact[] findAll()
- * @method PartnerContact[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
+ * @method Contact|null find($id, $lockMode = null, $lockVersion = null)
+ * @method Contact|null findOneBy(array $criteria, array $orderBy = null)
+ * @method Contact[] findAll()
+ * @method Contact[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/
-class PartnerContactRepository extends ServiceEntityRepository
+class ContactRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
- parent::__construct($registry, PartnerContact::class);
+ parent::__construct($registry, Contact::class);
}
// /**
-// * @return PartnerContact[] Returns an array of PartnerContact objects
+// * @return Contact[] Returns an array of Contact objects
// */
// public function findByExampleField($value): array
// {
@@ -36,7 +36,7 @@ class PartnerContactRepository extends ServiceEntityRepository
// ;
// }
-// public function findOneBySomeField($value): ?PartnerContact
+// public function findOneBySomeField($value): ?Contact
// {
// return $this->createQueryBuilder('p')
// ->andWhere('p.exampleField = :val')
diff --git a/src/Repository/PostingRepository.php b/src/Repository/PostingRepository.php
index a56b69f..4885abf 100644
--- a/src/Repository/PostingRepository.php
+++ b/src/Repository/PostingRepository.php
@@ -22,7 +22,7 @@ class PostingRepository extends ServiceEntityRepository
}
// /**
-// * @return Post[] Returns an array of Post objects
+// * @return Posting[] Returns an array of Posting objects
// */
// public function findByExampleField($value): array
// {
@@ -36,7 +36,7 @@ class PostingRepository extends ServiceEntityRepository
// ;
// }
-// public function findOneBySomeField($value): ?Post
+// public function findOneBySomeField($value): ?Posting
// {
// return $this->createQueryBuilder('p')
// ->andWhere('p.exampleField = :val')