82 lines
2.6 KiB
Rust
82 lines
2.6 KiB
Rust
use crate::*;
|
|
|
|
#[spacetimedb::table(
|
|
accessor = big_fish_creation_session,
|
|
index(accessor = by_big_fish_session_owner_user_id, btree(columns = [owner_user_id])),
|
|
index(accessor = by_big_fish_session_stage, btree(columns = [stage]))
|
|
)]
|
|
pub struct BigFishCreationSession {
|
|
#[primary_key]
|
|
pub(crate) session_id: String,
|
|
pub(crate) owner_user_id: String,
|
|
pub(crate) seed_text: String,
|
|
pub(crate) current_turn: u32,
|
|
pub(crate) progress_percent: u32,
|
|
pub(crate) stage: BigFishCreationStage,
|
|
pub(crate) anchor_pack_json: String,
|
|
pub(crate) draft_json: Option<String>,
|
|
pub(crate) asset_coverage_json: String,
|
|
pub(crate) last_assistant_reply: Option<String>,
|
|
pub(crate) publish_ready: bool,
|
|
pub(crate) created_at: Timestamp,
|
|
pub(crate) updated_at: Timestamp,
|
|
#[default(0)]
|
|
pub(crate) play_count: u32,
|
|
#[default(0)]
|
|
pub(crate) remix_count: u32,
|
|
#[default(0)]
|
|
pub(crate) like_count: u32,
|
|
#[default(None::<Timestamp>)]
|
|
pub(crate) published_at: Option<Timestamp>,
|
|
}
|
|
|
|
#[spacetimedb::table(
|
|
accessor = big_fish_agent_message,
|
|
index(accessor = by_big_fish_message_session_id, btree(columns = [session_id]))
|
|
)]
|
|
pub struct BigFishAgentMessage {
|
|
#[primary_key]
|
|
pub(crate) message_id: String,
|
|
pub(crate) session_id: String,
|
|
pub(crate) role: BigFishAgentMessageRole,
|
|
pub(crate) kind: BigFishAgentMessageKind,
|
|
pub(crate) text: String,
|
|
pub(crate) created_at: Timestamp,
|
|
}
|
|
|
|
#[spacetimedb::table(
|
|
accessor = big_fish_asset_slot,
|
|
index(accessor = by_big_fish_asset_session_id, btree(columns = [session_id]))
|
|
)]
|
|
pub struct BigFishAssetSlot {
|
|
#[primary_key]
|
|
pub(crate) slot_id: String,
|
|
pub(crate) session_id: String,
|
|
pub(crate) asset_kind: BigFishAssetKind,
|
|
pub(crate) level: Option<u32>,
|
|
pub(crate) motion_key: Option<String>,
|
|
pub(crate) status: BigFishAssetStatus,
|
|
pub(crate) asset_url: Option<String>,
|
|
pub(crate) prompt_snapshot: String,
|
|
pub(crate) updated_at: Timestamp,
|
|
}
|
|
|
|
#[spacetimedb::table(
|
|
accessor = big_fish_runtime_run,
|
|
index(accessor = by_big_fish_run_owner_user_id, btree(columns = [owner_user_id])),
|
|
index(accessor = by_big_fish_run_session_id, btree(columns = [session_id]))
|
|
)]
|
|
pub struct BigFishRuntimeRun {
|
|
#[primary_key]
|
|
pub(crate) run_id: String,
|
|
pub(crate) session_id: String,
|
|
pub(crate) owner_user_id: String,
|
|
pub(crate) status: BigFishRunStatus,
|
|
pub(crate) snapshot_json: String,
|
|
pub(crate) last_input_x: f32,
|
|
pub(crate) last_input_y: f32,
|
|
pub(crate) tick: u64,
|
|
pub(crate) created_at: Timestamp,
|
|
pub(crate) updated_at: Timestamp,
|
|
}
|