from django.db import models
from wagtail.admin.localization import get_available_admin_languages as get_available_admin_languages

def upload_avatar_to(instance, filename): ...

class UserProfile(models.Model):
    user: models.OneToOneField
    submitted_notifications: models.BooleanField
    approved_notifications: models.BooleanField
    rejected_notifications: models.BooleanField
    updated_comments_notifications: models.BooleanField
    preferred_language: models.CharField
    current_time_zone: models.CharField
    avatar: models.ImageField
    dismissibles: models.JSONField
    class AdminColorThemes(models.TextChoices):
        SYSTEM = ...
        LIGHT = ...
        DARK = ...

    theme: models.CharField
    class AdminContrastThemes(models.TextChoices):
        SYSTEM = ...
        MORE_CONTRAST = ...

    contrast: models.CharField
    class AdminDensityThemes(models.TextChoices):
        DEFAULT = ...
        SNUG = ...

    density: models.CharField
    @classmethod
    def get_for_user(cls, user): ...
    def get_preferred_language(self): ...
    def get_current_time_zone(self): ...
    class Meta:
        verbose_name: str
        verbose_name_plural: str
