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


class AccountForm(FlaskForm):
    name = StringField('Account Name', validators=[DataRequired(), Length(max=200)])
    type = SelectField('Type', choices=[
        ('checking', 'Checking'),
        ('savings', 'Savings'),
        ('credit', 'Credit'),
        ('loan', 'Loan'),
    ], validators=[DataRequired()])
    institution_name = StringField(
        'Institution (optional)',
        validators=[Optional(), Length(max=200)],
    )


class CategoryForm(FlaskForm):
    name = StringField('Name', validators=[DataRequired(), Length(max=50)])


class IncomeForm(FlaskForm):
    monthly_income = StringField('Monthly Take-Home Income ($)',
                                 validators=[DataRequired()])
