use std::cmp::{Eq, PartialEq};
use strum_macros::{Display, EnumIter, EnumString};

#[derive(Eq, PartialEq, Hash, Clone, EnumString, EnumIter, Display, Debug)]
pub enum FundamentalConcept {
    Assets,
    BenefitsCostsExpenses,
    CommitmentsAndContingencies,
    ComprehensiveIncomeLoss,
    ComprehensiveIncomeLossAttributableToNoncontrollingInterest,
    ComprehensiveIncomeLossAttributableToParent,
    CostOfRevenue,
    CostsAndExpenses,
    CurrentAssets,
    CurrentLiabilities,
    Equity,
    EquityAttributableToNoncontrollingInterest,
    EquityAttributableToParent,
    ExchangeGainsLosses,
    ExtraordinaryItemsOfIncomeExpenseNetOfTax,
    GainLossOnSalePropertiesNetTax,
    GrossProfit,
    IncomeLossBeforeEquityMethodInvestments,
    IncomeLossFromContinuingOperationsAfterTax,
    IncomeLossFromContinuingOperationsBeforeTax,
    IncomeLossFromDiscontinuedOperationsNetOfTax,
    IncomeLossFromEquityMethodInvestments,
    IncomeStatementStartPeriodYearToDate,
    IncomeTaxExpenseBenefit,
    InterestAndDebtExpense,
    InterestAndDividendIncomeOperating,
    InterestExpenseOperating,
    InterestIncomeExpenseAfterProvisionForLosses,
    InterestIncomeExpenseOperatingNet,
    Liabilities,
    LiabilitiesAndEquity,
    NatureOfOperations,
    NetCashFlow,
    NetCashFlowContinuing,
    NetCashFlowDiscontinued,
    NetCashFlowFromFinancingActivities,
    NetCashFlowFromFinancingActivitiesContinuing,
    NetCashFlowFromFinancingActivitiesDiscontinued,
    NetCashFlowFromInvestingActivities,
    NetCashFlowFromInvestingActivitiesContinuing,
    NetCashFlowFromInvestingActivitiesDiscontinued,
    NetCashFlowFromOperatingActivities,
    NetCashFlowFromOperatingActivitiesContinuing,
    NetCashFlowFromOperatingActivitiesDiscontinued,
    NetIncomeLoss,
    NetIncomeLossAvailableToCommonStockholdersBasic,
    NetIncomeLossAttributableToNoncontrollingInterest,
    NetIncomeLossAttributableToParent,
    NoncurrentAssets,
    NoncurrentLiabilities,
    NoninterestExpense,
    NoninterestIncome,
    NonoperatingIncomeLoss,
    OperatingExpenses,
    OperatingIncomeLoss,
    OtherComprehensiveIncomeLoss,
    OtherOperatingIncomeExpenses,
    PreferredStockDividendsAndOtherAdjustments,
    ProvisionForLoanLeaseAndOtherLosses,
    RedeemableNoncontrollingInterest,
    ResearchAndDevelopment,
    Revenues,
    RevenuesExcludingInterestAndDividends,
    RevenuesNetInterestExpense,
    TemporaryEquity,
}
