@file:Suppress("HardCodedStringLiteral")

package eu.gaudian.translator.model.grammar

object GrammarConstants {
    // POS Types
    const val POS_NOUN = "noun"
    const val POS_VERB = "verb"
    const val POS_ADJ = "adjective"

    // German Specific Types
    const val TYPE_DE_VERB = "de_verb"
    const val TYPE_DE_ADJ = "de_adj"

    // Tense/Mood Keys
    const val PRESENT = "present"
    const val PAST = "past"
    const val IMPERFECT = "imperfect"
    const val FUTURE = "future"
    const val SUBJUNCTIVE_I = "subjunctive_i"
    const val SUBJUNCTIVE_II = "subjunctive_ii"
    const val IMPERATIVE = "imperative"
    const val CONDITIONAL = "conditional"
    const val INFINITIVE = "infinitive"
    const val PARTICIPLE_PAST = "participle_past"
    const val PARTICIPLE_PRESENT = "participle_present"

    // French Specific Keys
    const val INDICATIVE_PRESENT = "indicative_present"
    const val INDICATIVE_IMPERFECT = "indicative_imperfect"
    const val INDICATIVE_SIMPLE_PAST = "indicative_simple_past"
    const val INDICATIVE_FUTURE = "indicative_future"
    const val SUBJUNCTIVE_PRESENT = "subjunctive_present"
    const val CONDITIONAL_PRESENT = "conditional_present"

    // Cases
    const val NOMINATIVE = "nominative"
    const val GENITIVE = "genitive"
    const val DATIVE = "dative"
    const val ACCUSATIVE = "accusative"

    // Numbers
    const val SINGULAR = "singular"
    const val PLURAL = "plural"

    // JSON Keys
    const val KEY_FORMS = "forms"
    const val KEY_INFLECTIONS = "inflections"
    const val KEY_TYPE = "type"
    const val KEY_DATA = "data"
    const val KEY_TAGS = "tags"
    const val KEY_FORM = "form"
}