hesabixSite/migrations/Version20250905043249.php
Hesabix 06a2fb398d
Some checks are pending
PHP Composer / build (push) Waiting to run
progress in site customer part
2025-09-05 09:37:27 +03:30

350 lines
14 KiB
PHP

<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20250905043249 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE TABLE answer (
id INT AUTO_INCREMENT NOT NULL,
question_id INT NOT NULL,
author_id INT NOT NULL,
content LONGTEXT NOT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME DEFAULT NULL,
is_accepted TINYINT(1) NOT NULL,
votes INT NOT NULL,
is_active TINYINT(1) NOT NULL,
INDEX IDX_DADD4A251E27F6BF (question_id),
INDEX IDX_DADD4A25F675F31B (author_id),
PRIMARY KEY(id)
) DEFAULT CHARACTER
SET
utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE answer_vote (
id INT AUTO_INCREMENT NOT NULL,
answer_id INT NOT NULL,
user_id INT NOT NULL,
is_upvote TINYINT(1) NOT NULL,
created_at DATETIME NOT NULL,
INDEX IDX_43B66A4AA334807 (answer_id),
INDEX IDX_43B66A4A76ED395 (user_id),
UNIQUE INDEX unique_answer_user_vote (answer_id, user_id),
PRIMARY KEY(id)
) DEFAULT CHARACTER
SET
utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE cat (
id INT AUTO_INCREMENT NOT NULL,
label VARCHAR(255) NOT NULL,
code VARCHAR(255) NOT NULL,
PRIMARY KEY(id)
) DEFAULT CHARACTER
SET
utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE comment (
id INT AUTO_INCREMENT NOT NULL,
post_id INT NOT NULL,
body LONGTEXT NOT NULL,
name VARCHAR(255) DEFAULT NULL,
email VARCHAR(255) DEFAULT NULL,
website VARCHAR(255) DEFAULT NULL,
date_submit VARCHAR(255) NOT NULL,
publish TINYINT(1) DEFAULT NULL,
INDEX IDX_9474526C4B89032C (post_id),
PRIMARY KEY(id)
) DEFAULT CHARACTER
SET
utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE customer (
id INT AUTO_INCREMENT NOT NULL,
email VARCHAR(180) NOT NULL,
roles JSON NOT NULL,
password VARCHAR(255) NOT NULL,
name VARCHAR(255) NOT NULL,
phone VARCHAR(20) NOT NULL,
is_active TINYINT(1) NOT NULL,
email_verified_at DATETIME DEFAULT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME DEFAULT NULL,
last_login_at DATETIME DEFAULT NULL,
subscription_type VARCHAR(50) DEFAULT NULL,
subscription_expires_at DATETIME DEFAULT NULL,
UNIQUE INDEX UNIQ_CUSTOMER_EMAIL (email),
PRIMARY KEY(id)
) DEFAULT CHARACTER
SET
utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE hsxorder (
id INT AUTO_INCREMENT NOT NULL,
PRIMARY KEY(id)
) DEFAULT CHARACTER
SET
utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE password_reset_token (
id INT AUTO_INCREMENT NOT NULL,
user_id INT NOT NULL,
token VARCHAR(255) NOT NULL,
expires_at DATETIME NOT NULL,
used_at DATETIME DEFAULT NULL,
created_at DATETIME NOT NULL,
INDEX IDX_6B7BA4B6A76ED395 (user_id),
PRIMARY KEY(id)
) DEFAULT CHARACTER
SET
utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE post (
id INT AUTO_INCREMENT NOT NULL,
submitter_id INT DEFAULT NULL,
cat_id INT DEFAULT NULL,
title VARCHAR(255) DEFAULT NULL,
body LONGTEXT DEFAULT NULL,
date_submit VARCHAR(50) NOT NULL,
publish TINYINT(1) DEFAULT NULL,
url VARCHAR(255) DEFAULT NULL,
main_pic VARCHAR(255) DEFAULT NULL,
plain LONGTEXT DEFAULT NULL,
version VARCHAR(255) DEFAULT NULL,
keywords LONGTEXT DEFAULT NULL,
sort VARCHAR(255) DEFAULT NULL,
intro LONGTEXT DEFAULT NULL,
views VARCHAR(255) DEFAULT NULL,
UNIQUE INDEX UNIQ_5A8A6C8DF47645AE (url),
INDEX IDX_5A8A6C8D919E5513 (submitter_id),
INDEX IDX_5A8A6C8DE6ADA943 (cat_id),
PRIMARY KEY(id)
) DEFAULT CHARACTER
SET
utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE post_tree (
post_id INT NOT NULL,
tree_id INT NOT NULL,
INDEX IDX_7E6B39D74B89032C (post_id),
INDEX IDX_7E6B39D778B64A2 (tree_id),
PRIMARY KEY(post_id, tree_id)
) DEFAULT CHARACTER
SET
utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE question (
id INT AUTO_INCREMENT NOT NULL,
author_id INT NOT NULL,
title VARCHAR(255) NOT NULL,
content LONGTEXT NOT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME DEFAULT NULL,
is_solved TINYINT(1) NOT NULL,
views INT NOT NULL,
votes INT NOT NULL,
is_active TINYINT(1) NOT NULL,
INDEX IDX_B6F7494EF675F31B (author_id),
PRIMARY KEY(id)
) DEFAULT CHARACTER
SET
utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE question_tag (
id INT AUTO_INCREMENT NOT NULL,
name VARCHAR(50) NOT NULL,
description VARCHAR(255) DEFAULT NULL,
color VARCHAR(7) DEFAULT NULL,
usage_count INT NOT NULL,
is_active TINYINT(1) NOT NULL,
UNIQUE INDEX UNIQ_339D56FB5E237E06 (name),
PRIMARY KEY(id)
) DEFAULT CHARACTER
SET
utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE question_tag_relation (
id INT AUTO_INCREMENT NOT NULL,
question_id INT NOT NULL,
tag_id INT NOT NULL,
INDEX IDX_C752C7D01E27F6BF (question_id),
INDEX IDX_C752C7D0BAD26311 (tag_id),
UNIQUE INDEX unique_question_tag (question_id, tag_id),
PRIMARY KEY(id)
) DEFAULT CHARACTER
SET
utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE question_vote (
id INT AUTO_INCREMENT NOT NULL,
question_id INT NOT NULL,
user_id INT NOT NULL,
is_upvote TINYINT(1) NOT NULL,
created_at DATETIME NOT NULL,
INDEX IDX_4FE688B1E27F6BF (question_id),
INDEX IDX_4FE688BA76ED395 (user_id),
UNIQUE INDEX unique_question_user_vote (question_id, user_id),
PRIMARY KEY(id)
) DEFAULT CHARACTER
SET
utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE settings (
id INT AUTO_INCREMENT NOT NULL,
des VARCHAR(255) DEFAULT NULL,
site_keywords LONGTEXT DEFAULT NULL,
bscscan_api VARCHAR(255) DEFAULT NULL,
bsc_priv VARCHAR(255) DEFAULT NULL,
bsc_pub VARCHAR(255) DEFAULT NULL,
zarinpal_chain VARCHAR(255) DEFAULT NULL,
PRIMARY KEY(id)
) DEFAULT CHARACTER
SET
utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE tree (
id INT AUTO_INCREMENT NOT NULL,
cat_id INT NOT NULL,
label VARCHAR(255) NOT NULL,
code VARCHAR(255) NOT NULL,
sort VARCHAR(50) DEFAULT NULL,
INDEX IDX_B73E5EDCE6ADA943 (cat_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,
roles JSON NOT NULL,
password VARCHAR(255) NOT NULL,
name VARCHAR(255) NOT NULL,
phone VARCHAR(20) DEFAULT NULL,
is_active TINYINT(1) NOT NULL,
email_verified_at DATETIME DEFAULT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME DEFAULT NULL,
last_login_at DATETIME DEFAULT NULL,
subscription_type VARCHAR(50) DEFAULT NULL,
subscription_expires_at DATETIME DEFAULT NULL,
UNIQUE INDEX UNIQ_IDENTIFIER_EMAIL (email),
PRIMARY KEY(id)
) DEFAULT CHARACTER
SET
utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE messenger_messages (
id BIGINT AUTO_INCREMENT NOT NULL,
body LONGTEXT NOT NULL,
headers LONGTEXT NOT NULL,
queue_name VARCHAR(190) NOT NULL,
created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\',
available_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\',
delivered_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\',
INDEX IDX_75EA56E0FB7336F0 (queue_name),
INDEX IDX_75EA56E0E3BD61CE (available_at),
INDEX IDX_75EA56E016BA31DB (delivered_at),
PRIMARY KEY(id)
) DEFAULT CHARACTER
SET
utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE
answer
ADD
CONSTRAINT FK_DADD4A251E27F6BF FOREIGN KEY (question_id) REFERENCES question (id)');
$this->addSql('ALTER TABLE
answer
ADD
CONSTRAINT FK_DADD4A25F675F31B FOREIGN KEY (author_id) REFERENCES `user` (id)');
$this->addSql('ALTER TABLE
answer_vote
ADD
CONSTRAINT FK_43B66A4AA334807 FOREIGN KEY (answer_id) REFERENCES answer (id)');
$this->addSql('ALTER TABLE
answer_vote
ADD
CONSTRAINT FK_43B66A4A76ED395 FOREIGN KEY (user_id) REFERENCES `user` (id)');
$this->addSql('ALTER TABLE
comment
ADD
CONSTRAINT FK_9474526C4B89032C FOREIGN KEY (post_id) REFERENCES post (id)');
$this->addSql('ALTER TABLE
password_reset_token
ADD
CONSTRAINT FK_6B7BA4B6A76ED395 FOREIGN KEY (user_id) REFERENCES `user` (id)');
$this->addSql('ALTER TABLE
post
ADD
CONSTRAINT FK_5A8A6C8D919E5513 FOREIGN KEY (submitter_id) REFERENCES `user` (id)');
$this->addSql('ALTER TABLE post ADD CONSTRAINT FK_5A8A6C8DE6ADA943 FOREIGN KEY (cat_id) REFERENCES cat (id)');
$this->addSql('ALTER TABLE
post_tree
ADD
CONSTRAINT FK_7E6B39D74B89032C FOREIGN KEY (post_id) REFERENCES post (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE
post_tree
ADD
CONSTRAINT FK_7E6B39D778B64A2 FOREIGN KEY (tree_id) REFERENCES tree (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE
question
ADD
CONSTRAINT FK_B6F7494EF675F31B FOREIGN KEY (author_id) REFERENCES `user` (id)');
$this->addSql('ALTER TABLE
question_tag_relation
ADD
CONSTRAINT FK_C752C7D01E27F6BF FOREIGN KEY (question_id) REFERENCES question (id)');
$this->addSql('ALTER TABLE
question_tag_relation
ADD
CONSTRAINT FK_C752C7D0BAD26311 FOREIGN KEY (tag_id) REFERENCES question_tag (id)');
$this->addSql('ALTER TABLE
question_vote
ADD
CONSTRAINT FK_4FE688B1E27F6BF FOREIGN KEY (question_id) REFERENCES question (id)');
$this->addSql('ALTER TABLE
question_vote
ADD
CONSTRAINT FK_4FE688BA76ED395 FOREIGN KEY (user_id) REFERENCES `user` (id)');
$this->addSql('ALTER TABLE tree ADD CONSTRAINT FK_B73E5EDCE6ADA943 FOREIGN KEY (cat_id) REFERENCES cat (id)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE answer DROP FOREIGN KEY FK_DADD4A251E27F6BF');
$this->addSql('ALTER TABLE answer DROP FOREIGN KEY FK_DADD4A25F675F31B');
$this->addSql('ALTER TABLE answer_vote DROP FOREIGN KEY FK_43B66A4AA334807');
$this->addSql('ALTER TABLE answer_vote DROP FOREIGN KEY FK_43B66A4A76ED395');
$this->addSql('ALTER TABLE comment DROP FOREIGN KEY FK_9474526C4B89032C');
$this->addSql('ALTER TABLE password_reset_token DROP FOREIGN KEY FK_6B7BA4B6A76ED395');
$this->addSql('ALTER TABLE post DROP FOREIGN KEY FK_5A8A6C8D919E5513');
$this->addSql('ALTER TABLE post DROP FOREIGN KEY FK_5A8A6C8DE6ADA943');
$this->addSql('ALTER TABLE post_tree DROP FOREIGN KEY FK_7E6B39D74B89032C');
$this->addSql('ALTER TABLE post_tree DROP FOREIGN KEY FK_7E6B39D778B64A2');
$this->addSql('ALTER TABLE question DROP FOREIGN KEY FK_B6F7494EF675F31B');
$this->addSql('ALTER TABLE question_tag_relation DROP FOREIGN KEY FK_C752C7D01E27F6BF');
$this->addSql('ALTER TABLE question_tag_relation DROP FOREIGN KEY FK_C752C7D0BAD26311');
$this->addSql('ALTER TABLE question_vote DROP FOREIGN KEY FK_4FE688B1E27F6BF');
$this->addSql('ALTER TABLE question_vote DROP FOREIGN KEY FK_4FE688BA76ED395');
$this->addSql('ALTER TABLE tree DROP FOREIGN KEY FK_B73E5EDCE6ADA943');
$this->addSql('DROP TABLE answer');
$this->addSql('DROP TABLE answer_vote');
$this->addSql('DROP TABLE cat');
$this->addSql('DROP TABLE comment');
$this->addSql('DROP TABLE customer');
$this->addSql('DROP TABLE hsxorder');
$this->addSql('DROP TABLE password_reset_token');
$this->addSql('DROP TABLE post');
$this->addSql('DROP TABLE post_tree');
$this->addSql('DROP TABLE question');
$this->addSql('DROP TABLE question_tag');
$this->addSql('DROP TABLE question_tag_relation');
$this->addSql('DROP TABLE question_vote');
$this->addSql('DROP TABLE settings');
$this->addSql('DROP TABLE tree');
$this->addSql('DROP TABLE `user`');
$this->addSql('DROP TABLE messenger_messages');
}
}