KeywordChildSexualAbuseMaterial = "KEYWORD_CHILD_SEXUAL_ABUSE_MATERIAL"


Keyword = (
    # --- Animal welfare
    "KEYWORD_ANIMAL_HARM",
    "KEYWORD_UNLAWFUL_SALE_ANIMALS",

    # --- Consumer information (v2)
    "KEYWORD_HIDDEN_ADVERTISEMENT",
    "KEYWORD_INSUFFICIENT_INFORMATION_ON_TRADERS",
    "KEYWORD_MISLEADING_INFO_CONSUMER_RIGHTS",
    "KEYWORD_MISLEADING_INFO_GOODS_SERVICES",
    "KEYWORD_NONCOMPLIANCE_PRICING",

    # --- Cyber violence (v2)
    "KEYWORD_CYBER_BULLYING_INTIMIDATION",
    "KEYWORD_CYBER_HARASSMENT",
    "KEYWORD_CYBER_INCITEMENT",
    "KEYWORD_CYBER_STALKING",
    "KEYWORD_NON_CONSENSUAL_IMAGE_SHARING",
    "KEYWORD_NON_CONSENSUAL_MATERIAL_DEEPFAKE",

    # --- Cyber violence against women (v2)
    "KEYWORD_BULLYING_AGAINST_GIRLS",
    "KEYWORD_CYBER_HARASSMENT_AGAINST_WOMEN",
    "KEYWORD_CYBER_STALKING_AGAINST_WOMEN",
    "KEYWORD_FEMALE_GENDERED_DISINFORMATION",
    "KEYWORD_INCITEMENT_AGAINST_WOMEN",
    "KEYWORD_NON_CONSENSUAL_IMAGE_SHARING_AGAINST_WOMEN",
    "KEYWORD_NON_CONSENSUAL_MATERIAL_DEEPFAKE_AGAINST_WOMEN",

    # --- Data protection and privacy violations
    "KEYWORD_BIOMETRIC_DATA_BREACH",
    "KEYWORD_MISSING_PROCESSING_GROUND",
    "KEYWORD_RIGHT_TO_BE_FORGOTTEN",
    "KEYWORD_DATA_FALSIFICATION",

    # --- Illegal or harmful speech
    "KEYWORD_DEFAMATION",
    "KEYWORD_DISCRIMINATION",
    "KEYWORD_HATE_SPEECH",

    # --- Intellectual property infringements
    "KEYWORD_COPYRIGHT_INFRINGEMENT",
    "KEYWORD_DESIGN_INFRINGEMENT",
    "KEYWORD_GEOGRAPHIC_INDICATIONS_INFRINGEMENT",
    "KEYWORD_PATENT_INFRINGEMENT",
    "KEYWORD_TRADE_SECRET_INFRINGEMENT",
    "KEYWORD_TRADEMARK_INFRINGEMENT",

    # --- Negative effects on civic discourse or elections
    "KEYWORD_DISINFORMATION",
    "KEYWORD_MISINFORMATION",
    "KEYWORD_MISINFORMATION_DISINFORMATION",
    "KEYWORD_VIOLATION_EU_LAW",
    "KEYWORD_VIOLATION_NATIONAL_LAW",
    "KEYWORD_FOREIGN_INFORMATION_MANIPULATION",

    # --- Non-consensual behavior
    "KEYWORD_NON_CONSENSUAL_ITEMS_DEEPFAKE",
    "KEYWORD_ONLINE_BULLYING_INTIMIDATION",
    "KEYWORD_STALKING",

    # --- Pornography or sexualized content
    "KEYWORD_ADULT_SEXUAL_MATERIAL",
    "KEYWORD_IMAGE_BASED_SEXUAL_ABUSE",

    # --- Protection of minors
    "KEYWORD_AGE_SPECIFIC_RESTRICTIONS_MINORS",
    KeywordChildSexualAbuseMaterial,
    "KEYWORD_CHILD_SEXUAL_ABUSE_MATERIAL_DEEPFAKE",
    "KEYWORD_GROOMING_SEXUAL_ENTICEMENT_MINORS",
    "KEYWORD_UNSAFE_CHALLENGES",

    # --- Risk for public security
    "KEYWORD_ILLEGAL_ORGANIZATIONS",
    "KEYWORD_RISK_ENVIRONMENTAL_DAMAGE",
    "KEYWORD_RISK_PUBLIC_HEALTH",
    "KEYWORD_TERRORIST_CONTENT",

    # --- Scams and/or fraud
    "KEYWORD_INAUTHENTIC_ACCOUNTS",
    "KEYWORD_INAUTHENTIC_LISTINGS",
    "KEYWORD_INAUTHENTIC_USER_REVIEWS",
    "KEYWORD_IMPERSONATION_ACCOUNT_HIJACKING",
    "KEYWORD_PHISHING",
    "KEYWORD_PYRAMID_SCHEMES",

    # --- Self-harm
    "KEYWORD_CONTENT_PROMOTING_EATING_DISORDERS",
    "KEYWORD_SELF_MUTILATION",
    "KEYWORD_SUICIDE",

    # --- Scope of platform service
    "KEYWORD_AGE_SPECIFIC_RESTRICTIONS",
    "KEYWORD_GEOGRAPHICAL_REQUIREMENTS",
    "KEYWORD_GOODS_SERVICES_NOT_PERMITTED",
    "KEYWORD_LANGUAGE_REQUIREMENTS",
    "KEYWORD_NUDITY",

    # --- Unsafe and/or illegal products
    "KEYWORD_INSUFFICIENT_INFORMATION_TRADERS",
    "KEYWORD_PROHIBITED_PRODUCTS",
    "KEYWORD_UNSAFE_PRODUCTS",
    "KEYWORD_REGULATED_GOODS_SERVICES",
    "KEYWORD_DANGEROUS_TOYS",

    # --- Violence
    "KEYWORD_COORDINATED_HARM",
    "KEYWORD_GENDER_BASED_VIOLENCE",
    "KEYWORD_HUMAN_EXPLOITATION",
    "KEYWORD_HUMAN_TRAFFICKING",
    "KEYWORD_INCITEMENT_VIOLENCE_HATRED",
    "KEYWORD_TRAFFICKING_WOMEN_GIRLS",

    # --- Other
    "KEYWORD_OTHER",
)


KEYWORDS_V1 = frozenset([
    # --- Animal welfare
    "KEYWORD_ANIMAL_HARM",
    "KEYWORD_UNLAWFUL_SALE_ANIMALS",

    # --- Data protection and privacy violations
    "KEYWORD_BIOMETRIC_DATA_BREACH",
    "KEYWORD_MISSING_PROCESSING_GROUND",
    "KEYWORD_RIGHT_TO_BE_FORGOTTEN",
    "KEYWORD_DATA_FALSIFICATION",

    # --- Illegal or harmful speech
    "KEYWORD_DEFAMATION",
    "KEYWORD_DISCRIMINATION",
    "KEYWORD_HATE_SPEECH",

    # --- Intellectual property infringements
    "KEYWORD_COPYRIGHT_INFRINGEMENT",
    "KEYWORD_DESIGN_INFRINGEMENT",
    "KEYWORD_GEOGRAPHIC_INDICATIONS_INFRINGEMENT",
    "KEYWORD_PATENT_INFRINGEMENT",
    "KEYWORD_TRADE_SECRET_INFRINGEMENT",
    "KEYWORD_TRADEMARK_INFRINGEMENT",

    # --- Negative effects on civic discourse or elections
    "KEYWORD_DISINFORMATION", # v1 (replaced)
    "KEYWORD_MISINFORMATION", # v1 (replaced)
    "KEYWORD_FOREIGN_INFORMATION_MANIPULATION", # v1 (removed)

    # --- Non-consensual behavior
    "KEYWORD_NON_CONSENSUAL_IMAGE_SHARING", # v1 (moved)
    "KEYWORD_NON_CONSENSUAL_ITEMS_DEEPFAKE", # v1 (moved, renamed)
    "KEYWORD_ONLINE_BULLYING_INTIMIDATION", # v1 (moved, renamed)
    "KEYWORD_STALKING",

    # --- Pornography or sexualized content
    "KEYWORD_ADULT_SEXUAL_MATERIAL",
    "KEYWORD_IMAGE_BASED_SEXUAL_ABUSE", # v1 (removed)

    # --- Protection of minors
    "KEYWORD_AGE_SPECIFIC_RESTRICTIONS_MINORS",
    KeywordChildSexualAbuseMaterial,
    "KEYWORD_CHILD_SEXUAL_ABUSE_MATERIAL_DEEPFAKE",
    "KEYWORD_GROOMING_SEXUAL_ENTICEMENT_MINORS",
    "KEYWORD_UNSAFE_CHALLENGES",

    # --- Risk for public security
    "KEYWORD_ILLEGAL_ORGANIZATIONS",
    "KEYWORD_RISK_ENVIRONMENTAL_DAMAGE",
    "KEYWORD_RISK_PUBLIC_HEALTH",
    "KEYWORD_TERRORIST_CONTENT",

    # --- Scams and/or fraud
    "KEYWORD_INAUTHENTIC_ACCOUNTS",
    "KEYWORD_INAUTHENTIC_LISTINGS",
    "KEYWORD_INAUTHENTIC_USER_REVIEWS",
    "KEYWORD_IMPERSONATION_ACCOUNT_HIJACKING",
    "KEYWORD_PHISHING",
    "KEYWORD_PYRAMID_SCHEMES",

    # --- Self-harm
    "KEYWORD_CONTENT_PROMOTING_EATING_DISORDERS",
    "KEYWORD_SELF_MUTILATION",
    "KEYWORD_SUICIDE",

    # --- Scope of platform service
    "KEYWORD_AGE_SPECIFIC_RESTRICTIONS",
    "KEYWORD_GEOGRAPHICAL_REQUIREMENTS",
    "KEYWORD_GOODS_SERVICES_NOT_PERMITTED",
    "KEYWORD_LANGUAGE_REQUIREMENTS",
    "KEYWORD_NUDITY",

    # --- Unsafe and/or illegal products
    "KEYWORD_INSUFFICIENT_INFORMATION_TRADERS", # v1 (moved, renamed)
    "KEYWORD_REGULATED_GOODS_SERVICES", # v1 (removed)
    "KEYWORD_DANGEROUS_TOYS", # v1 (removed)

    # --- Violence
    "KEYWORD_COORDINATED_HARM",
    "KEYWORD_GENDER_BASED_VIOLENCE", # v1 (removed)
    "KEYWORD_HUMAN_EXPLOITATION",
    "KEYWORD_HUMAN_TRAFFICKING",
    "KEYWORD_INCITEMENT_VIOLENCE_HATRED",

    # --- Other
    "KEYWORD_OTHER",
])


KEYWORDS_V2 = frozenset([
    # --- Animal welfare
    "KEYWORD_ANIMAL_HARM",
    "KEYWORD_UNLAWFUL_SALE_ANIMALS",

    # --- Consumer information (v2)
    "KEYWORD_HIDDEN_ADVERTISEMENT", # v2 (added)
    "KEYWORD_INSUFFICIENT_INFORMATION_ON_TRADERS", # v2 (moved, renamed)
    "KEYWORD_MISLEADING_INFO_CONSUMER_RIGHTS", # v2 (added)
    "KEYWORD_MISLEADING_INFO_GOODS_SERVICES", # v2 (added)
    "KEYWORD_NONCOMPLIANCE_PRICING", # v2 (added)

    # --- Cyber violence (v2)
    "KEYWORD_CYBER_BULLYING_INTIMIDATION", # v2 (added)
    "KEYWORD_CYBER_HARASSMENT", # v2 (added)
    "KEYWORD_CYBER_INCITEMENT", # v2 (added)
    "KEYWORD_CYBER_STALKING", # v2 (added)
    "KEYWORD_NON_CONSENSUAL_IMAGE_SHARING", # v2 (moved)
    "KEYWORD_NON_CONSENSUAL_MATERIAL_DEEPFAKE", # v2 (moved, renamed)

    # --- Cyber violence against women (v2)
    "KEYWORD_BULLYING_AGAINST_GIRLS", # v2 (added)
    "KEYWORD_CYBER_HARASSMENT_AGAINST_WOMEN", # v2 (added)
    "KEYWORD_CYBER_STALKING_AGAINST_WOMEN", # v2 (added)
    "KEYWORD_FEMALE_GENDERED_DISINFORMATION", # v2 (added)
    "KEYWORD_INCITEMENT_AGAINST_WOMEN", # v2 (added)
    "KEYWORD_NON_CONSENSUAL_IMAGE_SHARING_AGAINST_WOMEN", # v2 (added)
    "KEYWORD_NON_CONSENSUAL_MATERIAL_DEEPFAKE_AGAINST_WOMEN", # v2 (added)

    # --- Data protection and privacy violations
    "KEYWORD_BIOMETRIC_DATA_BREACH",
    "KEYWORD_MISSING_PROCESSING_GROUND",
    "KEYWORD_RIGHT_TO_BE_FORGOTTEN",
    "KEYWORD_DATA_FALSIFICATION",

    # --- Illegal or harmful speech
    "KEYWORD_DEFAMATION",
    "KEYWORD_DISCRIMINATION",
    "KEYWORD_HATE_SPEECH",

    # --- Intellectual property infringements
    "KEYWORD_COPYRIGHT_INFRINGEMENT",
    "KEYWORD_DESIGN_INFRINGEMENT",
    "KEYWORD_GEOGRAPHIC_INDICATIONS_INFRINGEMENT",
    "KEYWORD_PATENT_INFRINGEMENT",
    "KEYWORD_TRADE_SECRET_INFRINGEMENT",
    "KEYWORD_TRADEMARK_INFRINGEMENT",

    # --- Negative effects on civic discourse or elections
    "KEYWORD_MISINFORMATION_DISINFORMATION", # v2 (replacement)
    "KEYWORD_VIOLATION_EU_LAW", # v2 (added)
    "KEYWORD_VIOLATION_NATIONAL_LAW", # v2 (added)

    # --- Non-consensual behavior
    "KEYWORD_ONLINE_BULLYING_INTIMIDATION",
    "KEYWORD_STALKING",

    # --- Pornography or sexualized content
    "KEYWORD_ADULT_SEXUAL_MATERIAL",

    # --- Protection of minors
    "KEYWORD_AGE_SPECIFIC_RESTRICTIONS_MINORS",
    KeywordChildSexualAbuseMaterial,
    "KEYWORD_CHILD_SEXUAL_ABUSE_MATERIAL_DEEPFAKE",
    "KEYWORD_GROOMING_SEXUAL_ENTICEMENT_MINORS",
    "KEYWORD_UNSAFE_CHALLENGES",

    # --- Risk for public security
    "KEYWORD_ILLEGAL_ORGANIZATIONS",
    "KEYWORD_RISK_ENVIRONMENTAL_DAMAGE",
    "KEYWORD_RISK_PUBLIC_HEALTH",
    "KEYWORD_TERRORIST_CONTENT",

    # --- Scams and/or fraud
    "KEYWORD_INAUTHENTIC_ACCOUNTS",
    "KEYWORD_INAUTHENTIC_LISTINGS",
    "KEYWORD_INAUTHENTIC_USER_REVIEWS",
    "KEYWORD_IMPERSONATION_ACCOUNT_HIJACKING",
    "KEYWORD_PHISHING",
    "KEYWORD_PYRAMID_SCHEMES",

    # --- Self-harm
    "KEYWORD_CONTENT_PROMOTING_EATING_DISORDERS",
    "KEYWORD_SELF_MUTILATION",
    "KEYWORD_SUICIDE",

    # --- Scope of platform service
    "KEYWORD_AGE_SPECIFIC_RESTRICTIONS",
    "KEYWORD_GEOGRAPHICAL_REQUIREMENTS",
    "KEYWORD_GOODS_SERVICES_NOT_PERMITTED",
    "KEYWORD_LANGUAGE_REQUIREMENTS",
    "KEYWORD_NUDITY",

    # --- Unsafe and/or illegal products
    "KEYWORD_PROHIBITED_PRODUCTS", # v2 (added)
    "KEYWORD_UNSAFE_PRODUCTS", # v2 (added)

    # --- Violence
    "KEYWORD_COORDINATED_HARM",
    "KEYWORD_HUMAN_EXPLOITATION",
    "KEYWORD_HUMAN_TRAFFICKING",
    "KEYWORD_INCITEMENT_VIOLENCE_HATRED",
    "KEYWORD_TRAFFICKING_WOMEN_GIRLS", # v2 (added)

    # --- Other
    "KEYWORD_OTHER",
])
