investment_schema.sql 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. PRAGMA application_id = 1397902921;
  2. PRAGMA user_version = 3;
  3. CREATE TABLE account (
  4. id INTEGER PRIMARY KEY CHECK (id = 1),
  5. soid INTEGER NOT NULL,
  6. profile_setup_completed INTEGER NOT NULL CHECK (profile_setup_completed IN (0, 1))
  7. ) STRICT;
  8. CREATE TABLE characters (
  9. slot INTEGER PRIMARY KEY CHECK (slot BETWEEN 0 AND 2),
  10. soid INTEGER NOT NULL UNIQUE,
  11. race INTEGER NOT NULL CHECK (race BETWEEN 0 AND 2),
  12. gender INTEGER NOT NULL CHECK (gender BETWEEN 0 AND 1),
  13. class INTEGER NOT NULL CHECK (class BETWEEN 0 AND 2),
  14. level INTEGER NOT NULL CHECK (level BETWEEN 0 AND 255),
  15. preview_available INTEGER NOT NULL CHECK (preview_available IN (0, 1)),
  16. appearance_value REAL NOT NULL,
  17. last_orbited_destination INTEGER NOT NULL,
  18. content_bypass INTEGER NOT NULL CHECK (content_bypass IN (0, 1)),
  19. equipped_title INTEGER NOT NULL CHECK (equipped_title BETWEEN 0 AND 65535),
  20. acquired_subclass_mask INTEGER NOT NULL,
  21. next_inventory_serial INTEGER NOT NULL CHECK (next_inventory_serial BETWEEN 0 AND 4294967295),
  22. appearance_header BLOB NOT NULL CHECK (length(appearance_header) = 36),
  23. appearance_header_valid INTEGER NOT NULL CHECK (appearance_header_valid IN (0, 1))
  24. ) STRICT;
  25. CREATE TABLE items (
  26. character_slot INTEGER NOT NULL REFERENCES characters(slot),
  27. location INTEGER NOT NULL CHECK (location IN (0, 1)),
  28. position INTEGER NOT NULL CHECK (position >= 0),
  29. instance_soid INTEGER NOT NULL UNIQUE,
  30. definition_hash INTEGER NOT NULL CHECK (definition_hash BETWEEN 1 AND 4294967295),
  31. level INTEGER NOT NULL,
  32. quantity INTEGER NOT NULL CHECK (quantity > 0),
  33. mutation_serial INTEGER NOT NULL CHECK (mutation_serial >= 0),
  34. flags INTEGER NOT NULL CHECK (flags BETWEEN 0 AND 7),
  35. socket_policy INTEGER NOT NULL CHECK (socket_policy IN (0, 1)),
  36. plug_count INTEGER NOT NULL CHECK (plug_count BETWEEN 0 AND 12),
  37. movement_ability INTEGER NOT NULL,
  38. grenade_ability INTEGER NOT NULL,
  39. super_ability INTEGER NOT NULL,
  40. melee_ability INTEGER NOT NULL,
  41. class_ability INTEGER NOT NULL,
  42. seen INTEGER NOT NULL CHECK(seen IN(0,1)),
  43. PRIMARY KEY (character_slot, location, position),
  44. CHECK ((location = 0 AND position < 17) OR (location = 1 AND position < 135))
  45. ) STRICT;
  46. CREATE TABLE sockets (
  47. instance_soid INTEGER NOT NULL REFERENCES items(instance_soid) ON DELETE CASCADE,
  48. lane INTEGER NOT NULL CHECK (lane BETWEEN 0 AND 11),
  49. plug_hash INTEGER NOT NULL CHECK (plug_hash BETWEEN 1 AND 4294967295),
  50. PRIMARY KEY (instance_soid, lane)
  51. ) STRICT;
  52. CREATE TABLE profile_items (
  53. position INTEGER PRIMARY KEY CHECK (position BETWEEN 0 AND 700),
  54. instance_soid INTEGER NOT NULL,
  55. definition_hash INTEGER NOT NULL,
  56. quantity INTEGER NOT NULL CHECK (quantity > 0),
  57. mutation_serial INTEGER NOT NULL CHECK (mutation_serial >= 0),
  58. seen INTEGER NOT NULL CHECK(seen IN(0,1))
  59. ) STRICT;
  60. CREATE TABLE character_stacks (
  61. character_slot INTEGER NOT NULL REFERENCES characters(slot),
  62. position INTEGER NOT NULL CHECK (position BETWEEN 0 AND 31),
  63. definition_hash INTEGER NOT NULL,
  64. quantity INTEGER NOT NULL CHECK (quantity > 0),
  65. mutation_serial INTEGER NOT NULL CHECK (mutation_serial >= 0),
  66. PRIMARY KEY (character_slot, position)
  67. ) STRICT;
  68. CREATE TABLE dismantle_rewards (
  69. position INTEGER PRIMARY KEY CHECK (position BETWEEN 0 AND 31),
  70. definition_hash INTEGER NOT NULL,
  71. quantity INTEGER NOT NULL CHECK (quantity > 0),
  72. tier_mask INTEGER NOT NULL,
  73. class_mask INTEGER NOT NULL,
  74. masterwork INTEGER NOT NULL CHECK (masterwork BETWEEN 0 AND 2)
  75. ) STRICT;
  76. CREATE TABLE unlocks (
  77. character_slot INTEGER NOT NULL CHECK (character_slot BETWEEN -1 AND 2),
  78. bank INTEGER NOT NULL CHECK (bank BETWEEN 0 AND 7),
  79. slot INTEGER NOT NULL CHECK (slot >= 0),
  80. lane INTEGER NOT NULL CHECK (lane BETWEEN 0 AND 2),
  81. value INTEGER NOT NULL CHECK (value BETWEEN -2147483648 AND 2147483647),
  82. PRIMARY KEY (character_slot, bank, slot, lane),
  83. CHECK ((bank IN (0, 1, 3, 6) AND character_slot = -1)
  84. OR (bank IN (2, 4, 5, 7) AND character_slot >= 0))
  85. ) STRICT;
  86. CREATE TABLE family5 (
  87. kind INTEGER NOT NULL CHECK (kind IN (0, 1)),
  88. position INTEGER NOT NULL CHECK (position BETWEEN 0 AND 99),
  89. slot INTEGER NOT NULL CHECK (slot BETWEEN 0 AND 65535),
  90. value INTEGER NOT NULL CHECK (value BETWEEN -2147483648 AND 2147483647),
  91. PRIMARY KEY (kind, position),
  92. UNIQUE (kind, slot)
  93. ) STRICT;
  94. CREATE TABLE entitlements (
  95. position INTEGER PRIMARY KEY,
  96. name TEXT NOT NULL,
  97. ownership INTEGER NOT NULL CHECK (ownership BETWEEN 0 AND 2)
  98. ) STRICT;
  99. CREATE TABLE bootstrap (
  100. name TEXT PRIMARY KEY,
  101. completed INTEGER NOT NULL CHECK (completed IN (0, 1))
  102. ) STRICT;
  103. CREATE TABLE pending_rewards (
  104. id INTEGER PRIMARY KEY AUTOINCREMENT,
  105. character_slot INTEGER NOT NULL CHECK (character_slot BETWEEN 0 AND 2),
  106. kind INTEGER NOT NULL CHECK (kind IN (0, 1)),
  107. definition_hash INTEGER NOT NULL CHECK (definition_hash BETWEEN 1 AND 4294967295),
  108. quantity INTEGER NOT NULL CHECK (quantity > 0)
  109. ) STRICT;