a homebrewed DnD campaign based in the Honkai: Star Rail universe
hsr honkaistarrail dnd
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

db: rewrite constraints to use built-in functions

+45 -49
+10 -10
app/src/lib/server/db/schemas/dnd/character.ts
··· 1 - import { sql } from 'drizzle-orm' 1 + import { gte, sql } from 'drizzle-orm' 2 2 import { 3 3 check, 4 4 integer, ··· 53 53 'current_hp_is_valid', 54 54 sql`${table.currentHitPoints} >= 0 AND ${table.currentHitPoints} <= ${table.totalHitPoints}`, 55 55 ), 56 - check('total_hp_is_nonnegative', sql`${table.totalHitPoints} >= 0`), 57 - check('temp_hp_is_nonnegative', sql`${table.tempHitPoints} >= 0`), 56 + check('total_hp_is_nonnegative', gte(table.totalHitPoints, 0)), 57 + check('temp_hp_is_nonnegative', gte(table.tempHitPoints, 0)), 58 58 ], 59 59 ) 60 60 ··· 112 112 cha: smallint('charisma').notNull(), 113 113 }, 114 114 (table) => [ 115 - check('str_is_nonnegative', sql`${table.str} >= 0`), 116 - check('dex_is_nonnegative', sql`${table.dex} >= 0`), 117 - check('con_is_nonnegative', sql`${table.con} >= 0`), 118 - check('int_is_nonnegative', sql`${table.int} >= 0`), 119 - check('wis_is_nonnegative', sql`${table.wis} >= 0`), 120 - check('cha_is_nonnegative', sql`${table.cha} >= 0`), 115 + check('str_is_nonnegative', gte(table.str, 0)), 116 + check('dex_is_nonnegative', gte(table.dex, 0)), 117 + check('con_is_nonnegative', gte(table.con, 0)), 118 + check('int_is_nonnegative', gte(table.int, 0)), 119 + check('wis_is_nonnegative', gte(table.wis, 0)), 120 + check('cha_is_nonnegative', gte(table.cha, 0)), 121 121 ], 122 122 ) 123 123 ··· 147 147 }, 148 148 (table) => [ 149 149 primaryKey({ columns: [table.characterId, table.equipmentId] }), 150 - check('amount_is_at_least_1', sql`${table.amount} >= 1`), 150 + check('amount_is_at_least_1', gte(table.amount, 1)), 151 151 ], 152 152 ) 153 153
+5 -9
app/src/lib/server/db/schemas/dnd/equipment.ts
··· 1 - import { sql } from 'drizzle-orm' 1 + import { gte } from 'drizzle-orm' 2 2 import { 3 3 boolean, 4 4 check, 5 5 index, 6 6 integer, 7 - jsonb, 8 7 pgEnum, 9 8 pgTable, 10 9 primaryKey, ··· 66 65 stealthEffect: armorStealthEffect('stealth_effect'), 67 66 }, 68 67 (table) => [ 69 - check('required_strength_flat_is_nonnegative', sql`${table.requiredMinStrengthFlat} >= 0`), 70 - check('armor_class_is_nonnegative', sql`${table.armorClass} >= 0`), 71 - check('armor_class_dex_modifier_is_nonnegative', sql`${table.armorClassDexModifier} >= 0`), 72 - check( 73 - 'armor_class_dex_modifier_max_is_nonnegative', 74 - sql`${table.armorClassDexModifierMax} >= 0`, 75 - ), 68 + check('required_strength_flat_is_nonnegative', gte(table.requiredMinStrengthFlat, 0)), 69 + check('armor_class_is_nonnegative', gte(table.armorClass, 0)), 70 + check('armor_class_dex_modifier_is_nonnegative', gte(table.armorClassDexModifier, 0)), 71 + check('armor_class_dex_modifier_max_is_nonnegative', gte(table.armorClassDexModifierMax, 0)), 76 72 ], 77 73 ) 78 74
+24 -24
app/src/lib/server/db/schemas/dnd/monster.ts
··· 1 - import { sql } from 'drizzle-orm' 1 + import { gte } from 'drizzle-orm' 2 2 import { 3 3 boolean, 4 4 check, ··· 32 32 }, 33 33 (table) => [ 34 34 index().on(table.name), 35 - check('walk_speed_is_nonnegative', sql`${table.walkSpeed} >= 0`), 36 - check('swim_speed_is_nonnegative', sql`${table.swimSpeed} >= 0`), 37 - check('climb_speed_is_nonnegative', sql`${table.climbSpeed} >= 0`), 38 - check('fly_speed_is_nonnegative', sql`${table.flySpeed} >= 0`), 39 - check('burrow_speed_is_nonnegative', sql`${table.burrowSpeed} >= 0`), 35 + check('walk_speed_is_nonnegative', gte(table.walkSpeed, 0)), 36 + check('swim_speed_is_nonnegative', gte(table.swimSpeed, 0)), 37 + check('climb_speed_is_nonnegative', gte(table.climbSpeed, 0)), 38 + check('fly_speed_is_nonnegative', gte(table.flySpeed, 0)), 39 + check('burrow_speed_is_nonnegative', gte(table.burrowSpeed, 0)), 40 40 ], 41 41 ) 42 42 ··· 74 74 }, 75 75 (table) => [ 76 76 // base checks 77 - check('str_is_nonnegative', sql`${table.str} >= 0`), 78 - check('dex_is_nonnegative', sql`${table.dex} >= 0`), 79 - check('con_is_nonnegative', sql`${table.con} >= 0`), 80 - check('int_is_nonnegative', sql`${table.int} >= 0`), 81 - check('wis_is_nonnegative', sql`${table.wis} >= 0`), 82 - check('cha_is_nonnegative', sql`${table.cha} >= 0`), 77 + check('str_is_nonnegative', gte(table.str, 0)), 78 + check('dex_is_nonnegative', gte(table.dex, 0)), 79 + check('con_is_nonnegative', gte(table.con, 0)), 80 + check('int_is_nonnegative', gte(table.int, 0)), 81 + check('wis_is_nonnegative', gte(table.wis, 0)), 82 + check('cha_is_nonnegative', gte(table.cha, 0)), 83 83 // modifier checks 84 - check('str_mod_is_nonnegative', sql`${table.strMod} >= 0`), 85 - check('dex_mod_is_nonnegative', sql`${table.dexMod} >= 0`), 86 - check('con_mod_is_nonnegative', sql`${table.conMod} >= 0`), 87 - check('int_mod_is_nonnegative', sql`${table.intMod} >= 0`), 88 - check('wis_mod_is_nonnegative', sql`${table.wisMod} >= 0`), 89 - check('cha_mod_is_nonnegative', sql`${table.chaMod} >= 0`), 84 + check('str_mod_is_nonnegative', gte(table.strMod, 0)), 85 + check('dex_mod_is_nonnegative', gte(table.dexMod, 0)), 86 + check('con_mod_is_nonnegative', gte(table.conMod, 0)), 87 + check('int_mod_is_nonnegative', gte(table.intMod, 0)), 88 + check('wis_mod_is_nonnegative', gte(table.wisMod, 0)), 89 + check('cha_mod_is_nonnegative', gte(table.chaMod, 0)), 90 90 // saving throw checks 91 - check('str_save_is_nonnegative', sql`${table.strSave} >= 0`), 92 - check('dex_save_is_nonnegative', sql`${table.dexSave} >= 0`), 93 - check('con_save_is_nonnegative', sql`${table.conSave} >= 0`), 94 - check('int_save_is_nonnegative', sql`${table.intSave} >= 0`), 95 - check('wis_save_is_nonnegative', sql`${table.wisSave} >= 0`), 96 - check('cha_save_is_nonnegative', sql`${table.chaSave} >= 0`), 91 + check('str_save_is_nonnegative', gte(table.strSave, 0)), 92 + check('dex_save_is_nonnegative', gte(table.dexSave, 0)), 93 + check('con_save_is_nonnegative', gte(table.conSave, 0)), 94 + check('int_save_is_nonnegative', gte(table.intSave, 0)), 95 + check('wis_save_is_nonnegative', gte(table.wisSave, 0)), 96 + check('cha_save_is_nonnegative', gte(table.chaSave, 0)), 97 97 ], 98 98 ) 99 99
+6 -6
app/src/lib/server/db/schemas/dnd/species.ts
··· 1 - import { sql } from 'drizzle-orm' 1 + import { gte } from 'drizzle-orm' 2 2 import { 3 3 boolean, 4 4 index, ··· 32 32 }, 33 33 (table) => [ 34 34 index().on(table.name), 35 - check('walk_speed_is_nonnegative', sql`${table.walkSpeed} >= 0`), 36 - check('swim_speed_is_nonnegative', sql`${table.swimSpeed} >= 0`), 37 - check('climb_speed_is_nonnegative', sql`${table.climbSpeed} >= 0`), 38 - check('fly_speed_is_nonnegative', sql`${table.flySpeed} >= 0`), 39 - check('burrow_speed_is_nonnegative', sql`${table.burrowSpeed} >= 0`), 35 + check('walk_speed_is_nonnegative', gte(table.walkSpeed, 0)), 36 + check('swim_speed_is_nonnegative', gte(table.swimSpeed, 0)), 37 + check('climb_speed_is_nonnegative', gte(table.climbSpeed, 0)), 38 + check('fly_speed_is_nonnegative', gte(table.flySpeed, 0)), 39 + check('burrow_speed_is_nonnegative', gte(table.burrowSpeed, 0)), 40 40 ], 41 41 ) 42 42