from flask_wtf import FlaskForm
from wtforms import FloatField, IntegerField, SelectField, RadioField
from wtforms.validators import DataRequired, NumberRange


class LoanCalculatorForm(FlaskForm):
    amount = FloatField('Loan Amount (AUD)', validators=[
        DataRequired(), NumberRange(min=10000, max=5000000)
    ])
    annual_rate = FloatField('Annual Interest Rate (%)', validators=[
        DataRequired(), NumberRange(min=1.0, max=30.0)
    ])
    term = IntegerField('Loan Term (months)', validators=[
        DataRequired(), NumberRange(min=6, max=84)
    ])
    frequency = RadioField('Repayment Frequency', choices=[
        ('monthly', 'Monthly'),
        ('fortnightly', 'Fortnightly'),
        ('weekly', 'Weekly'),
    ], default='monthly')
    loan_type = SelectField('Loan Type', choices=[
        ('unsecured', 'Unsecured Business Loan'),
        ('secured', 'Secured Business Loan'),
        ('equipment', 'Equipment Finance'),
        ('property', 'Commercial Property'),
    ], default='unsecured')
