module Config.Pages.Debate.Cuckery.Types exposing
    ( CommonProps
    , Cuck
    , Dodge
    , DodgeDescription(..)
    , DodgeFallacies(..)
    , DoxasticState(..)
    , Evaluation(..)
    , PropReasons
    , Receipts
    , commonPropReasons
    , commonProps
    , multiplePropositions
    , noProposition
    )

import Config.Data.Hashtags.Types exposing (..)


type alias Cuck =
    { cuckImage : String
    , cuckName : String
    , cuckSocial : String
    , isNewTabLink : Bool
    , cuckDodges : List Dodge
    }


type alias Dodge =
    { dodgeLink : String
    , dodgeDescription : DodgeDescription
    , dodgeProposition : String
    , dodgeReceipts : List Receipts
    , dodgeFallacy : Maybe DodgeFallacies
    , dodgeNicksDoxasticState : Maybe DoxasticState
    , dodgeNicksDoxasticReason : Evaluation
    }


type alias Receipts =
    { receipt : String
    }


type DodgeDescription
    = NoReply
    | RanAway
    | GhostedMe
    | PussiedOut
    | InTooDeep
    | KillScreen
    | VagueGesture
    | EmptyHanded


type DodgeFallacies
    = AppealToNature
    | AppealFromIncredulity
    | AppealToIgnorance
    | AppealToTradition
    | BeggingTheQuestion
    | Equivocation
    | GeneticFallacy
    | MechanisticMasturbation
    | MotteAndBailey
    | RedHerring
    | SelfSealing
    | Strawman
    | VagueHumanity
    | Vaguemongering
    | SpecificFallacy String


type DoxasticState
    = Belief
    | Disbelief
    | Agnostic


type Evaluation
    = NoProp
    | VagueProp
    | SpecificPropReason String


type alias CommonProps =
    { propSeedOils : String
    , propLinoleicAcid : String
    }


type alias PropReasons =
    { propSaturatedFatReason : String
    , propSeedOilsReason : String
    , propSeedOilsReasonCVD : String
    , propSeedOilsReasonCancer : String
    , propSeedOilsReasonInflammation : String
    , propSeedOilsReasonObesity : String
    , propSeedOilsReasonChronicDisease : String
    , propLDLCausality : String
    , propEmpiricalClaim : String
    , propEmpiricalClaimDisbelief : String
    , propAnalyticalTruth : String
    , propNutritionalEpidemiology : String
    , propPlantBasedDiets : String
    , propTooVague : String
    }


noProposition : String
noProposition =
    "N/A"


multiplePropositions : String
multiplePropositions =
    "Multiple propositions."


commonProps : CommonProps
commonProps =
    { propSeedOils = "Seed oils are not a significant, independent risk factor for public health."
    , propLinoleicAcid = "Dietary linoleic acid is not a significant, independent concern for the development of chronic diseases."
    }


commonPropReasons : PropReasons
commonPropReasons =
    { propSaturatedFatReason = "The aggregate of the data overwhelmingly supports the hypothesis that heart disease risk can be influenced by changes in blood lipids as a function of saturated fat intake."
    , propSeedOilsReason = "The aggregate of the data suggests seed oils are beneficial for humans."
    , propSeedOilsReasonCVD = "The aggregate of the data suggests seed oils decrease the risk of heart disease."
    , propSeedOilsReasonCancer = "The aggregate of the data suggests seed oils decrease the risk of cancer."
    , propSeedOilsReasonInflammation = "There's no persuasive evidence that seed oils reliably influence inflammation in either direction."
    , propSeedOilsReasonObesity = "There's no persuasive evidence that seed oils reliably influence obesity in either direction."
    , propSeedOilsReasonChronicDisease = "The aggregate of the data suggests seed oils decrease the risk of chronic disease."
    , propLDLCausality = "The highest tiers of evidence show an overwhelmingly consistent linear and proportional relationship between the concentration of low-density lipoproteins in the blood and coronary heart disease, regardless of population characteristics."
    , propEmpiricalClaim = "This is an empirical claim that requires empirical evidence, and none was provided."
    , propEmpiricalClaimDisbelief = "No empirical evidence was provided for the claim, but I find it incredibly implausible."
    , propAnalyticalTruth = "The proposition is simply a trivial analytical truth."
    , propNutritionalEpidemiology = "With exposures matched, nutritional epidemiology agrees with nutritional randomized controlled trials approximately 91% of the time."
    , propPlantBasedDiets = "The aggregate of the data suggests that appropriately supplemented plant-based diets decrease the risk of chronic disease compared to likewise meat-inclusive diets."
    , propTooVague = "The proposition is too vague to evaluate and no clarification was provided."
    }
