<?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 Version20251116094425 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 bank_journal (id INT AUTO_INCREMENT NOT NULL, establishment_id INT NOT NULL, bank_name VARCHAR(255) NOT NULL, account_number VARCHAR(100) NOT NULL, account_type VARCHAR(50) NOT NULL, iban VARCHAR(34) DEFAULT NULL, swift VARCHAR(11) DEFAULT NULL, currency VARCHAR(3) NOT NULL, initial_balance NUMERIC(15, 2) NOT NULL, current_balance NUMERIC(15, 2) NOT NULL, is_active TINYINT(1) NOT NULL, description LONGTEXT DEFAULT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', updated_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', created_by INT NOT NULL, updated_by INT NOT NULL, INDEX IDX_EF338FE38565851 (establishment_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE bank_transaction (id INT AUTO_INCREMENT NOT NULL, bank_journal_id INT NOT NULL, establishment_id INT NOT NULL, school_year_id INT NOT NULL, transaction_date DATE NOT NULL, value_date DATE NOT NULL, type VARCHAR(10) NOT NULL, category VARCHAR(100) NOT NULL, amount NUMERIC(15, 2) NOT NULL, reference VARCHAR(100) DEFAULT NULL, description VARCHAR(500) NOT NULL, counterparty VARCHAR(255) DEFAULT NULL, payment_method VARCHAR(50) NOT NULL, is_reconciled TINYINT(1) NOT NULL, reconciled_at DATETIME DEFAULT NULL, reconciled_by INT DEFAULT NULL, linked_entity_type VARCHAR(50) DEFAULT NULL, linked_entity_id INT DEFAULT NULL, balance_after NUMERIC(15, 2) NOT NULL, is_validated TINYINT(1) NOT NULL, validated_at DATETIME DEFAULT NULL, validated_by INT DEFAULT NULL, attachment VARCHAR(255) DEFAULT NULL, notes LONGTEXT DEFAULT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', updated_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', created_by INT NOT NULL, updated_by INT NOT NULL, INDEX IDX_50BCB3AECE2E4EB4 (bank_journal_id), INDEX IDX_50BCB3AE8565851 (establishment_id), INDEX IDX_50BCB3AED2EECC3F (school_year_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE budget_forecast (id INT AUTO_INCREMENT NOT NULL, establishment_id INT NOT NULL, school_year_id INT NOT NULL, category VARCHAR(128) NOT NULL, `label` VARCHAR(255) NOT NULL, amount NUMERIC(15, 2) NOT NULL, month INT DEFAULT NULL, description LONGTEXT DEFAULT NULL, is_active TINYINT(1) NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', updated_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', created_by INT NOT NULL, updated_by INT NOT NULL, INDEX IDX_FD5329E08565851 (establishment_id), INDEX IDX_FD5329E0D2EECC3F (school_year_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE bank_journal ADD CONSTRAINT FK_EF338FE38565851 FOREIGN KEY (establishment_id) REFERENCES establishment (id)');
$this->addSql('ALTER TABLE bank_transaction ADD CONSTRAINT FK_50BCB3AECE2E4EB4 FOREIGN KEY (bank_journal_id) REFERENCES bank_journal (id)');
$this->addSql('ALTER TABLE bank_transaction ADD CONSTRAINT FK_50BCB3AE8565851 FOREIGN KEY (establishment_id) REFERENCES establishment (id)');
$this->addSql('ALTER TABLE bank_transaction ADD CONSTRAINT FK_50BCB3AED2EECC3F FOREIGN KEY (school_year_id) REFERENCES school_year (id)');
$this->addSql('ALTER TABLE budget_forecast ADD CONSTRAINT FK_FD5329E08565851 FOREIGN KEY (establishment_id) REFERENCES establishment (id)');
$this->addSql('ALTER TABLE budget_forecast ADD CONSTRAINT FK_FD5329E0D2EECC3F FOREIGN KEY (school_year_id) REFERENCES school_year (id)');
$this->addSql('ALTER TABLE school_teacher_call_sheet ADD status VARCHAR(50) NOT NULL, ADD rejection_reason LONGTEXT DEFAULT NULL');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE bank_transaction DROP FOREIGN KEY FK_50BCB3AECE2E4EB4');
$this->addSql('DROP TABLE bank_journal');
$this->addSql('DROP TABLE bank_transaction');
$this->addSql('DROP TABLE budget_forecast');
$this->addSql('ALTER TABLE school_teacher_call_sheet DROP status, DROP rejection_reason');
}
}