<?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 Version20220305133932 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 admin (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, actif TINYINT(1) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, admin_global TINYINT(1) NOT NULL, UNIQUE INDEX UNIQ_880E0D76A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE convention (id INT AUTO_INCREMENT NOT NULL, num VARCHAR(255) DEFAULT NULL, signataire VARCHAR(255) DEFAULT NULL, num_bdc VARCHAR(255) DEFAULT NULL, date_debut DATE NOT NULL, date_fin DATE NOT NULL, tarif_jeht INT NOT NULL, revenue TINYINT(1) NOT NULL, marge DOUBLE PRECISION DEFAULT NULL, actif TINYINT(1) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE etudiant (id INT AUTO_INCREMENT NOT NULL, user_id INT DEFAULT NULL, num_etudiant VARCHAR(255) DEFAULT NULL, carte_etudiant TINYINT(1) NOT NULL, dpae VARCHAR(255) DEFAULT NULL, date_recrutement DATE DEFAULT NULL, actif TINYINT(1) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, UNIQUE INDEX UNIQ_717E22E3A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE facture (id INT AUTO_INCREMENT NOT NULL, num INT NOT NULL, debut_period DATE NOT NULL, fin_period DATE NOT NULL, montant_ht INT NOT NULL, montant_ttc INT NOT NULL, frais INT DEFAULT NULL, heure INT NOT NULL, date DATE NOT NULL, annule TINYINT(1) NOT NULL, lien_facture VARCHAR(255) NOT NULL, lien_recap_facture VARCHAR(255) NOT NULL, lien_recap_mission VARCHAR(255) NOT NULL, id_admin INT NOT NULL, reglee TINYINT(1) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE horaire (id INT AUTO_INCREMENT NOT NULL, etudiant_id INT NOT NULL, facture_id INT DEFAULT NULL, mission_id INT NOT NULL, mois VARCHAR(255) NOT NULL, heure VARCHAR(255) NOT NULL, heure_total INT DEFAULT NULL, frais INT NOT NULL, montant_ht INT NOT NULL, montant_tva INT NOT NULL, montant_ttc INT NOT NULL, marge DOUBLE PRECISION NOT NULL, salaire INT NOT NULL, tva TINYINT(1) NOT NULL, pourcentage_tva INT NOT NULL, adresse_facture1 VARCHAR(255) DEFAULT NULL, adresse_facture2 VARCHAR(255) DEFAULT NULL, rep_facture1 VARCHAR(255) DEFAULT NULL, rep_facture2 VARCHAR(255) DEFAULT NULL, facture_generee TINYINT(1) NOT NULL, recap_horaire VARCHAR(255) NOT NULL, en_erreur TINYINT(1) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, INDEX IDX_BBC83DB6DDEAB1A3 (etudiant_id), INDEX IDX_BBC83DB67F2DEE08 (facture_id), INDEX IDX_BBC83DB6BE6CAE90 (mission_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE laboratoire (id INT AUTO_INCREMENT NOT NULL, type_id INT NOT NULL, admin_id INT DEFAULT NULL, societe_id INT DEFAULT NULL, nom VARCHAR(255) NOT NULL, adresse LONGTEXT DEFAULT NULL, representant VARCHAR(255) DEFAULT NULL, tva INT NOT NULL, actif TINYINT(1) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, INDEX IDX_C4AD03C3C54C8C93 (type_id), INDEX IDX_C4AD03C3642B8210 (admin_id), INDEX IDX_C4AD03C3FCF77503 (societe_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE mission (id INT AUTO_INCREMENT NOT NULL, convention_id INT NOT NULL, service_id INT NOT NULL, nom VARCHAR(255) NOT NULL, description LONGTEXT DEFAULT NULL, adresse LONGTEXT DEFAULT NULL, actif TINYINT(1) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, INDEX IDX_9067F23CA2ACEBCC (convention_id), INDEX IDX_9067F23CED5CA9E6 (service_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE reset_password_request (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, selector VARCHAR(20) NOT NULL, hashed_token VARCHAR(100) NOT NULL, requested_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', expires_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_7CE748AA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE service (id INT AUTO_INCREMENT NOT NULL, laboratoire_id INT NOT NULL, nom VARCHAR(255) NOT NULL, actif TINYINT(1) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, INDEX IDX_E19D9AD276E2617B (laboratoire_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE societe (id INT AUTO_INCREMENT NOT NULL, nom VARCHAR(255) NOT NULL, representant VARCHAR(255) DEFAULT NULL, adresse LONGTEXT DEFAULT NULL, actif TINYINT(1) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE type_laboratoire (id INT AUTO_INCREMENT NOT NULL, type VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE user (id INT AUTO_INCREMENT NOT NULL, nom VARCHAR(255) NOT NULL, prenom VARCHAR(255) NOT NULL, genre VARCHAR(1) NOT NULL, email VARCHAR(180) NOT NULL, num_tel VARCHAR(35) DEFAULT NULL COMMENT \'(DC2Type:phone_number)\', roles LONGTEXT NOT NULL COMMENT \'(DC2Type:array)\', password VARCHAR(255) NOT NULL, profil_picture VARCHAR(255) DEFAULT NULL, nouveau_mdp TINYINT(1) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, UNIQUE INDEX UNIQ_8D93D649E7927C74 (email), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE variables_globales (id INT AUTO_INCREMENT NOT NULL, nom_variable VARCHAR(255) NOT NULL, valeur LONGTEXT NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE admin ADD CONSTRAINT FK_880E0D76A76ED395 FOREIGN KEY (user_id) REFERENCES user (id)');
$this->addSql('ALTER TABLE etudiant ADD CONSTRAINT FK_717E22E3A76ED395 FOREIGN KEY (user_id) REFERENCES user (id)');
$this->addSql('ALTER TABLE horaire ADD CONSTRAINT FK_BBC83DB6DDEAB1A3 FOREIGN KEY (etudiant_id) REFERENCES etudiant (id)');
$this->addSql('ALTER TABLE horaire ADD CONSTRAINT FK_BBC83DB67F2DEE08 FOREIGN KEY (facture_id) REFERENCES facture (id)');
$this->addSql('ALTER TABLE horaire ADD CONSTRAINT FK_BBC83DB6BE6CAE90 FOREIGN KEY (mission_id) REFERENCES mission (id)');
$this->addSql('ALTER TABLE laboratoire ADD CONSTRAINT FK_C4AD03C3C54C8C93 FOREIGN KEY (type_id) REFERENCES type_laboratoire (id)');
$this->addSql('ALTER TABLE laboratoire ADD CONSTRAINT FK_C4AD03C3642B8210 FOREIGN KEY (admin_id) REFERENCES admin (id)');
$this->addSql('ALTER TABLE laboratoire ADD CONSTRAINT FK_C4AD03C3FCF77503 FOREIGN KEY (societe_id) REFERENCES societe (id)');
$this->addSql('ALTER TABLE mission ADD CONSTRAINT FK_9067F23CA2ACEBCC FOREIGN KEY (convention_id) REFERENCES convention (id)');
$this->addSql('ALTER TABLE mission ADD CONSTRAINT FK_9067F23CED5CA9E6 FOREIGN KEY (service_id) REFERENCES service (id)');
$this->addSql('ALTER TABLE reset_password_request ADD CONSTRAINT FK_7CE748AA76ED395 FOREIGN KEY (user_id) REFERENCES user (id)');
$this->addSql('ALTER TABLE service ADD CONSTRAINT FK_E19D9AD276E2617B FOREIGN KEY (laboratoire_id) REFERENCES laboratoire (id)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE laboratoire DROP FOREIGN KEY FK_C4AD03C3642B8210');
$this->addSql('ALTER TABLE mission DROP FOREIGN KEY FK_9067F23CA2ACEBCC');
$this->addSql('ALTER TABLE horaire DROP FOREIGN KEY FK_BBC83DB6DDEAB1A3');
$this->addSql('ALTER TABLE horaire DROP FOREIGN KEY FK_BBC83DB67F2DEE08');
$this->addSql('ALTER TABLE service DROP FOREIGN KEY FK_E19D9AD276E2617B');
$this->addSql('ALTER TABLE horaire DROP FOREIGN KEY FK_BBC83DB6BE6CAE90');
$this->addSql('ALTER TABLE mission DROP FOREIGN KEY FK_9067F23CED5CA9E6');
$this->addSql('ALTER TABLE laboratoire DROP FOREIGN KEY FK_C4AD03C3FCF77503');
$this->addSql('ALTER TABLE laboratoire DROP FOREIGN KEY FK_C4AD03C3C54C8C93');
$this->addSql('ALTER TABLE admin DROP FOREIGN KEY FK_880E0D76A76ED395');
$this->addSql('ALTER TABLE etudiant DROP FOREIGN KEY FK_717E22E3A76ED395');
$this->addSql('ALTER TABLE reset_password_request DROP FOREIGN KEY FK_7CE748AA76ED395');
$this->addSql('DROP TABLE admin');
$this->addSql('DROP TABLE convention');
$this->addSql('DROP TABLE etudiant');
$this->addSql('DROP TABLE facture');
$this->addSql('DROP TABLE horaire');
$this->addSql('DROP TABLE laboratoire');
$this->addSql('DROP TABLE mission');
$this->addSql('DROP TABLE reset_password_request');
$this->addSql('DROP TABLE service');
$this->addSql('DROP TABLE societe');
$this->addSql('DROP TABLE type_laboratoire');
$this->addSql('DROP TABLE user');
$this->addSql('DROP TABLE variables_globales');
}
}