use serde::{Deserialize, Serialize}; #[cfg(feature = "spacetime-types")] use spacetimedb::SpacetimeType; use crate::{ CreativeAgentMessageKind, CreativeAgentMessageRole, CreativeAgentStage, CreativeInputSummarySnapshot, CreativeTargetPlayType, CreativeTargetStage, }; #[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))] #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] pub struct CreativeAgentSessionCreateInput { pub session_id: String, pub owner_user_id: String, pub input_summary: CreativeInputSummarySnapshot, pub welcome_message_id: Option, pub welcome_message_text: Option, pub created_at_micros: i64, } #[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))] #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] pub struct CreativeAgentSessionGetInput { pub session_id: String, pub owner_user_id: String, } #[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))] #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] pub struct CreativeAgentMessageAppendInput { pub session_id: String, pub owner_user_id: String, pub message_id: String, pub role: CreativeAgentMessageRole, pub kind: CreativeAgentMessageKind, pub text: String, pub created_at_micros: i64, } #[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))] #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] pub struct CreativeAgentStageUpdateInput { pub session_id: String, pub owner_user_id: String, pub stage: CreativeAgentStage, pub updated_at_micros: i64, } #[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))] #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] pub struct CreativeAgentTemplateConfirmInput { pub session_id: String, pub owner_user_id: String, pub template_selection_json: String, pub updated_at_micros: i64, } #[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))] #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] pub struct CreativeAgentLevelPlanSaveInput { pub session_id: String, pub owner_user_id: String, pub level_plan_json: String, pub updated_at_micros: i64, } #[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))] #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] pub struct CreativeAgentTargetBindInput { pub binding_id: String, pub session_id: String, pub owner_user_id: String, pub play_type: CreativeTargetPlayType, pub target_session_id: String, pub target_stage: CreativeTargetStage, pub result_profile_id: Option, pub created_at_micros: i64, } #[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))] #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] pub struct CreativeAgentFinalizeInput { pub session_id: String, pub owner_user_id: String, pub stage: CreativeAgentStage, pub assistant_message_id: Option, pub assistant_message_text: Option, pub updated_at_micros: i64, }