Files
Genarrative/server-rs/crates/spacetime-module/src/big_fish/tables.rs
2026-04-29 11:51:04 +08:00

58 lines
1.8 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]))
)]
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) play_count: u32,
pub(crate) remix_count: u32,
pub(crate) like_count: u32,
pub(crate) published_at: Option<Timestamp>,
pub(crate) created_at: Timestamp,
pub(crate) updated_at: 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,
}