from flask_wtf import FlaskForm
from wtforms import StringField, SelectField, TextAreaField
from wtforms.fields import DateField
from wtforms.validators import DataRequired, Optional


class TransactionForm(FlaskForm):
    date        = DateField('Date', validators=[DataRequired()])
    merchant    = StringField('Merchant / Payee', validators=[DataRequired()])
    amount      = StringField('Amount', validators=[DataRequired()])
    category_id = SelectField('Category', coerce=int, validators=[Optional()])
    account_id  = SelectField('Account', coerce=int, validators=[DataRequired()])
    notes       = TextAreaField('Notes', validators=[Optional()])
