addSql('CREATE TABLE national_holidays (id INT AUTO_INCREMENT NOT NULL, uuid VARCHAR(36) NOT NULL, date INT NOT NULL, jalali_date VARCHAR(10) NOT NULL, jalali_year SMALLINT NOT NULL, title VARCHAR(200) NOT NULL, created_at INT NOT NULL, UNIQUE INDEX UNIQ_8262602CD17F50A6 (uuid), INDEX idx_holiday_year (jalali_year), UNIQUE INDEX uniq_holiday_date (date), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4'); $this->addSql('CREATE TABLE resource_calendars (id INT AUTO_INCREMENT NOT NULL, day_of_week SMALLINT NOT NULL, sequence SMALLINT DEFAULT 0 NOT NULL, start_minute SMALLINT NOT NULL, end_minute SMALLINT NOT NULL, active TINYINT DEFAULT 1 NOT NULL, resource_id INT NOT NULL, INDEX IDX_2C16D19089329D25 (resource_id), INDEX idx_rc_resource_day (resource_id, day_of_week, active), UNIQUE INDEX uniq_rc_resource_day_seq (resource_id, day_of_week, sequence), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4'); $this->addSql('CREATE TABLE resource_exceptions (id INT AUTO_INCREMENT NOT NULL, uuid VARCHAR(36) NOT NULL, type VARCHAR(20) NOT NULL, starts_at INT NOT NULL, ends_at INT NOT NULL, reason VARCHAR(200) DEFAULT NULL, created_at INT NOT NULL, updated_at INT NOT NULL, entity_type VARCHAR(10) NOT NULL, entity_id INT NOT NULL, resource_id INT NOT NULL, UNIQUE INDEX UNIQ_486A5CE6D17F50A6 (uuid), INDEX IDX_486A5CE689329D25 (resource_id), INDEX idx_rex_tenant (entity_type, entity_id), INDEX idx_rex_resource_range (resource_id, starts_at, ends_at), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4'); $this->addSql('CREATE TABLE tenant_holiday_overrides (id INT AUTO_INCREMENT NOT NULL, uuid VARCHAR(36) NOT NULL, date INT NOT NULL, is_working TINYINT NOT NULL, note VARCHAR(200) DEFAULT NULL, created_at INT NOT NULL, entity_type VARCHAR(10) NOT NULL, entity_id INT NOT NULL, UNIQUE INDEX UNIQ_DB0B49E4D17F50A6 (uuid), UNIQUE INDEX uniq_tho_tenant_date (entity_type, entity_id, date), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4'); $this->addSql('ALTER TABLE resource_calendars ADD CONSTRAINT FK_2C16D19089329D25 FOREIGN KEY (resource_id) REFERENCES clinic_resources (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE resource_exceptions ADD CONSTRAINT FK_486A5CE689329D25 FOREIGN KEY (resource_id) REFERENCES clinic_resources (id) ON DELETE CASCADE'); } public function down(Schema $schema): void { $this->addSql('ALTER TABLE resource_calendars DROP FOREIGN KEY FK_2C16D19089329D25'); $this->addSql('ALTER TABLE resource_exceptions DROP FOREIGN KEY FK_486A5CE689329D25'); $this->addSql('DROP TABLE national_holidays'); $this->addSql('DROP TABLE resource_calendars'); $this->addSql('DROP TABLE resource_exceptions'); $this->addSql('DROP TABLE tenant_holiday_overrides'); } }