"""Negotiation forms."""

from __future__ import annotations

from flask_wtf import FlaskForm
from wtforms import DecimalField, StringField, SubmitField, TextAreaField
from wtforms.validators import DataRequired, Length, NumberRange


class OfferForm(FlaskForm):
    """Create a new pending offer from the conversation view."""

    amount = DecimalField(
        "Offer amount",
        places=2,
        validators=[DataRequired(), NumberRange(min=0.01, message="Enter a valid offer amount.")],
    )
    optional_message = TextAreaField(
        "Message",
        validators=[Length(max=300)],
    )
    submit = SubmitField("Send offer")
