DROP TABLE IF EXISTS `category`;
CREATE TABLE IF NOT EXISTS `category` (
`id` bigint(20) unsigned NOT NULL COMMENT 'Primary key',
  `title` varchar(255) NOT NULL COMMENT 'Category title',
  `parent` bigint(20) unsigned DEFAULT NULL COMMENT 'Parent category',
  PRIMARY KEY (`id`),
  INDEX `parent` (`parent`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 COMMENT='Categories' ;

DROP TABLE IF EXISTS `contacts`;
CREATE TABLE IF NOT EXISTS `contacts` (
`id` bigint(20) unsigned NOT NULL COMMENT 'Primary key',
  `own_contact` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Whether own contact',
  `gender` varchar(10) NOT NULL DEFAULT 'UNKNOWN' COMMENT 'Gender',
  `first_name` varchar(100) NOT NULL COMMENT 'First name',
  `family_name` varchar(100) NOT NULL COMMENT 'Family name',
  `company_name` varchar(255) DEFAULT NULL COMMENT 'Company name',
  `street` varchar(255) DEFAULT NULL COMMENT 'Street name',
  `house_number` smallint(5) unsigned DEFAULT NULL COMMENT 'House number',
  `city` varchar(100) DEFAULT NULL COMMENT 'City name',
  `zip_code` smallint(5) unsigned DEFAULT NULL COMMENT 'ZIP code',
  `country_code` char(2) DEFAULT NULL COMMENT 'Country code',
  `phone_number` varchar(100) DEFAULT NULL COMMENT 'Phone number',
  `cellphone_number` varchar(100) DEFAULT NULL COMMENT 'Cellphone number',
  `fax_number` varchar(100) DEFAULT NULL COMMENT 'Fax number',
  `email_address` varchar(100) DEFAULT NULL COMMENT 'Email addres',
  `birthday` date DEFAULT NULL COMMENT 'Birth day',
  `comment` tinytext NOT NULL COMMENT 'Comment',
  `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Entry created',
  `updated` timestamp NULL DEFAULT NULL COMMENT 'Entry updated',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 COMMENT='Contacts data' ;

DROP TABLE IF EXISTS `products`;
CREATE TABLE IF NOT EXISTS `products` (
`id` bigint(20) unsigned NOT NULL COMMENT 'Primary key',
  `category` bigint(20) unsigned DEFAULT NULL COMMENT 'Category id',
  `title` varchar(255) NOT NULL COMMENT 'Title of product',
  `price` decimal(20,2) unsigned NOT NULL COMMENT 'Product price',
  `available` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Whether product is available',
  PRIMARY KEY (`id`),
  INDEX `category` (`category`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 COMMENT='Products' ;

ALTER TABLE `category`
MODIFY `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary key';

ALTER TABLE `contacts`
MODIFY `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary key';

ALTER TABLE `products`
MODIFY `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary key';
