drop table if exists android_metadata;
drop table if exists arena_quests;
drop table if exists arena_rewards;
drop table if exists armor;
drop table if exists charms;
drop table if exists combining;
drop table if exists components;
drop table if exists decorations;
drop table if exists felyne_skills;
drop table if exists food_combos;
drop table if exists gathering;
drop table if exists hunting_fleet;
drop table if exists hunting_rewards;
drop table if exists horn_melodies;
drop table if exists ingredients;
drop table if exists items;
drop table if exists item_to_skill_tree;
drop table if exists locations;
drop table if exists moga_woods_rewards;
drop table if exists monster_ailment;
drop table if exists monster_damage;
drop table if exists monster_to_arena;
drop table if exists monster_to_quest;
drop table if exists monster_weakness;
drop table if exists monsters;
drop table if exists planting;
drop table if exists quest_rewards;
drop table if exists quests;
drop table if exists skill_trees;
drop table if exists skills;
drop table if exists trading;
drop table if exists weapons;
drop table if exists wishlist;
drop table if exists wishlist_component;
drop table if exists wishlist_data;
drop table if exists wyporium;

CREATE TABLE IF NOT EXISTS `wishlist` (
  `_id` integer primary key autoincrement,
  `name` text NOT NULL
);

INSERT INTO `wishlist` (`_id`, `name`) VALUES (1, 'My Wishlist');

CREATE TABLE IF NOT EXISTS `wishlist_data` (
  `_id` integer primary key autoincrement,
  `wishlist_id` integer NOT NULL,
  `item_id` integer NOT NULL,
  `quantity` integer NOT NULL,
  `satisfied` integer DEFAULT 0,
  `path` text NOT NULL,
  foreign key (`wishlist_id`) references wishlist('_id'),
  foreign key (`item_id`) references items('_id')
);

CREATE TABLE IF NOT EXISTS `wishlist_component` (
  `_id` integer primary key autoincrement,
  `wishlist_id` integer NOT NULL,
  `component_id` integer NOT NULL,
  `quantity` integer NOT NULL,
  `notes` integer DEFAULT 0,
  foreign key (`wishlist_id`) references wishlist('_id'),
  foreign key (`component_id`) references items('_id')
);

CREATE TABLE IF NOT EXISTS "android_metadata" ("locale" TEXT DEFAULT 'en_US');

CREATE TABLE IF NOT EXISTS `arena_quests` (
  `_id` integer primary key autoincrement,
  `name` text NOT NULL,
  `goal` text NOT NULL,
  `location_id` integer NOT NULL,
  `reward` integer NOT NULL,
  `num_participants` integer NOT NULL,
  `time_s` text NOT NULL,
  `time_a` text NOT NULL,
  `time_b` text NOT NULL,
  foreign key(`location_id`) references locations('_id')
);

CREATE TABLE IF NOT EXISTS `arena_rewards` (
  `_id` integer primary key autoincrement,
  `arena_id` integer NOT NULL,
  `item_id` integer NOT NULL,
  `percentage` integer NOT NULL,
  `stack_size` integer NOT NULL,
  foreign key('arena_id') references arena_quests('_id'),
  foreign key('item_id') references items('_id')
);

CREATE TABLE IF NOT EXISTS `armor` (
  `_id` integer primary key autoincrement,
  `slot` text NOT NULL,
  `defense` integer NOT NULL,
  `max_defense` integer,
  `fire_res` integer NOT NULL,
  `thunder_res` integer NOT NULL,
  `dragon_res` integer NOT NULL,
  `water_res` integer NOT NULL,
  `ice_res` integer NOT NULL,
  `gender` text NOT NULL,
  `hunter_type` text NOT NULL,
  `num_slots` integer
);

CREATE TABLE IF NOT EXISTS `charms` (
  `_id` integer primary key autoincrement,
  `num_slots` integer NOT NULL,
  `skill_tree_1_id` integer NOT NULL,
  `skill_tree_1_amount` integer NOT NULL,
  `skill_tree_2_id` integer DEFAULT NULL,
  `skill_tree_2_amount` integer DEFAULT NULL,
  foreign key('skill_tree_1_id') references skill_trees('_id'),
  foreign key('skill_tree_2_id') references skill_trees('_id')
);

CREATE TABLE IF NOT EXISTS `combining` (
  `_id` integer primary key autoincrement,
  'created_item_id' integer NOT NULL,
  `item_1_id` integer NOT NULL,
  `item_2_id` integer NOT NULL,
  `amount_made_min` integer NOT NULL,
  `amount_made_max` integer NOT NULL,
  `percentage` integer NOT NULL,
  foreign key(`created_item_id`) references items('_id'),
  foreign key(`item_1_id`) references items('_id'),
  foreign key(`item_2_id`) references items('_id')
);

CREATE TABLE IF NOT EXISTS `components` (
  `_id` integer primary key autoincrement,
  'created_item_id' integer NOT NULL,
  'component_item_id' integer NOT NULL,
  `quantity` integer NOT NULL,
  `type` text DEFAULT NULL,
  foreign key(`created_item_id`) references items('_id'),
  foreign key(`component_item_id`) references items('_id')
);

CREATE TABLE IF NOT EXISTS `decorations` (
  `_id` integer primary key autoincrement,
  `num_slots` integer NOT NULL
);

CREATE TABLE IF NOT EXISTS 'felyne_skills' (
  '_id' integer primary key autoincrement,
  'skill_name' varchar(50) NOT NULL,
  'description' varchar(255) NOT NULL
);

CREATE TABLE IF NOT EXISTS 'food_combos' (
  '_id' integer primary key autoincrement,
  'ingredient1' varchar(30) NOT NULL,
  'ingredient2' varchar(30) NOT NULL,
  'cooked' varchar(30) NOT NULL,
  'bonus' varchar(30) NOT NULL,
  'skill1_id' integer,
  'skill2_id' integer,
  'skill3_id' integer,
  foreign key('skill1_id') references felyne_skills('_id'),
  foreign key('skill2_id') references felyne_skills('_id'),
  foreign key('skill3_id') references felyne_skills('_id')
);
  

CREATE TABLE IF NOT EXISTS `gathering` (
  `_id` integer primary key autoincrement,
  'item_id' integer NOT NULL,
  'location_id' integer NOT NULL,
  `area` char(30) NOT NULL,
  `site` varchar(30) NOT NULL,
  `rank` text NOT NULL,
  'quantity' integer DEFAULT NULL,
  'percentage' integer DEFAULT NULL,
  foreign key(`item_id`) references items('_id'),
  foreign key(`location_id`) references locations('_id')
);

CREATE TABLE IF NOT EXISTS `hunting_fleet` (
  `_id` integer primary key autoincrement,
  `type` text NOT NULL,
  `level` integer NOT NULL,
  `location` text NOT NULL,
  'item_id' integer NOT NULL,
  `amount` integer NOT NULL,
  `percentage` integer NOT NULL,
  `rank` text NOT NULL,
  foreign key(`item_id`) references items('_id')
);

CREATE TABLE IF NOT EXISTS `hunting_rewards` (
  `_id` integer primary key autoincrement,
  'item_id' integer NOT NULL,
  `condition` text NOT NULL,
  'monster_id' integer NOT NULL,
  `rank` text NOT NULL,
  `stack_size` integer NOT NULL,
  `percentage` int(10) NOT NULL,
  foreign key(`item_id`) references items('_id'),
  foreign key(`monster_id`) references monsters('_id')
);

CREATE TABLE IF NOT EXISTS 'horn_melodies' (
  '_id' integer primary key autoincrement,
  'notes' varchar(3) NOT NULL,
  'song' varchar(5) NOT NULL,
  'effect1' varchar(55) NOT NULL,
  'effect2' varchar(55) NOT NULL,
  'duration' varchar(10) NOT NULL,
  'extension' varchar(10) NOT NULL
);

CREATE TABLE IF NOT EXISTS 'ingredients' (
  '_id' integer primary key autoincrement,
  'ingredient' varchar(30) NOT NULL,
  'name' varchar(30) NOT NULL,
  'level' integer,
  'quest_id' integer,
  foreign key('quest_id') references quests('_id')
);

CREATE TABLE IF NOT EXISTS `items` (
  `_id` integer primary key autoincrement,
  `name` varchar(255) NOT NULL,
  `jpn_name` text DEFAULT NULL,
  `type` text NOT NULL,
  `sub_type` text NOT NULL,
  `rarity` integer NOT NULL DEFAULT '0',
  `carry_capacity` integer NOT NULL DEFAULT '0',
  `buy` mediumint(8) DEFAULT NULL,
  `sell` integer DEFAULT NULL,
  `description` varchar(255) DEFAULT NULL,
  `icon_name` varchar(255) DEFAULT NULL,
  `armor_dupe_name_fix` text NOT NULL DEFAULT ''
);

CREATE TABLE IF NOT EXISTS `item_to_skill_tree` (
  `_id` integer primary key autoincrement,
  'item_id' integer NOT NULL,
  `skill_tree_id` integer NOT NULL,
  `point_value` integer NOT NULL,
  foreign key(`item_id`) references items('_id'),
  foreign key('skill_tree_id') references skill_trees('_id')
);

CREATE TABLE IF NOT EXISTS `locations` (
  `_id` integer primary key autoincrement,
  `name` varchar(255) UNIQUE NOT NULL,
  `map` varchar(255) NOT NULL,
  `jpn_name` text
);

CREATE TABLE IF NOT EXISTS `moga_woods_rewards` (
  `_id` integer primary key autoincrement,
  `monster_id` integer NOT NULL,
  `time` text NOT NULL,
  `item_id` integer NOT NULL,
  `commodity_stars` integer DEFAULT NULL,
  `kill_percentage` integer NOT NULL,
  `capture_percentage` integer DEFAULT NULL,
  foreign key('monster_id') references monsters('_id'),
  foreign key('item_id') references items('_id')
);

CREATE TABLE IF NOT EXISTS `monsters` (
  `_id` integer primary key autoincrement,
  `class` text NOT NULL,
  `name` varchar(50) NOT NULL,
  `trait` text NOT NULL,
  `icon_name` varchar(255) DEFAULT NULL,
  `sort_name` text NOT NULL DEFAULT ''
);

CREATE TABLE IF NOT EXISTS 'monster_ailment' (
  '_id' integer primary key autoincrement,
  'monster_id' integer NOT NULL,
  'ailment' varchar(30) NOT NULL,
  foreign key('monster_id') references monsters('_id')
);

CREATE TABLE IF NOT EXISTS `monster_damage` (
  `_id` integer primary key autoincrement,
  'monster_id' integer NOT NULL,
  `body_part` text NOT NULL,
  `cut`  integer DEFAULT NULL,
  `impact`  integer DEFAULT NULL,
  `shot`  integer DEFAULT NULL,
  `fire`  integer DEFAULT NULL,
  `water`  integer DEFAULT NULL,
  `ice`  integer DEFAULT NULL,
  `thunder`  integer DEFAULT NULL,
  `dragon`  integer DEFAULT NULL,
  `ko`  integer DEFAULT NULL,
  foreign key('monster_id') references monsters('_id')
);

CREATE TABLE IF NOT EXISTS `monster_to_arena` (
  '_id' integer primary key autoincrement,
  `monster_id` integer NOT NULL,
  `arena_id` integer NOT NULL,
  foreign key(`monster_id`) references monsters('_id'),
  foreign key(`arena_id`) references arena_quests('_id')
);

CREATE TABLE IF NOT EXISTS `monster_to_quest` (
  '_id' integer primary key autoincrement,
  `monster_id` integer NOT NULL,
  `quest_id` integer NOT NULL,
  'unstable' text,
  foreign key(`monster_id`) references monsters('_id'),
  foreign key(`quest_id`) references quests('_id')
);

CREATE TABLE IF NOT EXISTS 'monster_weakness' (
  '_id' integer primary key autoincrement,
  'monster_id' integer NOT NULL,
  'state' varchar(30) NOT NULL,
  'fire' integer NOT NULL,
  'water' integer NOT NULL,
  'thunder' integer NOT NULL,
  'ice' integer NOT NULL,
  'dragon' integer NOT NULL,
  'poison' integer NOT NULL,
  'paralysis' integer NOT NULL,
  'sleep' integer NOT NULL,
  'pitfall_trap' integer NOT NULL,
  'shock_trap' integer NOT NULL,
  'flash_bomb' integer NOT NULL,
  'sonic_bomb' integer NOT NULL,
  'dung_bomb' integer NOT NULL,
  'meat' integer NOT NULL,
  foreign key('monster_id') references monsters('_id')
);

CREATE TABLE IF NOT EXISTS `planting` (
  `_id` integer primary key autoincrement,
  `planted_item_id` integer NOT NULL,
  `received_item_id` integer NOT NULL,
  `stack_size` integer NOT NULL,
  `percentage` integer NOT NULL,
  `pool_type` text NOT NULL,
  foreign key('planted_item_id') references items('_id'),
  foreign key('received_item_id') references items('_id')
);

CREATE TABLE IF NOT EXISTS `quest_rewards` (
  `_id` integer primary key autoincrement,
  `quest_id` integer NOT NULL,
  `item_id` integer NOT NULL,
  `reward_slot` text NOT NULL,
  `percentage` integer NOT NULL,
  `stack_size` integer NOT NULL,
  foreign key('quest_id') references quests('_id'),
  foreign key('item_id') references items('_id')
);

CREATE TABLE IF NOT EXISTS `skills` (
  `_id` integer primary key autoincrement,
  `skill_tree_id` integer NOT NULL,
  `required_skill_tree_points` integer NOT NULL,
  `name` varchar(255) NOT NULL,
  `jpn_name` text NOT NULL,
  `description` varchar(255) NOT NULL,
  foreign key(`skill_tree_id`) references skill_tree('_id')

);

CREATE TABLE IF NOT EXISTS `skill_trees` (
  `_id` integer primary key autoincrement,
  `name` varchar(255) NOT NULL,
  `jpn_name` text NOT NULL
);

CREATE TABLE IF NOT EXISTS `trading` (
  `_id` integer primary key autoincrement,
  `location_id` integer NOT NULL,
  `offer_item_id` integer NOT NULL,
  `receive_item_id` integer NOT NULL,
  `percentage` integer NOT NULL,
  foreign key (`location_id`) references locations('_id'),
  foreign key (`offer_item_id`) references items('_id'),
  foreign key (`receive_item_id`) references items('_id')
);

CREATE TABLE IF NOT EXISTS `weapons` (
  `_id` integer primary key autoincrement,
  'parent_id' integer DEFAULT NULL,
  `wtype` text NOT NULL,
  `creation_cost` mediumint(8) DEFAULT NULL,
  `upgrade_cost` mediumint(8) DEFAULT NULL,
  `attack` integer NOT NULL,
  `max_attack` integer DEFAULT NULL,
  `element` varchar(50) DEFAULT NULL,
  `element_attack` integer DEFAULT NULL,
  `element_2` varchar(50) DEFAULT NULL,
  `element_2_attack` integer DEFAULT NULL,
  `awaken` varchar(50) DEFAULT NULL,
  `awaken_attack` integer DEFAULT NULL,
  `defense` integer DEFAULT NULL,
  `sharpness` varchar(50) DEFAULT NULL,
  `affinity` varchar(20) NOT NULL,
  `horn_notes` char(3) DEFAULT NULL,
  `shelling_type` varchar(20) DEFAULT NULL,
  `phial` varchar(20) DEFAULT NULL,
  `charges` text DEFAULT NULL,
  `coatings` text DEFAULT NULL,
  `recoil` varchar(10) DEFAULT NULL,
  `reload_speed` varchar(20) DEFAULT NULL,
  `rapid_fire` text DEFAULT NULL,
  `deviation` varchar(20) DEFAULT NULL,
  `ammo` text DEFAULT NULL,
  'sharpness_file' text DEFAULT NULL,
  `num_slots` integer NOT NULL,
  'tree_depth' integer NOT NULL,
  'final' integer
);

CREATE TABLE IF NOT EXISTS `quests` (
  `_id` integer primary key autoincrement,
  `name` varchar(255) NOT NULL,
  `goal` varchar(255) NOT NULL,
  `hub` text NOT NULL,
  `type` text NOT NULL,
  `stars` integer NOT NULL,
  `location_id` integer NOT NULL,
  `time_limit` integer NOT NULL,
  `fee` integer NOT NULL,
  `reward` mediumint(8) NOT NULL,
  `hrp` mediumint(8) DEFAULT NULL,
  `sub_goal` varchar(255) DEFAULT NULL,
  `sub_reward` integer DEFAULT NULL,
  `sub_hrp` integer DEFAULT NULL,
  foreign key('location_id') references locations('_id')
);

CREATE TABLE IF NOT EXISTS 'monster_habitat' (
  '_id' integer primary key autoincrement,
  'monster_id' integer NOT NULL,
  'location_id' integer NOT NULL,
  'start_area' integer DEFAULT NULL,
  'move_area' varchar(20) DEFAULT NULL,
  'rest_area' integer DEFAULT NULL,
  foreign key('location_id') references locations('_id'),
  foreign key('monster_id') references monsters('_id')
);

CREATE TABLE IF NOT EXISTS 'monster_status' (
  '_id' integer primary key autoincrement,
  'monster_id' integer NOT NULL,
  'status' varchar(25) NOT NULL,
  'initial' integer DEFAULT NULL,
  'increase' integer DEFAULT NULL,
  'max' integer DEFAULT NULL,
  'duration' integer DEFAULT NULL,
  'damage' integer DEFAULT NULL,
  foreign key('monster_id') references monsters('id')
);

CREATE TABLE IF NOT EXISTS 'wyporium' (
  '_id' integer primary key autoincrement,
  'item_in_id' integer NOT NULL,
  'item_out_id' integer NOT NULL,
  'unlock_quest_id' integer,
  foreign key('item_in_id') references items('_id'),
  foreign key('item_out_id') references items('_id')
);

.mode tabs

.import data/arena_quests.tsv arena_quests
.import data/arena_rewards.tsv arena_rewards
.import data/armor.tsv armor
.import data/combining.tsv combining
.import data/components.tsv components
.import data/decorations.tsv decorations
.import data/felyne_skills.tsv felyne_skills
.import data/food_combos.tsv food_combos
.import data/gathering.tsv gathering
.import data/hunting_rewards.tsv hunting_rewards
.import data/horn_melodies.tsv horn_melodies
.import data/ingredients.tsv ingredients
.import data/item_to_skill_tree.tsv item_to_skill_tree
.import data/items.tsv items
.import data/locations.tsv locations
.import data/monster_damage.tsv monster_damage
.import data/monster_habitat.tsv monster_habitat
.import data/monster_status.tsv monster_status
.import data/monster_to_quest.tsv monster_to_quest
.import data/monsters.tsv monsters
.import data/monster_ailment.tsv monster_ailment
.import data/monster_weakness.tsv monster_weakness
.import data/quest_rewards.tsv quest_rewards
.import data/quests.tsv quests
.import data/skill_trees.tsv skill_trees
.import data/skills.tsv skills
.import data/trading.tsv trading
.import data/weapons.tsv weapons
.import data/wyporium.tsv wyporium