migrations/Version20250817002624.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. /**
  7.  * Auto-generated Migration: Please modify to your needs!
  8.  */
  9. final class Version20250817002624 extends AbstractMigration
  10. {
  11.     public function getDescription(): string
  12.     {
  13.         return '';
  14.     }
  15.     public function up(Schema $schema): void
  16.     {
  17.         // this up() migration is auto-generated, please modify it to your needs
  18.         $this->addSql('CREATE TABLE payroll_records (id INT AUTO_INCREMENT NOT NULL, sync_id INT NOT NULL, establishment_id INT NOT NULL, rh_salary_id INT NOT NULL, employee_id VARCHAR(60) NOT NULL, matricule VARCHAR(100) NOT NULL, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, date DATE NOT NULL, entry_time TIME DEFAULT NULL, exit_time TIME DEFAULT NULL, total_hours NUMERIC(5, 2) NOT NULL, normal_hours NUMERIC(5, 2) NOT NULL, overtime_hours NUMERIC(5, 2) NOT NULL, status VARCHAR(50) NOT NULL, late_minutes INT NOT NULL, early_leave_minutes INT 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_A1A4CF1FA50C422 (sync_id), INDEX IDX_A1A4CF18565851 (establishment_id), INDEX IDX_A1A4CF14758967C (rh_salary_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  19.         $this->addSql('CREATE TABLE payroll_sync (id INT AUTO_INCREMENT NOT NULL, establishment_id INT NOT NULL, sync_id VARCHAR(30) NOT NULL, sync_timestamp DATETIME NOT NULL, period_start DATE NOT NULL, period_end DATE NOT NULL, id_establishment VARCHAR(60) NOT NULL, status VARCHAR(50) NOT NULL, processed_records INT DEFAULT NULL, error_message LONGTEXT DEFAULT NULL, completed_at DATETIME DEFAULT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', updated_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', created_by INT NOT NULL, updated_by INT NOT NULL, UNIQUE INDEX UNIQ_970B62B9FA50C422 (sync_id), INDEX IDX_970B62B98565851 (establishment_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  20.         $this->addSql('CREATE TABLE restaurant_session (id INT AUTO_INCREMENT NOT NULL, cash_register_id INT NOT NULL, opened_by_id INT NOT NULL, establishment_id INT NOT NULL, session_code VARCHAR(50) NOT NULL, opened_at DATETIME NOT NULL, closed_at DATETIME DEFAULT NULL, opening_amount NUMERIC(10, 2) NOT NULL, closing_amount NUMERIC(10, 2) DEFAULT NULL, status VARCHAR(20) NOT NULL, ticket_validity_hours INT 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, UNIQUE INDEX UNIQ_1A0F89A1B16430B2 (session_code), INDEX IDX_1A0F89A1A917CC69 (cash_register_id), INDEX IDX_1A0F89A1AB159F5 (opened_by_id), INDEX IDX_1A0F89A18565851 (establishment_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  21.         $this->addSql('CREATE TABLE restaurant_session_product (id INT AUTO_INCREMENT NOT NULL, session_id INT NOT NULL, product_id INT NOT NULL, establishment_id INT NOT NULL, quantity_available NUMERIC(10, 2) NOT NULL, quantity_sold NUMERIC(10, 2) NOT NULL, quantity_remaining NUMERIC(10, 2) NOT NULL, session_price NUMERIC(10, 2) 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_76D9015613FECDF (session_id), INDEX IDX_76D90154584665A (product_id), INDEX IDX_76D90158565851 (establishment_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  22.         $this->addSql('CREATE TABLE restaurant_ticket (id INT AUTO_INCREMENT NOT NULL, session_id INT NOT NULL, created_user_id INT NOT NULL, validated_by_id INT DEFAULT NULL, establishment_id INT NOT NULL, ticket_code VARCHAR(50) NOT NULL, valid_until DATETIME NOT NULL, status VARCHAR(20) NOT NULL, validated_at DATETIME DEFAULT NULL, total_amount NUMERIC(10, 2) NOT NULL, amount_paid NUMERIC(10, 2) NOT NULL, change_amount NUMERIC(10, 2) 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, UNIQUE INDEX UNIQ_663E525245CE25A0 (ticket_code), INDEX IDX_663E5252613FECDF (session_id), INDEX IDX_663E5252E104C1D3 (created_user_id), INDEX IDX_663E5252C69DE5E5 (validated_by_id), INDEX IDX_663E52528565851 (establishment_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  23.         $this->addSql('CREATE TABLE restaurant_ticket_item (id INT AUTO_INCREMENT NOT NULL, ticket_id INT NOT NULL, product_id INT NOT NULL, establishment_id INT NOT NULL, quantity NUMERIC(10, 2) NOT NULL, unit_price NUMERIC(10, 2) NOT NULL, total_price NUMERIC(10, 2) 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_7CBB0A3C700047D2 (ticket_id), INDEX IDX_7CBB0A3C4584665A (product_id), INDEX IDX_7CBB0A3C8565851 (establishment_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  24.         $this->addSql('CREATE TABLE transport_call_journey (id INT AUTO_INCREMENT NOT NULL, establishment_id INT NOT NULL, transport_zone_id INT NOT NULL, create_date DATE NOT NULL COMMENT \'(DC2Type:date_immutable)\', is_validated 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, status VARCHAR(20) DEFAULT NULL, INDEX IDX_8341A4D78565851 (establishment_id), INDEX IDX_8341A4D7BFBFF5A (transport_zone_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  25.         $this->addSql('CREATE TABLE transport_call_sheet_checkpoint (id INT AUTO_INCREMENT NOT NULL, transport_call_sheet_id INT NOT NULL, checkpoint_id INT NOT NULL, establishment_id INT NOT NULL, type VARCHAR(20) NOT NULL, status VARCHAR(20) NOT NULL, scheduled_time DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', actual_time DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', validated_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', total_children INT DEFAULT NULL, present_children INT DEFAULT NULL, absent_children INT 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_7974DB8AB36D474 (transport_call_sheet_id), INDEX IDX_7974DB8F27C615F (checkpoint_id), INDEX IDX_7974DB88565851 (establishment_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  26.         $this->addSql('CREATE TABLE transport_call_sheet_checkpoint_line (id INT AUTO_INCREMENT NOT NULL, checkpoint_id INT NOT NULL, student_registration_id INT NOT NULL, establishment_id INT NOT NULL, status VARCHAR(20) NOT NULL, is_present TINYINT(1) NOT NULL, call_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', validation_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', 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_72E53F6AF27C615F (checkpoint_id), INDEX IDX_72E53F6ADF990765 (student_registration_id), INDEX IDX_72E53F6A8565851 (establishment_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  27.         $this->addSql('CREATE TABLE transport_incidents (id INT AUTO_INCREMENT NOT NULL, journey_id INT NOT NULL, establishment_id INT NOT NULL, reported_by_id INT NOT NULL, resolved_by_id INT DEFAULT NULL, type VARCHAR(50) NOT NULL, severity VARCHAR(20) DEFAULT NULL, location VARCHAR(255) NOT NULL, description LONGTEXT NOT NULL, estimated_delay INT DEFAULT NULL, status VARCHAR(20) NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', resolved_at DATETIME DEFAULT 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_7092B34BD5C9896F (journey_id), INDEX IDX_7092B34B8565851 (establishment_id), INDEX IDX_7092B34B71CE806 (reported_by_id), INDEX IDX_7092B34B6713A32B (resolved_by_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  28.         $this->addSql('ALTER TABLE payroll_records ADD CONSTRAINT FK_A1A4CF1FA50C422 FOREIGN KEY (sync_id) REFERENCES payroll_sync (id)');
  29.         $this->addSql('ALTER TABLE payroll_records ADD CONSTRAINT FK_A1A4CF18565851 FOREIGN KEY (establishment_id) REFERENCES establishment (id)');
  30.         $this->addSql('ALTER TABLE payroll_records ADD CONSTRAINT FK_A1A4CF14758967C FOREIGN KEY (rh_salary_id) REFERENCES rh_salary (id)');
  31.         $this->addSql('ALTER TABLE payroll_sync ADD CONSTRAINT FK_970B62B98565851 FOREIGN KEY (establishment_id) REFERENCES establishment (id)');
  32.         $this->addSql('ALTER TABLE restaurant_session ADD CONSTRAINT FK_1A0F89A1A917CC69 FOREIGN KEY (cash_register_id) REFERENCES treasury_cash_register (id)');
  33.         $this->addSql('ALTER TABLE restaurant_session ADD CONSTRAINT FK_1A0F89A1AB159F5 FOREIGN KEY (opened_by_id) REFERENCES user (id)');
  34.         $this->addSql('ALTER TABLE restaurant_session ADD CONSTRAINT FK_1A0F89A18565851 FOREIGN KEY (establishment_id) REFERENCES establishment (id)');
  35.         $this->addSql('ALTER TABLE restaurant_session_product ADD CONSTRAINT FK_76D9015613FECDF FOREIGN KEY (session_id) REFERENCES restaurant_session (id)');
  36.         $this->addSql('ALTER TABLE restaurant_session_product ADD CONSTRAINT FK_76D90154584665A FOREIGN KEY (product_id) REFERENCES stock_product (id)');
  37.         $this->addSql('ALTER TABLE restaurant_session_product ADD CONSTRAINT FK_76D90158565851 FOREIGN KEY (establishment_id) REFERENCES establishment (id)');
  38.         $this->addSql('ALTER TABLE restaurant_ticket ADD CONSTRAINT FK_663E5252613FECDF FOREIGN KEY (session_id) REFERENCES restaurant_session (id)');
  39.         $this->addSql('ALTER TABLE restaurant_ticket ADD CONSTRAINT FK_663E5252E104C1D3 FOREIGN KEY (created_user_id) REFERENCES user (id)');
  40.         $this->addSql('ALTER TABLE restaurant_ticket ADD CONSTRAINT FK_663E5252C69DE5E5 FOREIGN KEY (validated_by_id) REFERENCES user (id)');
  41.         $this->addSql('ALTER TABLE restaurant_ticket ADD CONSTRAINT FK_663E52528565851 FOREIGN KEY (establishment_id) REFERENCES establishment (id)');
  42.         $this->addSql('ALTER TABLE restaurant_ticket_item ADD CONSTRAINT FK_7CBB0A3C700047D2 FOREIGN KEY (ticket_id) REFERENCES restaurant_ticket (id)');
  43.         $this->addSql('ALTER TABLE restaurant_ticket_item ADD CONSTRAINT FK_7CBB0A3C4584665A FOREIGN KEY (product_id) REFERENCES stock_product (id)');
  44.         $this->addSql('ALTER TABLE restaurant_ticket_item ADD CONSTRAINT FK_7CBB0A3C8565851 FOREIGN KEY (establishment_id) REFERENCES establishment (id)');
  45.         $this->addSql('ALTER TABLE transport_call_journey ADD CONSTRAINT FK_8341A4D78565851 FOREIGN KEY (establishment_id) REFERENCES establishment (id)');
  46.         $this->addSql('ALTER TABLE transport_call_journey ADD CONSTRAINT FK_8341A4D7BFBFF5A FOREIGN KEY (transport_zone_id) REFERENCES transport_zone (id)');
  47.         $this->addSql('ALTER TABLE transport_call_sheet_checkpoint ADD CONSTRAINT FK_7974DB8AB36D474 FOREIGN KEY (transport_call_sheet_id) REFERENCES transport_call_sheet (id)');
  48.         $this->addSql('ALTER TABLE transport_call_sheet_checkpoint ADD CONSTRAINT FK_7974DB8F27C615F FOREIGN KEY (checkpoint_id) REFERENCES transport_zone_check_point (id)');
  49.         $this->addSql('ALTER TABLE transport_call_sheet_checkpoint ADD CONSTRAINT FK_7974DB88565851 FOREIGN KEY (establishment_id) REFERENCES establishment (id)');
  50.         $this->addSql('ALTER TABLE transport_call_sheet_checkpoint_line ADD CONSTRAINT FK_72E53F6AF27C615F FOREIGN KEY (checkpoint_id) REFERENCES transport_call_sheet_checkpoint (id)');
  51.         $this->addSql('ALTER TABLE transport_call_sheet_checkpoint_line ADD CONSTRAINT FK_72E53F6ADF990765 FOREIGN KEY (student_registration_id) REFERENCES registration_student_registration (id)');
  52.         $this->addSql('ALTER TABLE transport_call_sheet_checkpoint_line ADD CONSTRAINT FK_72E53F6A8565851 FOREIGN KEY (establishment_id) REFERENCES establishment (id)');
  53.         $this->addSql('ALTER TABLE transport_incidents ADD CONSTRAINT FK_7092B34BD5C9896F FOREIGN KEY (journey_id) REFERENCES transport_call_journey (id)');
  54.         $this->addSql('ALTER TABLE transport_incidents ADD CONSTRAINT FK_7092B34B8565851 FOREIGN KEY (establishment_id) REFERENCES establishment (id)');
  55.         $this->addSql('ALTER TABLE transport_incidents ADD CONSTRAINT FK_7092B34B71CE806 FOREIGN KEY (reported_by_id) REFERENCES user (id)');
  56.         $this->addSql('ALTER TABLE transport_incidents ADD CONSTRAINT FK_7092B34B6713A32B FOREIGN KEY (resolved_by_id) REFERENCES user (id)');
  57.         $this->addSql('ALTER TABLE registration_student_registration ADD is_authorized_alone TINYINT(1) NOT NULL');
  58.         $this->addSql('ALTER TABLE stock_product ADD is_available_for_restaurant TINYINT(1) DEFAULT \'0\' NOT NULL, ADD restaurant_price DOUBLE PRECISION DEFAULT NULL, ADD quantity_available_for_restaurant DOUBLE PRECISION DEFAULT NULL, ADD image VARCHAR(255) DEFAULT NULL');
  59.         $this->addSql('ALTER TABLE transport_call_sheet ADD transport_call_journey_id INT DEFAULT NULL, ADD status VARCHAR(20) DEFAULT NULL, ADD started_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', ADD ended_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', ADD total_children INT DEFAULT NULL, ADD present_children INT DEFAULT NULL');
  60.         $this->addSql('ALTER TABLE transport_call_sheet ADD CONSTRAINT FK_829D84102537EEED FOREIGN KEY (transport_call_journey_id) REFERENCES transport_call_journey (id)');
  61.         $this->addSql('CREATE INDEX IDX_829D84102537EEED ON transport_call_sheet (transport_call_journey_id)');
  62.         $this->addSql('ALTER TABLE transport_call_sheet_line ADD status VARCHAR(20) DEFAULT NULL, ADD embarkation_time DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', ADD disembarkation_time DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', ADD parent_notified TINYINT(1) DEFAULT NULL');
  63.         $this->addSql('ALTER TABLE transport_zone_check_point ADD validated_embarkation TINYINT(1) DEFAULT NULL, ADD validated_disembarkation TINYINT(1) DEFAULT NULL, ADD embarkation_validation_time DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', ADD disembarkation_validation_time DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\'');
  64.     }
  65.     public function down(Schema $schema): void
  66.     {
  67.         // this down() migration is auto-generated, please modify it to your needs
  68.         $this->addSql('ALTER TABLE payroll_records DROP FOREIGN KEY FK_A1A4CF1FA50C422');
  69.         $this->addSql('ALTER TABLE restaurant_session_product DROP FOREIGN KEY FK_76D9015613FECDF');
  70.         $this->addSql('ALTER TABLE restaurant_ticket DROP FOREIGN KEY FK_663E5252613FECDF');
  71.         $this->addSql('ALTER TABLE restaurant_ticket_item DROP FOREIGN KEY FK_7CBB0A3C700047D2');
  72.         $this->addSql('ALTER TABLE transport_call_sheet DROP FOREIGN KEY FK_829D84102537EEED');
  73.         $this->addSql('ALTER TABLE transport_incidents DROP FOREIGN KEY FK_7092B34BD5C9896F');
  74.         $this->addSql('ALTER TABLE transport_call_sheet_checkpoint_line DROP FOREIGN KEY FK_72E53F6AF27C615F');
  75.         $this->addSql('DROP TABLE payroll_records');
  76.         $this->addSql('DROP TABLE payroll_sync');
  77.         $this->addSql('DROP TABLE restaurant_session');
  78.         $this->addSql('DROP TABLE restaurant_session_product');
  79.         $this->addSql('DROP TABLE restaurant_ticket');
  80.         $this->addSql('DROP TABLE restaurant_ticket_item');
  81.         $this->addSql('DROP TABLE transport_call_journey');
  82.         $this->addSql('DROP TABLE transport_call_sheet_checkpoint');
  83.         $this->addSql('DROP TABLE transport_call_sheet_checkpoint_line');
  84.         $this->addSql('DROP TABLE transport_incidents');
  85.         $this->addSql('ALTER TABLE registration_student_registration DROP is_authorized_alone');
  86.         $this->addSql('ALTER TABLE stock_product DROP is_available_for_restaurant, DROP restaurant_price, DROP quantity_available_for_restaurant, DROP image');
  87.         $this->addSql('DROP INDEX IDX_829D84102537EEED ON transport_call_sheet');
  88.         $this->addSql('ALTER TABLE transport_call_sheet DROP transport_call_journey_id, DROP status, DROP started_at, DROP ended_at, DROP total_children, DROP present_children');
  89.         $this->addSql('ALTER TABLE transport_call_sheet_line DROP status, DROP embarkation_time, DROP disembarkation_time, DROP parent_notified');
  90.         $this->addSql('ALTER TABLE transport_zone_check_point DROP validated_embarkation, DROP validated_disembarkation, DROP embarkation_validation_time, DROP disembarkation_validation_time');
  91.     }
  92. }