query("CREATE TABLE IF NOT EXISTS {products} ( `id` int(9) NOT NULL auto_increment, `name` TEXT NOT NULL, `cost` DECIMAL(10,2) default 0, `description` varchar(1024), `postage_band_id` int(9) default 1, PRIMARY KEY (`id`)) DEFAULT CHARSET=utf8;"); $db->query("CREATE TABLE IF NOT EXISTS {product_overrides} ( `id` int(9) NOT NULL auto_increment, `item_id` int(9) NOT NULL, `none` BOOLEAN default false, PRIMARY KEY (`id`)) DEFAULT CHARSET=utf8;"); $db->query("CREATE TABLE IF NOT EXISTS {item_products} ( `id` int(9) NOT NULL auto_increment, `product_override_id` int(9) NOT NULL, `product_id` int(9) NOT NULL, `include` BOOLEAN default false, `cost` DECIMAL(10,2) default -1, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); $db->query("CREATE TABLE IF NOT EXISTS {postage_bands} ( `id` int(9) NOT NULL auto_increment, `name` TEXT NOT NULL, `flat_rate` DECIMAL(10,2) default 0, `per_item` DECIMAL(10,2) default 0, PRIMARY KEY (`id`)) DEFAULT CHARSET=utf8;"); $postage_band = ORM::factory("postage_band"); $postage_band->name = "No Postage"; $postage_band->save(); $product = ORM::factory("product"); $product->name = "4x6"; $product->cost = 5; $product->description = "4\"x6\" print"; $product->postage_band_id = 1; $product->save(); $product = ORM::factory("product"); $product->name = "8x10"; $product->cost = 25; $product->description = "8\"x10\" print"; $product->postage_band_id = 1; $product->save(); $product = ORM::factory("product"); $product->name = "8x12"; $product->cost = 30; $product->description = "8\"x12\" print"; $product->postage_band_id = 1; $product->save(); module::set_version("basket", 2); } static function upgrade($version) { $db = Database::instance(); if ($version == 1) { // fix for allowing decimel place in money $db->query("ALTER TABLE {products} CHANGE COLUMN `cost` `cost` DECIMAL(10,2) default 0;"); $db->query("ALTER TABLE {item_products} CHANGE COLUMN `cost` `cost` DECIMAL(10,2) default -1;"); // postage bands $db->query("ALTER TABLE {products} ADD COLUMN `postage_band_id` int(9) default 1"); $db->query("CREATE TABLE IF NOT EXISTS {postage_bands} ( `id` int(9) NOT NULL auto_increment, `name` TEXT NOT NULL, `flat_rate` DECIMAL(10,2) default 0, `per_item` DECIMAL(10,2) default 0, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); $postage_band = ORM::factory("postage_band"); $postage_band->name = "No Postage"; $postage_band->save(); module::set_version("basket", $version = 2); } } static function uninstall(){ $db = Database::instance(); $db->query("DROP TABLE IF EXISTS {products}"); $db->query("DROP TABLE IF EXISTS {product_overrides}"); $db->query("DROP TABLE IF EXISTS {item_products}"); $db->query("DROP TABLE IF EXISTS {postage_bands}"); } }