mirror of
https://github.com/Pandipipas/scoreko-dev.git
synced 2026-06-06 03:32:06 +00:00
3.2 KiB
3.2 KiB
Plan de Migración
Warning
Este plan está diseñado para evitar regresiones y mantener un estado "compilable" en todo momento. Se debe ejecutar estrictamente de backend a frontend, y de lógica pura a UI.
Paso 1: Estabilización del Shared y Tipos
- Acciones:
- Mover utilidades genéricas (como la lista de
countries, funciones de manipulación de strings) asrc/shared/utils/. - Refinar y consolidar los tipos en
src/shared/types/para que representen el dominio real. - Eliminar tipos parciales o duplicados dispersos en el código.
- Mover utilidades genéricas (como la lista de
- Riesgo: Bajo. Gran parte es movimiento y ajuste de imports.
Paso 2: Refactor del Backend (Extension)
- Acciones:
- Reescritura controlada de integraciones: Dividir
startgg.tsen:services/startgg.ts(lógica de negocio y transformaciones).api/startgg.ts(GraphQL / HTTP requests).oauth/startgg.ts(flujo OAuth).nodecg-bindings/startgg.ts(vinculación exclusiva denodecg.listenFor).
- Repetir la misma división para
challonge.ts. - Mover cualquier otra utilidad de backend a
extension/utils/.
- Reescritura controlada de integraciones: Dividir
- Riesgo: Moderado. Requiere trasladar código con cuidado para no romper las firmas de los métodos.
Paso 3: Refactor del Estado del Dashboard (Stores)
- Acciones:
- Limpiar
store-sync.ts. Reducir la complejidad y sobre-ingeniería generada por el uso dellocalStorage. - Asegurar que Pinia dependa directa y limpiamente de los Replicantes como fuente de datos real.
- Garantizar que los stores exporten acciones limpias, evitando que el estado interno se mute manualmente desde los componentes de la vista.
- Limpiar
- Riesgo: Medio. Afecta el flujo de reactividad base de la UI.
Paso 4: Modularización de los Componentes Grandes (Dashboard)
- Acciones:
- Reescritura/División controlada de
Players.vue:- Extraer modales a componentes independientes (ej.
ImportDialog.vue,PlayerEditDialog.vue). - Extraer los selectores de integración a componentes puros (
StartGGPanel.vue,ChallongePanel.vue). - Reemplazar los SVGs "hardcodeados" en el template por un componente dedicado o usar la librería de iconos de Quasar.
- Extraer modales a componentes independientes (ej.
- Extraer partes de vistas monolíticas (
PlayerSidePanel.vue) en sub-componentes especializados.
- Reescritura/División controlada de
- Riesgo: Medio. Afecta directamente a la UI. Es crítico asegurar que los eventos (
emits) se propagen y conecten correctamente.
Paso 5: Refactor de los Gráficos (Scoreboard)
- Acciones:
- Reescritura controlada de
main.vue:- Extraer la lógica de ajuste de fuente a un archivo dedicado, ya sea como directiva o función:
graphics/shared/utils/fitText.ts(ov-fit-text). - Extraer la lógica de resolución de banderas (flags) y su caché a un composable dedicado:
useFlag(countryCode). - Extraer el control de animaciones y timeouts a
useScoreAnimation(scoreRef). - Dividir el DOM en componentes claros:
<BackgroundPanel>,<PlayerInfo side="left">,<ScoreDisplay>, orquestados desdeApp.vue(omain.vuesimplificado).
- Extraer la lógica de ajuste de fuente a un archivo dedicado, ya sea como directiva o función:
- Reescritura controlada de
- Riesgo: Alto. Las animaciones y cálculos visuales de DOM son delicados. El objetivo visual final debe ser idéntico, y el comportamiento ante cambios de Replicants debe mantenerse exacto.