182 lines
16 KiB
PHP
182 lines
16 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 Version20241003154825 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 SEQUENCE customer_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||
|
$this->addSql('CREATE SEQUENCE discount_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||
|
$this->addSql('CREATE SEQUENCE dishes_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||
|
$this->addSql('CREATE SEQUENCE eat_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||
|
$this->addSql('CREATE SEQUENCE have_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||
|
$this->addSql('CREATE SEQUENCE "order_id_seq" INCREMENT BY 1 MINVALUE 1 START 1');
|
||
|
$this->addSql('CREATE SEQUENCE order_detail_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||
|
$this->addSql('CREATE SEQUENCE ordering_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||
|
$this->addSql('CREATE SEQUENCE reservation_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||
|
$this->addSql('CREATE SEQUENCE reserve_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||
|
$this->addSql('CREATE SEQUENCE status_order_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||
|
$this->addSql('CREATE SEQUENCE status_table_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||
|
$this->addSql('CREATE SEQUENCE "table_id_seq" INCREMENT BY 1 MINVALUE 1 START 1');
|
||
|
$this->addSql('CREATE SEQUENCE "user_id_seq" INCREMENT BY 1 MINVALUE 1 START 1');
|
||
|
$this->addSql('CREATE TABLE customer (id INT NOT NULL, first_name VARCHAR(255) NOT NULL, last_name VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, phone_number VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
|
||
|
$this->addSql('CREATE TABLE customer_order (customer_id INT NOT NULL, order_id INT NOT NULL, PRIMARY KEY(customer_id, order_id))');
|
||
|
$this->addSql('CREATE INDEX IDX_3B1CE6A39395C3F3 ON customer_order (customer_id)');
|
||
|
$this->addSql('CREATE INDEX IDX_3B1CE6A38D9F6D38 ON customer_order (order_id)');
|
||
|
$this->addSql('CREATE TABLE customer_table (customer_id INT NOT NULL, table_id INT NOT NULL, PRIMARY KEY(customer_id, table_id))');
|
||
|
$this->addSql('CREATE INDEX IDX_381CFA7D9395C3F3 ON customer_table (customer_id)');
|
||
|
$this->addSql('CREATE INDEX IDX_381CFA7DECFF285C ON customer_table (table_id)');
|
||
|
$this->addSql('CREATE TABLE discount (id INT NOT NULL, dish_id INT DEFAULT NULL, description VARCHAR(255) NOT NULL, percentage VARCHAR(255) NOT NULL, fixed_amount DOUBLE PRECISION NOT NULL, start_date DATE NOT NULL, end_date DATE NOT NULL, PRIMARY KEY(id))');
|
||
|
$this->addSql('CREATE INDEX IDX_E1E0B40E148EB0CB ON discount (dish_id)');
|
||
|
$this->addSql('CREATE TABLE dishes (id INT NOT NULL, name VARCHAR(255) NOT NULL, description VARCHAR(255) NOT NULL, price DOUBLE PRECISION NOT NULL, status VARCHAR(255) NOT NULL, number_order VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
|
||
|
$this->addSql('CREATE TABLE dishes_order (dishes_id INT NOT NULL, order_id INT NOT NULL, PRIMARY KEY(dishes_id, order_id))');
|
||
|
$this->addSql('CREATE INDEX IDX_A859E4CA05DD37A ON dishes_order (dishes_id)');
|
||
|
$this->addSql('CREATE INDEX IDX_A859E4C8D9F6D38 ON dishes_order (order_id)');
|
||
|
$this->addSql('CREATE TABLE eat (id INT NOT NULL, PRIMARY KEY(id))');
|
||
|
$this->addSql('CREATE TABLE have (id INT NOT NULL, PRIMARY KEY(id))');
|
||
|
$this->addSql('CREATE TABLE "order" (id INT NOT NULL, order_detail_id INT DEFAULT NULL, status_orders_id INT DEFAULT NULL, date_heure DATE NOT NULL, status_order VARCHAR(255) NOT NULL, price_order VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
|
||
|
$this->addSql('CREATE INDEX IDX_F529939864577843 ON "order" (order_detail_id)');
|
||
|
$this->addSql('CREATE INDEX IDX_F5299398476B1A97 ON "order" (status_orders_id)');
|
||
|
$this->addSql('CREATE TABLE order_dishes (order_id INT NOT NULL, dishes_id INT NOT NULL, PRIMARY KEY(order_id, dishes_id))');
|
||
|
$this->addSql('CREATE INDEX IDX_9BC2C3888D9F6D38 ON order_dishes (order_id)');
|
||
|
$this->addSql('CREATE INDEX IDX_9BC2C388A05DD37A ON order_dishes (dishes_id)');
|
||
|
$this->addSql('CREATE TABLE order_customer (order_id INT NOT NULL, customer_id INT NOT NULL, PRIMARY KEY(order_id, customer_id))');
|
||
|
$this->addSql('CREATE INDEX IDX_60C16CB88D9F6D38 ON order_customer (order_id)');
|
||
|
$this->addSql('CREATE INDEX IDX_60C16CB89395C3F3 ON order_customer (customer_id)');
|
||
|
$this->addSql('CREATE TABLE order_detail (id INT NOT NULL, quantity INT NOT NULL, unitary_price VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
|
||
|
$this->addSql('CREATE TABLE ordering (id INT NOT NULL, PRIMARY KEY(id))');
|
||
|
$this->addSql('CREATE TABLE reservation (id INT NOT NULL, date_heure DATE NOT NULL, number_customer INT NOT NULL, PRIMARY KEY(id))');
|
||
|
$this->addSql('CREATE TABLE reserve (id INT NOT NULL, PRIMARY KEY(id))');
|
||
|
$this->addSql('CREATE TABLE status_order (id INT NOT NULL, status_order VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
|
||
|
$this->addSql('CREATE TABLE status_table (id INT NOT NULL, status VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
|
||
|
$this->addSql('CREATE TABLE "table" (id INT NOT NULL, status_table_id INT DEFAULT NULL, reservation_id INT DEFAULT NULL, PRIMARY KEY(id))');
|
||
|
$this->addSql('CREATE INDEX IDX_F6298F4671258F84 ON "table" (status_table_id)');
|
||
|
$this->addSql('CREATE INDEX IDX_F6298F46B83297E7 ON "table" (reservation_id)');
|
||
|
$this->addSql('CREATE TABLE table_customer (table_id INT NOT NULL, customer_id INT NOT NULL, PRIMARY KEY(table_id, customer_id))');
|
||
|
$this->addSql('CREATE INDEX IDX_1184A0D9ECFF285C ON table_customer (table_id)');
|
||
|
$this->addSql('CREATE INDEX IDX_1184A0D99395C3F3 ON table_customer (customer_id)');
|
||
|
$this->addSql('CREATE TABLE table_user (table_id INT NOT NULL, user_id INT NOT NULL, PRIMARY KEY(table_id, user_id))');
|
||
|
$this->addSql('CREATE INDEX IDX_C7459682ECFF285C ON table_user (table_id)');
|
||
|
$this->addSql('CREATE INDEX IDX_C7459682A76ED395 ON table_user (user_id)');
|
||
|
$this->addSql('CREATE TABLE "user" (id INT NOT NULL, first_name VARCHAR(255) NOT NULL, last_name VARCHAR(255) NOT NULL, mail VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, role VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
|
||
|
$this->addSql('CREATE TABLE user_reservation (user_id INT NOT NULL, reservation_id INT NOT NULL, PRIMARY KEY(user_id, reservation_id))');
|
||
|
$this->addSql('CREATE INDEX IDX_EBD380C0A76ED395 ON user_reservation (user_id)');
|
||
|
$this->addSql('CREATE INDEX IDX_EBD380C0B83297E7 ON user_reservation (reservation_id)');
|
||
|
$this->addSql('CREATE TABLE messenger_messages (id BIGSERIAL NOT NULL, body TEXT NOT NULL, headers TEXT NOT NULL, queue_name VARCHAR(190) NOT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, available_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, delivered_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
|
||
|
$this->addSql('CREATE INDEX IDX_75EA56E0FB7336F0 ON messenger_messages (queue_name)');
|
||
|
$this->addSql('CREATE INDEX IDX_75EA56E0E3BD61CE ON messenger_messages (available_at)');
|
||
|
$this->addSql('CREATE INDEX IDX_75EA56E016BA31DB ON messenger_messages (delivered_at)');
|
||
|
$this->addSql('COMMENT ON COLUMN messenger_messages.created_at IS \'(DC2Type:datetime_immutable)\'');
|
||
|
$this->addSql('COMMENT ON COLUMN messenger_messages.available_at IS \'(DC2Type:datetime_immutable)\'');
|
||
|
$this->addSql('COMMENT ON COLUMN messenger_messages.delivered_at IS \'(DC2Type:datetime_immutable)\'');
|
||
|
$this->addSql('CREATE OR REPLACE FUNCTION notify_messenger_messages() RETURNS TRIGGER AS $$
|
||
|
BEGIN
|
||
|
PERFORM pg_notify(\'messenger_messages\', NEW.queue_name::text);
|
||
|
RETURN NEW;
|
||
|
END;
|
||
|
$$ LANGUAGE plpgsql;');
|
||
|
$this->addSql('DROP TRIGGER IF EXISTS notify_trigger ON messenger_messages;');
|
||
|
$this->addSql('CREATE TRIGGER notify_trigger AFTER INSERT OR UPDATE ON messenger_messages FOR EACH ROW EXECUTE PROCEDURE notify_messenger_messages();');
|
||
|
$this->addSql('ALTER TABLE customer_order ADD CONSTRAINT FK_3B1CE6A39395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE customer_order ADD CONSTRAINT FK_3B1CE6A38D9F6D38 FOREIGN KEY (order_id) REFERENCES "order" (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE customer_table ADD CONSTRAINT FK_381CFA7D9395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE customer_table ADD CONSTRAINT FK_381CFA7DECFF285C FOREIGN KEY (table_id) REFERENCES "table" (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE discount ADD CONSTRAINT FK_E1E0B40E148EB0CB FOREIGN KEY (dish_id) REFERENCES dishes (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE dishes_order ADD CONSTRAINT FK_A859E4CA05DD37A FOREIGN KEY (dishes_id) REFERENCES dishes (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE dishes_order ADD CONSTRAINT FK_A859E4C8D9F6D38 FOREIGN KEY (order_id) REFERENCES "order" (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE "order" ADD CONSTRAINT FK_F529939864577843 FOREIGN KEY (order_detail_id) REFERENCES order_detail (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE "order" ADD CONSTRAINT FK_F5299398476B1A97 FOREIGN KEY (status_orders_id) REFERENCES status_order (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE order_dishes ADD CONSTRAINT FK_9BC2C3888D9F6D38 FOREIGN KEY (order_id) REFERENCES "order" (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE order_dishes ADD CONSTRAINT FK_9BC2C388A05DD37A FOREIGN KEY (dishes_id) REFERENCES dishes (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE order_customer ADD CONSTRAINT FK_60C16CB88D9F6D38 FOREIGN KEY (order_id) REFERENCES "order" (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE order_customer ADD CONSTRAINT FK_60C16CB89395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE "table" ADD CONSTRAINT FK_F6298F4671258F84 FOREIGN KEY (status_table_id) REFERENCES status_table (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE "table" ADD CONSTRAINT FK_F6298F46B83297E7 FOREIGN KEY (reservation_id) REFERENCES reservation (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE table_customer ADD CONSTRAINT FK_1184A0D9ECFF285C FOREIGN KEY (table_id) REFERENCES "table" (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE table_customer ADD CONSTRAINT FK_1184A0D99395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE table_user ADD CONSTRAINT FK_C7459682ECFF285C FOREIGN KEY (table_id) REFERENCES "table" (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE table_user ADD CONSTRAINT FK_C7459682A76ED395 FOREIGN KEY (user_id) REFERENCES "user" (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE user_reservation ADD CONSTRAINT FK_EBD380C0A76ED395 FOREIGN KEY (user_id) REFERENCES "user" (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
$this->addSql('ALTER TABLE user_reservation ADD CONSTRAINT FK_EBD380C0B83297E7 FOREIGN KEY (reservation_id) REFERENCES reservation (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||
|
}
|
||
|
|
||
|
public function down(Schema $schema): void
|
||
|
{
|
||
|
// this down() migration is auto-generated, please modify it to your needs
|
||
|
$this->addSql('CREATE SCHEMA public');
|
||
|
$this->addSql('DROP SEQUENCE customer_id_seq CASCADE');
|
||
|
$this->addSql('DROP SEQUENCE discount_id_seq CASCADE');
|
||
|
$this->addSql('DROP SEQUENCE dishes_id_seq CASCADE');
|
||
|
$this->addSql('DROP SEQUENCE eat_id_seq CASCADE');
|
||
|
$this->addSql('DROP SEQUENCE have_id_seq CASCADE');
|
||
|
$this->addSql('DROP SEQUENCE "order_id_seq" CASCADE');
|
||
|
$this->addSql('DROP SEQUENCE order_detail_id_seq CASCADE');
|
||
|
$this->addSql('DROP SEQUENCE ordering_id_seq CASCADE');
|
||
|
$this->addSql('DROP SEQUENCE reservation_id_seq CASCADE');
|
||
|
$this->addSql('DROP SEQUENCE reserve_id_seq CASCADE');
|
||
|
$this->addSql('DROP SEQUENCE status_order_id_seq CASCADE');
|
||
|
$this->addSql('DROP SEQUENCE status_table_id_seq CASCADE');
|
||
|
$this->addSql('DROP SEQUENCE "table_id_seq" CASCADE');
|
||
|
$this->addSql('DROP SEQUENCE "user_id_seq" CASCADE');
|
||
|
$this->addSql('ALTER TABLE customer_order DROP CONSTRAINT FK_3B1CE6A39395C3F3');
|
||
|
$this->addSql('ALTER TABLE customer_order DROP CONSTRAINT FK_3B1CE6A38D9F6D38');
|
||
|
$this->addSql('ALTER TABLE customer_table DROP CONSTRAINT FK_381CFA7D9395C3F3');
|
||
|
$this->addSql('ALTER TABLE customer_table DROP CONSTRAINT FK_381CFA7DECFF285C');
|
||
|
$this->addSql('ALTER TABLE discount DROP CONSTRAINT FK_E1E0B40E148EB0CB');
|
||
|
$this->addSql('ALTER TABLE dishes_order DROP CONSTRAINT FK_A859E4CA05DD37A');
|
||
|
$this->addSql('ALTER TABLE dishes_order DROP CONSTRAINT FK_A859E4C8D9F6D38');
|
||
|
$this->addSql('ALTER TABLE "order" DROP CONSTRAINT FK_F529939864577843');
|
||
|
$this->addSql('ALTER TABLE "order" DROP CONSTRAINT FK_F5299398476B1A97');
|
||
|
$this->addSql('ALTER TABLE order_dishes DROP CONSTRAINT FK_9BC2C3888D9F6D38');
|
||
|
$this->addSql('ALTER TABLE order_dishes DROP CONSTRAINT FK_9BC2C388A05DD37A');
|
||
|
$this->addSql('ALTER TABLE order_customer DROP CONSTRAINT FK_60C16CB88D9F6D38');
|
||
|
$this->addSql('ALTER TABLE order_customer DROP CONSTRAINT FK_60C16CB89395C3F3');
|
||
|
$this->addSql('ALTER TABLE "table" DROP CONSTRAINT FK_F6298F4671258F84');
|
||
|
$this->addSql('ALTER TABLE "table" DROP CONSTRAINT FK_F6298F46B83297E7');
|
||
|
$this->addSql('ALTER TABLE table_customer DROP CONSTRAINT FK_1184A0D9ECFF285C');
|
||
|
$this->addSql('ALTER TABLE table_customer DROP CONSTRAINT FK_1184A0D99395C3F3');
|
||
|
$this->addSql('ALTER TABLE table_user DROP CONSTRAINT FK_C7459682ECFF285C');
|
||
|
$this->addSql('ALTER TABLE table_user DROP CONSTRAINT FK_C7459682A76ED395');
|
||
|
$this->addSql('ALTER TABLE user_reservation DROP CONSTRAINT FK_EBD380C0A76ED395');
|
||
|
$this->addSql('ALTER TABLE user_reservation DROP CONSTRAINT FK_EBD380C0B83297E7');
|
||
|
$this->addSql('DROP TABLE customer');
|
||
|
$this->addSql('DROP TABLE customer_order');
|
||
|
$this->addSql('DROP TABLE customer_table');
|
||
|
$this->addSql('DROP TABLE discount');
|
||
|
$this->addSql('DROP TABLE dishes');
|
||
|
$this->addSql('DROP TABLE dishes_order');
|
||
|
$this->addSql('DROP TABLE eat');
|
||
|
$this->addSql('DROP TABLE have');
|
||
|
$this->addSql('DROP TABLE "order"');
|
||
|
$this->addSql('DROP TABLE order_dishes');
|
||
|
$this->addSql('DROP TABLE order_customer');
|
||
|
$this->addSql('DROP TABLE order_detail');
|
||
|
$this->addSql('DROP TABLE ordering');
|
||
|
$this->addSql('DROP TABLE reservation');
|
||
|
$this->addSql('DROP TABLE reserve');
|
||
|
$this->addSql('DROP TABLE status_order');
|
||
|
$this->addSql('DROP TABLE status_table');
|
||
|
$this->addSql('DROP TABLE "table"');
|
||
|
$this->addSql('DROP TABLE table_customer');
|
||
|
$this->addSql('DROP TABLE table_user');
|
||
|
$this->addSql('DROP TABLE "user"');
|
||
|
$this->addSql('DROP TABLE user_reservation');
|
||
|
$this->addSql('DROP TABLE messenger_messages');
|
||
|
}
|
||
|
}
|