This repository has been archived on 2024-08-06. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
chellaris-rust-api/src/v3/schemas.rs

71 lines
1.6 KiB
Rust
Raw Normal View History

2023-08-26 06:36:12 +02:00
use std::collections::HashMap;
use serde::{Serialize, Deserialize};
use utoipa::{ToSchema, IntoParams};
#[derive(Serialize, Deserialize, ToSchema, Debug, IntoParams)]
pub struct AuthParams {
pub token: Option<String>,
}
#[derive(Serialize, ToSchema, Debug, Clone)]
pub struct FullViewData {
pub games: HashMap<i32, ChellarisGame>,
pub ethics: HashMap<i32, Ethic>,
pub species: HashMap<i32, Species>,
}
#[derive(Serialize, ToSchema, Debug, Clone)]
pub struct ChellarisGame {
pub id: i32,
pub name: String,
pub groups: HashMap<i32, ChellarisGameGroup>,
pub empires: HashMap<i32, ChellarisEmpire>,
}
#[derive(Serialize, ToSchema, Debug, Clone)]
pub struct ChellarisGameGroup {
pub id: i32,
pub name: String,
}
#[derive(Serialize, ToSchema, Debug, Clone)]
pub struct ChellarisEmpire {
pub id: i32,
pub gestalt: bool,
pub machine: bool,
pub group: i32,
pub empire_portrait: i32,
pub empire_portrait_group: i32,
pub discord_user: Option<String>,
pub ethics: HashMap<i32, EmpireEthic>,
}
#[derive(Serialize, ToSchema, Debug, Clone)]
pub struct Ethic {
pub id: i32,
pub displayName: String,
pub machine: bool,
}
#[derive(Serialize, ToSchema, Debug, Clone)]
pub struct EmpireEthic {
pub id: i32,
pub displayName: String,
pub machine: bool,
pub fanatic: bool,
}
#[derive(Serialize, ToSchema, Debug, Clone)]
pub struct Species {
pub id: i32,
pub displayName: String,
pub portraits: HashMap<i32, Portrait>,
}
#[derive(Serialize, ToSchema, Debug, Clone)]
pub struct Portrait {
pub id: i32,
pub hires: String,
pub lores: Option<String>,
}