from flask_wtf import FlaskForm from wtforms import StringField, SelectField, IntegerField, TextAreaField, SubmitField, DateTimeLocalField from wtforms.validators import DataRequired, NumberRange, Length, Optional class ReservationForm(FlaskForm): classroom_id = SelectField('Classroom', coerce=int, validators=[DataRequired()]) commission_id = SelectField('Commission', coerce=int, validators=[DataRequired()]) start_time = DateTimeLocalField('Start Time', format='%Y-%m-%dT%H:%M', validators=[DataRequired()]) end_time = DateTimeLocalField('End Time', format='%Y-%m-%dT%H:%M', validators=[DataRequired()]) purpose = StringField('Purpose', validators=[ DataRequired(), Length(max=500, message='Purpose must be less than 500 characters') ]) expected_attendees = IntegerField('Expected Attendees', validators=[ DataRequired(), NumberRange(min=1, max=200, message='Number of attendees must be between 1 and 200') ]) notes = TextAreaField('Notes', validators=[Optional(), Length(max=1000)]) submit = SubmitField('Save Reservation')