use crate::*; #[spacetimedb::table( accessor = bark_battle_draft_config, index(accessor = by_bark_battle_draft_owner_user_id, btree(columns = [owner_user_id])), index(accessor = by_bark_battle_draft_work_id, btree(columns = [work_id])) )] #[derive(Clone)] pub struct BarkBattleDraftConfigRow { #[primary_key] pub(crate) draft_id: String, pub(crate) owner_user_id: String, pub(crate) work_id: String, pub(crate) config_version: u64, pub(crate) ruleset_version: String, pub(crate) difficulty_preset: String, pub(crate) leaderboard_enabled: bool, pub(crate) config_json: String, pub(crate) editor_state_json: String, pub(crate) created_at: Timestamp, pub(crate) updated_at: Timestamp, } #[spacetimedb::table( accessor = bark_battle_published_config, index(accessor = by_bark_battle_published_owner_user_id, btree(columns = [owner_user_id])) )] #[derive(Clone)] pub struct BarkBattlePublishedConfigRow { #[primary_key] pub(crate) work_id: String, pub(crate) owner_user_id: String, pub(crate) source_draft_id: Option, pub(crate) config_version: u64, pub(crate) ruleset_version: String, pub(crate) difficulty_preset: String, pub(crate) leaderboard_enabled: bool, pub(crate) config_json: String, pub(crate) published_snapshot_json: String, pub(crate) created_at: Timestamp, pub(crate) updated_at: Timestamp, pub(crate) published_at: Timestamp, } #[spacetimedb::table( accessor = bark_battle_runtime_run, index(accessor = by_bark_battle_run_owner_user_id, btree(columns = [owner_user_id])), index(accessor = by_bark_battle_run_work_id, btree(columns = [work_id])) )] #[derive(Clone)] pub struct BarkBattleRuntimeRunRow { #[primary_key] pub(crate) run_id: String, pub(crate) run_token_hash: String, pub(crate) owner_user_id: String, pub(crate) work_id: String, pub(crate) config_version: u64, pub(crate) ruleset_version: String, pub(crate) difficulty_preset: String, pub(crate) leaderboard_enabled: bool, pub(crate) status: String, pub(crate) client_started_at_micros: i64, pub(crate) server_started_at: Timestamp, pub(crate) client_finished_at_micros: Option, pub(crate) server_finished_at: Option, pub(crate) metrics_json: String, pub(crate) server_result: Option, pub(crate) validation_status: String, pub(crate) anti_cheat_flags_json: String, pub(crate) leaderboard_score: Option, pub(crate) score_id: Option, pub(crate) created_at: Timestamp, pub(crate) updated_at: Timestamp, } #[spacetimedb::table( accessor = bark_battle_score_record, index(accessor = by_bark_battle_score_owner_user_id, btree(columns = [owner_user_id])), index(accessor = by_bark_battle_score_work_id, btree(columns = [work_id])), index(accessor = by_bark_battle_score_run_id, btree(columns = [run_id])) )] #[derive(Clone)] pub struct BarkBattleScoreRecordRow { #[primary_key] pub(crate) score_id: String, pub(crate) owner_user_id: String, pub(crate) work_id: String, pub(crate) run_id: String, pub(crate) config_version: u64, pub(crate) ruleset_version: String, pub(crate) difficulty_preset: String, pub(crate) leaderboard_enabled: bool, pub(crate) metrics_json: String, pub(crate) derived_metrics_json: String, pub(crate) server_result: String, pub(crate) validation_status: String, pub(crate) anti_cheat_flags_json: String, pub(crate) leaderboard_score: Option, pub(crate) recorded_at: Timestamp, } #[spacetimedb::table( accessor = bark_battle_leaderboard_entry, index(accessor = by_bark_battle_leaderboard_work_score, btree(columns = [work_id, leaderboard_score])), index(accessor = by_bark_battle_leaderboard_owner_work, btree(columns = [owner_user_id, work_id])) )] #[derive(Clone)] pub struct BarkBattleLeaderboardEntryRow { #[primary_key] pub(crate) leaderboard_entry_id: String, pub(crate) work_id: String, pub(crate) owner_user_id: String, pub(crate) run_id: String, pub(crate) score_id: String, pub(crate) leaderboard_score: u64, pub(crate) final_energy: f32, pub(crate) trigger_count: u64, pub(crate) max_volume: f32, pub(crate) duration_closeness_ms: u64, pub(crate) finished_at_micros: i64, pub(crate) created_at: Timestamp, pub(crate) updated_at: Timestamp, } #[spacetimedb::table( accessor = bark_battle_work_stats_projection, index(accessor = by_bark_battle_work_stats_owner_user_id, btree(columns = [owner_user_id])) )] #[derive(Clone)] pub struct BarkBattleWorkStatsProjectionRow { #[primary_key] pub(crate) work_id: String, pub(crate) owner_user_id: String, pub(crate) play_count: u64, pub(crate) finished_count: u64, pub(crate) accepted_score_count: u64, pub(crate) leaderboard_entry_count: u64, pub(crate) best_leaderboard_score: Option, pub(crate) best_score_id: Option, pub(crate) best_run_id: Option, pub(crate) average_final_energy: f32, pub(crate) average_trigger_count: f32, pub(crate) last_finished_at_micros: Option, pub(crate) stats_json: String, pub(crate) updated_at: Timestamp, } #[spacetimedb::table( accessor = bark_battle_personal_best_projection, index(accessor = by_bark_battle_personal_best_work_id, btree(columns = [work_id])), index(accessor = by_bark_battle_personal_best_owner_work, btree(columns = [owner_user_id, work_id])) )] #[derive(Clone)] pub struct BarkBattlePersonalBestProjectionRow { #[primary_key] pub(crate) personal_best_id: String, pub(crate) owner_user_id: String, pub(crate) work_id: String, pub(crate) run_id: String, pub(crate) score_id: String, pub(crate) leaderboard_entry_id: Option, pub(crate) leaderboard_score: Option, pub(crate) final_energy: f32, pub(crate) trigger_count: u64, pub(crate) max_volume: f32, pub(crate) duration_closeness_ms: u64, pub(crate) server_result: String, pub(crate) validation_status: String, pub(crate) finished_at_micros: i64, pub(crate) summary_json: String, pub(crate) updated_at: Timestamp, }