migrations/Version20220713204543.php line 1

  1. <?php declare(strict_types=1);
  2. namespace DoctrineMigrations;
  3. use Doctrine\DBAL\Schema\Schema;
  4. use Doctrine\Migrations\AbstractMigration;
  5. final class Version20220713204543 extends AbstractMigration
  6. {
  7.     public function getDescription(): string
  8.     {
  9.         return '';
  10.     }
  11.     public function up(Schema $schema): void
  12.     {
  13.         $companySql = <<<SQL
  14. CREATE TABLE company
  15. (
  16.     id          INT AUTO_INCREMENT NOT NULL,
  17.     `name`      VARCHAR(255)       NOT NULL,
  18.     api_key     VARCHAR(255)       NOT NULL,
  19.     created     DATE               NOT NULL,
  20.     valid_until DATE DEFAULT NULL,
  21.     PRIMARY KEY (id),
  22.     INDEX (api_key)
  23. ) DEFAULT CHARACTER SET utf8mb4
  24.   COLLATE `utf8mb4_unicode_ci`
  25.   ENGINE = InnoDB
  26. SQL;
  27.         $this->addSql($companySql);
  28.         $templateSql = <<<SQL
  29. CREATE TABLE template
  30. (
  31.     id                INT AUTO_INCREMENT NOT NULL,
  32.     product           VARCHAR(100)       NOT NULL,
  33.     company_id        INT                NOT NULL,
  34.     api_key           VARCHAR(100)       DEFAULT NULL,
  35.     `algorithm`       VARCHAR(100)       NOT NULL,
  36.     temperature       DOUBLE PRECISION   NOT NULL,
  37.     max_tokens        INT                NOT NULL,
  38.     top_p             INT                NOT NULL,
  39.     frequency_penalty INT                NOT NULL,
  40.     presence_penalty  INT                NOT NULL,
  41.     segment_before    LONGTEXT           DEFAULT NULL,
  42.     segment_after     LONGTEXT           DEFAULT NULL,
  43.     tokens_used INT                      NOT NULL,
  44.     PRIMARY KEY (id),
  45.     INDEX (product),
  46.     FOREIGN KEY (company_id) REFERENCES company(id)
  47. ) DEFAULT CHARACTER SET utf8mb4
  48.   COLLATE `utf8mb4_unicode_ci`
  49.   ENGINE = InnoDB
  50. SQL;
  51.         $this->addSql($templateSql);
  52.         $logSql = <<<SQL
  53. CREATE TABLE log
  54. (
  55.     id       INT AUTO_INCREMENT NOT NULL,
  56.     api_key  VARCHAR(255)       NOT NULL,
  57.     request  JSON               NOT NULL,
  58.     response JSON               NOT NULL,
  59.     PRIMARY KEY (id),
  60.     KEY (api_key)
  61. ) DEFAULT CHARACTER SET utf8mb4
  62.   COLLATE `utf8mb4_unicode_ci`
  63.   ENGINE = InnoDB
  64. SQL;
  65.         $this->addSql($logSql);
  66.     }
  67.     public function down(Schema $schema): void
  68.     {
  69.         $this->addSql('DROP TABLE template');
  70.         $this->addSql('DROP TABLE company');
  71.         $this->addSql('DROP TABLE api_context');
  72.         $this->addSql('DROP TABLE log');
  73.     }
  74. }