aboutsummaryrefslogtreecommitdiff
path: root/postgres/initial-data.sql
diff options
context:
space:
mode:
authorfusion32 <marcopuzziello@gmail.com>2025-10-18 18:21:31 -0300
committerfusion32 <marcopuzziello@gmail.com>2025-10-18 18:21:31 -0300
commiteba55f8361fc36179e36bf8a3cea5067b5341e37 (patch)
treed95107a644b3a18bc9807e813c4ead9cc356bd71 /postgres/initial-data.sql
parentebf536a7910f6e8d5bff569d2d717287ad3ba716 (diff)
downloadquerymanager-eba55f8361fc36179e36bf8a3cea5067b5341e37.tar.gz
querymanager-eba55f8361fc36179e36bf8a3cea5067b5341e37.zip
update documentation + wrap the few SQLite scripts
Diffstat (limited to 'postgres/initial-data.sql')
-rw-r--r--postgres/initial-data.sql117
1 files changed, 117 insertions, 0 deletions
diff --git a/postgres/initial-data.sql b/postgres/initial-data.sql
new file mode 100644
index 0000000..fbe40c7
--- /dev/null
+++ b/postgres/initial-data.sql
@@ -0,0 +1,117 @@
+-- NOTE(fusion): This file contains sample initial data. It's wrapped into a
+-- transaction to avoid errors from leaving the database in some partial state.
+BEGIN;
+
+-- 111111/tibia
+INSERT INTO Accounts (AccountID, Email, Auth)
+ VALUES (111111, '@tibia', '\x206699cbc2fae1683118c873d746aa376049cb5923ef0980298bb7acbba527ec9e765668f7a338dffea34acf61a20efb654c1e9c62d35148dba2aeeef8dc7788');
+
+-- NOTE(fusion): This would generally be a sequence of insertions but the way
+-- PostgreSQL handles unique auto increment columns makes so manually inserted
+-- values end up colliding with generated values at some point.
+-- On a real scenario, we'd never have manually assigned ids unless we're
+-- restoring some database dump, in which case it would also have saved
+-- sequences.
+WITH
+ WorldIns AS (
+ INSERT INTO Worlds (Name, Type, RebootTime, Host, Port, MaxPlayers,
+ PremiumPlayerBuffer, MaxNewbies, PremiumNewbieBuffer)
+ VALUES ('Zanera', 0, 5, 'localhost', 7172, 1000, 100, 300, 100)
+ RETURNING WorldID, Name
+ ),
+ CharacterIns AS (
+ INSERT INTO Characters (WorldID, AccountID, Name, Sex)
+ SELECT W.WorldID, C.AccountID, C.Name, C.Sex
+ FROM WorldIns AS W,
+ LATERAL (VALUES
+ (111111, 'Gamemaster on ' || W.Name, 1),
+ (111111, 'Player on ' || W.Name, 1)
+ ) AS C (AccountID, Name, Sex)
+ RETURNING CharacterID, Name
+ )
+INSERT INTO CharacterRights(CharacterID, Name)
+ SELECT C.CharacterID, R.RightName
+ FROM CharacterIns AS C,
+ (VALUES
+ ('NOTATION'),
+ ('NAMELOCK'),
+ ('STATEMENT_REPORT'),
+ ('BANISHMENT'),
+ ('FINAL_WARNING'),
+ ('IP_BANISHMENT'),
+ ('KICK'),
+ ('HOME_TELEPORT'),
+ ('GAMEMASTER_BROADCAST'),
+ ('ANONYMOUS_BROADCAST'),
+ ('NO_BANISHMENT'),
+ ('ALLOW_MULTICLIENT'),
+ ('LOG_COMMUNICATION'),
+ ('READ_GAMEMASTER_CHANNEL'),
+ ('READ_TUTOR_CHANNEL'),
+ ('HIGHLIGHT_HELP_CHANNEL'),
+ ('SEND_BUGREPORTS'),
+ ('NAME_INSULTING'),
+ ('NAME_SENTENCE'),
+ ('NAME_NONSENSICAL_LETTERS'),
+ ('NAME_BADLY_FORMATTED'),
+ ('NAME_NO_PERSON'),
+ ('NAME_CELEBRITY'),
+ ('NAME_COUNTRY'),
+ ('NAME_FAKE_IDENTITY'),
+ ('NAME_FAKE_POSITION'),
+ ('STATEMENT_INSULTING'),
+ ('STATEMENT_SPAMMING'),
+ ('STATEMENT_ADVERT_OFFTOPIC'),
+ ('STATEMENT_ADVERT_MONEY'),
+ ('STATEMENT_NON_ENGLISH'),
+ ('STATEMENT_CHANNEL_OFFTOPIC'),
+ ('STATEMENT_VIOLATION_INCITING'),
+ ('CHEATING_BUG_ABUSE'),
+ ('CHEATING_GAME_WEAKNESS'),
+ ('CHEATING_MACRO_USE'),
+ ('CHEATING_MODIFIED_CLIENT'),
+ ('CHEATING_HACKING'),
+ ('CHEATING_MULTI_CLIENT'),
+ ('CHEATING_ACCOUNT_TRADING'),
+ ('CHEATING_ACCOUNT_SHARING'),
+ ('GAMEMASTER_THREATENING'),
+ ('GAMEMASTER_PRETENDING'),
+ ('GAMEMASTER_INFLUENCE'),
+ ('GAMEMASTER_FALSE_REPORTS'),
+ ('KILLING_EXCESSIVE_UNJUSTIFIED'),
+ ('DESTRUCTIVE_BEHAVIOUR'),
+ ('SPOILING_AUCTION'),
+ ('INVALID_PAYMENT'),
+ ('TELEPORT_TO_CHARACTER'),
+ ('TELEPORT_TO_MARK'),
+ ('TELEPORT_VERTICAL'),
+ ('TELEPORT_TO_COORDINATE'),
+ ('LEVITATE'),
+ ('SPECIAL_MOVEUSE'),
+ ('MODIFY_GOSTRENGTH'),
+ ('SHOW_COORDINATE'),
+ ('RETRIEVE'),
+ ('ENTER_HOUSES'),
+ ('OPEN_NAMEDOORS'),
+ ('INVULNERABLE'),
+ ('UNLIMITED_MANA'),
+ ('KEEP_INVENTORY'),
+ ('ALL_SPELLS'),
+ ('UNLIMITED_CAPACITY'),
+ ('ATTACK_EVERYWHERE'),
+ ('NO_LOGOUT_BLOCK'),
+ ('GAMEMASTER_OUTFIT'),
+ ('ILLUMINATE'),
+ ('CHANGE_PROFESSION'),
+ ('IGNORED_BY_MONSTERS'),
+ ('SHOW_KEYHOLE_NUMBERS'),
+ ('CREATE_OBJECTS'),
+ ('CREATE_MONEY'),
+ ('CREATE_MONSTERS'),
+ ('CHANGE_SKILLS'),
+ ('CLEANUP_FIELDS'),
+ ('NO_STATISTICS')
+ ) AS R (RightName)
+ WHERE C.Name LIKE 'Gamemaster%' COLLATE "default";
+
+COMMIT;