From 476aebb16bf932a6de454f656904d0fe31569af6 Mon Sep 17 00:00:00 2001 From: AthenaHibou <13084046220@163.com> Date: Thu, 12 Nov 2026 15:05:05 +0800 Subject: [PATCH 1/5] =?UTF-8?q?feat(okww):=20=E6=94=AF=E6=8C=81=E6=8C=89?= =?UTF-8?q?=E6=97=A5=E6=9C=9F=E7=BC=96=E6=8E=92=E6=97=A5=E5=B8=B8=E5=88=B7?= =?UTF-8?q?=E6=9C=AC=E8=AE=A1=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/plan.py | 14 +- app/core/config/manager.py | 12 +- app/models/config/__init__.py | 8 + app/models/config/plan.py | 91 ++++++++- app/models/config/script.py | 50 ++--- app/models/config/shared.py | 43 +++- app/models/schema.py | 4 +- app/task/Okww/AutoProxy.py | 18 +- app/task/Okww/BatchProxy.py | 15 +- app/task/Okww/tools/plan.py | 23 +++ app/utils/common/constants.py | 2 +- changelog.d/okww-plan.feat.md | 2 + frontend/e2e/okww-plan.pw.ts | 103 ++++++++++ .../electron/services/analyticsCoverage.md | 2 + .../services/analyticsFeaturePolicy.ts | 1 + frontend/src/api/index.ts | 83 ++++++++ frontend/src/api/models/OkwwPlanConfig.ts | 87 ++++++++ .../src/api/models/OkwwPlanConfigInput.ts | 87 ++++++++ frontend/src/api/models/OkwwPlanConfig_ALL.ts | 12 ++ .../src/api/models/OkwwPlanConfig_ALLInput.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day1.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day10.ts | 12 ++ .../api/models/OkwwPlanConfig_Day10Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day11.ts | 12 ++ .../api/models/OkwwPlanConfig_Day11Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day12.ts | 12 ++ .../api/models/OkwwPlanConfig_Day12Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day13.ts | 12 ++ .../api/models/OkwwPlanConfig_Day13Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day14.ts | 12 ++ .../api/models/OkwwPlanConfig_Day14Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day15.ts | 12 ++ .../api/models/OkwwPlanConfig_Day15Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day16.ts | 12 ++ .../api/models/OkwwPlanConfig_Day16Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day17.ts | 12 ++ .../api/models/OkwwPlanConfig_Day17Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day18.ts | 12 ++ .../api/models/OkwwPlanConfig_Day18Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day19.ts | 12 ++ .../api/models/OkwwPlanConfig_Day19Input.ts | 12 ++ .../api/models/OkwwPlanConfig_Day1Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day2.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day20.ts | 12 ++ .../api/models/OkwwPlanConfig_Day20Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day21.ts | 12 ++ .../api/models/OkwwPlanConfig_Day21Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day22.ts | 12 ++ .../api/models/OkwwPlanConfig_Day22Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day23.ts | 12 ++ .../api/models/OkwwPlanConfig_Day23Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day24.ts | 12 ++ .../api/models/OkwwPlanConfig_Day24Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day25.ts | 12 ++ .../api/models/OkwwPlanConfig_Day25Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day26.ts | 12 ++ .../api/models/OkwwPlanConfig_Day26Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day27.ts | 12 ++ .../api/models/OkwwPlanConfig_Day27Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day28.ts | 12 ++ .../api/models/OkwwPlanConfig_Day28Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day29.ts | 12 ++ .../api/models/OkwwPlanConfig_Day29Input.ts | 12 ++ .../api/models/OkwwPlanConfig_Day2Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day3.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day30.ts | 12 ++ .../api/models/OkwwPlanConfig_Day30Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day31.ts | 12 ++ .../api/models/OkwwPlanConfig_Day31Input.ts | 12 ++ .../api/models/OkwwPlanConfig_Day3Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day4.ts | 12 ++ .../api/models/OkwwPlanConfig_Day4Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day5.ts | 12 ++ .../api/models/OkwwPlanConfig_Day5Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day6.ts | 12 ++ .../api/models/OkwwPlanConfig_Day6Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day7.ts | 12 ++ .../api/models/OkwwPlanConfig_Day7Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day8.ts | 12 ++ .../api/models/OkwwPlanConfig_Day8Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Day9.ts | 12 ++ .../api/models/OkwwPlanConfig_Day9Input.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Friday.ts | 12 ++ .../api/models/OkwwPlanConfig_FridayInput.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Info.ts | 19 ++ .../api/models/OkwwPlanConfig_InfoInput.ts | 19 ++ .../src/api/models/OkwwPlanConfig_Monday.ts | 12 ++ .../api/models/OkwwPlanConfig_MondayInput.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Saturday.ts | 12 ++ .../models/OkwwPlanConfig_SaturdayInput.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Sunday.ts | 12 ++ .../api/models/OkwwPlanConfig_SundayInput.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Thursday.ts | 12 ++ .../models/OkwwPlanConfig_ThursdayInput.ts | 12 ++ .../src/api/models/OkwwPlanConfig_Tuesday.ts | 12 ++ .../api/models/OkwwPlanConfig_TuesdayInput.ts | 12 ++ .../api/models/OkwwPlanConfig_Wednesday.ts | 12 ++ .../models/OkwwPlanConfig_WednesdayInput.ts | 12 ++ frontend/src/api/models/OkwwPlanKey.ts | 31 +++ .../src/api/models/OkwwUserConfig_Info.ts | 4 + .../api/models/OkwwUserConfig_InfoInput.ts | 4 + frontend/src/api/models/PlanComboxIn.ts | 1 + frontend/src/api/models/PlanConfigData.ts | 3 +- .../src/api/models/PlanConfigDataInput.ts | 3 +- frontend/src/api/models/PlanCreateIn.ts | 1 + frontend/src/api/models/PlanIndexItem.ts | 1 + frontend/src/types/analytics.d.ts | 1 + frontend/src/utils/okwwTaskOptions.ts | 18 ++ frontend/src/utils/planTypeRegistry.ts | 11 ++ .../src/views/EditView/User/OkwwUserEdit.vue | 27 +-- .../EditView/User/UniversalPlanSelector.vue | 9 +- .../User/components/OkwwAccountPlan.vue | 46 +++++ .../User/components/OkwwTaskConfigSection.vue | 20 +- .../src/views/plan/tables/OkwwPlanTable.vue | 186 ++++++++++++++++++ res/i18n/en.json | 6 + res/i18n/ja.json | 6 + res/i18n/zh_CN.json | 6 + tests/task/test_okww_plan.py | 148 ++++++++++++++ 118 files changed, 2039 insertions(+), 112 deletions(-) create mode 100644 app/task/Okww/tools/plan.py create mode 100644 changelog.d/okww-plan.feat.md create mode 100644 frontend/e2e/okww-plan.pw.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig.ts create mode 100644 frontend/src/api/models/OkwwPlanConfigInput.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_ALL.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_ALLInput.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day1.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day10.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day10Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day11.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day11Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day12.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day12Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day13.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day13Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day14.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day14Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day15.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day15Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day16.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day16Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day17.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day17Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day18.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day18Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day19.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day19Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day1Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day2.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day20.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day20Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day21.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day21Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day22.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day22Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day23.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day23Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day24.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day24Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day25.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day25Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day26.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day26Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day27.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day27Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day28.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day28Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day29.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day29Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day2Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day3.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day30.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day30Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day31.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day31Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day3Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day4.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day4Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day5.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day5Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day6.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day6Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day7.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day7Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day8.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day8Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day9.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Day9Input.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Friday.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_FridayInput.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Info.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_InfoInput.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Monday.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_MondayInput.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Saturday.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_SaturdayInput.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Sunday.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_SundayInput.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Thursday.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_ThursdayInput.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Tuesday.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_TuesdayInput.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_Wednesday.ts create mode 100644 frontend/src/api/models/OkwwPlanConfig_WednesdayInput.ts create mode 100644 frontend/src/api/models/OkwwPlanKey.ts create mode 100644 frontend/src/utils/okwwTaskOptions.ts create mode 100644 frontend/src/views/EditView/User/components/OkwwAccountPlan.vue create mode 100644 frontend/src/views/plan/tables/OkwwPlanTable.vue create mode 100644 tests/task/test_okww_plan.py diff --git a/app/api/plan.py b/app/api/plan.py index 6bf229fe05..d1a03aaeba 100644 --- a/app/api/plan.py +++ b/app/api/plan.py @@ -36,6 +36,9 @@ from app.models.schema import OutBase from app.utils import get_logger +OkwwPlanConfig = ConfigPayload[_config_models.OkwwPlanConfig] +OkwwPlanConfigInput = StrictConfigInput[_config_models.OkwwPlanConfig] + OkNtePlanConfig = ConfigPayload[_config_models.OkNtePlanConfig] OkNtePlanConfigInput = StrictConfigInput[_config_models.OkNtePlanConfig] @@ -58,6 +61,7 @@ "MSSPlanConfig", "UniversalPlanConfig", "OkNtePlanConfig", + "OkwwPlanConfig", ] @@ -67,7 +71,13 @@ class PlanIndexItem(BaseModel): PlanCreateType = Literal[ - "MaaPlan", "MaaEndPlan", "BAAHPlan", "MSSPlan", "UniversalPlan", "OkNtePlan" + "MaaPlan", + "MaaEndPlan", + "BAAHPlan", + "MSSPlan", + "UniversalPlan", + "OkNtePlan", + "OkwwPlan", ] @@ -78,6 +88,7 @@ class PlanIndexItem(BaseModel): | MSSPlanConfig | UniversalPlanConfig | OkNtePlanConfig + | OkwwPlanConfig ) type PlanConfigDataInput = ( MaaPlanConfigInput @@ -86,6 +97,7 @@ class PlanIndexItem(BaseModel): | MSSPlanConfigInput | UniversalPlanConfigInput | OkNtePlanConfigInput + | OkwwPlanConfigInput ) diff --git a/app/core/config/manager.py b/app/core/config/manager.py index 9f3645adce..1e586509fb 100644 --- a/app/core/config/manager.py +++ b/app/core/config/manager.py @@ -92,6 +92,7 @@ OkNtePlanConfig, OkNteUserConfig, OkwwConfig, + OkwwPlanConfig, OkwwUserConfig, PlanConfigType, QueueConfig, @@ -1631,7 +1632,13 @@ async def reorder_user(self, script_id: str, index_list: list[str]) -> None: async def add_plan( self, script: Literal[ - "MaaPlan", "MaaEndPlan", "BAAHPlan", "MSSPlan", "UniversalPlan", "OkNtePlan" + "MaaPlan", + "MaaEndPlan", + "BAAHPlan", + "MSSPlan", + "UniversalPlan", + "OkNtePlan", + "OkwwPlan", ], *, payload: dict[str, Any] | None = None, @@ -1643,7 +1650,8 @@ async def add_plan( | BAAHPlanConfig | MSSPlanConfig | UniversalPlanConfig - | OkNtePlanConfig, + | OkNtePlanConfig + | OkwwPlanConfig, ]: """添加计划表""" diff --git a/app/models/config/__init__.py b/app/models/config/__init__.py index f8a31d3f7c..f53d81bc1c 100644 --- a/app/models/config/__init__.py +++ b/app/models/config/__init__.py @@ -62,6 +62,14 @@ class _PlanRegistration(TypedDict): PLAN_BOOK: dict[str, _PlanRegistration] = { + "OkwwPlanConfig": { + "create_type": "OkwwPlan", + "config_class": OkwwPlanConfig, + "consumer": PLAN_CONSUMER_VALUES[6], + "script_class": OkwwConfig, + "field_group": "Info", + "field_name": "PlanMode", + }, "OkNtePlanConfig": { "create_type": "OkNtePlan", "config_class": OkNtePlanConfig, diff --git a/app/models/config/plan.py b/app/models/config/plan.py index 728ac5c543..17aab5e979 100644 --- a/app/models/config/plan.py +++ b/app/models/config/plan.py @@ -26,7 +26,7 @@ from typing import Annotated, Literal from uuid import UUID -from pydantic import Field +from pydantic import BeforeValidator, ConfigDict, Field, create_model from app.config import ( ConfigGroup, @@ -37,6 +37,7 @@ from .base import DomainEntry from .shared import ( + OkwwTaskFields, default_baah_plan_key, none_as, normalize_baah_plan_key, @@ -767,6 +768,92 @@ class InfoFields(ConfigGroup): Info: InfoFields = Field(default_factory=InfoFields) +# 日常字段只声明一次;计划中的空值表示继承,不把默认值当作当天覆写。 +OkwwPlanKey = create_model( + "OkwwPlanKey", + __config__=ConfigDict(extra="forbid"), + **{ + name: ( + Annotated[field.annotation | None, *metadata] + if ( + metadata := [ + item + for item in field.metadata + if not isinstance(item, BeforeValidator) + ] + ) + else field.annotation | None, + Field(default=None, description=field.description), + ) + for name, field in OkwwTaskFields.model_fields.items() + }, +) + + +class OkwwPlanConfig(WeeklyKeyPlan): + """按日叠加日常体力参数,其他账号配置保持原有来源。""" + + class DayFields(ConfigGroup): + Key: OkwwPlanKey = Field( + default_factory=lambda: OkwwPlanKey( + WhichToFarm="Tacet Suppression", + WhichTacetSuppressionToFarm=1, + WhichForgeryChallengeToFarm=1, + MaterialSelection="Shell Credit", + ), + description="体力计划参数", + ) + + ALL: DayFields = Field(default_factory=DayFields) + Monday: DayFields = Field(default_factory=DayFields) + Tuesday: DayFields = Field(default_factory=DayFields) + Wednesday: DayFields = Field(default_factory=DayFields) + Thursday: DayFields = Field(default_factory=DayFields) + Friday: DayFields = Field(default_factory=DayFields) + Saturday: DayFields = Field(default_factory=DayFields) + Sunday: DayFields = Field(default_factory=DayFields) + Day1: DayFields = Field(default_factory=DayFields) + Day2: DayFields = Field(default_factory=DayFields) + Day3: DayFields = Field(default_factory=DayFields) + Day4: DayFields = Field(default_factory=DayFields) + Day5: DayFields = Field(default_factory=DayFields) + Day6: DayFields = Field(default_factory=DayFields) + Day7: DayFields = Field(default_factory=DayFields) + Day8: DayFields = Field(default_factory=DayFields) + Day9: DayFields = Field(default_factory=DayFields) + Day10: DayFields = Field(default_factory=DayFields) + Day11: DayFields = Field(default_factory=DayFields) + Day12: DayFields = Field(default_factory=DayFields) + Day13: DayFields = Field(default_factory=DayFields) + Day14: DayFields = Field(default_factory=DayFields) + Day15: DayFields = Field(default_factory=DayFields) + Day16: DayFields = Field(default_factory=DayFields) + Day17: DayFields = Field(default_factory=DayFields) + Day18: DayFields = Field(default_factory=DayFields) + Day19: DayFields = Field(default_factory=DayFields) + Day20: DayFields = Field(default_factory=DayFields) + Day21: DayFields = Field(default_factory=DayFields) + Day22: DayFields = Field(default_factory=DayFields) + Day23: DayFields = Field(default_factory=DayFields) + Day24: DayFields = Field(default_factory=DayFields) + Day25: DayFields = Field(default_factory=DayFields) + Day26: DayFields = Field(default_factory=DayFields) + Day27: DayFields = Field(default_factory=DayFields) + Day28: DayFields = Field(default_factory=DayFields) + Day29: DayFields = Field(default_factory=DayFields) + Day30: DayFields = Field(default_factory=DayFields) + Day31: DayFields = Field(default_factory=DayFields) + + class InfoFields(ConfigGroup): + Name: str = Field(default="新 Okww 计划表", description="计划表名称") + Mode: Literal["ALL", "Weekly", "Rotate"] = Field( + default="Weekly", description="计划模式" + ) + RotateDays: int = Field(default=7, ge=1, le=31, description="轮换天数") + + Info: InfoFields = Field(default_factory=InfoFields) + + type PlanConfigType = ( MaaPlanConfig | MaaEndPlanConfig @@ -774,12 +861,14 @@ class InfoFields(ConfigGroup): | MSSPlanConfig | UniversalPlanConfig | OkNtePlanConfig + | OkwwPlanConfig ) __all__ = [ "PlanConfigType", "OkNtePlanConfig", + "OkwwPlanConfig", "UniversalPlanConfig", "WeeklyKeyPlan", "MaaPlanConfig", diff --git a/app/models/config/script.py b/app/models/config/script.py index c95f24f22e..8982b3d05b 100644 --- a/app/models/config/script.py +++ b/app/models/config/script.py @@ -64,11 +64,13 @@ MaaPlanConfig, MSSPlanConfig, OkNtePlanConfig, + OkwwPlanConfig, UniversalPlanConfig, ) from .queue import Webhook from .shared import ( _BGI_LEGACY_SERVERS_TO_RESOURCE, + OkwwTaskFields, SRAProfileName, _migrate_baah_event_first, _migrate_bgi_account_switch_default, @@ -2947,6 +2949,16 @@ class DataFields(ConfigGroup): Data: DataFields = Field(default_factory=DataFields) class InfoFields(ConfigGroup): + PlanMode: Annotated[ + UUID | Literal["Fixed"], + ref( + "PlanConfig", + default="Fixed", + allow_values=("Fixed",), + entry_types=(OkwwPlanConfig,), + ), + ] = Field(default="Fixed", description="固定配置或 Okww 计划表") + Base: Annotated[ Literal["shared", "independent", "native"], legacy( @@ -3044,43 +3056,7 @@ class NotifyFields(ConfigGroup): Notify: NotifyFields = Field(default_factory=NotifyFields) - class TaskFields(ConfigGroup): - AdditionalTasks: list[ - Literal[ - "Check Weekly Garden", - "Auto Farm all Nightmare Nest", - "Merge Echo If discarded > 1000", - "Teleport and Farm 4C Echo", - ] - ] = Field( - default_factory=lambda: ["Check Weekly Garden"], - description="每日任务后运行的附加任务", - ) - - FarmNightmareNestForDailyEcho: bool = Field( - default_factory=lambda: True, description="使用梦魇巢穴完成日常声骸" - ) - - MaterialSelection: Literal["Resonator EXP", "Weapon EXP", "Shell Credit"] = ( - Field(default_factory=lambda: "Shell Credit", description="模拟领域材料") - ) - - WhichForgeryChallengeToFarm: Annotated[int, Field(ge=1, le=99), none_as(1)] = ( - Field(default_factory=lambda: 1, description="凝素领域序号") - ) - - WhichTacetSuppressionToFarm: Annotated[int, Field(ge=1, le=99), none_as(1)] = ( - Field(default_factory=lambda: 1, description="无音区序号") - ) - - WhichToFarm: Literal[ - "Tacet Suppression", "Forgery Challenge", "Simulation Challenge" - ] = Field( - default_factory=lambda: "Tacet Suppression", - description="每日任务体力用途(仅日常任务且开启覆写常规配置时生效)", - ) - - Task: TaskFields = Field(default_factory=TaskFields) + Task: OkwwTaskFields = Field(default_factory=OkwwTaskFields) Notify_CustomWebhooks: ConfigCollection[Webhook] = collection(Webhook) def getTags(self) -> str: diff --git a/app/models/config/shared.py b/app/models/config/shared.py index 33d2f7d20f..b3631ec8d9 100644 --- a/app/models/config/shared.py +++ b/app/models/config/shared.py @@ -24,9 +24,11 @@ import json from copy import deepcopy from datetime import datetime, timezone, tzinfo -from typing import TYPE_CHECKING, Annotated, Any, cast +from typing import TYPE_CHECKING, Annotated, Any, Literal, cast -from pydantic import BeforeValidator, TypeAdapter +from pydantic import BeforeValidator, Field, TypeAdapter + +from app.config import ConfigGroup if TYPE_CHECKING: from .script import UserConfigType @@ -536,3 +538,40 @@ def _migrate_baah_event_first(data: dict) -> tuple[dict, bool]: "validate_baah_plan_key", "validate_maaend_plan_key", ] + + +class OkwwTaskFields(ConfigGroup): + AdditionalTasks: list[ + Literal[ + "Check Weekly Garden", + "Auto Farm all Nightmare Nest", + "Merge Echo If discarded > 1000", + "Teleport and Farm 4C Echo", + ] + ] = Field( + default_factory=lambda: ["Check Weekly Garden"], + description="每日任务后运行的附加任务", + ) + + FarmNightmareNestForDailyEcho: bool = Field( + default_factory=lambda: True, description="使用梦魇巢穴完成日常声骸" + ) + + MaterialSelection: Literal["Resonator EXP", "Weapon EXP", "Shell Credit"] = Field( + default_factory=lambda: "Shell Credit", description="模拟领域材料" + ) + + WhichForgeryChallengeToFarm: Annotated[int, Field(ge=1, le=99), none_as(1)] = Field( + default_factory=lambda: 1, description="凝素领域序号" + ) + + WhichTacetSuppressionToFarm: Annotated[int, Field(ge=1, le=99), none_as(1)] = Field( + default_factory=lambda: 1, description="无音区序号" + ) + + WhichToFarm: Literal[ + "Tacet Suppression", "Forgery Challenge", "Simulation Challenge" + ] = Field( + default_factory=lambda: "Tacet Suppression", + description="每日任务体力用途(日常任务按账号覆写或绑定计划生效)", + ) diff --git a/app/models/schema.py b/app/models/schema.py index a98944ceae..3f0fa67410 100644 --- a/app/models/schema.py +++ b/app/models/schema.py @@ -370,7 +370,9 @@ class EmulatorDeleteIn(BaseModel): emulatorId: str = Field(..., description="模拟器 ID") -PlanComboxConsumer = Literal["maa", "maaend", "baah", "mss", "universal", "oknte"] +PlanComboxConsumer = Literal[ + "maa", "maaend", "baah", "mss", "universal", "oknte", "okww" +] class MaaEndAutoEssencePlanKey(BaseModel): diff --git a/app/task/Okww/AutoProxy.py b/app/task/Okww/AutoProxy.py index cccb95f7f5..f563d4e2eb 100644 --- a/app/task/Okww/AutoProxy.py +++ b/app/task/Okww/AutoProxy.py @@ -498,19 +498,11 @@ def _apply_mas_overrides(self) -> None: self.script_config_path / "Basic Options.json", {"Exit App when Game Exits": True}, ) - if not self.cur_user_config.Info.IfQuickConfig: - return - _update_json( - self.script_config_path / "DailyTask.json", - { - "Which to Farm": self.cur_user_config.Task.WhichToFarm, - "Which Tacet Suppression to Farm": self.cur_user_config.Task.WhichTacetSuppressionToFarm, - "Which Forgery Challenge to Farm": self.cur_user_config.Task.WhichForgeryChallengeToFarm, - "Material Selection": self.cur_user_config.Task.MaterialSelection, - "Farm Nightmare Nest for Daily Echo": self.cur_user_config.Task.FarmNightmareNestForDailyEcho, - "Additional Tasks to Run After Daily Task": self.cur_user_config.Task.AdditionalTasks, - }, - ) + from .tools.plan import task_config + + task = task_config(self.cur_user_config) + if task: + _update_json(self.script_config_path / "DailyTask.json", task) async def set_okww(self) -> None: """将 MAS 侧 OK-WW 任务配置下发到脚本 working 目录(对齐 General.set_general)。""" diff --git a/app/task/Okww/BatchProxy.py b/app/task/Okww/BatchProxy.py index d31f0da4d0..e487249e4a 100644 --- a/app/task/Okww/BatchProxy.py +++ b/app/task/Okww/BatchProxy.py @@ -107,17 +107,10 @@ async def prepare(self): ) if not isinstance(values, dict): raise ValueError(f"日常配置格式错误: {daily}") - if config.Info.IfQuickConfig: - values.update( - { - "Which to Farm": config.Task.WhichToFarm, - "Which Tacet Suppression to Farm": config.Task.WhichTacetSuppressionToFarm, - "Which Forgery Challenge to Farm": config.Task.WhichForgeryChallengeToFarm, - "Material Selection": config.Task.MaterialSelection, - "Farm Nightmare Nest for Daily Echo": config.Task.FarmNightmareNestForDailyEcho, - "Additional Tasks to Run After Daily Task": config.Task.AdditionalTasks, - } - ) + from .tools.plan import task_config + + task = task_config(config) + values.update(task) key = normalize_account_key(config.Info.Id) self.account_users[key] = user self.accounts.append( diff --git a/app/task/Okww/tools/plan.py b/app/task/Okww/tools/plan.py new file mode 100644 index 0000000000..139d32dee2 --- /dev/null +++ b/app/task/Okww/tools/plan.py @@ -0,0 +1,23 @@ +"""日常计划覆写;未选择的字段继续使用账号本次配置。""" + +from app.core import Config +from app.models.config import OkwwPlanConfig, OkwwUserConfig + + +def task_config(user: OkwwUserConfig) -> dict: + """将账号覆写与当天计划合并,返回供上游消费的日常参数。""" + values = user.Task.model_dump() if user.Info.IfQuickConfig else {} + if user.Info.PlanMode != "Fixed": + plan = Config.PlanConfig[user.Info.PlanMode] + if not isinstance(plan, OkwwPlanConfig): + raise ValueError("所选计划不是 Okww 计划表") + values.update(plan.get_current_key()) + names = { + "WhichToFarm": "Which to Farm", + "WhichTacetSuppressionToFarm": "Which Tacet Suppression to Farm", + "WhichForgeryChallengeToFarm": "Which Forgery Challenge to Farm", + "MaterialSelection": "Material Selection", + "FarmNightmareNestForDailyEcho": "Farm Nightmare Nest for Daily Echo", + "AdditionalTasks": "Additional Tasks to Run After Daily Task", + } + return {names[name]: value for name, value in values.items() if value is not None} diff --git a/app/utils/common/constants.py b/app/utils/common/constants.py index d74877f2e7..e6de018e4f 100644 --- a/app/utils/common/constants.py +++ b/app/utils/common/constants.py @@ -51,7 +51,7 @@ } """配置类型映射表""" -PLAN_CONSUMER_VALUES = ("maa", "maaend", "baah", "mss", "universal", "oknte") +PLAN_CONSUMER_VALUES = ("maa", "maaend", "baah", "mss", "universal", "oknte", "okww") """计划表消费方列表;PLAN_BOOK 按下标引用此项,往中间插入会把已有类型指到别的 消费方,所以新消费方只能追加到末尾(baah 早于 mss 加入,因此排在它前面)""" diff --git a/changelog.d/okww-plan.feat.md b/changelog.d/okww-plan.feat.md new file mode 100644 index 0000000000..80ba4a52fd --- /dev/null +++ b/changelog.d/okww-plan.feat.md @@ -0,0 +1,2 @@ +project: okww +新增可绑定账号的日常计划,支持全局、每周和多天轮换刷本。 diff --git a/frontend/e2e/okww-plan.pw.ts b/frontend/e2e/okww-plan.pw.ts new file mode 100644 index 0000000000..b9506b6539 --- /dev/null +++ b/frontend/e2e/okww-plan.pw.ts @@ -0,0 +1,103 @@ +import { expect, test } from './fixtures' +const backend = `http://127.0.0.1:${process.env.AUTO_MAS_E2E_BACKEND_PORT ?? 36174}` + +test.describe('@okww-plan', () => { + test('global, weekly and rotating plans save the selected date only', async ({ app, page }) => { + for (const [mode, group, other] of [ + ['ALL', 'ALL', 'Monday'], + ['Weekly', 'Monday', 'Tuesday'], + ['Rotate', 'Day1', 'Day2'], + ]) { + const created = await ( + await page.request.post(`${backend}/api/plan/add`, { data: { type: 'OkwwPlan' } }) + ).json() + await page.request.post(`${backend}/api/plan/update`, { + data: { planId: created.planId, data: { Info: { Mode: mode, RotateDays: 2 } } }, + }) + await app.goto(`/plans?planId=${created.planId}`) + await page.reload() + const table = page.locator('.okww-plan-table') + const number = table.locator('input[role="spinbutton"]').first() + await expect(number).toHaveValue('1') + const saved = page.waitForResponse(r => r.url().includes('/api/plan/update')) + await number.fill('3') + await number.press('Tab') + expect((await (await saved).json()).code).toBe(200) + await page.reload() + await expect(number).toHaveValue('3') + const result = ( + await ( + await page.request.post(`${backend}/api/plan/get`, { data: { planId: created.planId } }) + ).json() + ).data[created.planId] + expect(result[group].Key.WhichTacetSuppressionToFarm).toBe(3) + expect(result[other].Key.WhichTacetSuppressionToFarm).toBe(1) + await expect( + table.getByRole('button', { name: 'Detailed configuration', exact: true }) + ).toHaveCount(0) + } + }) + test('irrelevant cells show a dash and preserve each farming choice', async ({ app, page }) => { + const created = await ( + await page.request.post(`${backend}/api/plan/add`, { data: { type: 'OkwwPlan' } }) + ).json() + await app.goto(`/plans?planId=${created.planId}`) + const row = page.locator('.okww-plan-table tr.ant-table-row').first() + const cells = row.locator('td') + await expect(cells.nth(3)).toHaveText('—') + const chooseFarm = async (label: string) => { + await row.locator('.ant-select').first().click() + const saved = page.waitForResponse(r => r.url().includes('/api/plan/update')) + await page.getByTitle(label, { exact: true }).click() + expect((await (await saved).json()).code).toBe(200) + } + await chooseFarm('模拟领域') + await expect(cells.nth(2)).toHaveText('—') + await expect(cells.nth(2).locator('input')).toHaveCount(0) + await cells.nth(3).locator('.ant-select').click() + const saved = page.waitForResponse(r => r.url().includes('/api/plan/update')) + await page.getByTitle('武器经验', { exact: true }).click() + await saved + await chooseFarm('凝素领域') + await expect(cells.nth(3)).toHaveText('—') + await expect(cells.nth(2).locator('input')).toHaveValue('1') + await chooseFarm('模拟领域') + await expect(cells.nth(3)).toContainText('武器经验') + await page.reload() + await expect(cells.nth(2)).toHaveText('—') + await expect(cells.nth(3)).toContainText('武器经验') + await expect(row.locator('.ant-select-borderless')).toHaveCount(4) + await page.setViewportSize({ width: 1653, height: 1080 }) + await app.evidence('okww-plan-light') + await app.goto('/settings') + await page.locator('.theme-mode-control').getByText('Dark', { exact: true }).click() + await app.goto(`/plans?planId=${created.planId}`) + await expect(page.locator('html')).toHaveClass(/dark/) + await expect(cells.nth(2)).toHaveText('—') + await app.evidence('okww-plan-dark') + }) + test('failed saves retain drafts and retry', async ({ app, page }) => { + const created = await ( + await page.request.post(`${backend}/api/plan/add`, { data: { type: 'OkwwPlan' } }) + ).json() + await app.goto(`/plans?planId=${created.planId}`) + const number = page.locator('.okww-plan-table input[role="spinbutton"]').first() + await expect(number).toHaveValue('1') + await page.route( + '**/api/plan/update', + route => + route.fulfill({ + status: 200, + json: { code: 400, status: 'error', message: 'Injected save failure' }, + }), + { times: 1 } + ) + await number.fill('5') + await number.press('Tab') + await expect(number).toHaveValue('5') + await page.getByRole('button', { name: 'Retry', exact: true }).click() + await expect(page.getByRole('button', { name: 'Retry', exact: true })).toHaveCount(0) + await page.reload() + await expect(number).toHaveValue('5') + }) +}) diff --git a/frontend/electron/services/analyticsCoverage.md b/frontend/electron/services/analyticsCoverage.md index 2b05035846..d48d97b4ed 100644 --- a/frontend/electron/services/analyticsCoverage.md +++ b/frontend/electron/services/analyticsCoverage.md @@ -209,3 +209,5 @@ started 未送达时不发送对应 finished。运行 UUID 只留在本机消息 OkNte 日常计划的快捷表格与详细编辑共享当天字段覆写。快捷保存复用计划编辑事件,详细编辑按保存接口结果记录;不采集日常参数或计划标识。 - Okww 原生多账号任务:任务选择保存复用 `useUserApi.updateUser` 的 `config_write_finished`;批次仍按 MAS 用户归属结果,运行结局沿用 `taskAnalytics.ts` 的现有观察边界,不拆分或采集上游账号、任务配置及日志。 + +Okww 日常计划复用计划管理及保存事件,账号绑定复用用户配置写入事件;不采集计划内容。 diff --git a/frontend/electron/services/analyticsFeaturePolicy.ts b/frontend/electron/services/analyticsFeaturePolicy.ts index 4538314767..c204fff04b 100644 --- a/frontend/electron/services/analyticsFeaturePolicy.ts +++ b/frontend/electron/services/analyticsFeaturePolicy.ts @@ -41,6 +41,7 @@ const plan = [ 'MaaEndPlanConfig', 'BAAHPlanConfig', 'MSSPlanConfig', + 'OkwwPlanConfig', 'OkNtePlanConfig', 'UniversalPlanConfig', 'multi', diff --git a/frontend/src/api/index.ts b/frontend/src/api/index.ts index 1dff4b7bbb..eca1f87855 100644 --- a/frontend/src/api/index.ts +++ b/frontend/src/api/index.ts @@ -983,6 +983,89 @@ export type { OkwwConfig_InfoInput } from './models/OkwwConfig_InfoInput'; export type { OkwwConfig_Run } from './models/OkwwConfig_Run'; export type { OkwwConfig_RunInput } from './models/OkwwConfig_RunInput'; export type { OkwwConfigInput } from './models/OkwwConfigInput'; +export type { OkwwPlanConfig } from './models/OkwwPlanConfig'; +export type { OkwwPlanConfig_ALL } from './models/OkwwPlanConfig_ALL'; +export type { OkwwPlanConfig_ALLInput } from './models/OkwwPlanConfig_ALLInput'; +export type { OkwwPlanConfig_Day1 } from './models/OkwwPlanConfig_Day1'; +export type { OkwwPlanConfig_Day10 } from './models/OkwwPlanConfig_Day10'; +export type { OkwwPlanConfig_Day10Input } from './models/OkwwPlanConfig_Day10Input'; +export type { OkwwPlanConfig_Day11 } from './models/OkwwPlanConfig_Day11'; +export type { OkwwPlanConfig_Day11Input } from './models/OkwwPlanConfig_Day11Input'; +export type { OkwwPlanConfig_Day12 } from './models/OkwwPlanConfig_Day12'; +export type { OkwwPlanConfig_Day12Input } from './models/OkwwPlanConfig_Day12Input'; +export type { OkwwPlanConfig_Day13 } from './models/OkwwPlanConfig_Day13'; +export type { OkwwPlanConfig_Day13Input } from './models/OkwwPlanConfig_Day13Input'; +export type { OkwwPlanConfig_Day14 } from './models/OkwwPlanConfig_Day14'; +export type { OkwwPlanConfig_Day14Input } from './models/OkwwPlanConfig_Day14Input'; +export type { OkwwPlanConfig_Day15 } from './models/OkwwPlanConfig_Day15'; +export type { OkwwPlanConfig_Day15Input } from './models/OkwwPlanConfig_Day15Input'; +export type { OkwwPlanConfig_Day16 } from './models/OkwwPlanConfig_Day16'; +export type { OkwwPlanConfig_Day16Input } from './models/OkwwPlanConfig_Day16Input'; +export type { OkwwPlanConfig_Day17 } from './models/OkwwPlanConfig_Day17'; +export type { OkwwPlanConfig_Day17Input } from './models/OkwwPlanConfig_Day17Input'; +export type { OkwwPlanConfig_Day18 } from './models/OkwwPlanConfig_Day18'; +export type { OkwwPlanConfig_Day18Input } from './models/OkwwPlanConfig_Day18Input'; +export type { OkwwPlanConfig_Day19 } from './models/OkwwPlanConfig_Day19'; +export type { OkwwPlanConfig_Day19Input } from './models/OkwwPlanConfig_Day19Input'; +export type { OkwwPlanConfig_Day1Input } from './models/OkwwPlanConfig_Day1Input'; +export type { OkwwPlanConfig_Day2 } from './models/OkwwPlanConfig_Day2'; +export type { OkwwPlanConfig_Day20 } from './models/OkwwPlanConfig_Day20'; +export type { OkwwPlanConfig_Day20Input } from './models/OkwwPlanConfig_Day20Input'; +export type { OkwwPlanConfig_Day21 } from './models/OkwwPlanConfig_Day21'; +export type { OkwwPlanConfig_Day21Input } from './models/OkwwPlanConfig_Day21Input'; +export type { OkwwPlanConfig_Day22 } from './models/OkwwPlanConfig_Day22'; +export type { OkwwPlanConfig_Day22Input } from './models/OkwwPlanConfig_Day22Input'; +export type { OkwwPlanConfig_Day23 } from './models/OkwwPlanConfig_Day23'; +export type { OkwwPlanConfig_Day23Input } from './models/OkwwPlanConfig_Day23Input'; +export type { OkwwPlanConfig_Day24 } from './models/OkwwPlanConfig_Day24'; +export type { OkwwPlanConfig_Day24Input } from './models/OkwwPlanConfig_Day24Input'; +export type { OkwwPlanConfig_Day25 } from './models/OkwwPlanConfig_Day25'; +export type { OkwwPlanConfig_Day25Input } from './models/OkwwPlanConfig_Day25Input'; +export type { OkwwPlanConfig_Day26 } from './models/OkwwPlanConfig_Day26'; +export type { OkwwPlanConfig_Day26Input } from './models/OkwwPlanConfig_Day26Input'; +export type { OkwwPlanConfig_Day27 } from './models/OkwwPlanConfig_Day27'; +export type { OkwwPlanConfig_Day27Input } from './models/OkwwPlanConfig_Day27Input'; +export type { OkwwPlanConfig_Day28 } from './models/OkwwPlanConfig_Day28'; +export type { OkwwPlanConfig_Day28Input } from './models/OkwwPlanConfig_Day28Input'; +export type { OkwwPlanConfig_Day29 } from './models/OkwwPlanConfig_Day29'; +export type { OkwwPlanConfig_Day29Input } from './models/OkwwPlanConfig_Day29Input'; +export type { OkwwPlanConfig_Day2Input } from './models/OkwwPlanConfig_Day2Input'; +export type { OkwwPlanConfig_Day3 } from './models/OkwwPlanConfig_Day3'; +export type { OkwwPlanConfig_Day30 } from './models/OkwwPlanConfig_Day30'; +export type { OkwwPlanConfig_Day30Input } from './models/OkwwPlanConfig_Day30Input'; +export type { OkwwPlanConfig_Day31 } from './models/OkwwPlanConfig_Day31'; +export type { OkwwPlanConfig_Day31Input } from './models/OkwwPlanConfig_Day31Input'; +export type { OkwwPlanConfig_Day3Input } from './models/OkwwPlanConfig_Day3Input'; +export type { OkwwPlanConfig_Day4 } from './models/OkwwPlanConfig_Day4'; +export type { OkwwPlanConfig_Day4Input } from './models/OkwwPlanConfig_Day4Input'; +export type { OkwwPlanConfig_Day5 } from './models/OkwwPlanConfig_Day5'; +export type { OkwwPlanConfig_Day5Input } from './models/OkwwPlanConfig_Day5Input'; +export type { OkwwPlanConfig_Day6 } from './models/OkwwPlanConfig_Day6'; +export type { OkwwPlanConfig_Day6Input } from './models/OkwwPlanConfig_Day6Input'; +export type { OkwwPlanConfig_Day7 } from './models/OkwwPlanConfig_Day7'; +export type { OkwwPlanConfig_Day7Input } from './models/OkwwPlanConfig_Day7Input'; +export type { OkwwPlanConfig_Day8 } from './models/OkwwPlanConfig_Day8'; +export type { OkwwPlanConfig_Day8Input } from './models/OkwwPlanConfig_Day8Input'; +export type { OkwwPlanConfig_Day9 } from './models/OkwwPlanConfig_Day9'; +export type { OkwwPlanConfig_Day9Input } from './models/OkwwPlanConfig_Day9Input'; +export type { OkwwPlanConfig_Friday } from './models/OkwwPlanConfig_Friday'; +export type { OkwwPlanConfig_FridayInput } from './models/OkwwPlanConfig_FridayInput'; +export type { OkwwPlanConfig_Info } from './models/OkwwPlanConfig_Info'; +export type { OkwwPlanConfig_InfoInput } from './models/OkwwPlanConfig_InfoInput'; +export type { OkwwPlanConfig_Monday } from './models/OkwwPlanConfig_Monday'; +export type { OkwwPlanConfig_MondayInput } from './models/OkwwPlanConfig_MondayInput'; +export type { OkwwPlanConfig_Saturday } from './models/OkwwPlanConfig_Saturday'; +export type { OkwwPlanConfig_SaturdayInput } from './models/OkwwPlanConfig_SaturdayInput'; +export type { OkwwPlanConfig_Sunday } from './models/OkwwPlanConfig_Sunday'; +export type { OkwwPlanConfig_SundayInput } from './models/OkwwPlanConfig_SundayInput'; +export type { OkwwPlanConfig_Thursday } from './models/OkwwPlanConfig_Thursday'; +export type { OkwwPlanConfig_ThursdayInput } from './models/OkwwPlanConfig_ThursdayInput'; +export type { OkwwPlanConfig_Tuesday } from './models/OkwwPlanConfig_Tuesday'; +export type { OkwwPlanConfig_TuesdayInput } from './models/OkwwPlanConfig_TuesdayInput'; +export type { OkwwPlanConfig_Wednesday } from './models/OkwwPlanConfig_Wednesday'; +export type { OkwwPlanConfig_WednesdayInput } from './models/OkwwPlanConfig_WednesdayInput'; +export type { OkwwPlanConfigInput } from './models/OkwwPlanConfigInput'; +export type { OkwwPlanKey } from './models/OkwwPlanKey'; export type { OkwwUserConfig } from './models/OkwwUserConfig'; export type { OkwwUserConfig_Data } from './models/OkwwUserConfig_Data'; export type { OkwwUserConfig_DataInput } from './models/OkwwUserConfig_DataInput'; diff --git a/frontend/src/api/models/OkwwPlanConfig.ts b/frontend/src/api/models/OkwwPlanConfig.ts new file mode 100644 index 0000000000..f011c5ff54 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig.ts @@ -0,0 +1,87 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanConfig_ALL } from './OkwwPlanConfig_ALL'; +import type { OkwwPlanConfig_Day1 } from './OkwwPlanConfig_Day1'; +import type { OkwwPlanConfig_Day10 } from './OkwwPlanConfig_Day10'; +import type { OkwwPlanConfig_Day11 } from './OkwwPlanConfig_Day11'; +import type { OkwwPlanConfig_Day12 } from './OkwwPlanConfig_Day12'; +import type { OkwwPlanConfig_Day13 } from './OkwwPlanConfig_Day13'; +import type { OkwwPlanConfig_Day14 } from './OkwwPlanConfig_Day14'; +import type { OkwwPlanConfig_Day15 } from './OkwwPlanConfig_Day15'; +import type { OkwwPlanConfig_Day16 } from './OkwwPlanConfig_Day16'; +import type { OkwwPlanConfig_Day17 } from './OkwwPlanConfig_Day17'; +import type { OkwwPlanConfig_Day18 } from './OkwwPlanConfig_Day18'; +import type { OkwwPlanConfig_Day19 } from './OkwwPlanConfig_Day19'; +import type { OkwwPlanConfig_Day2 } from './OkwwPlanConfig_Day2'; +import type { OkwwPlanConfig_Day20 } from './OkwwPlanConfig_Day20'; +import type { OkwwPlanConfig_Day21 } from './OkwwPlanConfig_Day21'; +import type { OkwwPlanConfig_Day22 } from './OkwwPlanConfig_Day22'; +import type { OkwwPlanConfig_Day23 } from './OkwwPlanConfig_Day23'; +import type { OkwwPlanConfig_Day24 } from './OkwwPlanConfig_Day24'; +import type { OkwwPlanConfig_Day25 } from './OkwwPlanConfig_Day25'; +import type { OkwwPlanConfig_Day26 } from './OkwwPlanConfig_Day26'; +import type { OkwwPlanConfig_Day27 } from './OkwwPlanConfig_Day27'; +import type { OkwwPlanConfig_Day28 } from './OkwwPlanConfig_Day28'; +import type { OkwwPlanConfig_Day29 } from './OkwwPlanConfig_Day29'; +import type { OkwwPlanConfig_Day3 } from './OkwwPlanConfig_Day3'; +import type { OkwwPlanConfig_Day30 } from './OkwwPlanConfig_Day30'; +import type { OkwwPlanConfig_Day31 } from './OkwwPlanConfig_Day31'; +import type { OkwwPlanConfig_Day4 } from './OkwwPlanConfig_Day4'; +import type { OkwwPlanConfig_Day5 } from './OkwwPlanConfig_Day5'; +import type { OkwwPlanConfig_Day6 } from './OkwwPlanConfig_Day6'; +import type { OkwwPlanConfig_Day7 } from './OkwwPlanConfig_Day7'; +import type { OkwwPlanConfig_Day8 } from './OkwwPlanConfig_Day8'; +import type { OkwwPlanConfig_Day9 } from './OkwwPlanConfig_Day9'; +import type { OkwwPlanConfig_Friday } from './OkwwPlanConfig_Friday'; +import type { OkwwPlanConfig_Info } from './OkwwPlanConfig_Info'; +import type { OkwwPlanConfig_Monday } from './OkwwPlanConfig_Monday'; +import type { OkwwPlanConfig_Saturday } from './OkwwPlanConfig_Saturday'; +import type { OkwwPlanConfig_Sunday } from './OkwwPlanConfig_Sunday'; +import type { OkwwPlanConfig_Thursday } from './OkwwPlanConfig_Thursday'; +import type { OkwwPlanConfig_Tuesday } from './OkwwPlanConfig_Tuesday'; +import type { OkwwPlanConfig_Wednesday } from './OkwwPlanConfig_Wednesday'; +export type OkwwPlanConfig = { + ALL?: (OkwwPlanConfig_ALL | null); + Monday?: (OkwwPlanConfig_Monday | null); + Tuesday?: (OkwwPlanConfig_Tuesday | null); + Wednesday?: (OkwwPlanConfig_Wednesday | null); + Thursday?: (OkwwPlanConfig_Thursday | null); + Friday?: (OkwwPlanConfig_Friday | null); + Saturday?: (OkwwPlanConfig_Saturday | null); + Sunday?: (OkwwPlanConfig_Sunday | null); + Day1?: (OkwwPlanConfig_Day1 | null); + Day2?: (OkwwPlanConfig_Day2 | null); + Day3?: (OkwwPlanConfig_Day3 | null); + Day4?: (OkwwPlanConfig_Day4 | null); + Day5?: (OkwwPlanConfig_Day5 | null); + Day6?: (OkwwPlanConfig_Day6 | null); + Day7?: (OkwwPlanConfig_Day7 | null); + Day8?: (OkwwPlanConfig_Day8 | null); + Day9?: (OkwwPlanConfig_Day9 | null); + Day10?: (OkwwPlanConfig_Day10 | null); + Day11?: (OkwwPlanConfig_Day11 | null); + Day12?: (OkwwPlanConfig_Day12 | null); + Day13?: (OkwwPlanConfig_Day13 | null); + Day14?: (OkwwPlanConfig_Day14 | null); + Day15?: (OkwwPlanConfig_Day15 | null); + Day16?: (OkwwPlanConfig_Day16 | null); + Day17?: (OkwwPlanConfig_Day17 | null); + Day18?: (OkwwPlanConfig_Day18 | null); + Day19?: (OkwwPlanConfig_Day19 | null); + Day20?: (OkwwPlanConfig_Day20 | null); + Day21?: (OkwwPlanConfig_Day21 | null); + Day22?: (OkwwPlanConfig_Day22 | null); + Day23?: (OkwwPlanConfig_Day23 | null); + Day24?: (OkwwPlanConfig_Day24 | null); + Day25?: (OkwwPlanConfig_Day25 | null); + Day26?: (OkwwPlanConfig_Day26 | null); + Day27?: (OkwwPlanConfig_Day27 | null); + Day28?: (OkwwPlanConfig_Day28 | null); + Day29?: (OkwwPlanConfig_Day29 | null); + Day30?: (OkwwPlanConfig_Day30 | null); + Day31?: (OkwwPlanConfig_Day31 | null); + Info?: (OkwwPlanConfig_Info | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfigInput.ts b/frontend/src/api/models/OkwwPlanConfigInput.ts new file mode 100644 index 0000000000..53de7464d7 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfigInput.ts @@ -0,0 +1,87 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanConfig_ALLInput } from './OkwwPlanConfig_ALLInput'; +import type { OkwwPlanConfig_Day10Input } from './OkwwPlanConfig_Day10Input'; +import type { OkwwPlanConfig_Day11Input } from './OkwwPlanConfig_Day11Input'; +import type { OkwwPlanConfig_Day12Input } from './OkwwPlanConfig_Day12Input'; +import type { OkwwPlanConfig_Day13Input } from './OkwwPlanConfig_Day13Input'; +import type { OkwwPlanConfig_Day14Input } from './OkwwPlanConfig_Day14Input'; +import type { OkwwPlanConfig_Day15Input } from './OkwwPlanConfig_Day15Input'; +import type { OkwwPlanConfig_Day16Input } from './OkwwPlanConfig_Day16Input'; +import type { OkwwPlanConfig_Day17Input } from './OkwwPlanConfig_Day17Input'; +import type { OkwwPlanConfig_Day18Input } from './OkwwPlanConfig_Day18Input'; +import type { OkwwPlanConfig_Day19Input } from './OkwwPlanConfig_Day19Input'; +import type { OkwwPlanConfig_Day1Input } from './OkwwPlanConfig_Day1Input'; +import type { OkwwPlanConfig_Day20Input } from './OkwwPlanConfig_Day20Input'; +import type { OkwwPlanConfig_Day21Input } from './OkwwPlanConfig_Day21Input'; +import type { OkwwPlanConfig_Day22Input } from './OkwwPlanConfig_Day22Input'; +import type { OkwwPlanConfig_Day23Input } from './OkwwPlanConfig_Day23Input'; +import type { OkwwPlanConfig_Day24Input } from './OkwwPlanConfig_Day24Input'; +import type { OkwwPlanConfig_Day25Input } from './OkwwPlanConfig_Day25Input'; +import type { OkwwPlanConfig_Day26Input } from './OkwwPlanConfig_Day26Input'; +import type { OkwwPlanConfig_Day27Input } from './OkwwPlanConfig_Day27Input'; +import type { OkwwPlanConfig_Day28Input } from './OkwwPlanConfig_Day28Input'; +import type { OkwwPlanConfig_Day29Input } from './OkwwPlanConfig_Day29Input'; +import type { OkwwPlanConfig_Day2Input } from './OkwwPlanConfig_Day2Input'; +import type { OkwwPlanConfig_Day30Input } from './OkwwPlanConfig_Day30Input'; +import type { OkwwPlanConfig_Day31Input } from './OkwwPlanConfig_Day31Input'; +import type { OkwwPlanConfig_Day3Input } from './OkwwPlanConfig_Day3Input'; +import type { OkwwPlanConfig_Day4Input } from './OkwwPlanConfig_Day4Input'; +import type { OkwwPlanConfig_Day5Input } from './OkwwPlanConfig_Day5Input'; +import type { OkwwPlanConfig_Day6Input } from './OkwwPlanConfig_Day6Input'; +import type { OkwwPlanConfig_Day7Input } from './OkwwPlanConfig_Day7Input'; +import type { OkwwPlanConfig_Day8Input } from './OkwwPlanConfig_Day8Input'; +import type { OkwwPlanConfig_Day9Input } from './OkwwPlanConfig_Day9Input'; +import type { OkwwPlanConfig_FridayInput } from './OkwwPlanConfig_FridayInput'; +import type { OkwwPlanConfig_InfoInput } from './OkwwPlanConfig_InfoInput'; +import type { OkwwPlanConfig_MondayInput } from './OkwwPlanConfig_MondayInput'; +import type { OkwwPlanConfig_SaturdayInput } from './OkwwPlanConfig_SaturdayInput'; +import type { OkwwPlanConfig_SundayInput } from './OkwwPlanConfig_SundayInput'; +import type { OkwwPlanConfig_ThursdayInput } from './OkwwPlanConfig_ThursdayInput'; +import type { OkwwPlanConfig_TuesdayInput } from './OkwwPlanConfig_TuesdayInput'; +import type { OkwwPlanConfig_WednesdayInput } from './OkwwPlanConfig_WednesdayInput'; +export type OkwwPlanConfigInput = { + ALL?: (OkwwPlanConfig_ALLInput | null); + Monday?: (OkwwPlanConfig_MondayInput | null); + Tuesday?: (OkwwPlanConfig_TuesdayInput | null); + Wednesday?: (OkwwPlanConfig_WednesdayInput | null); + Thursday?: (OkwwPlanConfig_ThursdayInput | null); + Friday?: (OkwwPlanConfig_FridayInput | null); + Saturday?: (OkwwPlanConfig_SaturdayInput | null); + Sunday?: (OkwwPlanConfig_SundayInput | null); + Day1?: (OkwwPlanConfig_Day1Input | null); + Day2?: (OkwwPlanConfig_Day2Input | null); + Day3?: (OkwwPlanConfig_Day3Input | null); + Day4?: (OkwwPlanConfig_Day4Input | null); + Day5?: (OkwwPlanConfig_Day5Input | null); + Day6?: (OkwwPlanConfig_Day6Input | null); + Day7?: (OkwwPlanConfig_Day7Input | null); + Day8?: (OkwwPlanConfig_Day8Input | null); + Day9?: (OkwwPlanConfig_Day9Input | null); + Day10?: (OkwwPlanConfig_Day10Input | null); + Day11?: (OkwwPlanConfig_Day11Input | null); + Day12?: (OkwwPlanConfig_Day12Input | null); + Day13?: (OkwwPlanConfig_Day13Input | null); + Day14?: (OkwwPlanConfig_Day14Input | null); + Day15?: (OkwwPlanConfig_Day15Input | null); + Day16?: (OkwwPlanConfig_Day16Input | null); + Day17?: (OkwwPlanConfig_Day17Input | null); + Day18?: (OkwwPlanConfig_Day18Input | null); + Day19?: (OkwwPlanConfig_Day19Input | null); + Day20?: (OkwwPlanConfig_Day20Input | null); + Day21?: (OkwwPlanConfig_Day21Input | null); + Day22?: (OkwwPlanConfig_Day22Input | null); + Day23?: (OkwwPlanConfig_Day23Input | null); + Day24?: (OkwwPlanConfig_Day24Input | null); + Day25?: (OkwwPlanConfig_Day25Input | null); + Day26?: (OkwwPlanConfig_Day26Input | null); + Day27?: (OkwwPlanConfig_Day27Input | null); + Day28?: (OkwwPlanConfig_Day28Input | null); + Day29?: (OkwwPlanConfig_Day29Input | null); + Day30?: (OkwwPlanConfig_Day30Input | null); + Day31?: (OkwwPlanConfig_Day31Input | null); + Info?: (OkwwPlanConfig_InfoInput | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_ALL.ts b/frontend/src/api/models/OkwwPlanConfig_ALL.ts new file mode 100644 index 0000000000..a1a62a7b88 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_ALL.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_ALL = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_ALLInput.ts b/frontend/src/api/models/OkwwPlanConfig_ALLInput.ts new file mode 100644 index 0000000000..452663052d --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_ALLInput.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_ALLInput = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day1.ts b/frontend/src/api/models/OkwwPlanConfig_Day1.ts new file mode 100644 index 0000000000..fdd402c759 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day1.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day1 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day10.ts b/frontend/src/api/models/OkwwPlanConfig_Day10.ts new file mode 100644 index 0000000000..c1b1dd1839 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day10.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day10 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day10Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day10Input.ts new file mode 100644 index 0000000000..b5992cbb5c --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day10Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day10Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day11.ts b/frontend/src/api/models/OkwwPlanConfig_Day11.ts new file mode 100644 index 0000000000..cee5f2ff98 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day11.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day11 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day11Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day11Input.ts new file mode 100644 index 0000000000..c61d27cb44 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day11Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day11Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day12.ts b/frontend/src/api/models/OkwwPlanConfig_Day12.ts new file mode 100644 index 0000000000..595b88d715 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day12.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day12 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day12Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day12Input.ts new file mode 100644 index 0000000000..0c41534f8c --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day12Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day12Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day13.ts b/frontend/src/api/models/OkwwPlanConfig_Day13.ts new file mode 100644 index 0000000000..3f38395d50 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day13.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day13 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day13Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day13Input.ts new file mode 100644 index 0000000000..0dccb7a2ea --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day13Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day13Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day14.ts b/frontend/src/api/models/OkwwPlanConfig_Day14.ts new file mode 100644 index 0000000000..f26156df4b --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day14.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day14 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day14Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day14Input.ts new file mode 100644 index 0000000000..27fe063cd7 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day14Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day14Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day15.ts b/frontend/src/api/models/OkwwPlanConfig_Day15.ts new file mode 100644 index 0000000000..c456a4dd46 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day15.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day15 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day15Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day15Input.ts new file mode 100644 index 0000000000..142b346a02 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day15Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day15Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day16.ts b/frontend/src/api/models/OkwwPlanConfig_Day16.ts new file mode 100644 index 0000000000..a3a30989ac --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day16.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day16 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day16Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day16Input.ts new file mode 100644 index 0000000000..ce7474921b --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day16Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day16Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day17.ts b/frontend/src/api/models/OkwwPlanConfig_Day17.ts new file mode 100644 index 0000000000..f7429ca499 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day17.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day17 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day17Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day17Input.ts new file mode 100644 index 0000000000..d9b0beb6fb --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day17Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day17Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day18.ts b/frontend/src/api/models/OkwwPlanConfig_Day18.ts new file mode 100644 index 0000000000..d97ed4bf1b --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day18.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day18 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day18Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day18Input.ts new file mode 100644 index 0000000000..a177240200 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day18Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day18Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day19.ts b/frontend/src/api/models/OkwwPlanConfig_Day19.ts new file mode 100644 index 0000000000..af10a56afd --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day19.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day19 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day19Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day19Input.ts new file mode 100644 index 0000000000..6d2a288832 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day19Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day19Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day1Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day1Input.ts new file mode 100644 index 0000000000..d301349472 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day1Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day1Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day2.ts b/frontend/src/api/models/OkwwPlanConfig_Day2.ts new file mode 100644 index 0000000000..f0f73093f8 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day2.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day2 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day20.ts b/frontend/src/api/models/OkwwPlanConfig_Day20.ts new file mode 100644 index 0000000000..875e2c4ce6 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day20.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day20 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day20Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day20Input.ts new file mode 100644 index 0000000000..eb561365f7 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day20Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day20Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day21.ts b/frontend/src/api/models/OkwwPlanConfig_Day21.ts new file mode 100644 index 0000000000..429cfe925c --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day21.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day21 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day21Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day21Input.ts new file mode 100644 index 0000000000..a1e4d15a1f --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day21Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day21Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day22.ts b/frontend/src/api/models/OkwwPlanConfig_Day22.ts new file mode 100644 index 0000000000..cb9bc4ba9e --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day22.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day22 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day22Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day22Input.ts new file mode 100644 index 0000000000..4d3c9a77b5 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day22Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day22Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day23.ts b/frontend/src/api/models/OkwwPlanConfig_Day23.ts new file mode 100644 index 0000000000..444e5b52d2 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day23.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day23 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day23Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day23Input.ts new file mode 100644 index 0000000000..aa302680d6 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day23Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day23Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day24.ts b/frontend/src/api/models/OkwwPlanConfig_Day24.ts new file mode 100644 index 0000000000..1cb580b7f8 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day24.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day24 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day24Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day24Input.ts new file mode 100644 index 0000000000..70abc16e7f --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day24Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day24Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day25.ts b/frontend/src/api/models/OkwwPlanConfig_Day25.ts new file mode 100644 index 0000000000..ae7e5d062b --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day25.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day25 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day25Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day25Input.ts new file mode 100644 index 0000000000..23fc2fb26d --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day25Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day25Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day26.ts b/frontend/src/api/models/OkwwPlanConfig_Day26.ts new file mode 100644 index 0000000000..60b6366c4b --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day26.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day26 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day26Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day26Input.ts new file mode 100644 index 0000000000..167ddc428e --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day26Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day26Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day27.ts b/frontend/src/api/models/OkwwPlanConfig_Day27.ts new file mode 100644 index 0000000000..9bbf2e1803 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day27.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day27 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day27Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day27Input.ts new file mode 100644 index 0000000000..47dbaff632 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day27Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day27Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day28.ts b/frontend/src/api/models/OkwwPlanConfig_Day28.ts new file mode 100644 index 0000000000..a8523c06e5 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day28.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day28 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day28Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day28Input.ts new file mode 100644 index 0000000000..9f5ffce379 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day28Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day28Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day29.ts b/frontend/src/api/models/OkwwPlanConfig_Day29.ts new file mode 100644 index 0000000000..7166807469 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day29.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day29 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day29Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day29Input.ts new file mode 100644 index 0000000000..d21fc06265 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day29Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day29Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day2Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day2Input.ts new file mode 100644 index 0000000000..71447e6afb --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day2Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day2Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day3.ts b/frontend/src/api/models/OkwwPlanConfig_Day3.ts new file mode 100644 index 0000000000..291ba131d5 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day3.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day3 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day30.ts b/frontend/src/api/models/OkwwPlanConfig_Day30.ts new file mode 100644 index 0000000000..a885f9928a --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day30.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day30 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day30Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day30Input.ts new file mode 100644 index 0000000000..5235c3336f --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day30Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day30Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day31.ts b/frontend/src/api/models/OkwwPlanConfig_Day31.ts new file mode 100644 index 0000000000..4655588c59 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day31.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day31 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day31Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day31Input.ts new file mode 100644 index 0000000000..653d8dd654 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day31Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day31Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day3Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day3Input.ts new file mode 100644 index 0000000000..610ab2a82a --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day3Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day3Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day4.ts b/frontend/src/api/models/OkwwPlanConfig_Day4.ts new file mode 100644 index 0000000000..31ef9c4c5e --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day4.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day4 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day4Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day4Input.ts new file mode 100644 index 0000000000..da444307a7 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day4Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day4Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day5.ts b/frontend/src/api/models/OkwwPlanConfig_Day5.ts new file mode 100644 index 0000000000..7de3cfe030 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day5.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day5 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day5Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day5Input.ts new file mode 100644 index 0000000000..08bfed887a --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day5Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day5Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day6.ts b/frontend/src/api/models/OkwwPlanConfig_Day6.ts new file mode 100644 index 0000000000..b0780b8476 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day6.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day6 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day6Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day6Input.ts new file mode 100644 index 0000000000..ce0da2458c --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day6Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day6Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day7.ts b/frontend/src/api/models/OkwwPlanConfig_Day7.ts new file mode 100644 index 0000000000..955863792f --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day7.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day7 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day7Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day7Input.ts new file mode 100644 index 0000000000..75803796bf --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day7Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day7Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day8.ts b/frontend/src/api/models/OkwwPlanConfig_Day8.ts new file mode 100644 index 0000000000..cba0cd5fdb --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day8.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day8 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day8Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day8Input.ts new file mode 100644 index 0000000000..6e11c75be5 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day8Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day8Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day9.ts b/frontend/src/api/models/OkwwPlanConfig_Day9.ts new file mode 100644 index 0000000000..3d6c0f0c51 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day9.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day9 = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Day9Input.ts b/frontend/src/api/models/OkwwPlanConfig_Day9Input.ts new file mode 100644 index 0000000000..ac30006755 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Day9Input.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Day9Input = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Friday.ts b/frontend/src/api/models/OkwwPlanConfig_Friday.ts new file mode 100644 index 0000000000..b637c33b92 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Friday.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Friday = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_FridayInput.ts b/frontend/src/api/models/OkwwPlanConfig_FridayInput.ts new file mode 100644 index 0000000000..38c71c0222 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_FridayInput.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_FridayInput = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Info.ts b/frontend/src/api/models/OkwwPlanConfig_Info.ts new file mode 100644 index 0000000000..6324399c27 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Info.ts @@ -0,0 +1,19 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export type OkwwPlanConfig_Info = { + /** + * 计划表名称 + */ + Name?: (string | null); + /** + * 计划模式 + */ + Mode?: ('ALL' | 'Weekly' | 'Rotate' | null); + /** + * 轮换天数 + */ + RotateDays?: (number | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_InfoInput.ts b/frontend/src/api/models/OkwwPlanConfig_InfoInput.ts new file mode 100644 index 0000000000..a9e37db2fa --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_InfoInput.ts @@ -0,0 +1,19 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export type OkwwPlanConfig_InfoInput = { + /** + * 计划表名称 + */ + Name?: (string | null); + /** + * 计划模式 + */ + Mode?: ('ALL' | 'Weekly' | 'Rotate' | null); + /** + * 轮换天数 + */ + RotateDays?: (number | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Monday.ts b/frontend/src/api/models/OkwwPlanConfig_Monday.ts new file mode 100644 index 0000000000..6a6b35ee68 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Monday.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Monday = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_MondayInput.ts b/frontend/src/api/models/OkwwPlanConfig_MondayInput.ts new file mode 100644 index 0000000000..74b07e2375 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_MondayInput.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_MondayInput = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Saturday.ts b/frontend/src/api/models/OkwwPlanConfig_Saturday.ts new file mode 100644 index 0000000000..e2df6ac213 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Saturday.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Saturday = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_SaturdayInput.ts b/frontend/src/api/models/OkwwPlanConfig_SaturdayInput.ts new file mode 100644 index 0000000000..c4bccf251f --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_SaturdayInput.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_SaturdayInput = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Sunday.ts b/frontend/src/api/models/OkwwPlanConfig_Sunday.ts new file mode 100644 index 0000000000..d54fb2cff9 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Sunday.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Sunday = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_SundayInput.ts b/frontend/src/api/models/OkwwPlanConfig_SundayInput.ts new file mode 100644 index 0000000000..2c95c4ecc0 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_SundayInput.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_SundayInput = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Thursday.ts b/frontend/src/api/models/OkwwPlanConfig_Thursday.ts new file mode 100644 index 0000000000..1024c90bbb --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Thursday.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Thursday = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_ThursdayInput.ts b/frontend/src/api/models/OkwwPlanConfig_ThursdayInput.ts new file mode 100644 index 0000000000..c7cfe9552d --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_ThursdayInput.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_ThursdayInput = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Tuesday.ts b/frontend/src/api/models/OkwwPlanConfig_Tuesday.ts new file mode 100644 index 0000000000..f351879fc5 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Tuesday.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Tuesday = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_TuesdayInput.ts b/frontend/src/api/models/OkwwPlanConfig_TuesdayInput.ts new file mode 100644 index 0000000000..a53bf3250b --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_TuesdayInput.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_TuesdayInput = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_Wednesday.ts b/frontend/src/api/models/OkwwPlanConfig_Wednesday.ts new file mode 100644 index 0000000000..d903f7794c --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_Wednesday.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_Wednesday = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanConfig_WednesdayInput.ts b/frontend/src/api/models/OkwwPlanConfig_WednesdayInput.ts new file mode 100644 index 0000000000..6db9340da7 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanConfig_WednesdayInput.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { OkwwPlanKey } from './OkwwPlanKey'; +export type OkwwPlanConfig_WednesdayInput = { + /** + * 体力计划参数 + */ + Key?: (OkwwPlanKey | null); +}; + diff --git a/frontend/src/api/models/OkwwPlanKey.ts b/frontend/src/api/models/OkwwPlanKey.ts new file mode 100644 index 0000000000..19835943a7 --- /dev/null +++ b/frontend/src/api/models/OkwwPlanKey.ts @@ -0,0 +1,31 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export type OkwwPlanKey = { + /** + * 每日任务后运行的附加任务 + */ + AdditionalTasks?: (Array<'Check Weekly Garden' | 'Auto Farm all Nightmare Nest' | 'Merge Echo If discarded > 1000' | 'Teleport and Farm 4C Echo'> | null); + /** + * 使用梦魇巢穴完成日常声骸 + */ + FarmNightmareNestForDailyEcho?: (boolean | null); + /** + * 模拟领域材料 + */ + MaterialSelection?: ('Resonator EXP' | 'Weapon EXP' | 'Shell Credit' | null); + /** + * 凝素领域序号 + */ + WhichForgeryChallengeToFarm?: (number | null); + /** + * 无音区序号 + */ + WhichTacetSuppressionToFarm?: (number | null); + /** + * 每日任务体力用途(日常任务按账号覆写或绑定计划生效) + */ + WhichToFarm?: ('Tacet Suppression' | 'Forgery Challenge' | 'Simulation Challenge' | null); +}; + diff --git a/frontend/src/api/models/OkwwUserConfig_Info.ts b/frontend/src/api/models/OkwwUserConfig_Info.ts index 97025aa6ad..2c993ca383 100644 --- a/frontend/src/api/models/OkwwUserConfig_Info.ts +++ b/frontend/src/api/models/OkwwUserConfig_Info.ts @@ -3,6 +3,10 @@ /* tslint:disable */ /* eslint-disable */ export type OkwwUserConfig_Info = { + /** + * 固定配置或 Okww 计划表 + */ + PlanMode?: (string | null); /** * base 来源(shared=共享、independent=独立、native=脚本原生配置) */ diff --git a/frontend/src/api/models/OkwwUserConfig_InfoInput.ts b/frontend/src/api/models/OkwwUserConfig_InfoInput.ts index 3a86d049d0..ac19773f72 100644 --- a/frontend/src/api/models/OkwwUserConfig_InfoInput.ts +++ b/frontend/src/api/models/OkwwUserConfig_InfoInput.ts @@ -3,6 +3,10 @@ /* tslint:disable */ /* eslint-disable */ export type OkwwUserConfig_InfoInput = { + /** + * 固定配置或 Okww 计划表 + */ + PlanMode?: (string | null); /** * base 来源(shared=共享、independent=独立、native=脚本原生配置) */ diff --git a/frontend/src/api/models/PlanComboxIn.ts b/frontend/src/api/models/PlanComboxIn.ts index 21700ae90a..fd3620760a 100644 --- a/frontend/src/api/models/PlanComboxIn.ts +++ b/frontend/src/api/models/PlanComboxIn.ts @@ -19,6 +19,7 @@ export namespace PlanComboxIn { MSS = 'mss', UNIVERSAL = 'universal', OKNTE = 'oknte', + OKWW = 'okww', } } diff --git a/frontend/src/api/models/PlanConfigData.ts b/frontend/src/api/models/PlanConfigData.ts index 29b39a0da8..83ae84d462 100644 --- a/frontend/src/api/models/PlanConfigData.ts +++ b/frontend/src/api/models/PlanConfigData.ts @@ -7,6 +7,7 @@ import type { MaaEndPlanConfig } from './MaaEndPlanConfig'; import type { MaaPlanConfig } from './MaaPlanConfig'; import type { MSSPlanConfig } from './MSSPlanConfig'; import type { OkNtePlanConfig } from './OkNtePlanConfig'; +import type { OkwwPlanConfig } from './OkwwPlanConfig'; import type { UniversalPlanConfig } from './UniversalPlanConfig'; -export type PlanConfigData = (MaaPlanConfig | MaaEndPlanConfig | BAAHPlanConfig | MSSPlanConfig | UniversalPlanConfig | OkNtePlanConfig); +export type PlanConfigData = (MaaPlanConfig | MaaEndPlanConfig | BAAHPlanConfig | MSSPlanConfig | UniversalPlanConfig | OkNtePlanConfig | OkwwPlanConfig); diff --git a/frontend/src/api/models/PlanConfigDataInput.ts b/frontend/src/api/models/PlanConfigDataInput.ts index c0098630ab..e4df0003af 100644 --- a/frontend/src/api/models/PlanConfigDataInput.ts +++ b/frontend/src/api/models/PlanConfigDataInput.ts @@ -7,6 +7,7 @@ import type { MaaEndPlanConfigInput } from './MaaEndPlanConfigInput'; import type { MaaPlanConfigInput } from './MaaPlanConfigInput'; import type { MSSPlanConfigInput } from './MSSPlanConfigInput'; import type { OkNtePlanConfigInput } from './OkNtePlanConfigInput'; +import type { OkwwPlanConfigInput } from './OkwwPlanConfigInput'; import type { UniversalPlanConfigInput } from './UniversalPlanConfigInput'; -export type PlanConfigDataInput = (MaaPlanConfigInput | MaaEndPlanConfigInput | BAAHPlanConfigInput | MSSPlanConfigInput | UniversalPlanConfigInput | OkNtePlanConfigInput); +export type PlanConfigDataInput = (MaaPlanConfigInput | MaaEndPlanConfigInput | BAAHPlanConfigInput | MSSPlanConfigInput | UniversalPlanConfigInput | OkNtePlanConfigInput | OkwwPlanConfigInput); diff --git a/frontend/src/api/models/PlanCreateIn.ts b/frontend/src/api/models/PlanCreateIn.ts index 0d05d613d5..4bb0da532a 100644 --- a/frontend/src/api/models/PlanCreateIn.ts +++ b/frontend/src/api/models/PlanCreateIn.ts @@ -14,6 +14,7 @@ export namespace PlanCreateIn { MSSPLAN = 'MSSPlan', UNIVERSAL_PLAN = 'UniversalPlan', OK_NTE_PLAN = 'OkNtePlan', + OKWW_PLAN = 'OkwwPlan', } } diff --git a/frontend/src/api/models/PlanIndexItem.ts b/frontend/src/api/models/PlanIndexItem.ts index 940b445a42..1028fbedc6 100644 --- a/frontend/src/api/models/PlanIndexItem.ts +++ b/frontend/src/api/models/PlanIndexItem.ts @@ -23,6 +23,7 @@ export namespace PlanIndexItem { MSSPLAN_CONFIG = 'MSSPlanConfig', UNIVERSAL_PLAN_CONFIG = 'UniversalPlanConfig', OK_NTE_PLAN_CONFIG = 'OkNtePlanConfig', + OKWW_PLAN_CONFIG = 'OkwwPlanConfig', } } diff --git a/frontend/src/types/analytics.d.ts b/frontend/src/types/analytics.d.ts index 980d474fa8..e952b6ee2a 100644 --- a/frontend/src/types/analytics.d.ts +++ b/frontend/src/types/analytics.d.ts @@ -11,6 +11,7 @@ export type AnalyticsPlanType = | 'MaaEndPlanConfig' | 'BAAHPlanConfig' | 'MSSPlanConfig' + | 'OkwwPlanConfig' | 'OkNtePlanConfig' | 'UniversalPlanConfig' | 'multi' diff --git a/frontend/src/utils/okwwTaskOptions.ts b/frontend/src/utils/okwwTaskOptions.ts new file mode 100644 index 0000000000..20996d5e71 --- /dev/null +++ b/frontend/src/utils/okwwTaskOptions.ts @@ -0,0 +1,18 @@ +export const farmOptions = [ + { label: '无音区', value: 'Tacet Suppression' }, + { label: '凝素领域', value: 'Forgery Challenge' }, + { label: '模拟领域', value: 'Simulation Challenge' }, +] + +export const materialOptions = [ + { label: '共鸣者经验', value: 'Resonator EXP' }, + { label: '武器经验', value: 'Weapon EXP' }, + { label: '贝币', value: 'Shell Credit' }, +] + +export const additionalTaskOptions = [ + { label: '检查每周乐园', value: 'Check Weekly Garden' }, + { label: '自动刷所有梦魇巢穴', value: 'Auto Farm all Nightmare Nest' }, + { label: '已弃置声骸超过 1000 时融合', value: 'Merge Echo If discarded > 1000' }, + { label: '传送并刷取 4C 声骸', value: 'Teleport and Farm 4C Echo' }, +] diff --git a/frontend/src/utils/planTypeRegistry.ts b/frontend/src/utils/planTypeRegistry.ts index e4eb5524e8..ca55cef89e 100644 --- a/frontend/src/utils/planTypeRegistry.ts +++ b/frontend/src/utils/planTypeRegistry.ts @@ -10,6 +10,7 @@ type PlanCreateType = PlanCreateIn.type export type PlanConfigData = PlanGetOut['data'][string] export const PLAN_CONFIG_TYPES = { + OKWW: PlanIndexItem.type.OKWW_PLAN_CONFIG, OKNTE: PlanIndexItem.type.OK_NTE_PLAN_CONFIG, UNIVERSAL: PlanIndexItem.type.UNIVERSAL_PLAN_CONFIG, MAA: PlanIndexItem.type.MAA_PLAN_CONFIG, @@ -49,6 +50,16 @@ interface PlanTypeDescriptor { // ==================== 注册表 ==================== export const PLAN_TYPE_REGISTRY: Record = { + [PLAN_CONFIG_TYPES.OKWW]: { + configType: PLAN_CONFIG_TYPES.OKWW, + createType: PlanCreateIn.type.OKWW_PLAN, + displayNameKey: 'core.plan.type.okww', + defaultName: '新 Okww 计划表', + selectorTag: 'Okww', + reloadAfterSave: false, + supportsSimpleView: false, + tableComponent: defineAsyncComponent(() => import('@/views/plan/tables/OkwwPlanTable.vue')), + }, [PLAN_CONFIG_TYPES.OKNTE]: { configType: PLAN_CONFIG_TYPES.OKNTE, createType: PlanCreateIn.type.OK_NTE_PLAN, diff --git a/frontend/src/views/EditView/User/OkwwUserEdit.vue b/frontend/src/views/EditView/User/OkwwUserEdit.vue index 16c699de8f..ec26e6713c 100644 --- a/frontend/src/views/EditView/User/OkwwUserEdit.vue +++ b/frontend/src/views/EditView/User/OkwwUserEdit.vue @@ -178,20 +178,13 @@ - -

{{ t('core.edit.taskConfiguration') }}

- - - - {{ t('core.edit.configRestoreTitle') }} - - -
- @@ -250,7 +243,7 @@ diff --git a/frontend/src/views/EditView/User/components/OkwwTaskConfigSection.vue b/frontend/src/views/EditView/User/components/OkwwTaskConfigSection.vue index ff859e18a1..bc0a8f568c 100644 --- a/frontend/src/views/EditView/User/components/OkwwTaskConfigSection.vue +++ b/frontend/src/views/EditView/User/components/OkwwTaskConfigSection.vue @@ -85,6 +85,7 @@ diff --git a/frontend/src/views/plan/tables/OkwwPlanTable.vue b/frontend/src/views/plan/tables/OkwwPlanTable.vue new file mode 100644 index 0000000000..7b0ac8cf59 --- /dev/null +++ b/frontend/src/views/plan/tables/OkwwPlanTable.vue @@ -0,0 +1,186 @@ + + + diff --git a/res/i18n/en.json b/res/i18n/en.json index 8d4f1dfb83..144e7f798b 100644 --- a/res/i18n/en.json +++ b/res/i18n/en.json @@ -4888,6 +4888,12 @@ "core.comp.downloadFamilypink": "Pink", "core.comp.downloadGradientSpeed": "Gradient speed", "core.comp.downloadGradientContrast": "Color variation", + "core.plan.okww.farm": "Stamina farming", + "core.plan.okww.number": "Dungeon number (F2)", + "core.plan.okww.material": "Simulation materials", + "core.plan.okww.nightmare": "Daily echo from Nightmare Nest", + "core.plan.okww.additional": "Additional daily tasks", + "core.plan.type.okww": "Okww plan", "core.plan.type.oknte": "OkNte plan", "core.plan.oknte.priority": "Daily plan overrides are applied after account configuration. Detailed edits are saved to the selected day.", "core.plan.oknte.detail": "Detailed configuration", diff --git a/res/i18n/ja.json b/res/i18n/ja.json index 5dcf5ee384..8228ae1266 100644 --- a/res/i18n/ja.json +++ b/res/i18n/ja.json @@ -4888,6 +4888,12 @@ "core.comp.downloadFamilypink": "ピンク系", "core.comp.downloadGradientSpeed": "変化速度", "core.comp.downloadGradientContrast": "色差の強さ", + "core.plan.okww.farm": "スタミナ消費先", + "core.plan.okww.number": "ダンジョン番号(F2)", + "core.plan.okww.material": "模擬領域の素材", + "core.plan.okww.nightmare": "悪夢の巣で日課の音骸を獲得", + "core.plan.okww.additional": "追加の日課タスク", + "core.plan.type.okww": "Okww 計画表", "core.plan.type.oknte": "OkNte プラン", "core.plan.oknte.priority": "当日プランはアカウント設定の後に適用します。詳細設定は当日のプランに保存します。", "core.plan.oknte.detail": "詳細設定", diff --git a/res/i18n/zh_CN.json b/res/i18n/zh_CN.json index 8383d81b08..919ec80790 100644 --- a/res/i18n/zh_CN.json +++ b/res/i18n/zh_CN.json @@ -4888,6 +4888,12 @@ "core.comp.downloadFamilypink": "粉色系", "core.comp.downloadGradientSpeed": "渐变速率", "core.comp.downloadGradientContrast": "色差程度", + "core.plan.okww.farm": "消耗体力刷取", + "core.plan.okww.number": "副本序号(F2)", + "core.plan.okww.material": "模拟领域材料", + "core.plan.okww.nightmare": "梦魇巢穴日常声骸", + "core.plan.okww.additional": "日常附加任务", + "core.plan.type.okww": "Okww 计划表", "core.plan.type.oknte": "OkNte 计划表", "core.plan.oknte.priority": "当天计划会在账号基础配置和常规覆写之后生效;详细配置仅保存到当天计划。", "core.plan.oknte.detail": "详细配置", diff --git a/tests/task/test_okww_plan.py b/tests/task/test_okww_plan.py new file mode 100644 index 0000000000..9b6f926e15 --- /dev/null +++ b/tests/task/test_okww_plan.py @@ -0,0 +1,148 @@ +"""日常计划按日下发,保留账号固定配置及原生额外参数。""" + +import json +from types import SimpleNamespace +from uuid import uuid4 + +import pytest + +from app.models.config import OkwwPlanConfig, OkwwUserConfig +from app.task.Okww.tools.plan import task_config + + +def test_fixed_mode_respects_quick_config(): + user = OkwwUserConfig() + assert task_config(user)["Which to Farm"] == user.Task.WhichToFarm + user.Info.IfQuickConfig = False + assert task_config(user) == {} + + +@pytest.mark.parametrize( + "mode,group", [("ALL", "ALL"), ("Weekly", "Monday"), ("Rotate", "Day31")] +) +def test_plan_overrides_without_mutating_account(monkeypatch, mode, group): + from app.task.Okww.tools import plan as module + + plan = OkwwPlanConfig() + plan.Info.Mode = mode + plan.Info.RotateDays = 31 + monkeypatch.setattr(type(plan), "current_group", lambda self, now: group) + getattr(plan, group).Key.WhichToFarm = "Forgery Challenge" + user = OkwwUserConfig() + uid = uuid4() + user.Info.PlanMode = uid + user.Info.IfQuickConfig = False + monkeypatch.setattr(module, "Config", SimpleNamespace(PlanConfig={str(uid): plan})) + before = user.Task.model_dump() + assert task_config(user)["Which to Farm"] == "Forgery Challenge" + assert user.Task.model_dump() == before + + +def test_single_runtime_preserves_unrelated_native_settings(monkeypatch, tmp_path): + from app.task.Okww.AutoProxy import AutoProxyTask + from app.task.Okww.tools import plan as module + + plan = OkwwPlanConfig() + plan.Info.Mode = "ALL" + plan.ALL.Key.WhichToFarm = "Simulation Challenge" + user = OkwwUserConfig() + uid = uuid4() + user.Info.PlanMode = uid + user.Info.IfQuickConfig = False + monkeypatch.setattr(module, "Config", SimpleNamespace(PlanConfig={str(uid): plan})) + target = tmp_path / "DailyTask.json" + target.write_text(json.dumps({"extra": "preserved"})) + proxy = AutoProxyTask.__new__(AutoProxyTask) + proxy.cur_user_config = user + proxy.script_config_path = tmp_path + proxy._apply_mas_overrides() + values = json.loads(target.read_text(encoding="utf-8")) + assert values["Which to Farm"] == "Simulation Challenge" + assert values["extra"] == "preserved" + + +@pytest.mark.asyncio +async def test_plan_api_saves_only_selected_day(isolated_app_paths, monkeypatch): + import httpx + from fastapi import FastAPI + + from app.api.plan import router + from app.config import ConfigCollection + + plans = ConfigCollection.build([OkwwPlanConfig]) + await plans.activate() + monkeypatch.setattr(isolated_app_paths, "PlanConfig", plans) + app = FastAPI() + app.include_router(router) + async with httpx.AsyncClient( + transport=httpx.ASGITransport(app=app), base_url="http://test" + ) as client: + response = ( + await client.post("/api/plan/add", json={"type": "OkwwPlan"}) + ).json() + assert response["code"] == 200 + uid = response["planId"] + saved = ( + await client.post( + "/api/plan/update", + json={ + "planId": uid, + "data": { + "Monday": {"Key": {"WhichToFarm": "Simulation Challenge"}} + }, + }, + ) + ).json() + assert saved["code"] == 200 + assert plans[uid].Monday.Key.WhichToFarm == "Simulation Challenge" + assert plans[uid].Tuesday.Key.WhichToFarm == "Tacet Suppression" + invalid = await client.post( + "/api/plan/update", + json={ + "planId": uid, + "data": {"Monday": {"Key": {"WhichForgeryChallengeToFarm": 100}}}, + }, + ) + assert invalid.status_code == 422 + + +def test_plan_inherits_account_values_and_can_override_false_and_empty(monkeypatch): + from app.task.Okww.tools import plan as module + + plan = OkwwPlanConfig() + plan.Info.Mode = "ALL" + plan.ALL.Key.FarmNightmareNestForDailyEcho = False + plan.ALL.Key.AdditionalTasks = [] + user = OkwwUserConfig() + uid = uuid4() + user.Info.PlanMode = uid + user.Task.WhichToFarm = "Simulation Challenge" + user.Task.MaterialSelection = "Weapon EXP" + plan.ALL.Key.WhichToFarm = None + plan.ALL.Key.MaterialSelection = None + monkeypatch.setattr(module, "Config", SimpleNamespace(PlanConfig={str(uid): plan})) + values = task_config(user) + assert values["Which to Farm"] == "Simulation Challenge" + assert values["Material Selection"] == "Weapon EXP" + assert values["Farm Nightmare Nest for Daily Echo"] is False + assert values["Additional Tasks to Run After Daily Task"] == [] + user.Info.IfQuickConfig = False + values = task_config(user) + assert "Which to Farm" not in values + assert "Material Selection" not in values + assert values["Farm Nightmare Nest for Daily Echo"] is False + + +def test_numeric_inheritance_is_not_coerced_to_default(): + plan = OkwwPlanConfig.model_validate( + { + "Monday": { + "Key": { + "WhichTacetSuppressionToFarm": None, + "WhichForgeryChallengeToFarm": None, + } + } + } + ) + assert plan.Monday.Key.WhichTacetSuppressionToFarm is None + assert plan.Monday.Key.WhichForgeryChallengeToFarm is None From 3da25b18733dec5ab4484046b46c6ad994b790e9 Mon Sep 17 00:00:00 2001 From: AthenaHibou <13084046220@163.com> Date: Fri, 13 Nov 2026 16:21:28 +0800 Subject: [PATCH 2/5] =?UTF-8?q?fix(okww):=20=E5=AE=8C=E5=96=84=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E7=BB=A7=E6=89=BF=E4=B8=8E=E9=99=84=E5=8A=A0=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/e2e/okww-plan.pw.ts | 80 ++++++++++- frontend/src/utils/okwwTaskOptions.ts | 16 ++- .../src/views/plan/tables/OkwwPlanTable.vue | 132 +++++++++++++++--- 3 files changed, 205 insertions(+), 23 deletions(-) diff --git a/frontend/e2e/okww-plan.pw.ts b/frontend/e2e/okww-plan.pw.ts index b9506b6539..1809bef69b 100644 --- a/frontend/e2e/okww-plan.pw.ts +++ b/frontend/e2e/okww-plan.pw.ts @@ -66,7 +66,7 @@ test.describe('@okww-plan', () => { await page.reload() await expect(cells.nth(2)).toHaveText('—') await expect(cells.nth(3)).toContainText('武器经验') - await expect(row.locator('.ant-select-borderless')).toHaveCount(4) + await expect(row.locator('.ant-select-borderless')).toHaveCount(3) await page.setViewportSize({ width: 1653, height: 1080 }) await app.evidence('okww-plan-light') await app.goto('/settings') @@ -95,9 +95,87 @@ test.describe('@okww-plan', () => { await number.fill('5') await number.press('Tab') await expect(number).toHaveValue('5') + await expect(page.locator('.okww-plan-table input[role="spinbutton"]').nth(1)).toBeDisabled() + await expect(page.locator('.additional-task-trigger').nth(1)).toBeDisabled() await page.getByRole('button', { name: 'Retry', exact: true }).click() await expect(page.getByRole('button', { name: 'Retry', exact: true })).toHaveCount(0) await page.reload() await expect(number).toHaveValue('5') }) + test('daily echo supports on, off and inheritance after reload', async ({ app, page }) => { + const created = await ( + await page.request.post(`${backend}/api/plan/add`, { data: { type: 'OkwwPlan' } }) + ).json() + await app.goto(`/plans?planId=${created.planId}`) + const selector = page + .locator('.okww-plan-table tr.ant-table-row') + .first() + .locator('td') + .nth(4) + .locator('.ant-select') + for (const [label, expected] of [ + ['On', true], + ['Off', false], + ['Inherit', null], + ['On', true], + ['Inherit', null], + ] as const) { + await selector.click() + const saved = page.waitForResponse(r => r.url().includes('/api/plan/update')) + await page.locator('.ant-select-dropdown:visible').getByTitle(label, { exact: true }).click() + expect((await (await saved).json()).code).toBe(200) + await page.reload() + await expect(selector).toContainText(label) + const result = ( + await ( + await page.request.post(`${backend}/api/plan/get`, { data: { planId: created.planId } }) + ).json() + ).data[created.planId] + expect(result.Monday.Key.FarmNightmareNestForDailyEcho).toBe(expected) + } + }) + test('additional task checklist stays open and separates inheritance from tasks', async ({ + app, + page, + }) => { + const created = await ( + await page.request.post(`${backend}/api/plan/add`, { data: { type: 'OkwwPlan' } }) + ).json() + await app.goto(`/plans?planId=${created.planId}`) + const trigger = page.locator('.additional-task-trigger').first() + await expect(trigger).toContainText('Inherit') + await expect(page.locator('.okww-plan-table').getByRole('checkbox')).toHaveCount(0) + await trigger.click() + const editor = page.locator('.ant-popover:visible .additional-task-editor') + const garden = editor.getByRole('checkbox', { name: '检查每周乐园', exact: true }) + const nest = editor.getByRole('checkbox', { name: '自动刷所有梦魇巢穴', exact: true }) + await expect(editor.getByRole('checkbox')).toHaveCount(4) + await garden.check() + await nest.check() + const read = async () => + ( + await ( + await page.request.post(`${backend}/api/plan/get`, { data: { planId: created.planId } }) + ).json() + ).data[created.planId].Monday.Key.AdditionalTasks + await expect.poll(read).toEqual(['Check Weekly Garden', 'Auto Farm all Nightmare Nest']) + await garden.uncheck() + await nest.uncheck() + await expect.poll(read).toEqual([]) + await expect(trigger).toContainText('Off') + await editor.getByRole('button', { name: 'Inherit', exact: true }).click() + await expect.poll(read).toBeNull() + await page.reload() + await expect(trigger).toContainText('Inherit') + await page.setViewportSize({ width: 1653, height: 1080 }) + await app.evidence('okww-additional-compact') + await trigger.click() + await expect(editor).toBeVisible() + await page + .locator('.ant-popover:visible') + .evaluate(element => + Promise.all(element.getAnimations({ subtree: true }).map(animation => animation.finished)) + ) + await app.evidence('okww-additional-checklist') + }) }) diff --git a/frontend/src/utils/okwwTaskOptions.ts b/frontend/src/utils/okwwTaskOptions.ts index 20996d5e71..a50d8d45e5 100644 --- a/frontend/src/utils/okwwTaskOptions.ts +++ b/frontend/src/utils/okwwTaskOptions.ts @@ -11,8 +11,16 @@ export const materialOptions = [ ] export const additionalTaskOptions = [ - { label: '检查每周乐园', value: 'Check Weekly Garden' }, - { label: '自动刷所有梦魇巢穴', value: 'Auto Farm all Nightmare Nest' }, - { label: '已弃置声骸超过 1000 时融合', value: 'Merge Echo If discarded > 1000' }, - { label: '传送并刷取 4C 声骸', value: 'Teleport and Farm 4C Echo' }, + { label: '检查每周乐园', shortLabel: '每周乐园', value: 'Check Weekly Garden' }, + { + label: '自动刷所有梦魇巢穴', + shortLabel: '全部梦魇巢穴', + value: 'Auto Farm all Nightmare Nest', + }, + { + label: '已弃置声骸超过 1000 时融合', + shortLabel: '融合弃置声骸', + value: 'Merge Echo If discarded > 1000', + }, + { label: '传送并刷取 4C 声骸', shortLabel: '传送刷 4C 声骸', value: 'Teleport and Farm 4C Echo' }, ] diff --git a/frontend/src/views/plan/tables/OkwwPlanTable.vue b/frontend/src/views/plan/tables/OkwwPlanTable.vue index 7b0ac8cf59..5ae7c9967c 100644 --- a/frontend/src/views/plan/tables/OkwwPlanTable.vue +++ b/frontend/src/views/plan/tables/OkwwPlanTable.vue @@ -27,29 +27,76 @@ :bordered="false" :min="1" :max="99" - :disabled="isSaving" + :disabled="isSaving || Boolean(error)" :placeholder="t('core.plan.oknte.inheritShort')" :aria-label="`${label(record.day)} 序号`" @change="(value: any) => save(record.day, numberField(record.day), value)" /> + + + + {{ additionalTaskSummary(record.day) }} + + + + > + +