<?php

declare(strict_types=1);

namespace App\Model\Login;

/**
 * Třída pro uchování a dešifrování názvu serveru a databáze.
 * Parseruje název serveru, který může být ve tvaru: [server]@[databáze].
 */
class ServerCredentials
{
  /**
   * Název serveru (bez databáze).
   * @var string
   */
  public string $server;

  /**
   * Název databáze. Server connection string.
   * @var string
   */
  public string $databaze;

  public function __construct(
    /**
     * Server connection string. Ten co zadává uživatel do přihlašovacího formuláře.
     * @var string
     */
    public string $server_string,
  ) {
    $this->parseServer($server_string);
  }

  private function parseServer($server_string)
  {
    $this->server = $server_string; //default
    $this->databaze = "powercare"; //default

    if (str_contains($server_string, "@")) { //je tam zavináč
      $str_arr = explode("@", $server_string);
      if (count($str_arr) <> 2)
        return; //tady něco nehraje
      $this->server = trim($str_arr[0]);
      $this->databaze = trim($str_arr[1]);
    }
  }
}