from modeltranslation.translator import translator, TranslationOptions
from modeltranslation.translator import register, TranslationOptions
from app.models import (
    News,
    
    Elon,
    Rector,
    RectorEducation,
    RectorExperience,

    RectorExperience,

    Faculty,
    FacultyStaff,
    Department,
    DepartmentStaff,
    ScientificStat,
    ResearchCenter,
    ResearchCenterStaff,
    PublicationStat,

    PartnerCountry,
    PartnerUniversity,
    CooperationProgram,

    ProjectCategory,
    Project,
    
    BachelorCategory,
    BachelorProgram,
    MasterCategory,
    MasterProgram,

    UniversityHistory,
    UniversityAchievement,
    UniversityStructure,
    AboutUniversity,
    AboutFeature,
    UniversityValue,

    EducationalDocument,
    CallLink,
    CallUserCategory,
    Partner,
)


@register(News)
class NewsTranslationOptions(TranslationOptions):
    fields = (
        "title",
        "short_description",
        "quote",
    )






@register(Elon)
class ElonTranslationOptions(TranslationOptions):
    fields = (
        "title",
        "short_description",
        "content",
    )


@register(Rector)
class RectorTranslationOptions(TranslationOptions):
    fields = (
        "full_name",
        "position",
        "academic_degree",
        "office_location",
        "reception_days",
        "reception_time",
        "biography",
    )


@register(RectorEducation)
class RectorEducationTranslationOptions(TranslationOptions):
    fields = ("degree", "institution", "specialization")


@register(RectorExperience)
class RectorExperienceTranslationOptions(TranslationOptions):
    fields = ("position", "organization", "responsibilities")






@register(ScientificStat)
class ScientificStatTranslationOptions(TranslationOptions):
    fields = ("title",)


@register(Faculty)
class FacultyTranslationOptions(TranslationOptions):
    fields = ("title", "name", "description", "content")

@register(FacultyStaff)
class FacultyStaffTranslationOptions(TranslationOptions):
    fields = ("full_name", "position", "card_position", "reception_days", "reception_time")

@register(Department)
class DepartmentTranslationOptions(TranslationOptions):
    fields = ("title",'name', "description", "content")

@register(DepartmentStaff)
class DepartmentStaffTranslationOptions(TranslationOptions):
    fields = ("full_name", "position", "card_position", "reception_days", "reception_time")






@register(PublicationStat)
class PublicationStatTranslationOptions(TranslationOptions):
    fields = ("title",)

if not translator.get_registered_models().__contains__(ResearchCenter):
    @register(ResearchCenter)
    class ResearchCenterTranslationOptions(TranslationOptions):
        fields = ("title", "name", "description", "content")



@register(ResearchCenterStaff)
class ResearchCenterStaffTranslationOptions(TranslationOptions):
    fields = (
        "full_name",
        "position",
        "card_position",
        "reception_days",
        "reception_time",
    )
@register(PartnerCountry)
class PartnerCountryTranslationOptions(TranslationOptions):
    fields = ("name",)


@register(PartnerUniversity)
class PartnerUniversityTranslationOptions(TranslationOptions):
    fields = ("name",)


@register(CooperationProgram)
class CooperationProgramTranslationOptions(TranslationOptions):
    fields = ("title", "description")

@register(ProjectCategory)
class ProjectCategoryTranslationOptions(TranslationOptions):
    fields = ("name",)


@register(Project)
class ProjectTranslationOptions(TranslationOptions):
    fields = ("title", "description", "location")


@register(Partner)
class PartnerTranslationOptions(TranslationOptions):
    fields = ("name", "country", "description")


@register(BachelorCategory)
class BachelorCategoryTranslationOptions(TranslationOptions):
    fields = ("title",)


@register(BachelorProgram)
class BachelorProgramTranslationOptions(TranslationOptions):
    fields = ("name",)


@register(MasterCategory)
class MasterCategoryTranslationOptions(TranslationOptions):
    fields = ("title", "description")


@register(MasterProgram)
class MasterProgramTranslationOptions(TranslationOptions):
    fields = ("name",)


@register(UniversityHistory)
class UniversityHistoryTranslationOptions(TranslationOptions):
    fields = ("title", "description")


@register(UniversityAchievement)
class UniversityAchievementTranslationOptions(TranslationOptions):
    fields = ("title", "description")


@register(UniversityStructure)
class UniversityStructureTranslationOptions(TranslationOptions):
    fields = ("title", "description")


@register(AboutUniversity)
class AboutUniversityTranslationOptions(TranslationOptions):
    fields = ("title", "description")


@register(AboutFeature)
class AboutFeatureTranslationOptions(TranslationOptions):
    fields = ("title", "description")


@register(UniversityValue)
class UniversityValueTranslationOptions(TranslationOptions):
    fields = ("title", "description")


@register(EducationalDocument)
class EducationalDocumentTranslationOptions(TranslationOptions):
    fields = ("title", "description")


@register(CallLink)
class CallLinkTranslationOptions(TranslationOptions):
    fields = ("link_facebook", "link_telegram", "link_instagram", "link_youtobe")


@register(CallUserCategory)
class CallUserCategoryTranslationOptions(TranslationOptions):
    fields = ("name", "rang")
