#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[repr(i32)]
pub enum EAppReportType {
    Invalid = 0,
    Scam = 1,
    Malware = 2,
    HateSpeech = 3,
    Pornography = 4,
    NonLabeledAdultContent = 5,
    Libelous = 6,
    Offensive = 7,
    ExploitsChildren = 8,
    MtxWithNonSteamWalletPaymentMethods = 9,
    CopyrightViolation = 10,
    ViolatesLaws = 11,
    Other = 12,
    Broken = 13,
    AIContentReport = 14,
}

impl EAppReportType {
    pub fn from_i32(val: i32) -> Option<Self> {
        match val {
            x if x == Self::Invalid as i32 => Some(Self::Invalid),
            x if x == Self::Scam as i32 => Some(Self::Scam),
            x if x == Self::Malware as i32 => Some(Self::Malware),
            x if x == Self::HateSpeech as i32 => Some(Self::HateSpeech),
            x if x == Self::Pornography as i32 => Some(Self::Pornography),
            x if x == Self::NonLabeledAdultContent as i32 => Some(Self::NonLabeledAdultContent),
            x if x == Self::Libelous as i32 => Some(Self::Libelous),
            x if x == Self::Offensive as i32 => Some(Self::Offensive),
            x if x == Self::ExploitsChildren as i32 => Some(Self::ExploitsChildren),
            x if x == Self::MtxWithNonSteamWalletPaymentMethods as i32 => Some(Self::MtxWithNonSteamWalletPaymentMethods),
            x if x == Self::CopyrightViolation as i32 => Some(Self::CopyrightViolation),
            x if x == Self::ViolatesLaws as i32 => Some(Self::ViolatesLaws),
            x if x == Self::Other as i32 => Some(Self::Other),
            x if x == Self::Broken as i32 => Some(Self::Broken),
            x if x == Self::AIContentReport as i32 => Some(Self::AIContentReport),
            _ => None,
        }
    }
}
