from otree.api import (
    models,
    widgets,
    BaseConstants,
    BaseSubsession,
    BaseGroup,
    BasePlayer,
    Currency as c,
    currency_range,
)


class Constants(BaseConstants):
    name_in_url = 'quest_demo'
    players_per_group = None
    num_rounds = 1

class Subsession(BaseSubsession):
    pass


class Group(BaseGroup):
    pass


class Player(BasePlayer):
    task_start_1 = models.FloatField()
    task_time_1 = models.FloatField()
    num_errors = models.IntegerField()

    genre = models.IntegerField(
        choices=[
            [0, 'Un homme'],
            [1, 'Une femme'],
        ],
        widget=widgets.RadioSelectHorizontal,
        label="1 - Vous êtes ...",
        blank=False
    )

    age = models.IntegerField(
        choices=[
            [0, '0-17 ans'],
            [1, '18-25 ans'],
            [2, '26-35 ans'],
            [3, '36-45 ans'],
            [4, '46-55 ans'],
            [5, '56-65 ans'],
            [6, 'plus de 65 ans'],
        ],
        widget=widgets.RadioSelectHorizontal,
        label="2 - Quel est votre âge ?",
        blank=False,
        min = 0,
        max = 100,
    )

    pays = models.StringField(
        label="3 - Quel est votre pays de résidence ?",
        blank=False,
    )

    code_postal = models.IntegerField(
        label="4 - Quel est votre code postale ?",
        blank=False,
        min = 0,
        max = 99999,
    )

    salaire = models.IntegerField(
        choices=[
            [0, 'Moins de 1250 €'],
            [1, 'Entre 1250 et 1400 €'],
            [2, 'Entre 1400 et 1550 €'],
            [3, 'Entre 1550 et 1700 €'],
            [4, 'Entre 1700 et 1850 €'],
            [5, 'Entre 1850 et 2050 €'],
            [6, 'Entre 2050 et 2350 €'],
            [7, 'Entre 2350 et 2800 €'],
            [8, 'Entre 2800 et 3700 €'],
            [9, 'Plus de 3700 €'],
        ],
        widget=widgets.RadioSelect,
        label="5 - Quel est approximativement votre niveau de salaire mensuel ?",
        blank=False
    )

    socio_pro = models.IntegerField(
        choices=[
            [0, 'agriculteurs exploitants'],
            [1, 'artisans, commerçants et chefs d''entreprise'],
            [2, 'cadres et professions intellectuelles supérieures'],
            [3, 'professions intermédiaires (cadres moyens)'],
            [4, 'employés et personnel de service'],
            [5, 'ouvriers qualifiés'],
            [6, 'manœuvres et ouvriers spécialisés'],
            [7, 'autres personnes sans activité professionnelle'],
            [8, 'étudiant'],
        ],
        widget=widgets.RadioSelect,
        label="6 - Quelle est/était votre catégorie socio-professionnelle ?",
        blank=False
    )

    annee_naissance = models.IntegerField(
        label="7 - Quelle est votre année de naissance ?",
        blank=False,
        min=1900,
        max=2010,
    )

    etudes = models.IntegerField(
        choices=[
            [0, 'Aucun diplôme ou certificat d’études primaires'],
            [1, 'Brevet des collèges'],
            [2, 'CAP, BEP ou équivalent'],
            [3, 'Baccalauréat, brevet professionnel ou équivalent'],
            [4, 'Diplôme du supérieur court (niveau bac +2)'],
            [5, 'Diplôme du supérieur long (supérieur à bac +2)'],
        ],
        widget=widgets.RadioSelect,
        label="8 - Quel est le plus haut diplôme que vous avez obtenu ? Si toujours étudiant, quel est le diplôme dans lequel vous êtes actuellement inscrit ?",
        blank=False
    )

    police_question1 = models.IntegerField(
        choices=[
            [0, 'Très satisfaisante'],
            [1, 'Satisfaisante'],
            [2, 'Peu satisfaisante'],
            [3, 'Pas du tout satisfaisante'],
        ],
        widget=widgets.RadioSelectHorizontal,
        label="9 - A propos de l’action en général de la police ou de la gendarmerie nationale dans la société française actuelle, vous diriez généralement qu’elle est …",
        blank=False
    )

    police_question2 = models.IntegerField(
        choices=[
            [0, 'Souvent'],
            [1, 'De temps en temps'],
            [2, 'Rarement'],
            [3, 'Jamais'],
        ],
        widget=widgets.RadioSelectHorizontal,
        label="10 - Vous arrive-t-il personnellement de vous sentir en insécurité dans votre quartier ou votre village ?",
        blank=False
    )

    police_question3 = models.IntegerField(
        choices=[
            [0, 'Pas du tout d’accord'],
            [1, 'Plutôt pas d’accord'],
            [2, 'Plutôt d’accord'],
            [3, 'Tout à fait d’accord'],
        ],
        widget=widgets.RadioSelectHorizontal,
        label="11 - Imaginons que dans le futur vous soyez la victime d’un vol. Vous êtes certain d’aller le déclarer auprès de la police.",
        blank=False
    )













