migrations/Version20180424134608.php line 1

Open in your IDE?
  1. <?php
  2. namespace DoctrineMigrations;
  3. use Doctrine\DBAL\Schema\Schema;
  4. use Doctrine\Migrations\AbstractMigration;
  5. /**
  6.  * Auto-generated Migration: Please modify to your needs!
  7.  */
  8. class Version20180424134608 extends AbstractMigration
  9. {
  10.     public function up(Schema $schema): void
  11.     {
  12.         // this up() migration is auto-generated, please modify it to your needs
  13.         $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql''Migration can only be executed safely on \'mysql\'.');
  14.         /**
  15.          * Drop FK/Indexes.
  16.          */
  17.         $this->addSql('ALTER TABLE truck_transaction DROP FOREIGN KEY FK_FD975413EB24ABE5');
  18.         $this->addSql('ALTER TABLE truck_maintenance DROP FOREIGN KEY FK_A024A92BA854A8F7');
  19.         $this->addSql('ALTER TABLE image DROP FOREIGN KEY FK_C53D045F3FE31E98');
  20.         $this->addSql('DROP INDEX IDX_C53D045F3FE31E98 ON image');
  21.         $this->addSql('ALTER TABLE note DROP FOREIGN KEY FK_CFBDFA14C6957CCE');
  22.         $this->addSql('DROP INDEX IDX_CFBDFA14C6957CCE ON note');
  23.         $this->addSql('ALTER TABLE job DROP FOREIGN KEY FK_FBD8E0F8C6957CCE');
  24.         $this->addSql('DROP INDEX IDX_FBD8E0F8C6957CCE ON job');
  25.         $this->addSql('ALTER TABLE truck DROP FOREIGN KEY FK_CDCCF30A917C7BCD');
  26.         $this->addSql('ALTER TABLE truck DROP FOREIGN KEY FK_CDCCF30A9395C3F3');
  27.         $this->addSql('DROP INDEX IDX_CDCCF30A917C7BCD ON truck');
  28.         $this->addSql('DROP INDEX IDX_CDCCF30A9395C3F3 ON truck');
  29.         /**
  30.          * Create tables.
  31.          */
  32.         $this->addSql('CREATE TABLE asset_transaction (id INT AUTO_INCREMENT NOT NULL, maintenance_id INT DEFAULT NULL, date DATETIME NOT NULL, createdAt DATETIME NOT NULL, updatedAt DATETIME NOT NULL, deletedAt DATETIME DEFAULT NULL, amount INT NOT NULL, transaction_category INT NOT NULL, assetLifecyclePeriod_id INT DEFAULT NULL, INDEX IDX_F94F5CD822757901 (assetLifecyclePeriod_id), UNIQUE INDEX UNIQ_F94F5CD877E48174 (maintenance_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
  33.         $this->addSql('CREATE TABLE asset_lifecycle_period (id INT AUTO_INCREMENT NOT NULL, customer_id INT DEFAULT NULL, asset_id INT DEFAULT NULL, deletedAt DATETIME DEFAULT NULL, start DATETIME NOT NULL, end DATETIME DEFAULT NULL, estimated_hire_duration VARCHAR(50) DEFAULT NULL, hire_rate NUMERIC(8, 2) DEFAULT NULL, client_fleet LONGTEXT DEFAULT NULL, type INT NOT NULL, underwriter LONGTEXT DEFAULT NULL, maintenance_contract TINYINT(1) NOT NULL, maintenance_expenditure NUMERIC(8, 2) DEFAULT NULL, maintenance_revenue NUMERIC(8, 2) DEFAULT NULL, maintenance_rate NUMERIC(8, 2) DEFAULT NULL, maintenance_start_date DATETIME DEFAULT NULL, maintenance_end_date DATETIME DEFAULT NULL, maintenance_duration INT DEFAULT NULL, sale_price NUMERIC(8, 2) DEFAULT NULL, sale_warranty INT DEFAULT NULL, sale_warranty_duration INT DEFAULT NULL, sale_warranty_start_date DATETIME DEFAULT NULL, residual_value NUMERIC(8, 2) DEFAULT NULL, trade_in_value NUMERIC(8, 2) DEFAULT NULL, hours_per_annum INT DEFAULT NULL, siteAddress_id INT DEFAULT NULL, INDEX IDX_7B1F27D49395C3F3 (customer_id), INDEX IDX_7B1F27D45DA1941 (asset_id), INDEX IDX_7B1F27D4917C7BCD (siteAddress_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
  34.         $this->addSql('CREATE TABLE asset (id INT AUTO_INCREMENT NOT NULL, uuid LONGTEXT DEFAULT NULL, created_at DATETIME DEFAULT NULL, updated_at DATETIME DEFAULT NULL, deletedAt DATETIME DEFAULT NULL, serial LONGTEXT NOT NULL, year_of_manufacture INT DEFAULT NULL, purchase_price NUMERIC(8, 2) DEFAULT NULL, purchase_date DATETIME DEFAULT NULL, manufacturers_warranty INT NOT NULL, manufacturers_warranty_duration INT NOT NULL, second_level_manufacturers_warranty INT NOT NULL, second_level_manufacturers_warranty_duration INT NOT NULL, hire_rate NUMERIC(8, 2) DEFAULT NULL, currentLifecyclePeriod_id INT DEFAULT NULL, assetType VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_2AF5A5C27A2E7D5 (currentLifecyclePeriod_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
  35.         $this->addSql('CREATE TABLE truck_charger (id INT NOT NULL, make VARCHAR(255) NOT NULL, model VARCHAR(255) NOT NULL, phase LONGTEXT NOT NULL, output_voltage INT DEFAULT NULL, output_current INT DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
  36.         $this->addSql('CREATE TABLE asset_maintenance (id INT AUTO_INCREMENT NOT NULL, transaction_id INT DEFAULT NULL, detail VARCHAR(255) NOT NULL, date DATETIME DEFAULT NULL, createdAt DATETIME NOT NULL, updatedAt DATETIME NOT NULL, deletedAt DATETIME DEFAULT NULL, amount INT NOT NULL, assetLifecyclePeriod_id INT DEFAULT NULL, INDEX IDX_A4FCA1E022757901 (assetLifecyclePeriod_id), UNIQUE INDEX UNIQ_A4FCA1E02FC0CB0F (transaction_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
  37.         $this->addSql('CREATE TABLE truck_attachment (id INT NOT NULL, make VARCHAR(255) NOT NULL, model VARCHAR(255) NOT NULL, type LONGTEXT NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
  38.         $this->addSql('CREATE TABLE contact_assetlifecycleperiod (contact_id INT NOT NULL, assetlifecycleperiod_id INT NOT NULL, INDEX IDX_BBCA7A6FE7A1254A (contact_id), INDEX IDX_BBCA7A6FFDC24392 (assetlifecycleperiod_id), PRIMARY KEY(contact_id, assetlifecycleperiod_id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
  39.         /**
  40.          * Migrate trucks -> asset.
  41.          */
  42.         $this->addSql('INSERT INTO asset (id, uuid, created_at, updated_at, deletedAt, serial, year_of_manufacture, purchase_price, purchase_date, manufacturers_warranty, manufacturers_warranty_duration, second_level_manufacturers_warranty, second_level_manufacturers_warranty_duration, hire_rate, currentLifecyclePeriod_id, assetType) SELECT id, uuid, created_at, updated_at, deletedAt, serial, yom, NULL, NULL, 0, 0, 0, 0, hire_rate, NULL, "truck" FROM truck');
  43.         /**
  44.          * Migrate contract hire.
  45.          */
  46.         $this->addSql('INSERT INTO asset_lifecycle_period (customer_id, asset_id, deletedAt, start, end, estimated_hire_duration, hire_rate, client_fleet, type, underwriter, maintenance_contract, maintenance_expenditure, maintenance_revenue, maintenance_rate, maintenance_start_date, maintenance_end_date, maintenance_duration, sale_price, sale_warranty, sale_warranty_duration, sale_warranty_start_date, residual_value, trade_in_value, hours_per_annum, siteAddress_id) SELECT customer_id, id, NULL, contract_hire_start_date, expiry, hire_term, hire_rate, client_flt_num, 1, underwriter, 1, 0, 0, maintenance_revenue, contract_hire_start_date, expiry, hire_term, NULL, NULL, NULL, NULL, residual_value, NULL, NULL, siteAddress_id FROM truck WHERE truck.deletedAt IS NULL AND purchased = 0 AND casual_hire = 0');
  47.         /**
  48.          * Migrate casual hire.
  49.          */
  50.         $this->addSql('INSERT INTO asset_lifecycle_period (customer_id, asset_id, deletedAt, start, end, estimated_hire_duration, hire_rate, client_fleet, type, underwriter, maintenance_contract, maintenance_expenditure, maintenance_revenue, maintenance_rate, maintenance_start_date, maintenance_end_date, maintenance_duration, sale_price, sale_warranty, sale_warranty_duration, sale_warranty_start_date, residual_value, trade_in_value, hours_per_annum, siteAddress_id)  SELECT customer_id, id, NULL, casual_hire_start_date, NULL, hire_term, hire_price_monthly, client_flt_num, 2, underwriter, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, residual_value, NULL, NULL, siteAddress_id FROM truck WHERE truck.deletedAt IS NULL AND purchased = 0 AND casual_hire = 1');
  51.         /**
  52.          * Migrate sold.
  53.          */
  54.         $this->addSql('INSERT INTO asset_lifecycle_period (customer_id, asset_id, deletedAt, start, end, estimated_hire_duration, hire_rate, client_fleet, type, underwriter, maintenance_contract, maintenance_expenditure, maintenance_revenue, maintenance_rate, maintenance_start_date, maintenance_end_date, maintenance_duration, sale_price, sale_warranty, sale_warranty_duration, sale_warranty_start_date, residual_value, trade_in_value, hours_per_annum, siteAddress_id)  SELECT customer_id, id, NULL, purchased_date, NULL, NULL, NULL, client_flt_num, 3, underwriter, purchase_maintenance, NULL, NULL, NULL, maintenance_start_date, CASE WHEN (maintenance_start_date IS NOT NULL AND maintenance_duration IS NOT NULL) THEN DATE_ADD(maintenance_start_date, INTERVAL maintenance_duration MONTH) ELSE NULL END, maintenance_duration, sale_price, CASE WHEN warranty IS NOT NULL AND warranty > 0 THEN 1 ELSE 0 END, warranty, warranty_start_date, residual_value, NULL, NULL, siteAddress_id FROM truck WHERE truck.deletedAt IS NULL AND purchased = 1');
  55.         /**
  56.          * Set current lifecycle period on trucks.
  57.          */
  58.         $this->addSql('UPDATE asset SET currentLifecyclePeriod_id = (SELECT MAX(id) FROM asset_lifecycle_period WHERE asset_id = asset.id)');
  59.         /**
  60.          * Migrate truck contacts -> asset lifecycle period contacts.
  61.          */
  62.         $this->addSql('INSERT INTO contact_assetlifecycleperiod (contact_id, assetlifecycleperiod_id) SELECT sub.contact, sub.lcp FROM (SELECT contact_id contact, (SELECT currentLifecyclePeriod_id FROM asset WHERE asset.id = truck_contact.truck_id) lcp FROM truck_contact) sub WHERE lcp IS NOT NULL');
  63.         /**
  64.          * Alter tables.
  65.          */
  66.         $this->addSql('ALTER TABLE image ADD assetLifecyclePeriod_id INT DEFAULT NULL, CHANGE truck_id asset_id INT DEFAULT NULL');
  67.         $this->addSql('ALTER TABLE note ADD assetLifecyclePeriod_id INT DEFAULT NULL, CHANGE truck_id asset_id INT DEFAULT NULL');
  68.         $this->addSql('ALTER TABLE job ADD assetLifecyclePeriod_id INT DEFAULT NULL');
  69.         /**
  70.          * Migrate jobs.
  71.          */
  72.         $this->addSql('UPDATE job SET assetLifecyclePeriod_id=(SELECT MAX(id) FROM asset_lifecycle_period WHERE asset_lifecycle_period.asset_id=job.truck_id)');
  73.         $this->addSql('ALTER TABLE job DROP truck_id');
  74.         /**
  75.          * Drop tables.
  76.          */
  77.         $this->addSql('DROP TABLE contact_truck');
  78.         $this->addSql('DROP TABLE estimate_truck');
  79.         $this->addSql('DROP TABLE truck_contact');
  80.         $this->addSql('DROP TABLE truck_maintenance');
  81.         $this->addSql('DROP TABLE truck_transaction');
  82.         $this->addSql('ALTER TABLE truck ADD attachment_id INT DEFAULT NULL, ADD charger_id INT DEFAULT NULL, ADD sideshift LONGTEXT DEFAULT NULL, ADD fork_dimensions LONGTEXT DEFAULT NULL, ADD battery_spec LONGTEXT DEFAULT NULL, DROP customer_id, DROP purchased, DROP hirable, DROP sale_price, DROP hire_price_monthly, DROP yom, DROP serial, DROP maintenance_revenue, DROP maintenance_expenditure, DROP contract_hire, DROP casual_hire, DROP expected_utilisation, DROP hire_term, DROP hire_rate, DROP max_utilisation, DROP client_flt_num, DROP deletedAt, DROP last_service, DROP last_loler, DROP purchased_date, DROP warranty, DROP siteAddress_id, DROP maintenance_start_date, DROP warranty_start_date, DROP contract_hire_start_date, DROP casual_hire_start_date, DROP maintenance_duration, DROP purchase_maintenance, DROP attachments, DROP underwriter, DROP performance_indicator, DROP attachment_model_num, DROP location, DROP expiry, DROP uuid, DROP stock_value, DROP retail_value, DROP trade_value, DROP created_at, DROP updated_at, DROP residual_value, CHANGE id id INT NOT NULL');
  83.         /**
  84.          * Add FKs.
  85.          */
  86.         $this->addSql('ALTER TABLE asset_transaction ADD CONSTRAINT FK_F94F5CD822757901 FOREIGN KEY (assetLifecyclePeriod_id) REFERENCES asset_lifecycle_period (id) ON DELETE SET NULL');
  87.         $this->addSql('ALTER TABLE asset_transaction ADD CONSTRAINT FK_F94F5CD877E48174 FOREIGN KEY (maintenance_id) REFERENCES asset_maintenance (id) ON DELETE SET NULL');
  88.         $this->addSql('ALTER TABLE asset_lifecycle_period ADD CONSTRAINT FK_7B1F27D49395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id) ON DELETE SET NULL');
  89.         $this->addSql('ALTER TABLE asset_lifecycle_period ADD CONSTRAINT FK_7B1F27D45DA1941 FOREIGN KEY (asset_id) REFERENCES asset (id) ON DELETE CASCADE');
  90.         $this->addSql('ALTER TABLE asset_lifecycle_period ADD CONSTRAINT FK_7B1F27D4917C7BCD FOREIGN KEY (siteAddress_id) REFERENCES site_address (id) ON DELETE SET NULL');
  91.         $this->addSql('ALTER TABLE asset ADD CONSTRAINT FK_2AF5A5C27A2E7D5 FOREIGN KEY (currentLifecyclePeriod_id) REFERENCES asset_lifecycle_period (id) ON DELETE SET NULL');
  92.         $this->addSql('ALTER TABLE truck_charger ADD CONSTRAINT FK_8A594FD8BF396750 FOREIGN KEY (id) REFERENCES asset (id) ON DELETE CASCADE');
  93.         $this->addSql('ALTER TABLE asset_maintenance ADD CONSTRAINT FK_A4FCA1E022757901 FOREIGN KEY (assetLifecyclePeriod_id) REFERENCES asset_lifecycle_period (id) ON DELETE SET NULL');
  94.         $this->addSql('ALTER TABLE asset_maintenance ADD CONSTRAINT FK_A4FCA1E02FC0CB0F FOREIGN KEY (transaction_id) REFERENCES asset_transaction (id)');
  95.         $this->addSql('ALTER TABLE truck_attachment ADD CONSTRAINT FK_BC90E467BF396750 FOREIGN KEY (id) REFERENCES asset (id) ON DELETE CASCADE');
  96.         $this->addSql('ALTER TABLE contact_assetlifecycleperiod ADD CONSTRAINT FK_BBCA7A6FE7A1254A FOREIGN KEY (contact_id) REFERENCES contact (id) ON DELETE CASCADE');
  97.         $this->addSql('ALTER TABLE contact_assetlifecycleperiod ADD CONSTRAINT FK_BBCA7A6FFDC24392 FOREIGN KEY (assetlifecycleperiod_id) REFERENCES asset_lifecycle_period (id) ON DELETE CASCADE');
  98.         $this->addSql('ALTER TABLE image ADD CONSTRAINT FK_C53D045F22757901 FOREIGN KEY (assetLifecyclePeriod_id) REFERENCES asset_lifecycle_period (id) ON DELETE SET NULL');
  99.         $this->addSql('ALTER TABLE image ADD CONSTRAINT FK_C53D045F5DA1941 FOREIGN KEY (asset_id) REFERENCES asset (id) ON DELETE SET NULL');
  100.         $this->addSql('ALTER TABLE job ADD CONSTRAINT FK_FBD8E0F822757901 FOREIGN KEY (assetLifecyclePeriod_id) REFERENCES asset_lifecycle_period (id) ON DELETE SET NULL');
  101.         $this->addSql('ALTER TABLE note ADD CONSTRAINT FK_CFBDFA1422757901 FOREIGN KEY (assetLifecyclePeriod_id) REFERENCES asset_lifecycle_period (id) ON DELETE SET NULL');
  102.         $this->addSql('ALTER TABLE note ADD CONSTRAINT FK_CFBDFA145DA1941 FOREIGN KEY (asset_id) REFERENCES asset (id) ON DELETE SET NULL');
  103.         $this->addSql('ALTER TABLE truck ADD CONSTRAINT FK_CDCCF30A464E68B FOREIGN KEY (attachment_id) REFERENCES truck_attachment (id) ON DELETE SET NULL');
  104.         $this->addSql('ALTER TABLE truck ADD CONSTRAINT FK_CDCCF30A45422674 FOREIGN KEY (charger_id) REFERENCES truck_charger (id) ON DELETE SET NULL');
  105.         $this->addSql('ALTER TABLE truck ADD CONSTRAINT FK_CDCCF30ABF396750 FOREIGN KEY (id) REFERENCES asset (id) ON DELETE CASCADE');
  106.         /**
  107.          * Add Indexes.
  108.          */
  109.         $this->addSql('CREATE INDEX IDX_FBD8E0F822757901 ON job (assetLifecyclePeriod_id)');
  110.         $this->addSql('CREATE INDEX IDX_CFBDFA1422757901 ON note (assetLifecyclePeriod_id)');
  111.         $this->addSql('CREATE INDEX IDX_CFBDFA145DA1941 ON note (asset_id)');
  112.         $this->addSql('CREATE INDEX IDX_CDCCF30A464E68B ON truck (attachment_id)');
  113.         $this->addSql('CREATE INDEX IDX_CDCCF30A45422674 ON truck (charger_id)');
  114.         $this->addSql('CREATE INDEX IDX_C53D045F22757901 ON image (assetLifecyclePeriod_id)');
  115.         $this->addSql('CREATE INDEX IDX_C53D045F5DA1941 ON image (asset_id)');
  116.     }
  117.     public function down(Schema $schema): void
  118.     {
  119.         // this down() migration is auto-generated, please modify it to your needs
  120.         $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql''Migration can only be executed safely on \'mysql\'.');
  121.         $this->addSql('ALTER TABLE asset_maintenance DROP FOREIGN KEY FK_A4FCA1E02FC0CB0F');
  122.         $this->addSql('ALTER TABLE asset_transaction DROP FOREIGN KEY FK_F94F5CD822757901');
  123.         $this->addSql('ALTER TABLE asset DROP FOREIGN KEY FK_2AF5A5C27A2E7D5');
  124.         $this->addSql('ALTER TABLE asset_maintenance DROP FOREIGN KEY FK_A4FCA1E022757901');
  125.         $this->addSql('ALTER TABLE image DROP FOREIGN KEY FK_C53D045F22757901');
  126.         $this->addSql('ALTER TABLE note DROP FOREIGN KEY FK_CFBDFA1422757901');
  127.         $this->addSql('ALTER TABLE job DROP FOREIGN KEY FK_FBD8E0F822757901');
  128.         $this->addSql('ALTER TABLE contact_assetlifecycleperiod DROP FOREIGN KEY FK_BBCA7A6FFDC24392');
  129.         $this->addSql('ALTER TABLE asset_lifecycle_period DROP FOREIGN KEY FK_7B1F27D45DA1941');
  130.         $this->addSql('ALTER TABLE truck_charger DROP FOREIGN KEY FK_8A594FD8BF396750');
  131.         $this->addSql('ALTER TABLE image DROP FOREIGN KEY FK_C53D045F5DA1941');
  132.         $this->addSql('ALTER TABLE note DROP FOREIGN KEY FK_CFBDFA145DA1941');
  133.         $this->addSql('ALTER TABLE truck_attachment DROP FOREIGN KEY FK_BC90E467BF396750');
  134.         $this->addSql('ALTER TABLE truck DROP FOREIGN KEY FK_CDCCF30ABF396750');
  135.         $this->addSql('ALTER TABLE truck DROP FOREIGN KEY FK_CDCCF30A45422674');
  136.         $this->addSql('ALTER TABLE asset_transaction DROP FOREIGN KEY FK_F94F5CD877E48174');
  137.         $this->addSql('ALTER TABLE truck DROP FOREIGN KEY FK_CDCCF30A464E68B');
  138.         $this->addSql('CREATE TABLE contact_truck (contact_id INT NOT NULL, truck_id INT NOT NULL, INDEX IDX_E0E6E305E7A1254A (contact_id), INDEX IDX_E0E6E305C6957CCE (truck_id), PRIMARY KEY(contact_id, truck_id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
  139.         $this->addSql('CREATE TABLE estimate_truck (id INT AUTO_INCREMENT NOT NULL, model_id INT DEFAULT NULL, estimate_id INT DEFAULT NULL, customer_id INT DEFAULT NULL, client_flt_num LONGTEXT DEFAULT NULL, contract_hire TINYINT(1) DEFAULT NULL, casual_hire TINYINT(1) DEFAULT NULL, hire_term INT DEFAULT NULL, hire_rate NUMERIC(8, 2) DEFAULT NULL, max_utilisation LONGTEXT DEFAULT NULL, purchased TINYINT(1) NOT NULL, purchased_date DATETIME DEFAULT NULL, hirable TINYINT(1) NOT NULL, sale_price NUMERIC(8, 2) DEFAULT NULL, hire_price_monthly NUMERIC(8, 2) DEFAULT NULL, maintenance_expenditure NUMERIC(8, 2) DEFAULT NULL, expected_utilisation LONGTEXT DEFAULT NULL, serial LONGTEXT DEFAULT NULL, maintenance_revenue NUMERIC(8, 2) DEFAULT NULL, deletedAt DATETIME DEFAULT NULL, last_service DATETIME DEFAULT NULL, last_loler DATETIME DEFAULT NULL, loler_interval INT DEFAULT NULL, service_interval INT DEFAULT NULL, warranty LONGTEXT DEFAULT NULL, yom INT DEFAULT NULL, maintenance_start_date DATETIME DEFAULT NULL, warranty_start_date DATETIME DEFAULT NULL, contract_hire_start_date DATETIME DEFAULT NULL, casual_hire_start_date DATETIME DEFAULT NULL, maintenance_duration INT DEFAULT NULL, purchase_maintenance TINYINT(1) DEFAULT NULL, mast LONGTEXT DEFAULT NULL, mastHeight INT DEFAULT NULL, hydraulics LONGTEXT DEFAULT NULL, attachments LONGTEXT DEFAULT NULL, weather_protection LONGTEXT DEFAULT NULL, tyre_type LONGTEXT DEFAULT NULL, notes LONGTEXT DEFAULT NULL, performance_indicator LONGTEXT DEFAULT NULL, attachment_model_num LONGTEXT DEFAULT NULL, fuel LONGTEXT DEFAULT NULL, siteAddress_id INT DEFAULT NULL, INDEX IDX_BA8DC2C59395C3F3 (customer_id), INDEX IDX_BA8DC2C57975B7E7 (model_id), INDEX IDX_BA8DC2C5917C7BCD (siteAddress_id), INDEX IDX_BA8DC2C585F23082 (estimate_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
  140.         $this->addSql('CREATE TABLE truck_contact (truck_id INT NOT NULL, contact_id INT NOT NULL, INDEX IDX_8BD3C96CC6957CCE (truck_id), INDEX IDX_8BD3C96CE7A1254A (contact_id), PRIMARY KEY(truck_id, contact_id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
  141.         $this->addSql('CREATE TABLE truck_maintenance (id INT AUTO_INCREMENT NOT NULL, truck_id INT DEFAULT NULL, detail VARCHAR(255) NOT NULL, date DATETIME DEFAULT NULL, createdAt DATETIME NOT NULL, updatedAt DATETIME NOT NULL, deletedAt DATETIME DEFAULT NULL, amount INT NOT NULL, truckTransaction_id INT DEFAULT NULL, UNIQUE INDEX UNIQ_A024A92BA854A8F7 (truckTransaction_id), INDEX IDX_A024A92BC6957CCE (truck_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
  142.         $this->addSql('CREATE TABLE truck_transaction (id INT AUTO_INCREMENT NOT NULL, truck_id INT DEFAULT NULL, date DATETIME NOT NULL, createdAt DATETIME NOT NULL, updatedAt DATETIME NOT NULL, deletedAt DATETIME DEFAULT NULL, amount INT NOT NULL, transaction_category INT NOT NULL, truckMaintenace_id INT DEFAULT NULL, UNIQUE INDEX UNIQ_FD975413EB24ABE5 (truckMaintenace_id), INDEX IDX_FD975413C6957CCE (truck_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
  143.         $this->addSql('ALTER TABLE contact_truck ADD CONSTRAINT FK_E0E6E305C6957CCE FOREIGN KEY (truck_id) REFERENCES truck (id) ON DELETE CASCADE');
  144.         $this->addSql('ALTER TABLE contact_truck ADD CONSTRAINT FK_E0E6E305E7A1254A FOREIGN KEY (contact_id) REFERENCES contact (id) ON DELETE CASCADE');
  145.         $this->addSql('ALTER TABLE estimate_truck ADD CONSTRAINT FK_BA8DC2C57975B7E7 FOREIGN KEY (model_id) REFERENCES truck_model (id)');
  146.         $this->addSql('ALTER TABLE estimate_truck ADD CONSTRAINT FK_BA8DC2C585F23082 FOREIGN KEY (estimate_id) REFERENCES estimate (id)');
  147.         $this->addSql('ALTER TABLE estimate_truck ADD CONSTRAINT FK_BA8DC2C5917C7BCD FOREIGN KEY (siteAddress_id) REFERENCES site_address (id)');
  148.         $this->addSql('ALTER TABLE estimate_truck ADD CONSTRAINT FK_BA8DC2C59395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id)');
  149.         $this->addSql('ALTER TABLE truck_contact ADD CONSTRAINT FK_8BD3C96CC6957CCE FOREIGN KEY (truck_id) REFERENCES truck (id) ON DELETE CASCADE');
  150.         $this->addSql('ALTER TABLE truck_contact ADD CONSTRAINT FK_8BD3C96CE7A1254A FOREIGN KEY (contact_id) REFERENCES contact (id) ON DELETE CASCADE');
  151.         $this->addSql('ALTER TABLE truck_maintenance ADD CONSTRAINT FK_A024A92BA854A8F7 FOREIGN KEY (truckTransaction_id) REFERENCES truck_transaction (id)');
  152.         $this->addSql('ALTER TABLE truck_maintenance ADD CONSTRAINT FK_A024A92BC6957CCE FOREIGN KEY (truck_id) REFERENCES truck (id)');
  153.         $this->addSql('ALTER TABLE truck_transaction ADD CONSTRAINT FK_FD975413C6957CCE FOREIGN KEY (truck_id) REFERENCES truck (id) ON DELETE SET NULL');
  154.         $this->addSql('ALTER TABLE truck_transaction ADD CONSTRAINT FK_FD975413EB24ABE5 FOREIGN KEY (truckMaintenace_id) REFERENCES truck_maintenance (id) ON DELETE SET NULL');
  155.         $this->addSql('DROP TABLE asset_transaction');
  156.         $this->addSql('DROP TABLE asset_lifecycle_period');
  157.         $this->addSql('DROP TABLE asset');
  158.         $this->addSql('DROP TABLE truck_charger');
  159.         $this->addSql('DROP TABLE asset_maintenance');
  160.         $this->addSql('DROP TABLE truck_attachment');
  161.         $this->addSql('DROP TABLE contact_assetlifecycleperiod');
  162.         $this->addSql('DROP INDEX IDX_C53D045F22757901 ON image');
  163.         $this->addSql('DROP INDEX IDX_C53D045F5DA1941 ON image');
  164.         $this->addSql('ALTER TABLE image ADD Truck_id INT DEFAULT NULL, DROP asset_id, DROP assetLifecyclePeriod_id');
  165.         $this->addSql('ALTER TABLE image ADD CONSTRAINT FK_C53D045F3FE31E98 FOREIGN KEY (Truck_id) REFERENCES truck (id) ON DELETE SET NULL');
  166.         $this->addSql('CREATE INDEX IDX_C53D045F3FE31E98 ON image (Truck_id)');
  167.         $this->addSql('DROP INDEX IDX_FBD8E0F822757901 ON job');
  168.         $this->addSql('ALTER TABLE job CHANGE assetlifecycleperiod_id truck_id INT DEFAULT NULL');
  169.         $this->addSql('ALTER TABLE job ADD CONSTRAINT FK_FBD8E0F8C6957CCE FOREIGN KEY (truck_id) REFERENCES truck (id)');
  170.         $this->addSql('CREATE INDEX IDX_FBD8E0F8C6957CCE ON job (truck_id)');
  171.         $this->addSql('DROP INDEX IDX_CFBDFA1422757901 ON note');
  172.         $this->addSql('DROP INDEX IDX_CFBDFA145DA1941 ON note');
  173.         $this->addSql('ALTER TABLE note ADD truck_id INT DEFAULT NULL, DROP asset_id, DROP assetLifecyclePeriod_id');
  174.         $this->addSql('ALTER TABLE note ADD CONSTRAINT FK_CFBDFA14C6957CCE FOREIGN KEY (truck_id) REFERENCES truck (id) ON DELETE SET NULL');
  175.         $this->addSql('CREATE INDEX IDX_CFBDFA14C6957CCE ON note (truck_id)');
  176.         $this->addSql('DROP INDEX IDX_CDCCF30A464E68B ON truck');
  177.         $this->addSql('DROP INDEX IDX_CDCCF30A45422674 ON truck');
  178.         $this->addSql('ALTER TABLE truck ADD customer_id INT DEFAULT NULL, ADD purchased TINYINT(1) NOT NULL, ADD hirable TINYINT(1) NOT NULL, ADD sale_price NUMERIC(8, 2) DEFAULT NULL, ADD hire_price_monthly NUMERIC(8, 2) DEFAULT NULL, ADD yom INT DEFAULT NULL, ADD serial LONGTEXT NOT NULL, ADD maintenance_revenue NUMERIC(8, 2) DEFAULT NULL, ADD maintenance_expenditure NUMERIC(8, 2) DEFAULT NULL, ADD contract_hire TINYINT(1) DEFAULT NULL, ADD casual_hire TINYINT(1) DEFAULT NULL, ADD expected_utilisation LONGTEXT DEFAULT NULL, ADD hire_term INT DEFAULT NULL, ADD hire_rate NUMERIC(8, 2) DEFAULT NULL, ADD max_utilisation LONGTEXT DEFAULT NULL, ADD client_flt_num LONGTEXT DEFAULT NULL, ADD deletedAt DATETIME DEFAULT NULL, ADD last_service DATETIME DEFAULT NULL, ADD last_loler DATETIME DEFAULT NULL, ADD purchased_date DATETIME DEFAULT NULL, ADD warranty LONGTEXT DEFAULT NULL, ADD siteAddress_id INT DEFAULT NULL, ADD maintenance_start_date DATETIME DEFAULT NULL, ADD warranty_start_date DATETIME DEFAULT NULL, ADD contract_hire_start_date DATETIME DEFAULT NULL, ADD casual_hire_start_date DATETIME DEFAULT NULL, ADD maintenance_duration INT DEFAULT NULL, ADD purchase_maintenance TINYINT(1) DEFAULT NULL, ADD attachments LONGTEXT DEFAULT NULL, ADD underwriter LONGTEXT DEFAULT NULL, ADD performance_indicator LONGTEXT DEFAULT NULL, ADD attachment_model_num LONGTEXT DEFAULT NULL, ADD location LONGTEXT DEFAULT NULL, ADD expiry DATETIME DEFAULT NULL, ADD uuid LONGTEXT DEFAULT NULL, ADD stock_value NUMERIC(8, 2) DEFAULT NULL, ADD retail_value NUMERIC(8, 2) DEFAULT NULL, ADD trade_value NUMERIC(8, 2) DEFAULT NULL, ADD created_at DATETIME DEFAULT NULL, ADD updated_at DATETIME DEFAULT NULL, ADD residual_value NUMERIC(8, 2) DEFAULT NULL, DROP attachment_id, DROP charger_id, DROP sideshift, DROP fork_dimensions, DROP battery_spec, CHANGE id id INT AUTO_INCREMENT NOT NULL');
  179.         $this->addSql('ALTER TABLE truck ADD CONSTRAINT FK_CDCCF30A917C7BCD FOREIGN KEY (siteAddress_id) REFERENCES site_address (id) ON DELETE SET NULL');
  180.         $this->addSql('ALTER TABLE truck ADD CONSTRAINT FK_CDCCF30A9395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id) ON DELETE SET NULL');
  181.         $this->addSql('CREATE INDEX IDX_CDCCF30A917C7BCD ON truck (siteAddress_id)');
  182.         $this->addSql('CREATE INDEX IDX_CDCCF30A9395C3F3 ON truck (customer_id)');
  183.     }
  184. }