707 lines
20 KiB
Rust
707 lines
20 KiB
Rust
use super::*;
|
|
|
|
impl From<CustomWorldPublishWorldRecordInput> for CustomWorldPublishWorldInput {
|
|
fn from(input: CustomWorldPublishWorldRecordInput) -> Self {
|
|
Self {
|
|
session_id: input.session_id,
|
|
profile_id: input.profile_id,
|
|
owner_user_id: input.owner_user_id,
|
|
public_work_code: input.public_work_code,
|
|
author_public_user_code: input.author_public_user_code,
|
|
draft_profile_json: input.draft_profile_json,
|
|
legacy_result_profile_json: input.legacy_result_profile_json,
|
|
setting_text: input.setting_text,
|
|
author_display_name: input.author_display_name,
|
|
published_at_micros: input.published_at_micros,
|
|
}
|
|
}
|
|
}
|
|
|
|
pub(crate) fn empty_string_to_none(value: String) -> Option<String> {
|
|
let trimmed = value.trim();
|
|
if trimmed.is_empty() {
|
|
None
|
|
} else {
|
|
Some(trimmed.to_string())
|
|
}
|
|
}
|
|
|
|
pub(crate) fn i64_to_u64_ms(value: i64) -> u64 {
|
|
value.max(0) as u64
|
|
}
|
|
|
|
pub(crate) fn parse_optional_json_value(
|
|
value: Option<&str>,
|
|
fallback: serde_json::Value,
|
|
label: &str,
|
|
) -> Result<serde_json::Value, SpacetimeClientError> {
|
|
match value.map(str::trim).filter(|value| !value.is_empty()) {
|
|
Some(value) => parse_json_value(value, label),
|
|
None => Ok(fallback),
|
|
}
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq)]
|
|
pub struct CustomWorldLibraryMutationRecord {
|
|
pub entry: CustomWorldLibraryEntryRecord,
|
|
pub gallery_entry: Option<CustomWorldGalleryEntryRecord>,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq)]
|
|
pub struct CustomWorldPublishWorldRecord {
|
|
pub compiled_record: CustomWorldPublishedProfileCompileRecord,
|
|
pub entry: CustomWorldLibraryEntryRecord,
|
|
pub gallery_entry: Option<CustomWorldGalleryEntryRecord>,
|
|
pub session_stage: String,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq)]
|
|
pub struct CustomWorldAgentMessageRecord {
|
|
pub message_id: String,
|
|
pub role: String,
|
|
pub kind: String,
|
|
pub text: String,
|
|
pub created_at: String,
|
|
pub related_operation_id: Option<String>,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq)]
|
|
pub struct CustomWorldAgentOperationRecord {
|
|
pub operation_id: String,
|
|
pub operation_type: String,
|
|
pub status: String,
|
|
pub phase_label: String,
|
|
pub phase_detail: String,
|
|
pub progress: u32,
|
|
pub error_message: Option<String>,
|
|
pub started_at_micros: i64,
|
|
pub updated_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct CustomWorldAgentOperationProgressRecordInput {
|
|
pub session_id: String,
|
|
pub owner_user_id: String,
|
|
pub operation_id: String,
|
|
// SpacetimeDB 模块侧使用枚举存储操作类型,这里保留字符串给 API 层做轻量传参。
|
|
pub operation_type: String,
|
|
pub operation_status: String,
|
|
pub phase_label: String,
|
|
pub phase_detail: String,
|
|
pub operation_progress: u32,
|
|
pub error_message: Option<String>,
|
|
pub updated_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq)]
|
|
pub struct CustomWorldSupportedActionRecord {
|
|
pub action: String,
|
|
pub enabled: bool,
|
|
pub reason: Option<String>,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq)]
|
|
pub struct CustomWorldCheckpointRecord {
|
|
pub checkpoint_id: String,
|
|
pub created_at: String,
|
|
pub label: String,
|
|
}
|
|
|
|
// 兼容并行 custom world facade 中仍在使用的旧命名,避免本轮 module-npc 收口被无关改动阻塞。
|
|
|
|
pub type CustomWorldAgentCheckpointRecord = CustomWorldCheckpointRecord;
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct CustomWorldResultPreviewBlockerRecord {
|
|
pub id: String,
|
|
pub code: String,
|
|
pub message: String,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct CustomWorldPublishGateRecord {
|
|
pub profile_id: String,
|
|
pub blockers: Vec<CustomWorldResultPreviewBlockerRecord>,
|
|
pub blocker_count: u32,
|
|
pub publish_ready: bool,
|
|
pub can_enter_world: bool,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct CustomWorldDraftCardDetailSectionRecord {
|
|
pub section_id: String,
|
|
pub label: String,
|
|
pub value: String,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct CustomWorldProfileRemixRecordInput {
|
|
pub source_owner_user_id: String,
|
|
pub source_profile_id: String,
|
|
pub target_owner_user_id: String,
|
|
pub target_profile_id: String,
|
|
pub author_display_name: String,
|
|
pub remixed_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct CustomWorldProfilePlayReportRecordInput {
|
|
pub owner_user_id: String,
|
|
pub profile_id: String,
|
|
pub played_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct CustomWorldProfileLikeReportRecordInput {
|
|
pub owner_user_id: String,
|
|
pub profile_id: String,
|
|
pub user_id: String,
|
|
pub liked_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct CustomWorldPublishWorldRecordInput {
|
|
pub session_id: String,
|
|
pub profile_id: String,
|
|
pub owner_user_id: String,
|
|
pub public_work_code: Option<String>,
|
|
pub author_public_user_code: String,
|
|
pub draft_profile_json: String,
|
|
pub legacy_result_profile_json: Option<String>,
|
|
pub setting_text: String,
|
|
pub author_display_name: String,
|
|
pub published_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct CustomWorldAgentMessageSubmitRecordInput {
|
|
pub session_id: String,
|
|
pub owner_user_id: String,
|
|
pub user_message_id: String,
|
|
pub user_message_text: String,
|
|
pub operation_id: String,
|
|
pub submitted_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct CustomWorldAgentActionExecuteRecordInput {
|
|
pub session_id: String,
|
|
pub owner_user_id: String,
|
|
pub operation_id: String,
|
|
pub action: String,
|
|
pub payload_json: Option<String>,
|
|
pub submitted_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq)]
|
|
pub struct CustomWorldAgentActionExecuteRecord {
|
|
pub operation: CustomWorldAgentOperationRecord,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct BigFishPlayReportRecordInput {
|
|
pub session_id: String,
|
|
pub user_id: String,
|
|
pub elapsed_ms: u64,
|
|
pub reported_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct BigFishRunStartRecordInput {
|
|
pub run_id: String,
|
|
pub session_id: String,
|
|
pub owner_user_id: String,
|
|
pub started_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq)]
|
|
pub struct BigFishInputSubmitRecordInput {
|
|
pub run_id: String,
|
|
pub owner_user_id: String,
|
|
pub x: f32,
|
|
pub y: f32,
|
|
pub submitted_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct BigFishLikeReportRecordInput {
|
|
pub session_id: String,
|
|
pub user_id: String,
|
|
pub liked_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct BigFishWorkRemixRecordInput {
|
|
pub source_session_id: String,
|
|
pub target_session_id: String,
|
|
pub target_owner_user_id: String,
|
|
pub welcome_message_id: String,
|
|
pub remixed_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleAgentSessionCreateRecordInput {
|
|
pub session_id: String,
|
|
pub owner_user_id: String,
|
|
pub seed_text: String,
|
|
pub welcome_message_id: String,
|
|
pub welcome_message_text: String,
|
|
pub config_json: Option<String>,
|
|
pub created_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleAgentMessageSubmitRecordInput {
|
|
pub session_id: String,
|
|
pub owner_user_id: String,
|
|
pub user_message_id: String,
|
|
pub user_message_text: String,
|
|
pub submitted_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleAgentMessageFinalizeRecordInput {
|
|
pub session_id: String,
|
|
pub owner_user_id: String,
|
|
pub assistant_message_id: Option<String>,
|
|
pub assistant_reply_text: Option<String>,
|
|
pub config_json: Option<String>,
|
|
pub progress_percent: u32,
|
|
pub stage: String,
|
|
pub updated_at_micros: i64,
|
|
pub error_message: Option<String>,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleCompileDraftRecordInput {
|
|
pub session_id: String,
|
|
pub owner_user_id: String,
|
|
pub profile_id: String,
|
|
pub author_display_name: String,
|
|
pub game_name: Option<String>,
|
|
pub summary_text: Option<String>,
|
|
pub tags_json: Option<String>,
|
|
pub cover_image_src: Option<String>,
|
|
pub compiled_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleWorkUpdateRecordInput {
|
|
pub profile_id: String,
|
|
pub owner_user_id: String,
|
|
pub game_name: String,
|
|
pub theme_text: String,
|
|
pub twist_rule: String,
|
|
pub summary_text: String,
|
|
pub tags_json: String,
|
|
pub cover_image_src: String,
|
|
pub background_prompt: String,
|
|
pub background_image_src: String,
|
|
pub shape_options_json: String,
|
|
pub hole_options_json: String,
|
|
pub shape_count: u32,
|
|
pub difficulty: u32,
|
|
pub updated_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleRunStartRecordInput {
|
|
pub run_id: String,
|
|
pub owner_user_id: String,
|
|
pub profile_id: String,
|
|
pub started_at_ms: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleRunDropRecordInput {
|
|
pub run_id: String,
|
|
pub owner_user_id: String,
|
|
pub hole_id: String,
|
|
pub client_snapshot_version: u64,
|
|
pub client_event_id: String,
|
|
pub dropped_at_ms: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleRunStopRecordInput {
|
|
pub run_id: String,
|
|
pub owner_user_id: String,
|
|
pub stopped_at_ms: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleRunRestartRecordInput {
|
|
pub source_run_id: String,
|
|
pub next_run_id: String,
|
|
pub owner_user_id: String,
|
|
pub restarted_at_ms: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleRunTimeUpRecordInput {
|
|
pub run_id: String,
|
|
pub owner_user_id: String,
|
|
pub finished_at_ms: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct VisualNovelAgentMessageSubmitRecordInput {
|
|
pub session_id: String,
|
|
pub owner_user_id: String,
|
|
pub user_message_id: String,
|
|
pub user_message_text: String,
|
|
pub submitted_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct VisualNovelAgentMessageFinalizeRecordInput {
|
|
pub session_id: String,
|
|
pub owner_user_id: String,
|
|
pub assistant_message_id: Option<String>,
|
|
pub assistant_reply_text: Option<String>,
|
|
pub draft_json: Option<String>,
|
|
pub pending_action_json: Option<String>,
|
|
pub status: String,
|
|
pub progress_percent: u32,
|
|
pub updated_at_micros: i64,
|
|
pub error_message: Option<String>,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct VisualNovelWorkCompileRecordInput {
|
|
pub session_id: String,
|
|
pub owner_user_id: String,
|
|
pub profile_id: String,
|
|
pub work_id: Option<String>,
|
|
pub author_display_name: String,
|
|
pub work_title: Option<String>,
|
|
pub work_description: Option<String>,
|
|
pub tags_json: Option<String>,
|
|
pub cover_image_src: Option<String>,
|
|
pub compiled_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct VisualNovelRunStartRecordInput {
|
|
pub run_id: String,
|
|
pub owner_user_id: String,
|
|
pub profile_id: String,
|
|
pub mode: String,
|
|
pub snapshot_json: Option<String>,
|
|
pub started_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct VisualNovelRunSnapshotRecordInput {
|
|
pub run_id: String,
|
|
pub owner_user_id: String,
|
|
pub status: String,
|
|
pub current_scene_id: Option<String>,
|
|
pub current_phase_id: Option<String>,
|
|
pub visible_character_ids_json: String,
|
|
pub flags_json: String,
|
|
pub metrics_json: String,
|
|
pub available_choices_json: String,
|
|
pub text_mode_enabled: bool,
|
|
pub snapshot_json: Option<String>,
|
|
pub updated_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct VisualNovelHistoryEntryRecordInput {
|
|
pub entry_id: String,
|
|
pub run_id: String,
|
|
pub owner_user_id: String,
|
|
pub turn_index: u32,
|
|
pub source: String,
|
|
pub action_text: Option<String>,
|
|
pub steps_json: String,
|
|
pub snapshot_before_hash: Option<String>,
|
|
pub snapshot_after_hash: Option<String>,
|
|
pub created_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq)]
|
|
pub struct VisualNovelAgentMessageRecord {
|
|
pub message_id: String,
|
|
pub session_id: String,
|
|
pub role: String,
|
|
pub kind: String,
|
|
pub text: String,
|
|
pub created_at: String,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq)]
|
|
pub struct VisualNovelHistoryEntryRecord {
|
|
pub entry_id: String,
|
|
pub run_id: String,
|
|
pub owner_user_id: String,
|
|
pub profile_id: String,
|
|
pub turn_index: u32,
|
|
pub source: String,
|
|
pub action_text: Option<String>,
|
|
pub steps: serde_json::Value,
|
|
pub snapshot_before_hash: Option<String>,
|
|
pub snapshot_after_hash: Option<String>,
|
|
pub created_at: String,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq)]
|
|
pub struct VisualNovelRunRecord {
|
|
pub run_id: String,
|
|
pub owner_user_id: String,
|
|
pub profile_id: String,
|
|
pub mode: String,
|
|
pub status: String,
|
|
pub current_scene_id: Option<String>,
|
|
pub current_phase_id: Option<String>,
|
|
pub visible_character_ids: Vec<String>,
|
|
pub flags: serde_json::Value,
|
|
pub metrics: serde_json::Value,
|
|
pub history: Vec<VisualNovelHistoryEntryRecord>,
|
|
pub available_choices: serde_json::Value,
|
|
pub text_mode_enabled: bool,
|
|
pub created_at: String,
|
|
pub updated_at: String,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleAnchorItemRecord {
|
|
pub key: String,
|
|
pub label: String,
|
|
pub value: String,
|
|
pub status: String,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleAnchorPackRecord {
|
|
pub theme: SquareHoleAnchorItemRecord,
|
|
pub twist_rule: SquareHoleAnchorItemRecord,
|
|
pub shape_count: SquareHoleAnchorItemRecord,
|
|
pub difficulty: SquareHoleAnchorItemRecord,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleCreatorConfigRecord {
|
|
pub theme_text: String,
|
|
pub twist_rule: String,
|
|
pub shape_count: u32,
|
|
pub difficulty: u32,
|
|
pub shape_options: Vec<SquareHoleShapeOptionRecord>,
|
|
pub hole_options: Vec<SquareHoleHoleOptionRecord>,
|
|
pub background_prompt: String,
|
|
pub cover_image_src: Option<String>,
|
|
pub background_image_src: Option<String>,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleShapeOptionRecord {
|
|
pub option_id: String,
|
|
pub shape_kind: String,
|
|
pub label: String,
|
|
pub target_hole_id: String,
|
|
pub image_prompt: String,
|
|
pub image_src: Option<String>,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleHoleOptionRecord {
|
|
pub hole_id: String,
|
|
pub hole_kind: String,
|
|
pub label: String,
|
|
pub image_prompt: String,
|
|
pub image_src: Option<String>,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleResultDraftRecord {
|
|
pub profile_id: String,
|
|
pub game_name: String,
|
|
pub theme_text: String,
|
|
pub twist_rule: String,
|
|
pub summary: String,
|
|
pub tags: Vec<String>,
|
|
pub cover_image_src: Option<String>,
|
|
pub background_prompt: String,
|
|
pub background_image_src: Option<String>,
|
|
pub shape_options: Vec<SquareHoleShapeOptionRecord>,
|
|
pub hole_options: Vec<SquareHoleHoleOptionRecord>,
|
|
pub shape_count: u32,
|
|
pub difficulty: u32,
|
|
pub publish_ready: bool,
|
|
pub blockers: Vec<String>,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleAgentMessageRecord {
|
|
pub id: String,
|
|
pub role: String,
|
|
pub kind: String,
|
|
pub text: String,
|
|
pub created_at: String,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleAgentSessionRecord {
|
|
pub session_id: String,
|
|
pub current_turn: u32,
|
|
pub progress_percent: u32,
|
|
pub stage: String,
|
|
pub anchor_pack: SquareHoleAnchorPackRecord,
|
|
pub config: SquareHoleCreatorConfigRecord,
|
|
pub draft: Option<SquareHoleResultDraftRecord>,
|
|
pub messages: Vec<SquareHoleAgentMessageRecord>,
|
|
pub last_assistant_reply: Option<String>,
|
|
pub published_profile_id: Option<String>,
|
|
pub updated_at: String,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleWorkProfileRecord {
|
|
pub work_id: String,
|
|
pub profile_id: String,
|
|
pub owner_user_id: String,
|
|
pub source_session_id: Option<String>,
|
|
pub author_display_name: String,
|
|
pub game_name: String,
|
|
pub theme_text: String,
|
|
pub twist_rule: String,
|
|
pub summary: String,
|
|
pub tags: Vec<String>,
|
|
pub cover_image_src: Option<String>,
|
|
pub background_prompt: String,
|
|
pub background_image_src: Option<String>,
|
|
pub shape_options: Vec<SquareHoleShapeOptionRecord>,
|
|
pub hole_options: Vec<SquareHoleHoleOptionRecord>,
|
|
pub shape_count: u32,
|
|
pub difficulty: u32,
|
|
pub publication_status: String,
|
|
pub play_count: u32,
|
|
pub updated_at: String,
|
|
pub published_at: Option<String>,
|
|
pub publish_ready: bool,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct SquareHoleShapeSnapshotRecord {
|
|
pub shape_id: String,
|
|
pub shape_kind: String,
|
|
pub label: String,
|
|
pub target_hole_id: String,
|
|
pub color: String,
|
|
pub image_src: Option<String>,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq)]
|
|
pub struct SquareHoleHoleSnapshotRecord {
|
|
pub hole_id: String,
|
|
pub hole_kind: String,
|
|
pub label: String,
|
|
pub x: f32,
|
|
pub y: f32,
|
|
pub image_src: Option<String>,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct BigFishSessionCreateRecordInput {
|
|
pub session_id: String,
|
|
pub owner_user_id: String,
|
|
pub seed_text: String,
|
|
pub welcome_message_id: String,
|
|
pub welcome_message_text: String,
|
|
pub created_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct BigFishMessageSubmitRecordInput {
|
|
pub session_id: String,
|
|
pub owner_user_id: String,
|
|
pub user_message_id: String,
|
|
pub user_message_text: String,
|
|
pub assistant_message_id: String,
|
|
pub submitted_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct BigFishMessageFinalizeRecordInput {
|
|
pub session_id: String,
|
|
pub owner_user_id: String,
|
|
pub assistant_message_id: Option<String>,
|
|
pub assistant_reply_text: Option<String>,
|
|
pub stage: String,
|
|
pub progress_percent: u32,
|
|
pub anchor_pack_json: String,
|
|
pub error_message: Option<String>,
|
|
pub updated_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct BigFishDraftCompileRecordInput {
|
|
pub session_id: String,
|
|
pub owner_user_id: String,
|
|
pub draft_json: Option<String>,
|
|
pub compiled_at_micros: i64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct BigFishAnchorItemRecord {
|
|
pub key: String,
|
|
pub label: String,
|
|
pub value: String,
|
|
pub status: String,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct BigFishAnchorPackRecord {
|
|
pub gameplay_promise: BigFishAnchorItemRecord,
|
|
pub ecology_visual_theme: BigFishAnchorItemRecord,
|
|
pub growth_ladder: BigFishAnchorItemRecord,
|
|
pub risk_tempo: BigFishAnchorItemRecord,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq)]
|
|
pub struct BigFishLevelBlueprintRecord {
|
|
pub level: u32,
|
|
pub name: String,
|
|
pub one_line_fantasy: String,
|
|
pub text_description: String,
|
|
pub silhouette_direction: String,
|
|
pub size_ratio: f32,
|
|
pub visual_description: String,
|
|
pub visual_prompt_seed: String,
|
|
pub idle_motion_description: String,
|
|
pub move_motion_description: String,
|
|
pub motion_prompt_seed: String,
|
|
pub merge_source_level: Option<u32>,
|
|
pub prey_window: Vec<u32>,
|
|
pub threat_window: Vec<u32>,
|
|
pub is_final_level: bool,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct BigFishBackgroundBlueprintRecord {
|
|
pub theme: String,
|
|
pub color_mood: String,
|
|
pub foreground_hints: String,
|
|
pub midground_composition: String,
|
|
pub background_depth: String,
|
|
pub safe_play_area_hint: String,
|
|
pub spawn_edge_hint: String,
|
|
pub background_prompt_seed: String,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct BigFishAgentMessageRecord {
|
|
pub message_id: String,
|
|
pub role: String,
|
|
pub kind: String,
|
|
pub text: String,
|
|
pub created_at: String,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq)]
|
|
pub struct BigFishVector2Record {
|
|
pub x: f32,
|
|
pub y: f32,
|
|
}
|