173 lines
6.1 KiB
Rust
173 lines
6.1 KiB
Rust
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<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) 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<i64>,
|
|
pub(crate) server_finished_at: Option<Timestamp>,
|
|
pub(crate) metrics_json: String,
|
|
pub(crate) server_result: Option<String>,
|
|
pub(crate) validation_status: String,
|
|
pub(crate) anti_cheat_flags_json: String,
|
|
pub(crate) leaderboard_score: Option<u64>,
|
|
pub(crate) score_id: Option<String>,
|
|
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<u64>,
|
|
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<u64>,
|
|
pub(crate) best_score_id: Option<String>,
|
|
pub(crate) best_run_id: Option<String>,
|
|
pub(crate) average_final_energy: f32,
|
|
pub(crate) average_trigger_count: f32,
|
|
pub(crate) last_finished_at_micros: Option<i64>,
|
|
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<String>,
|
|
pub(crate) leaderboard_score: Option<u64>,
|
|
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,
|
|
}
|