from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField, TextAreaField
from wtforms.validators import InputRequired, Length


class CorpusBaseForm(FlaskForm):
    description = TextAreaField(
        'Description',
        validators=[InputRequired(), Length(max=255)]
    )
    title = StringField('Title', validators=[InputRequired(), Length(max=32)])
    submit = SubmitField()


class CreateCorpusForm(CorpusBaseForm):
    def __init__(self, *args, **kwargs):
        if 'prefix' not in kwargs:
            kwargs['prefix'] = 'create-corpus-form'
        super().__init__(*args, **kwargs)


class UpdateCorpusForm(CorpusBaseForm):
    def __init__(self, *args, **kwargs):
        if 'prefix' not in kwargs:
            kwargs['prefix'] = 'update-corpus-form'
        super().__init__(*args, **kwargs)


class ImportCorpusForm(FlaskForm):
    def __init__(self, *args, **kwargs):
        if 'prefix' not in kwargs:
            kwargs['prefix'] = 'import-corpus-form'
        super().__init__(*args, **kwargs)