<?php

use PMD\Capital\Configuration\DataSource;
use PMD\Capital\Module\Tag\Model\Tag;
use PMD\Capital\Model\ObjectType;
use PMD\Capital\Module\Tag\Model\Type;
use PMD\Capital\Module\Tag\Model\Association;
use PMD\Capital\Module\Tag\Model\AssociationType;
$tagDataSource = DataSource::get('new');
echo "Create pagehub association type\n";
$query = "\n        INSERT INTO " . AssociationType::getTableName() . " (\n          qname,\n          caption,\n          datecreation\n        ) VALUES (\n          'pagehub',\n          'Page Hub',\n          NOW()\n        );\n";
$tagDataSource->query($query);
<?php

use PMD\Capital\Configuration\DataSource;
use PMD\Capital\Module\Tag\Model\Tag;
use PMD\Capital\Model\ObjectType;
use PMD\Capital\Module\Tag\Model\Type;
use PMD\Capital\Module\Tag\Model\Association;
use PMD\Capital\Module\Tag\Model\AssociationType;
$tagDataSource = DataSource::get('new');
echo "Create default association type\n";
$query = "\n        INSERT INTO " . AssociationType::getTableName() . " (\n          qname,\n          caption,\n          datecreation\n        ) VALUES (\n          'default',\n          'Association par défaut',\n          NOW()\n        );\n";
$tagDataSource->query($query);
echo "Create related object association type\n";
$query = "\n        INSERT INTO " . AssociationType::getTableName() . " (\n          qname,\n          caption,\n          datecreation\n        ) VALUES (\n          'related',\n          'Relation de contenu',\n          NOW()\n        );\n";
$tagDataSource->query($query);
echo "Create Default Object type\n";
$query = "\n    INSERT INTO pmd_objecttype (\n      qname,\n      caption,\n      datecreation\n    ) VALUES (\n      'default',\n      'Type par défaut',\n      NOW()\n    )\n";
$tagDataSource->query($query);
$parentId = $tagDataSource->getLastInsertId();
echo "Create Tag Object type\n";
$query = "\n    INSERT INTO pmd_objecttype (\n      parent_id,\n      qname,\n      caption,\n      datecreation\n    ) VALUES (\n      " . $parentId . ",\n      'tag',\n      'Tag',\n      NOW()\n    )\n";
$tagDataSource->query($query);
echo "Construction de l'arbre des types\n";
$tree = new ObjectType();
$tree->setSource($tagDataSource);
$tree->buildTree();
echo "Create Default tag type\n";
$query = "\n  INSERT INTO " . Type::getTableName() . " (\n    qname,\n    caption,\n    datecreation,\n    data\n  ) VALUES (\n    'default',\n    'Type par défaut',\n    NOW(),\n    ''\n  )\n";
$tagDataSource->query($query);
$tagTypeTree = new Type($tagDataSource);
$rootTypeNode = $tagTypeTree->getRoot();
<?php

use PMD\Capital\Configuration\DataSource;
use PMD\Capital\Module\Tag\Model\Tag;
use PMD\Capital\Model\ObjectType;
use PMD\Capital\Module\Tag\Model\Type;
use PMD\Capital\Module\Tag\Model\Association;
use PMD\Capital\Module\Tag\Model\AssociationType;
$tagDataSource = DataSource::get('new');
$tagDataSource->query('DROP TABLE ' . Tag::getTableName() . '');
$tagDataSource->query('DROP TABLE ' . ObjectType::getTableName() . '');
$tagDataSource->query('DROP TABLE ' . Type::getTableName() . '');
$tagDataSource->query('DROP TABLE ' . Association::getTableName() . '');
$tagDataSource->query('DROP TABLE ' . AssociationType::getTableName() . '');
echo "Create pmd_tag table\n";
$query = "\n        CREATE TABLE `" . Tag::getTableName() . "` (\n        `id` INT(32) UNSIGNED NOT NULL AUTO_INCREMENT,\n        `parent_id` INT(32),\n        `mastertag_id` INT(32),\n        `type_id` INT(32) UNSIGNED,\n        `caption` VARCHAR(100) NOT NULL,\n        `leftbound` INT(32) UNSIGNED,\n        `rightbound` INT(32) UNSIGNED,\n        `datecreation` DATETIME,\n        `datemodification` DATETIME,\n        `slug` VARCHAR(100) NOT NULL,\n        `data` TEXT,\n        PRIMARY KEY (`id`),\n        INDEX `pmdtag_parentid` (`parent_id`),\n        INDEX `pmdtag_mastertagid` (`mastertag_id`),\n        INDEX `pmdtag_bounds` (`leftbound`, `rightbound`),\n        INDEX `pmdtag_keyword` (`caption`),\n        INDEX `pmdtag_slug` (`slug`)\n    )\n    COLLATE='utf8_general_ci'\n    ENGINE=InnoDB\n;\n";
$tagDataSource->query($query);
echo "Create pmd_tagtype table\n";
$query = "\n        CREATE TABLE `" . Type::getTableName() . "` (\n        `id` INT(32) UNSIGNED NOT NULL AUTO_INCREMENT,\n        `parent_id` INT(32),\n        `caption` VARCHAR(100) NOT NULL,\n        `qname` VARCHAR(100) NOT NULL,\n        `leftbound` INT(32) UNSIGNED,\n        `rightbound` INT(32) UNSIGNED,\n        `datecreation` DATETIME,\n        `datemodification` DATETIME,\n        `data` TEXT,\n        PRIMARY KEY (`id`),\n        INDEX `pmdtagtype_parentid` (`parent_id`),\n        INDEX `pmdtagtype_qname` (`qname`),\n        INDEX `pmdtagtype_bounds` (`leftbound`, `rightbound`),\n        INDEX `pmdtagtype_caption` (`caption`)\n    )\n    COLLATE='utf8_general_ci'\n    ENGINE=InnoDB\n;\n";
$tagDataSource->query($query);
echo "Create pmd_tagassociation table\n";
$query = "\n        CREATE TABLE `" . Association::getTableName() . "` (\n        `id` INT(32) UNSIGNED NOT NULL AUTO_INCREMENT,\n        `tag_id` INT(32) UNSIGNED NOT NULL,\n        `object_id` INT(32) UNSIGNED NOT NULL,\n        `objecttype_id` INT(32) UNSIGNED NOT NULL,\n        `type_id` INT(32) UNSIGNED NOT NULL,\n        `datecreation` DATETIME,\n        `datemodification` DATETIME,\n        PRIMARY KEY (`id`),\n        INDEX `pmdtagassociation_tagid` (`tag_id`),\n        INDEX `pmdtagassociation_objectid` (`object_id`),\n        INDEX `pmdtagassociation_objecttypeid` (`objecttype_id`)\n    )\n    COLLATE='utf8_general_ci'\n    ENGINE=InnoDB\n;\n";
$tagDataSource->query($query);
echo "Create pmd_objecttype table\n";
$query = "\n        CREATE TABLE `" . ObjectType::getTableName() . "` (\n        `id` INT(32) UNSIGNED NOT NULL AUTO_INCREMENT,\n        `parent_id` INT(32),\n        `qname` VARCHAR(100) NOT NULL,\n        `caption` VARCHAR(100) NOT NULL,\n        `leftbound` INT(32) UNSIGNED,\n        `rightbound` INT(32) UNSIGNED,\n        `datecreation` DATETIME,\n        `datemodification` DATETIME,\n        `data` TEXT,\n        PRIMARY KEY (`id`),\n        INDEX `pmdobjecttype_parentid` (`parent_id`),\n        INDEX `pmdobjecttype_qname` (`qname`),\n        INDEX `pmdobjecttype_caption` (`caption`),\n        INDEX `pmdobjecttype_bounds` (`leftbound`, `rightbound`)\n    )\n    COLLATE='utf8_general_ci'\n    ENGINE=InnoDB\n;\n";
$tagDataSource->query($query);
echo "Create pmd_tagassociationtype table\n";
$query = "\n        CREATE TABLE `" . AssociationType::getTableName() . "` (\n        `id` INT(32) UNSIGNED NOT NULL AUTO_INCREMENT,\n        `qname` VARCHAR(100) NOT NULL,\n        `caption` VARCHAR(100) NOT NULL,\n        `datecreation` DATETIME,\n        `datemodification` DATETIME,\n        PRIMARY KEY (`id`),\n        INDEX `pmdassociationtype_qname` (`qname`),\n        INDEX `pmdassociationtype_caption` (`caption`)\n    )\n    COLLATE='utf8_general_ci'\n    ENGINE=InnoDB\n;\n";
$tagDataSource->query($query);