From a30f394ef7155c89956da9454c3363e97b599f28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Pons?= Date: Tue, 22 Apr 2025 17:40:39 +0200 Subject: [PATCH] Add character notes and more debugging for mailserver (help me !!!) --- db.sqlite | Bin 614400 -> 614400 bytes db.sqlite-shm | Bin 32768 -> 32768 bytes db.sqlite-wal | Bin 259592 -> 135992 bytes pages/character/[id]/edit.client.vue | 17 +++++++++++++---- pages/character/[id]/index.client.vue | 4 ++++ server/api/character/[id]/compiled.get.ts | 7 ++++--- server/tasks/mail.ts | 2 ++ types/character.d.ts | 3 +++ 8 files changed, 26 insertions(+), 7 deletions(-) diff --git a/db.sqlite b/db.sqlite index d6868feb8b76b4cf0a94dc32cca8718b42fb56df..ad30a94cc5c6ea0ad7d4631f901e3050e6a8584b 100644 GIT binary patch delta 112 zcmZoTpxSUib;F)Grfoc%_r=*O0_o=e_3i)b8K?iRXJY3vV&F95Sz?@^c zdk52N&bA6Rb_R9M-q7vtolGgrJW9nSMX7n|B^gRq2JNeRn1GlWh*^M`6^Pk@n0@=| I9*)q<02oavqW}N^ delta 104 zcmZoTpxSUib;F)Grk3K(`{L{sfpqi#`u6|zjMM+uGqH2oF>u=PtmSv&aNn#bV9qh! zy@ToX^om|49?rHLHg*Pe&R*N?)}2f#%`}Wm69HEy1B26cD diff --git a/db.sqlite-shm b/db.sqlite-shm index 70a5b8d059f46d4dfc3d2e2880d775cbf0b32f50..b40183172fa4333ebb8559e520961a11d73ca983 100644 GIT binary patch delta 203 zcmZo@U}|V!s+V}A%K!q3K+MR%AONDL0rBdn^dsH@*S59sUWyD9dB9mL*DvpvQ}BaS z^+2P*0A%ieBmfnjSRXmLfRP7?MK%{OwggO`z*sT)OP~m+7=t8(G=m(2!sbTC`>c~c ego|*BGe|MWFvv3~0)-YTv5GQCFvtR#zN`S%5jsu) delta 259 zcmZo@U}|V!s+V}A%K!rQK+MR%AONDL0da`5?jpwpGmX+zXM8?+X}{Ta&Ltl{tH1Ln zRXxxsFaVkR9|=H(C)P(!Twno48XJGK1Wf)CD55FKAkHAkAk84lAkU!4pv<7kpw6Jl zpv|DmpwD2)V9a33V9sF4V8dXyS&(r*>*NpNBAQ|h5)4udG7NGI3JgjNDhz528Vp(t hIt+RY1`I|FCJbf_77SJlwhZ<_EsaWy)<7zd6#z$cLmdDB diff --git a/db.sqlite-wal b/db.sqlite-wal index e94a241e8ff5a561b5b3e2adf70f17c946df513c..36a9f1cfc0e7b2e1434a8b71b85fb2d57330644c 100644 GIT binary patch delta 2434 zcmeBp!@px0hlP1PTN8usBMAlu0R|9gPY_4-J3%fkJFRJPjs(q;rL% znfQu-+YfAI-owYVZR+;ABg|fm0xNcKdtTLf;Th6 z3|NF_z|55|9xDWUWkL;DgkeB;1M}n$E_VfB1}sH0z)Xkf59jNqNl*ipVi>@BU|~bY z?ABD60V~i9`0@D#Z?(+P$4~=SU>Hz)ZlSBuiU&?G12&==kbkf+%)R*a9H;>sF$}mr z_r6jb-}>h;18$)i(7q!={QozDzfc2iVHmKhS2cWw?}I5Y10JIpuzvOK2~G}I-Jk|M z#xTHLHd95htE&@cz*jT_!isk>*0ucJ4mIE_h5=IFy4O9o&&_}uu-ydBfU8T_dtX+z z6M`79-2}q`o{HrWHs`M7!wd*PGr;oRqOUU29$Uc%Xm1Yz8K8-r5)%t{%s$l3zlIkm z$jm9oz$wVHmfwlPePf_G$MpAWnNM-HOR}*usB`v-Z-2awxsX{=M=3AAB(+${N=aEE zB(=CCCeJ@xM9>3eryx73R8VMGuQ{c*$h6VDVZf13Xa7ksYQv^N{LCCIhiGyAkP3f$wm1|i6xoI zKwh+=jzO%BQeshZVqPMUYYgF*WaOkm6&Qgc)lEl1}%)E4{U9~z& zIjLo-IZ9S$(=9hKOLHRv9qcoe>3=pb>u{G8C1&PB<|J zou*&d%*;F8eLb`L^poqEqoz;Tz--H?GyUH>W-GSZS_THDuI-VVnA@1N8{IhA8B{r& ziWx!@f$mp`OwKONNv(#t!4S=Mwdrh|nI-Fi0hFAdS6q@=QVIr5Vk`3&KBgU3XzA&M^o^Nk)^Mpq^2`n^j69P$^_aKTelsg*g4|(^Za~{T zmkQ=BERY1b!x|$&R&^He_IDVbZ)BFBEIX0-6Cw(xX;yyB6RLHh_6Yf;s?`N>gP3 delta 2149 zcmZYAdrVVT9Ki9mI38O1pqnA0K!|NA4`E#$1hA{HT814U(Jeqpi`}%iAzJDb2SLjy zH4euH^tReAgDy}4Iv>*_G8)PpjK>JLtwc<44Z*~9B|0{@6=Z17S(bBda{oCu`Q&?k zIk~5|BUtaDr>4{fYDtOia1x0@diES(8-M?P+VSd0ZETgDGyPy~DRAvI!1YKm`?zlP zEZ?47K<=keTBvrff}BHU!0%pt(y7gY`_$JfS0@edOa$VUM8R7t&;uyq3< z9|L5woL8iA-3t)#A%KIC)>E87C;;HY0PWtkTaSOSl>wkN9RU^ubDL}W-K&0}H5~)0 zzI3qcTl-refNmkR{q()?D$fD{@GaCPcc;$^ySNZgAqB(j-+1O4#6JN*g%zk(itzVl zc&`J%AVh#Ol}CP?X-KE}0fP_&a-YUdH0rL74g9kK!>=L zG}M-onN0xzKEw}g!%S&eV<-ePNWppMk7<^_(&_-9!3vgm8?3zX`DFkQOau_#GkJEL zmU#UD5rzR{uBq0(SP=^X90b_(`E{XtWuOfJ91JiY+jsEJia87d+Y#XLz(1GG&UqOC zwqrolMw4mM&~_6783<6Ys&Vcw6wCo20|PQ|zS&JZSTh0vDFS3`I7_}io;(DA6ayMQ zJG4bBIk5_XA_QP)|NgExvv3ChiZI}8!g$3kV}2wA4>jy3k4FNn9Wo)z%^f4OF9eF86& zz9DpNF(8Cb3gJ^P(ldi4SN5a?6Y?DLC?PsY4ht_yh*7Fa)n%3Cr7>y6#kv!LK_qTS z<32loH~DD53pMp&K|ywAEm=n)^7fFY{=1t+ZX0W8Orn5&QAl55Q}nX>(0Gi0LY63O fLc>0ab(`~TD+JgG(4H8vmv8!F=W`&y!sh-9$iHUm diff --git a/pages/character/[id]/edit.client.vue b/pages/character/[id]/edit.client.vue index 4a3a973..be2344e 100644 --- a/pages/character/[id]/edit.client.vue +++ b/pages/character/[id]/edit.client.vue @@ -71,10 +71,11 @@ const data = ref({ }, abilities: {}, modifiers: {}, + notes: "", }, }); -const peopleOpen = ref(false), trainingOpen = ref(false), modifierOpen = ref(false), abilityOpen = ref(false), trainingTab = ref(0); +const peopleOpen = ref(false), trainingOpen = ref(false), notesOpen = ref(false), abilityOpen = ref(false), trainingTab = ref(0); const raceOptions = computed(() => data.value.progress.race.index !== undefined ? characterConfig.peoples[data.value.progress.race.index!].options : undefined); const selectedRaceOptions = computed(() => raceOptions !== undefined ? data.value.progress.race.progress!.map(e => raceOptions.value![e[0]][e[1]]) : undefined); const trainingPoints = computed(() => raceOptions.value ? data.value.progress.race.progress?.reduce((p, v) => p + (raceOptions.value![v[0]][v[1]].training ?? 0), 0) : 0); @@ -244,7 +245,7 @@ useShortcuts({
- + @@ -267,7 +268,7 @@ useShortcuts({
- + @@ -298,7 +299,7 @@ useShortcuts({ - + @@ -323,6 +324,14 @@ useShortcuts({ + + + + \ No newline at end of file diff --git a/pages/character/[id]/index.client.vue b/pages/character/[id]/index.client.vue index f01cf5b..a056d07 100644 --- a/pages/character/[id]/index.client.vue +++ b/pages/character/[id]/index.client.vue @@ -125,6 +125,10 @@ const { data: character, status, error } = await useAsyncData(() => useRequestFe Aptitudes +
+ Notes + +
diff --git a/server/api/character/[id]/compiled.get.ts b/server/api/character/[id]/compiled.get.ts index 264d0ec..ec70715 100644 --- a/server/api/character/[id]/compiled.get.ts +++ b/server/api/character/[id]/compiled.get.ts @@ -1,7 +1,7 @@ import { and, eq } from 'drizzle-orm'; import useDatabase from '~/composables/useDatabase'; import { characterTable } from '~/db/schema'; -import type { Character, CharacterConfig, CompiledCharacter, DoubleIndex, Feature, MainStat, TrainingLevel, TrainingOption } from '~/types/character'; +import type { Ability, Character, CharacterConfig, CompiledCharacter, DoubleIndex, Feature, MainStat, TrainingLevel, TrainingOption } from '~/types/character'; import characterData from '#shared/character-config.json'; import { users } from '~/drizzle/schema'; @@ -191,13 +191,14 @@ function compileCharacter(character: Character & { username?: string }): Compile }, initiative: 0, aspect: "", + notes: character.progress.notes, }; features.forEach(e => e[1].forEach((_e, i) => applyTrainingOption(e[0], _e, compiled, i === e[1].length - 1))); specialFeatures(compiled, character.progress.training); - Object.entries(character.progress.abilities).forEach(e => compiled.abilities[e[0]] += e[1][0]); - + Object.entries(character.progress.abilities).forEach(e => compiled.abilities[e[0] as Ability]! += e[1][0]); + return compiled; } function applyTrainingOption(stat: MainStat, option: TrainingOption, character: CompiledCharacter, last: boolean) diff --git a/server/tasks/mail.ts b/server/tasks/mail.ts index ebbda7b..bfbb904 100644 --- a/server/tasks/mail.ts +++ b/server/tasks/mail.ts @@ -23,6 +23,8 @@ interface MailPayload data: Record } +console.log(config); + const transport = nodemailer.createTransport({ //@ts-ignore pool: true, diff --git a/types/character.d.ts b/types/character.d.ts index 5f32538..39b3cb1 100644 --- a/types/character.d.ts +++ b/types/character.d.ts @@ -19,6 +19,7 @@ export type Progression = { spells?: string[]; //Spell ID modifiers: Partial>; aspect?: string; + notes: string; }; export type Character = { id: number; @@ -148,4 +149,6 @@ export type CompiledCharacter = { abilities: Partial>; level: number; features: Record; //Currently: List of training option as text. TODO: Update to a more complex structure later + + notes: string; }; \ No newline at end of file