from flask_wtf import FlaskForm
from wtforms import StringField, TextAreaField, SelectField, FileField
from wtforms.validators import Length, Optional

from dostadmin.db_model import Message


class AddMessageForm(FlaskForm):
    message_name = StringField(
        "Name",
        validators=[
            Length(
                min=1,
                max=100,
                message="Message name must be between 1 and 100 characters long.",
            )
        ],
    )
    message_text = TextAreaField(
        "Message Body",
        validators=[
            Length(
                min=1,
                max=3000,
                message="Message Body must be between 1 and 30 characters long",
            )
        ],
    )
    text_type = SelectField("Text Type", choices=Message.Type.CHOICE)
    message_type = SelectField("Message Type", choices=Message.MessageType.CHOICE)
    media_link = StringField("Media Link", validators=[Optional()])
