from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField, BooleanField
from wtforms.validators import InputRequired, Optional
from flask_wtf.file import FileField  # Cuz' wtforms' FileField is shitty
import app.utils.validators


class TrophyForm(FlaskForm):
    name = StringField(
        'Nom',
        validators=[
            InputRequired(),
        ],
    )
    icon = FileField(
        'Icône',
    )
    desc = StringField(
        'Description'
    )
    title = BooleanField(
        'Titre',
        description='Un titre peut être affiché en dessous du pseudo.',
        validators=[
            Optional(),
        ],
    )
    hidden = BooleanField(
        'Caché',
        description='Le trophée n\'est pas affiché grisé dans la page de profil',
        validators=[
            Optional(),
        ],
    )
    css = StringField(
        'CSS',
        description='CSS appliqué au titre, le cas échéant.',
        validators=[
            app.utils.validators.css,
        ],
    )
    submit = SubmitField(
        'Envoyer',
    )

class DeleteTrophyForm(FlaskForm):
    delete = BooleanField(
        'Confirmer la suppression',
        validators=[
            InputRequired(),
        ],
        description='Attention, cette opération est irréversible !',
    )
    submit = SubmitField(
        'Supprimer le trophée',
    )
