public function delete()
{
$this->db->delete("classes", $this->db->quoteInto("id = ?", $this->model->getId()));
$objectTable = "object_query_" . $this->model->getId();
$objectDatastoreTable = "object_store_" . $this->model->getId();
$objectDatastoreTableRelation = "object_relations_" . $this->model->getId();
$objectMetadataTable = "object_metadata_" . $this->model->getId();
$this->db->query('DROP TABLE `' . $objectTable . '`');
$this->db->query('DROP TABLE `' . $objectDatastoreTable . '`');
$this->db->query('DROP TABLE `' . $objectDatastoreTableRelation . '`');
$this->db->query('DROP TABLE IF EXISTS `' . $objectMetadataTable . '`');
$this->db->query('DROP VIEW `object_' . $this->model->getId() . '`');
// delete data
$this->db->delete("objects", $this->db->quoteInto("o_classId = ?", $this->model->getId()));
// remove fieldcollection tables
$allTables = $this->db->fetchAll("SHOW TABLES LIKE 'object_collection_%_" . $this->model->getId() . "'");
foreach ($allTables as $table) {
$collectionTable = current($table);
$this->db->query("DROP TABLE IF EXISTS `" . $collectionTable . "`");
}
// remove localized fields tables and views
$allViews = $this->db->fetchAll("SHOW TABLES LIKE 'object_localized_" . $this->model->getId() . "_%'");
foreach ($allViews as $view) {
$localizedView = current($view);
$this->db->query("DROP VIEW IF EXISTS `" . $localizedView . "`");
}
$allTables = $this->db->fetchAll("SHOW TABLES LIKE 'object_localized_query_" . $this->model->getId() . "_%'");
foreach ($allTables as $table) {
$queryTable = current($table);
$this->db->query("DROP TABLE IF EXISTS `" . $queryTable . "`");
}
$this->db->query("DROP TABLE IF EXISTS object_localized_data_" . $this->model->getId());
// objectbrick tables
$allTables = $this->db->fetchAll("SHOW TABLES LIKE 'object_brick_%_" . $this->model->getId() . "'");
foreach ($allTables as $table) {
$brickTable = current($table);
$this->db->query("DROP TABLE `" . $brickTable . "`");
}
}