from flask_wtf import FlaskForm
from flask_wtf.file import FileField, FileRequired, FileAllowed
from wtforms import StringField, TextAreaField, SelectField, SubmitField
from wtforms.validators import DataRequired, Length


class UploadForm(FlaskForm):
    name = StringField('Dataset Name', validators=[DataRequired(), Length(max=255)])
    description = TextAreaField('Description')
    file = FileField('CSV File', validators=[
        FileRequired(),
        FileAllowed(['csv', 'txt'], 'CSV files only')
    ])
    submit = SubmitField('Upload')


class ColumnMappingForm(FlaskForm):
    timestamp_col = SelectField('Timestamp Column', validators=[DataRequired()])
    lat_col = SelectField('Latitude Column', validators=[DataRequired()])
    lon_col = SelectField('Longitude Column', validators=[DataRequired()])
    animal_id_col = SelectField('Animal ID Column', validators=[DataRequired()])
    submit = SubmitField('Import Data')
