from flask_wtf import FlaskForm
from wtforms import MultipleFileField, StringField, SubmitField, ValidationError
from wtforms.validators import DataRequired, Length


class CreateCorpusForm(FlaskForm):
    description = StringField(
        'Description',
        validators=[DataRequired(), Length(1, 64)]
    )
    files = MultipleFileField('Files', validators=[DataRequired()])
    submit = SubmitField('Create corpus')
    title = StringField(
        'Title',
        validators=[DataRequired(), Length(1, 32)]
    )

    def validate_files(form, field):
        for file in field.data:
            if not file.filename.lower().endswith('.vrt'):
                raise ValidationError(
                    'File does not have an approved extension: .vrt'
                )