diff --git a/migrations/Version20251106131135.php b/migrations/Version20251106131135.php new file mode 100644 index 0000000..7e58b42 --- /dev/null +++ b/migrations/Version20251106131135.php @@ -0,0 +1,37 @@ +addSql('CREATE INDEX domain_entity_roles_idx ON domain_entity USING GIN (roles)'); + $this->addSql('CREATE INDEX domain_event_action_idx ON domain_event (action)'); + $this->addSql('CREATE INDEX entity_event_action_idx ON entity_event (action)'); + $this->addSql('CREATE INDEX icann_accreditation_status_idx ON icann_accreditation (status)'); + $this->addSql('CREATE INDEX tld_type_idx ON tld (type)'); + } + + public function down(Schema $schema): void + { + $this->addSql('DROP INDEX domain_entity_roles_idx'); + $this->addSql('DROP INDEX icann_accreditation_status_idx'); + $this->addSql('DROP INDEX tld_type_idx'); + $this->addSql('DROP INDEX domain_event_action_idx'); + $this->addSql('DROP INDEX entity_event_action_idx'); + } +} diff --git a/src/Entity/Domain.php b/src/Entity/Domain.php index 8e616a8..deb34af 100644 --- a/src/Entity/Domain.php +++ b/src/Entity/Domain.php @@ -60,6 +60,9 @@ use Symfony\Component\Serializer\Attribute\SerializedName; 'ds:list', ], ], + parameters: [ + 'forced' => new QueryParameter(schema: ['type' => 'boolean'], description: 'Force an RDAP request', required: false), + ], ), ], provider: AutoRegisterDomainProvider::class diff --git a/src/Entity/DomainEntity.php b/src/Entity/DomainEntity.php index cf89323..a8bc67f 100644 --- a/src/Entity/DomainEntity.php +++ b/src/Entity/DomainEntity.php @@ -9,6 +9,7 @@ use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Serializer\Attribute\Groups; #[ORM\Entity(repositoryClass: DomainEntityRepository::class)] +#[ORM\Index(name: 'domain_entity_roles_idx', columns: ['roles'])] class DomainEntity { #[ORM\Id] diff --git a/src/Entity/DomainEvent.php b/src/Entity/DomainEvent.php index 40bb15a..8365443 100644 --- a/src/Entity/DomainEvent.php +++ b/src/Entity/DomainEvent.php @@ -9,6 +9,7 @@ use Doctrine\ORM\Mapping as ORM; #[ORM\UniqueConstraint( columns: ['action', 'date', 'domain_id'] )] +#[ORM\Index(name: 'domain_event_action_idx', columns: ['action'])] class DomainEvent extends Event { #[ORM\ManyToOne(targetEntity: Domain::class, inversedBy: 'events')] diff --git a/src/Entity/Entity.php b/src/Entity/Entity.php index 79be619..66975e8 100644 --- a/src/Entity/Entity.php +++ b/src/Entity/Entity.php @@ -3,7 +3,6 @@ namespace App\Entity; use ApiPlatform\Metadata\ApiProperty; -use ApiPlatform\Metadata\ApiResource; use App\Repository\EntityRepository; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; @@ -15,30 +14,6 @@ use Symfony\Component\Serializer\Attribute\SerializedName; #[ORM\UniqueConstraint( columns: ['tld_id', 'handle'] )] -#[ApiResource( - operations: [ - /* - new GetCollection( - uriTemplate: '/entities', - normalizationContext: ['groups' => ['entity:list', 'event:list']] - ), - - new Get( - uriTemplate: '/entities/{id}', - normalizationContext: [ - 'groups' => [ - 'event:list', - 'entity:item', - 'domain-entity:domain', - 'domain:list', - 'nameserver-entity:nameserver', - 'nameserver:list', - ], - ] - ), - */ - ] -)] class Entity { #[ORM\Id] diff --git a/src/Entity/EntityEvent.php b/src/Entity/EntityEvent.php index d5d88f0..d195241 100644 --- a/src/Entity/EntityEvent.php +++ b/src/Entity/EntityEvent.php @@ -9,6 +9,7 @@ use Doctrine\ORM\Mapping as ORM; #[ORM\UniqueConstraint( columns: ['action', 'date', 'entity_uid'] )] +#[ORM\Index(name: 'entity_event_action_idx', columns: ['action'])] class EntityEvent extends Event { #[ORM\ManyToOne(targetEntity: Entity::class, inversedBy: 'events')] diff --git a/src/Entity/IcannAccreditation.php b/src/Entity/IcannAccreditation.php index 664730d..6844e89 100644 --- a/src/Entity/IcannAccreditation.php +++ b/src/Entity/IcannAccreditation.php @@ -50,6 +50,7 @@ use Symfony\Component\Serializer\Attribute\Groups; ] )] #[ORM\Entity(repositoryClass: IcannAccreditationRepository::class)] +#[ORM\Index(name: 'icann_accreditation_status_idx', columns: ['status'])] class IcannAccreditation { #[ORM\Id] diff --git a/src/Entity/Tld.php b/src/Entity/Tld.php index 9af1361..139b758 100644 --- a/src/Entity/Tld.php +++ b/src/Entity/Tld.php @@ -31,6 +31,7 @@ use Symfony\Component\Serializer\Attribute\Groups; )] #[ApiFilter(SearchFilter::class)] #[ORM\Entity(repositoryClass: TldRepository::class)] +#[ORM\Index(name: 'tld_type_idx', columns: ['type'])] class Tld { #[ORM\Id]