diff --git a/app/Console/Site/SiteAddCommand.php b/app/Console/Site/SiteAddCommand.php index b8613ea2..809d97f0 100644 --- a/app/Console/Site/SiteAddCommand.php +++ b/app/Console/Site/SiteAddCommand.php @@ -71,7 +71,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int domain: $domain, repo: $repo, branch: $branch, - servers: [$server->name] + server: $server->name ); $this->displaySiteDeets($site); diff --git a/app/DTOs/SiteDTO.php b/app/DTOs/SiteDTO.php index 236efe90..2e1c2ef9 100644 --- a/app/DTOs/SiteDTO.php +++ b/app/DTOs/SiteDTO.php @@ -7,18 +7,18 @@ readonly class SiteDTO { /** - * Create a SiteDTO containing the site's domain, repository, branch, and associated servers. + * Create a SiteDTO containing the site's domain, repository, branch, and associated server. * * @param string $domain The site's domain name (e.g. example.com). * @param string $repo The repository URL for git sites. * @param string $branch The repository branch for git sites (e.g. main). - * @param array $servers Ordered list of server hostnames or addresses associated with the site. + * @param string $server Server name associated with the site. */ public function __construct( public string $domain, public string $repo, public string $branch, - public array $servers, + public string $server, ) { } } diff --git a/app/Repositories/SiteRepository.php b/app/Repositories/SiteRepository.php index 0a0e6001..026e2581 100644 --- a/app/Repositories/SiteRepository.php +++ b/app/Repositories/SiteRepository.php @@ -115,7 +115,7 @@ public function findByServer(string $serverName): array $filtered = []; foreach ($this->sites as $siteData) { $site = $this->hydrateSiteDTO($siteData); - if (in_array($serverName, $site->servers, true)) { + if ($site->server === $serverName) { $filtered[] = $site; } } @@ -167,7 +167,7 @@ private function assertInventoryLoaded(): void * Serialize a SiteDTO into an associative array suitable for inventory storage. * * @param SiteDTO $site The site DTO to serialize. - * @return array Associative array with keys `domain`, `repo`, `branch`, and `servers`. + * @return array Associative array with keys `domain`, `repo`, `branch`, and `server`. */ private function dehydrateSiteDTO(SiteDTO $site): array { @@ -175,7 +175,7 @@ private function dehydrateSiteDTO(SiteDTO $site): array 'domain' => $site->domain, 'repo' => $site->repo, 'branch' => $site->branch, - 'servers' => $site->servers, + 'server' => $site->server, ]; } @@ -183,20 +183,20 @@ private function dehydrateSiteDTO(SiteDTO $site): array * Create a SiteDTO from raw inventory data. * * @param array $data Raw associative array from inventory. - * @return SiteDTO A SiteDTO where `domain`, `repo`, and `branch` are strings (empty if missing), and `servers` is an array of strings. + * @return SiteDTO A SiteDTO where `domain`, `repo`, `branch`, and `server` are strings (empty if missing). */ private function hydrateSiteDTO(array $data): SiteDTO { $domain = $data['domain'] ?? ''; $repo = $data['repo'] ?? ''; $branch = $data['branch'] ?? ''; - $servers = $data['servers'] ?? []; + $server = $data['server'] ?? ''; return new SiteDTO( domain: is_string($domain) ? $domain : '', repo: is_string($repo) ? $repo : '', branch: is_string($branch) ? $branch : '', - servers: is_array($servers) ? array_values(array_filter($servers, is_string(...))) : [], + server: is_string($server) ? $server : '', ); } } diff --git a/app/Traits/SitesTrait.php b/app/Traits/SitesTrait.php index a53c9237..ebb3f12d 100644 --- a/app/Traits/SitesTrait.php +++ b/app/Traits/SitesTrait.php @@ -115,14 +115,9 @@ protected function displaySiteDeets(SiteDTO $site): void 'Source' => 'Git', 'Repo' => $site->repo, 'Branch' => $site->branch, + 'Server' => $site->server, ]; - if (count($site->servers) > 1) { - $details['Servers'] = $site->servers; - } elseif (count($site->servers) === 1) { - $details['Server'] = $site->servers[0]; - } - $this->io->displayDeets($details); $this->io->writeln(''); }