use serde::{Deserialize, Serialize};
use sqlx::FromRow;

#[derive(Debug, Serialize, Deserialize, FromRow)]
#[serde(rename_all = "PascalCase")]
#[sqlx(rename_all = "PascalCase")]
pub struct UserContentsInfo {
    #[sqlx(rename = "Index")]
    pub index: i64,
    #[sqlx(rename = "Uid")]
    pub uid: i64,
    #[sqlx(rename = "OwnerIndex")]
    pub owner_index: Option<i64>,
    #[sqlx(rename = "UserId")]
    pub user_id: Option<String>,
    #[sqlx(rename = "TitleId")]
    pub title_id: Option<i32>,
    #[sqlx(rename = "PortraitCostumeId")]
    pub portrait_costume_id: Option<i32>,
    #[sqlx(rename = "Greeting")]
    pub greeting: Option<String>,
    #[sqlx(rename = "PvpSeason")]
    pub pvp_season: Option<i32>,
    #[sqlx(rename = "PvpVp")]
    pub pvp_vp: Option<i32>,
    #[sqlx(rename = "PvpRank")]
    pub pvp_rank: Option<i32>,
    #[sqlx(rename = "MonsterhuntRank")]
    pub monsterhunt_rank: Option<i32>,
    #[sqlx(rename = "LikeCount")]
    pub like_count: Option<i32>,
    #[sqlx(rename = "IsAllPrivate")]
    pub is_all_private: Option<i32>,
    #[sqlx(rename = "Options")]
    pub options: i32,
    #[sqlx(rename = "IsFriend")]
    pub is_friend: Option<i32>,
    #[sqlx(rename = "RoomInfoIndex")]
    pub room_info_index: Option<i64>,
    #[sqlx(rename = "TotalWarScore")]
    pub total_war_score: Option<i64>,
    #[sqlx(rename = "TotalBattlePower")]
    pub total_battle_power: Option<i32>,
    #[sqlx(rename = "GuildBaseInfoIndex")]
    pub guild_base_info_index: Option<i64>,
    #[sqlx(rename = "MyRoomLikeCount")]
    pub my_room_like_count: Option<i32>,
    #[sqlx(rename = "PortraitCostumeDesignId")]
    pub portrait_costume_design_id: Option<i32>,
    #[sqlx(rename = "GuildRaidRank")]
    pub guild_raid_rank: Option<i32>,
    #[sqlx(rename = "GuildRaidScore")]
    pub guild_raid_score: Option<i64>,
    #[sqlx(rename = "EvilCastleGreedTowerTopFloor")]
    pub evil_castle_greed_tower_top_floor: Option<i32>,
    #[sqlx(rename = "EvilCastleRageTowerTopFloor")]
    pub evil_castle_rage_tower_top_floor: Option<i32>,
    #[sqlx(rename = "EvilCastleEnvyTowerTopFloor")]
    pub evil_castle_envy_tower_top_floor: Option<i32>,
    #[sqlx(rename = "EvilCastleRogueLikeLevel")]
    pub evil_castle_rogue_like_level: Option<i32>,
    #[sqlx(rename = "AchievementLevel")]
    pub achievement_level: Option<i32>,
    #[sqlx(rename = "SortId")]
    pub sort_id: i32,
    #[sqlx(rename = "IdCardInfoIndex")]
    pub id_card_info_index: Option<i64>,
    #[sqlx(rename = "MonsterhuntRankTopPercent")]
    pub monsterhunt_rank_top_percent: Option<f64>,
    #[sqlx(rename = "SupporterInfoIndex")]
    pub supporter_info_index: Option<String>,
}