From 555315d0372b1897ff82d4a6f8c35e081064d0d2 Mon Sep 17 00:00:00 2001 From: "Christopher S. Case" Date: Tue, 10 Dec 2024 02:02:33 -0600 Subject: [PATCH 1/3] Started cleaning up the models. --- src/client/lib/managers/systems/eote.ts | 3 ++- src/client/lib/resource-access/supplement.ts | 3 ++- src/client/lib/stores/systems/eote.ts | 3 ++- src/client/lib/stores/systems/genesys.ts | 3 ++- src/common/interfaces/common.ts | 8 ++++---- src/common/interfaces/models/account.ts | 7 ++----- src/common/interfaces/models/dice.ts | 2 +- src/common/interfaces/models/messages.ts | 2 +- src/common/interfaces/models/notebook.ts | 21 +++++++------------- src/common/interfaces/models/reference.ts | 7 ++----- src/common/interfaces/models/role.ts | 7 ++----- src/common/interfaces/models/supplement.ts | 5 +---- src/common/interfaces/systems/supplements.ts | 6 ------ 13 files changed, 28 insertions(+), 49 deletions(-) diff --git a/src/client/lib/managers/systems/eote.ts b/src/client/lib/managers/systems/eote.ts index fd2bce34..4e5bb8a7 100644 --- a/src/client/lib/managers/systems/eote.ts +++ b/src/client/lib/managers/systems/eote.ts @@ -7,7 +7,8 @@ import { XOR } from 'ts-essentials'; // Interfaces import { Character } from '../../../../common/interfaces/common'; import * as Models from '../../../../common/interfaces/systems/eote'; -import { Reference, Supplement } from '../../../../common/interfaces/systems/supplements'; +import { Supplement } from '../../../../common/interfaces/systems/supplements'; +import { Reference } from '../../../../common/interfaces/models/reference'; // Stores import { useEoteStore } from '../../stores/systems/eote'; diff --git a/src/client/lib/resource-access/supplement.ts b/src/client/lib/resource-access/supplement.ts index 136c4f39..c11cff1f 100644 --- a/src/client/lib/resource-access/supplement.ts +++ b/src/client/lib/resource-access/supplement.ts @@ -5,7 +5,8 @@ import axios from 'axios'; // Interfaces -import { Reference, Supplement } from '../../../common/interfaces/systems/supplements'; +import { Supplement } from '../../../common/interfaces/systems/supplements'; +import { Reference } from '../../../common/interfaces/models/reference'; //---------------------------------------------------------------------------------------------------------------------- diff --git a/src/client/lib/stores/systems/eote.ts b/src/client/lib/stores/systems/eote.ts index af4f5ad3..cfcc5252 100644 --- a/src/client/lib/stores/systems/eote.ts +++ b/src/client/lib/stores/systems/eote.ts @@ -6,7 +6,8 @@ import { defineStore } from 'pinia'; // Models import * as EoteModels from '../../../../common/interfaces/systems/eote'; -import { Reference, Supplement } from '../../../../common/interfaces/systems/supplements'; +import { Supplement } from '../../../../common/interfaces/systems/supplements'; +import { Reference } from '../../../../common/interfaces/models/reference'; // Resource Access import suppRA from '../../resource-access/supplement'; diff --git a/src/client/lib/stores/systems/genesys.ts b/src/client/lib/stores/systems/genesys.ts index 2fdaf1d4..0a238fe7 100644 --- a/src/client/lib/stores/systems/genesys.ts +++ b/src/client/lib/stores/systems/genesys.ts @@ -6,7 +6,8 @@ import { defineStore } from 'pinia'; // Models import * as GenesysModels from '../../../../common/interfaces/systems/eote'; -import { Reference, Supplement } from '../../../../common/interfaces/systems/supplements'; +import { Supplement } from '../../../../common/interfaces/systems/supplements'; +import { Reference } from '../../../../common/interfaces/models/reference'; // Resource Access import suppRA from '../../resource-access/supplement'; diff --git a/src/common/interfaces/common.ts b/src/common/interfaces/common.ts index 1da8ea08..e7e3fc81 100644 --- a/src/common/interfaces/common.ts +++ b/src/common/interfaces/common.ts @@ -2,13 +2,13 @@ // Common Interfaces // --------------------------------------------------------------------------------------------------------------------- -export { AccountOptions, AccountSettings, Account } from './models/account.js'; +export { AccountSettings, Account } from './models/account.js'; export { CharacterOptions, SystemDetails, Character } from './models/character.js'; export { DiceRoll } from './models/dice.js'; -export { NotebookOptions, NotebookPageOptions, Notebook, NotebookPage } from './models/notebook.js'; -export { RoleOptions, Role } from './models/role.js'; +export { Notebook, NotebookPage } from './models/notebook.js'; +export { Role } from './models/role.js'; export { RPGKMessage, RPGKEventMessage, RPGKRemoveMessage, RPGKUpdateMessage } from './models/messages.js'; -export { SupplementOptions, Supplement } from './models/supplement.js'; +export { Supplement } from './models/supplement.js'; export { SupportStatus, System } from './models/system.js'; // --------------------------------------------------------------------------------------------------------------------- diff --git a/src/common/interfaces/models/account.ts b/src/common/interfaces/models/account.ts index d8eb62d1..9c594644 100644 --- a/src/common/interfaces/models/account.ts +++ b/src/common/interfaces/models/account.ts @@ -2,7 +2,7 @@ // Account //---------------------------------------------------------------------------------------------------------------------- -import { ValidColorMode } from './colorMode'; +import { ValidColorMode } from './colorMode.js'; //---------------------------------------------------------------------------------------------------------------------- @@ -11,7 +11,7 @@ export interface AccountSettings colorMode ?: ValidColorMode } -export interface AccountOptions +export interface Account { id : string; email : string; @@ -22,9 +22,6 @@ export interface AccountOptions settings ?: AccountSettings; } -// FIXME: Once Models are removed, `AccountOptions` should be named 'Account'. -export type Account = AccountOptions; - export type NewAccount = Omit; //---------------------------------------------------------------------------------------------------------------------- diff --git a/src/common/interfaces/models/dice.ts b/src/common/interfaces/models/dice.ts index d8bf2ea0..b03b0393 100644 --- a/src/common/interfaces/models/dice.ts +++ b/src/common/interfaces/models/dice.ts @@ -1,5 +1,5 @@ // --------------------------------------------------------------------------------------------------------------------- -// Dice +// Dice Roll Models // --------------------------------------------------------------------------------------------------------------------- import { Roll } from 'rpgdicejs'; diff --git a/src/common/interfaces/models/messages.ts b/src/common/interfaces/models/messages.ts index 1a7827e4..a369e821 100644 --- a/src/common/interfaces/models/messages.ts +++ b/src/common/interfaces/models/messages.ts @@ -1,5 +1,5 @@ // --------------------------------------------------------------------------------------------------------------------- -// Messages +// Messages Models // --------------------------------------------------------------------------------------------------------------------- import { Character } from './character.js'; diff --git a/src/common/interfaces/models/notebook.ts b/src/common/interfaces/models/notebook.ts index dfc88d1c..66dd9c76 100644 --- a/src/common/interfaces/models/notebook.ts +++ b/src/common/interfaces/models/notebook.ts @@ -1,15 +1,8 @@ //---------------------------------------------------------------------------------------------------------------------- -// Note +// Notebook Models //---------------------------------------------------------------------------------------------------------------------- -export interface NotebookOptions -{ - id : string; - // eslint-disable-next-line no-use-before-define - pages ?: NotebookPageOptions[] -} - -export interface NotebookPageOptions +export interface NotebookPage { id : string; title : string; @@ -17,11 +10,11 @@ export interface NotebookPageOptions notebookID : string; } -// FIXME: Once Models are removed, `NotebookOptions` should be named 'Notebook'. -export type Notebook = NotebookOptions; - -// FIXME: Once Models are removed, `NotebookPageOptions` should be named 'NotebookPage'. -export type NotebookPage = NotebookPageOptions; +export interface Notebook +{ + id : string; + pages ?: NotebookPage[] +} //---------------------------------------------------------------------------------------------------------------------- diff --git a/src/common/interfaces/models/reference.ts b/src/common/interfaces/models/reference.ts index 02dbed65..7bc7bddd 100644 --- a/src/common/interfaces/models/reference.ts +++ b/src/common/interfaces/models/reference.ts @@ -1,15 +1,12 @@ //---------------------------------------------------------------------------------------------------------------------- -// Reference +// Reference Models //---------------------------------------------------------------------------------------------------------------------- -export interface ReferenceOptions +export interface Reference { abbr : string; name : string; productCode : string; } -// FIXME: Once Models are removed, `ReferenceOptions` should be named 'Reference'. -export type Reference = ReferenceOptions; - //---------------------------------------------------------------------------------------------------------------------- diff --git a/src/common/interfaces/models/role.ts b/src/common/interfaces/models/role.ts index 7f0f32aa..94b8532d 100644 --- a/src/common/interfaces/models/role.ts +++ b/src/common/interfaces/models/role.ts @@ -1,15 +1,12 @@ //---------------------------------------------------------------------------------------------------------------------- -// Role +// Role Models //---------------------------------------------------------------------------------------------------------------------- -export interface RoleOptions +export interface Role { id : number; name : string; permissions : string[]; } -// FIXME: Once Models are removed, `RoleOptions` should be named 'Role'. -export type Role = RoleOptions; - //---------------------------------------------------------------------------------------------------------------------- diff --git a/src/common/interfaces/models/supplement.ts b/src/common/interfaces/models/supplement.ts index a27d822b..f7bf30f4 100644 --- a/src/common/interfaces/models/supplement.ts +++ b/src/common/interfaces/models/supplement.ts @@ -2,7 +2,7 @@ // Supplement //---------------------------------------------------------------------------------------------------------------------- -export interface SupplementOptions +export interface Supplement { id : number; name : string; @@ -14,7 +14,4 @@ export interface SupplementOptions [ key : string ] : unknown; } -// FIXME: Once Models are removed, `SupplementOptions` should be named 'Supplement'. -export type Supplement = SupplementOptions; - //---------------------------------------------------------------------------------------------------------------------- diff --git a/src/common/interfaces/systems/supplements.ts b/src/common/interfaces/systems/supplements.ts index bf03a264..de2873c5 100644 --- a/src/common/interfaces/systems/supplements.ts +++ b/src/common/interfaces/systems/supplements.ts @@ -2,14 +2,8 @@ // System Supplements // --------------------------------------------------------------------------------------------------------------------- -import { ReferenceOptions } from '../models/reference.js'; - -// --------------------------------------------------------------------------------------------------------------------- - export type SupplementScope = 'public' | 'user'; -export type Reference = ReferenceOptions; - export interface Supplement { id ?: number | string; From ed9af0927b89f2bae0bd71eeed00fa21f052c048 Mon Sep 17 00:00:00 2001 From: "Christopher S. Case" Date: Tue, 10 Dec 2024 02:31:01 -0600 Subject: [PATCH 2/3] more model cleanup. --- knexfile.ts | 8 ++++---- src/client/components/character/addEditModal.vue | 2 +- src/client/components/character/charThumbnail.vue | 2 +- src/client/components/character/deleteModal.vue | 2 +- src/client/components/character/scopeBadge.vue | 2 +- .../components/character/supplementSearch.vue | 2 +- .../components/character/supplementSelect.vue | 2 +- src/client/components/notes/addEditModal.vue | 2 +- src/client/components/notes/deleteModal.vue | 2 +- src/client/components/notes/noteBook.vue | 2 +- src/client/components/systems/coc/bioCard.vue | 4 ++-- src/client/components/systems/coc/charCard.vue | 4 ++-- src/client/components/systems/coc/cocCharacter.vue | 4 ++-- .../components/systems/coc/modals/editBioModal.vue | 4 ++-- .../coc/modals/editCharacteristicsModal.vue | 4 ++-- src/client/components/systems/coc/rollsBlock.vue | 2 +- src/client/components/systems/eote/armorCard.vue | 2 +- src/client/components/systems/eote/bioCard.vue | 2 +- src/client/components/systems/eote/charCard.vue | 2 +- .../systems/eote/components/criticalCard.vue | 2 +- .../systems/eote/components/forcePowerCard.vue | 2 +- .../systems/eote/components/qualityEdit.vue | 2 +- .../systems/eote/components/talentCard.vue | 2 +- .../components/systems/eote/criticalsCard.vue | 2 +- .../components/systems/eote/defensesCard.vue | 2 +- .../components/systems/eote/eoteCharacter.vue | 2 +- src/client/components/systems/eote/expCard.vue | 2 +- src/client/components/systems/eote/forcePool.vue | 2 +- src/client/components/systems/eote/forcePowers.vue | 2 +- .../systems/eote/modals/addEditAbilityModal.vue | 2 +- .../eote/modals/addEditForcePowersModal.vue | 2 +- .../systems/eote/modals/addEditMotivationModal.vue | 2 +- .../systems/eote/modals/addEditQualityModal.vue | 2 +- .../systems/eote/modals/addEditTalentModal.vue | 2 +- .../systems/eote/modals/editArmorModal.vue | 2 +- .../systems/eote/modals/editBiographyModal.vue | 2 +- .../eote/modals/editCharacteristicsModal.vue | 2 +- .../systems/eote/modals/editDefensesModal.vue | 2 +- .../systems/eote/modals/editExperienceModal.vue | 2 +- .../systems/eote/modals/editForcePowersModal.vue | 2 +- .../systems/eote/modals/editMotivationsModal.vue | 2 +- .../systems/eote/modals/editSkillsModal.vue | 2 +- .../systems/eote/modals/editTalentsModal.vue | 2 +- .../systems/eote/modals/editWeaponsModal.vue | 2 +- .../systems/eote/modals/editWoundsModal.vue | 2 +- .../components/systems/eote/motivationsCard.vue | 2 +- src/client/components/systems/eote/rollsCard.vue | 2 +- src/client/components/systems/eote/skillsCard.vue | 2 +- .../components/systems/eote/sub/eoteTalents.vue | 2 +- .../components/systems/eote/sub/genesysTalents.vue | 2 +- src/client/components/systems/eote/sub/tierRow.vue | 2 +- src/client/components/systems/eote/talentsCard.vue | 2 +- src/client/components/systems/eote/weaponsCard.vue | 2 +- src/client/components/systems/eote/woundsCard.vue | 2 +- src/client/components/systems/fate/aspectsCard.vue | 2 +- .../components/systems/fate/consequencesCard.vue | 2 +- .../components/systems/fate/editAspectsModal.vue | 2 +- .../systems/fate/editConsequencesModal.vue | 2 +- .../components/systems/fate/editIdentityModal.vue | 4 ++-- .../components/systems/fate/editSkillsModal.vue | 2 +- .../components/systems/fate/editStuntsModal.vue | 2 +- .../components/systems/fate/fateCharacter.vue | 4 ++-- .../components/systems/fate/identityCard.vue | 4 ++-- src/client/components/systems/fate/rollsCard.vue | 2 +- src/client/components/systems/fate/skillsCard.vue | 2 +- src/client/components/systems/fate/stressCard.vue | 2 +- src/client/components/systems/fate/stuntsCard.vue | 2 +- src/client/components/systems/risus/bioCard.vue | 4 ++-- .../components/systems/risus/clichesCard.vue | 4 ++-- .../components/systems/risus/editBioModal.vue | 4 ++-- .../components/systems/risus/editClichesModal.vue | 2 +- .../components/systems/risus/editHooksModal.vue | 2 +- src/client/components/systems/risus/hooksCard.vue | 4 ++-- .../components/systems/risus/risusCharacter.vue | 4 ++-- src/client/components/systems/risus/rollsBlock.vue | 2 +- src/client/components/systems/wfrp/bioCard.vue | 2 +- .../components/systems/wfrp/editBioModal.vue | 4 ++-- .../components/systems/wfrp/editSkillsModal.vue | 2 +- .../components/systems/wfrp/editStatsModal.vue | 2 +- src/client/components/systems/wfrp/skillsCard.vue | 4 ++-- src/client/components/systems/wfrp/statsCard.vue | 4 ++-- .../components/systems/wfrp/wfrpCharacter.vue | 4 ++-- src/client/index.html | 2 +- src/client/lib/managers/character.ts | 2 +- src/client/lib/managers/systems.ts | 2 +- src/client/lib/managers/systems/eote.ts | 8 ++++---- src/client/lib/models/account.ts | 2 +- src/client/lib/models/notebook.ts | 2 +- src/client/lib/resource-access/auth.ts | 2 +- src/client/lib/resource-access/character.ts | 2 +- src/client/lib/resource-access/permissions.ts | 2 +- src/client/lib/resource-access/roles.ts | 2 +- src/client/lib/resource-access/supplement.ts | 4 ++-- src/client/lib/resource-access/systems.ts | 2 +- src/client/lib/stores/characters.ts | 2 +- src/client/lib/stores/colorMode.ts | 4 ++-- src/client/lib/stores/systems.ts | 2 +- src/client/lib/stores/systems/eote.ts | 6 +++--- src/client/lib/stores/systems/genesys.ts | 6 +++--- src/client/lib/utils/dice-systems/eote.ts | 2 +- src/client/lib/utils/dice.ts | 2 +- src/client/pages/dashboardPage.vue | 2 +- src/client/scss/_custom.scss | 1 - src/common/interfaces/common.ts | 14 -------------- src/common/{interfaces => }/models/account.ts | 0 src/common/{interfaces => }/models/character.ts | 0 src/common/{interfaces => }/models/colorMode.ts | 0 src/common/{interfaces => }/models/dice.ts | 0 src/common/models/index.ts | 14 ++++++++++++++ src/common/{interfaces => }/models/messages.ts | 0 src/common/{interfaces => }/models/notebook.ts | 0 src/common/{interfaces => }/models/reference.ts | 0 src/common/{interfaces => }/models/role.ts | 0 src/common/{interfaces => }/models/supplement.ts | 0 src/common/{interfaces => }/models/system.ts | 0 src/common/{interfaces => models}/systems/coc.ts | 2 +- src/common/{interfaces => models}/systems/eote.ts | 6 +++--- src/common/{interfaces => models}/systems/fate.ts | 0 src/common/models/systems/index.ts | 13 +++++++++++++ src/common/{interfaces => models}/systems/risus.ts | 0 .../{interfaces => models}/systems/supplements.ts | 0 src/common/{interfaces => models}/systems/wfrp.ts | 0 src/server/auth/google.ts | 2 +- src/server/auth/serialization.ts | 2 +- src/{common => server}/interfaces/config.ts | 0 src/server/knex/seeds/admin_role.ts | 2 +- src/server/knex/seeds/coc_references.ts | 2 +- src/server/knex/seeds/eote_attachments.ts | 2 +- src/server/knex/seeds/eote_qualities.ts | 2 +- src/server/knex/seeds/eote_references.ts | 2 +- src/server/knex/seeds/eote_talents.ts | 2 +- src/server/managers/account.ts | 2 +- src/server/managers/character.ts | 2 +- src/server/managers/notebook.ts | 2 +- src/server/managers/reference.ts | 2 +- src/server/managers/role.ts | 2 +- src/server/managers/supplement.ts | 10 +++++----- src/server/models/character.ts | 2 +- src/server/resource-access/account.ts | 2 +- src/server/resource-access/character.ts | 2 +- src/server/resource-access/notebook.ts | 4 ++-- src/server/resource-access/reference.ts | 2 +- src/server/resource-access/role.ts | 2 +- src/server/resource-access/supplement.ts | 4 ++-- src/server/resource-access/system.ts | 2 +- src/server/resource-access/transforms/account.ts | 2 +- src/server/resource-access/transforms/character.ts | 2 +- src/server/resource-access/transforms/notebook.ts | 2 +- src/server/resource-access/transforms/reference.ts | 4 ++-- src/server/resource-access/transforms/role.ts | 2 +- .../resource-access/transforms/supplement.ts | 2 +- src/server/server.ts | 2 +- src/server/systems/base.ts | 4 ++-- src/server/systems/coc/defaults.ts | 4 ++-- src/server/systems/coc/system.ts | 2 +- src/server/systems/eote/system.ts | 4 ++-- src/server/systems/eote/validations.ts | 4 ++-- src/server/systems/wfrp/system.ts | 2 +- src/server/utils/database.ts | 2 +- src/server/utils/permissions.ts | 4 ++-- src/server/utils/sio.ts | 2 +- vite.config.ts | 2 +- 162 files changed, 213 insertions(+), 201 deletions(-) delete mode 100644 src/common/interfaces/common.ts rename src/common/{interfaces => }/models/account.ts (100%) rename src/common/{interfaces => }/models/character.ts (100%) rename src/common/{interfaces => }/models/colorMode.ts (100%) rename src/common/{interfaces => }/models/dice.ts (100%) create mode 100644 src/common/models/index.ts rename src/common/{interfaces => }/models/messages.ts (100%) rename src/common/{interfaces => }/models/notebook.ts (100%) rename src/common/{interfaces => }/models/reference.ts (100%) rename src/common/{interfaces => }/models/role.ts (100%) rename src/common/{interfaces => }/models/supplement.ts (100%) rename src/common/{interfaces => }/models/system.ts (100%) rename src/common/{interfaces => models}/systems/coc.ts (97%) rename src/common/{interfaces => models}/systems/eote.ts (98%) rename src/common/{interfaces => models}/systems/fate.ts (100%) create mode 100644 src/common/models/systems/index.ts rename src/common/{interfaces => models}/systems/risus.ts (100%) rename src/common/{interfaces => models}/systems/supplements.ts (100%) rename src/common/{interfaces => models}/systems/wfrp.ts (100%) rename src/{common => server}/interfaces/config.ts (100%) diff --git a/knexfile.ts b/knexfile.ts index 25cd05e3..49127a82 100644 --- a/knexfile.ts +++ b/knexfile.ts @@ -6,7 +6,7 @@ import 'dotenv/config'; import configUtil from '@strata-js/util-config'; import type { Knex } from 'knex'; -import { ServerConfig } from './src/common/interfaces/config'; +import { ServerConfig } from './src/server/interfaces/config'; //---------------------------------------------------------------------------------------------------------------------- @@ -18,11 +18,11 @@ configUtil.load(`./config/${ env }.yml`); module.exports = { ...configUtil.get().database ?? {}, migrations: { - directory: './src/server/knex/migrations' + directory: './src/server/knex/migrations', }, seeds: { - directory: './src/server/knex/seeds' - } + directory: './src/server/knex/seeds', + }, } satisfies Knex.Config; //---------------------------------------------------------------------------------------------------------------------- diff --git a/src/client/components/character/addEditModal.vue b/src/client/components/character/addEditModal.vue index ec99137a..095b53dc 100644 --- a/src/client/components/character/addEditModal.vue +++ b/src/client/components/character/addEditModal.vue @@ -206,7 +206,7 @@ import { maxLength, minLength, required } from '@vuelidate/validators'; // Interfaces - import { Character } from '../../../common/interfaces/common'; + import { Character } from '../../../common/models'; // Managers import systemsMan from '../../lib/managers/systems'; diff --git a/src/client/components/character/charThumbnail.vue b/src/client/components/character/charThumbnail.vue index 29f0187a..f70de40e 100644 --- a/src/client/components/character/charThumbnail.vue +++ b/src/client/components/character/charThumbnail.vue @@ -51,7 +51,7 @@