清理后端未使用警告

删除未调用的拼图草稿快照辅助函数

移除旧的视频与角色动画计费包装函数

将计费测试对齐到实际使用的模型计费入口
This commit is contained in:
2026-06-21 20:31:31 +08:00
parent 928aecdcb1
commit 7e414ec37c
3 changed files with 26 additions and 99 deletions
@@ -4928,11 +4928,19 @@ mod tests {
#[test]
fn editor_character_animation_price_depends_on_resolution_and_duration() {
assert_eq!(
crate::editor_generation_config::editor_character_animation_mud_points("480p", 4),
crate::editor_generation_config::editor_character_animation_model_mud_points(
Some(EDITOR_CHARACTER_ANIMATION_MODEL),
"480p",
4,
),
40
);
assert_eq!(
crate::editor_generation_config::editor_character_animation_mud_points("720p", 6),
crate::editor_generation_config::editor_character_animation_model_mud_points(
Some(EDITOR_CHARACTER_ANIMATION_MODEL),
"720p",
6,
),
120
);
}
@@ -99,11 +99,6 @@ pub(crate) fn editor_video_model_generation_mud_points(
per_second * duration_seconds
}
pub(crate) fn editor_video_generation_mud_points(resolution: &str, duration_seconds: u32) -> u32 {
let per_second = editor_video_model_resolution_mud_points_per_second(None, resolution);
per_second * duration_seconds
}
pub(crate) fn editor_character_animation_model_mud_points(
model: Option<&str>,
resolution: &str,
@@ -123,13 +118,6 @@ pub(crate) fn editor_character_animation_model_mud_points(
per_second * duration_seconds
}
pub(crate) fn editor_character_animation_mud_points(
resolution: &str,
duration_seconds: u32,
) -> u32 {
editor_character_animation_model_mud_points(None, resolution, duration_seconds)
}
pub(crate) fn editor_sound_effect_model_generation_mud_points(model: Option<&str>) -> u32 {
match model.map(str::trim).filter(|value| !value.is_empty()) {
Some(EDITOR_SOUND_EFFECT_MODEL_VIDU) => EDITOR_SOUND_EFFECT_MODEL_VIDU_MUD_POINTS,
@@ -150,14 +138,26 @@ mod tests {
#[test]
fn editor_character_animation_price_uses_configured_resolution_rates() {
assert_eq!(editor_character_animation_mud_points("480p", 4), 40);
assert_eq!(editor_character_animation_mud_points("720p", 6), 120);
assert_eq!(
editor_character_animation_model_mud_points(Some("seedance2.0-fast"), "480p", 4),
40
);
assert_eq!(
editor_character_animation_model_mud_points(Some("seedance2.0-fast"), "720p", 6),
120
);
}
#[test]
fn editor_video_generation_price_uses_configured_resolution_rates() {
assert_eq!(editor_video_generation_mud_points("480p", 4), 40);
assert_eq!(editor_video_generation_mud_points("720p", 5), 100);
assert_eq!(
editor_video_model_generation_mud_points(Some("seedance2.0-fast"), "480p", 4),
40
);
assert_eq!(
editor_video_model_generation_mud_points(Some("seedance2.0-fast"), "720p", 5),
100
);
}
#[test]
@@ -2108,45 +2108,6 @@ pub(crate) fn apply_generated_puzzle_initial_metadata_to_session_snapshot(
session
}
pub(crate) fn apply_generated_puzzle_metadata_to_session_snapshot(
mut session: PuzzleAgentSessionRecord,
target_level_id: &str,
metadata: &PuzzleLevelNaming,
previous_level_name: &str,
updated_at_micros: i64,
) -> PuzzleAgentSessionRecord {
let Some(draft) = session.draft.as_mut() else {
return session;
};
let Some(target_index) = draft
.levels
.iter()
.position(|level| level.level_id == target_level_id)
.or_else(|| (!draft.levels.is_empty()).then_some(0))
else {
return session;
};
draft.levels[target_index].level_name = metadata.level_name.clone();
if metadata.ui_background_prompt.is_some() {
draft.levels[target_index].ui_background_prompt = metadata.ui_background_prompt.clone();
}
if target_index == 0 {
apply_generated_puzzle_initial_metadata_to_draft(
draft,
metadata,
previous_level_name,
updated_at_micros,
);
} else {
sync_puzzle_primary_draft_fields_from_level(draft);
}
session.updated_at = format_timestamp_micros(updated_at_micros);
session
}
pub(crate) fn apply_generated_puzzle_initial_metadata_to_draft(
draft: &mut PuzzleResultDraftRecord,
metadata: &PuzzleLevelNaming,
@@ -2196,45 +2157,3 @@ pub(crate) fn sync_puzzle_primary_draft_fields_from_level(draft: &mut PuzzleResu
});
}
}
pub(crate) fn replace_puzzle_session_draft_snapshot(
mut session: PuzzleAgentSessionRecord,
draft: PuzzleResultDraftRecord,
updated_at_micros: i64,
) -> PuzzleAgentSessionRecord {
session.draft = Some(draft);
session.updated_at = format_timestamp_micros(updated_at_micros);
session
}
pub(crate) fn apply_generated_puzzle_ui_background_to_session_snapshot(
mut session: PuzzleAgentSessionRecord,
target_level_id: &str,
prompt: String,
image_src: String,
image_object_key: Option<String>,
updated_at_micros: i64,
) -> PuzzleAgentSessionRecord {
let Some(draft) = session.draft.as_mut() else {
return session;
};
let Some(target_index) = draft
.levels
.iter()
.position(|level| level.level_id == target_level_id)
.or_else(|| (!draft.levels.is_empty()).then_some(0))
else {
return session;
};
let level = &mut draft.levels[target_index];
level.ui_background_prompt = Some(prompt);
level.ui_background_image_src = Some(image_src);
level.ui_background_image_object_key = image_object_key;
if target_index == 0 {
sync_puzzle_primary_draft_fields_from_level(draft);
}
session.progress_percent = session.progress_percent.max(96);
session.last_assistant_reply = Some("拼图 UI 背景图已生成。".to_string());
session.updated_at = format_timestamp_micros(updated_at_micros);
session
}