from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, BooleanField, SubmitField, SelectField, DecimalField
from wtforms import validators, ValidationError
from wtforms.fields.html5 import EmailField


class DeployForm(FlaskForm):
    servername = StringField('Име/Домейн:', [validators.Regexp(message='пример: myservice1.com, myservice2.local', regex='^[a-zA-Z0-9][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9]{0,1}\.([a-zA-Z]{1,6}|[a-zA-Z0-9-]{1,30}\.[a-zA-Z]{2,3})$')])
    region = SelectField('Регион:')
    vmpassword = StringField('Парола:', [validators.DataRequired()])
    cpu = StringField('Процесорни ядра:')
    mem = StringField('Памет:')
    hdd = StringField('Дисково пространство:')
    recipe = SelectField('Рецепта')
    #ipv4 = SelectField('Брой публични IP адреса', choices=[('1', '1'),('2', '2' ), ('3', '3')])
    invite_key = StringField('Покана', [validators.DataRequired(), validators.Length(6,35)])
    
    def validate_invite_key(self, field):
        if field.data != 'inv1919':
            raise ValidationError('Denied')

    submit = SubmitField('Deploy')
    

