From 77edc009e5c86684e2b19633296f15d113b8fd2f Mon Sep 17 00:00:00 2001
From: James Miller <james.ryland.miller@gmail.com>
Date: Tue, 6 Aug 2019 21:08:18 -0500
Subject: [PATCH] start work on inputting feats

---
 data/feats.sql   | 63 ++++++++++++++++++++++++++++++++++++++++++++++++
 gendb.sh         |  2 ++
 schema/feats.sql | 26 +++++++++++++++++---
 3 files changed, 87 insertions(+), 4 deletions(-)
 create mode 100644 data/feats.sql

diff --git a/data/feats.sql b/data/feats.sql
new file mode 100644
index 0000000..2ab746d
--- /dev/null
+++ b/data/feats.sql
@@ -0,0 +1,63 @@
+-- -*- mode:sql sql-product:sqlite -*-
+
+INSERT INTO featprereqs (featprereqs_id, feat_id, descr)
+VALUES
+  (1, NULL, 'Ancestry Level 1'),
+  (2, NULL, 'Ancestry Level 5'),
+  (3, NULL, 'Ancestry Level 9'),
+  (4, NULL, 'Ancestry Level 13'),
+  (5, 3, 'Feat: Rock Runner'),
+  (6, 2, 'Feat: Dwarven Weapon Familiarity');
+
+INSERT INTO feats (
+  feat_id,
+  sources_id,
+  sources_pages,
+  short_name,
+  descr)
+VALUES
+  (1, 1, '36', 'Dwarven Lore', 'TODO'),
+  (2, 1, '36', 'Dwarven Weapon Familiarity', 'TODO'),
+  (3, 1, '36', 'Rock Runner', 'TODO'),
+  (4, 1, '36', 'Stonecunning', 'TODO'),
+  (5, 1, '36', 'Unburdened Iron', 'TODO'),
+  (6, 1, '36', 'Vengeful Hatred', 'TODO'),
+  (7, 1, '36-37', 'Boulder Roll', 'TODO'),
+  (8, 1, '37', 'Dwarven Weapon Cunning', 'TODO'),
+  (9, 1, '37', 'Mountain''s Stoutness', 'TODO'),
+  (10, 1, '37', 'Stonewalker', 'TODO'),
+  (11, 1, '37', 'Dwarven Weapon Expertise', 'TODO');
+/* TODO continue all the ancestry, class, general and skill feats */
+
+INSERT INTO feats_featprereqs (feat_id, featprereqs_id)
+VALUES
+  (1,1), -- Dwarven Lore
+  (2,1), -- Dwarven Weapon Familiarity
+  (3,1), -- Rock Runner
+  (4,1), -- Stonecunning
+  (5,1), -- Unburdened Iron
+  (6,1), -- Vengeful Hatred
+  (7,2), -- Boulder Roll
+  (7,5), -- Boulder Roll
+  (8,2), -- Dwarven Weapon Cunning
+  (8,6), -- Dwarven Weapon Cunning
+  (9,3), -- Mountain's Stoutness
+  (10,3), -- Stonewalker
+  (11,4), -- Dwarven Weapon Expertise
+  (11,6); -- Dwarven Weapon Expertise
+
+INSERT INTO feats_traits (feat_id, trait_id)
+VALUES
+  -- Dwarf Ancestry Trait
+  (1, 79), -- Dwarven Lore
+  (2, 79), -- Dwarven Weapon Familiarity
+  (3, 79), -- Rock Runner
+  (4, 79), -- Stonecunning
+  (5, 79), -- Unburdened Iron
+  (6, 79), -- Vengeful Hatred
+  (7, 79), -- Boulder Roll
+  (8, 79), -- Dwarven Weapon Cunning
+  (9, 79), -- Mountain's Stoutness
+  (10, 79), -- Stonewalker
+  (11, 79); -- Dwarven Weapon Expertise
+
diff --git a/gendb.sh b/gendb.sh
index 2b32cc6..340a4d7 100755
--- a/gendb.sh
+++ b/gendb.sh
@@ -33,6 +33,8 @@ echo 'data/langs.sql'
 sqlite3 pf2.db < data/langs.sql
 echo 'data/traits.sql'
 sqlite3 pf2.db < data/traits.sql
+echo 'data/feats.sql'
+sqlite3 pf2.db < data/feats.sql
 echo 'data/ancestries.sql'
 sqlite3 pf2.db < data/ancestries.sql
 echo 'data/heritages.sql'
diff --git a/schema/feats.sql b/schema/feats.sql
index 8a099e1..432c41d 100644
--- a/schema/feats.sql
+++ b/schema/feats.sql
@@ -4,17 +4,35 @@
 
 /* Need to rethink how to model the various prerequisites */
 
+
 CREATE TABLE feats (
   feat_id INTEGER PRIMARY KEY,
+  sources_id INTEGER NOT NULL,
+  sources_pages TEXT NOT NULL,
   short_name TEXT NOT NULL UNIQUE,
-  prereq_feats INTEGER,
-  prereq_ability_scores INTEGER,
-  prereq_proficiency_ranks INTEGER,
+  descr TEXT NOT NULL,
   frequency TEXT,
   triggers TEXT,
-  reqs TEXT
+  reqs TEXT,
+  FOREIGN KEY (sources_id) REFERENCES sources(sources_id)
 );
 
+CREATE TABLE featprereqs (
+  featprereqs_id INTEGER PRIMARY KEY,
+  descr TEXT NOT NULL UNIQUE,
+  feat_id INTEGER, -- this can be NULL since not all prereqs are feats
+  FOREIGN KEY (feat_id) REFERENCES feats(feat_id)
+);
+
+CREATE TABLE feats_featprereqs (
+  id INTEGER PRIMARY KEY,
+  feat_id INTEGER NOT NULL,
+  featprereqs_id INTEGER NOT NULL,
+  FOREIGN KEY (feat_id) REFERENCES feats(feat_id),
+  FOREIGN KEY (featprereqs_id) REFERENCES featprereqs(featprereqs_id)
+);
+
+
 CREATE TABLE feats_traits (
   id INTEGER PRIMARY KEY,
   feat_id INTEGER NOT NULL,