from flask_wtf import FlaskForm
from wtforms import SelectField, StringField, SubmitField, TextAreaField
from wtforms.validators import DataRequired, Optional


class HatForm(FlaskForm):
    adi = StringField("Hat Adı", validators=[DataRequired()])

    # SelectField tanımları (coerce=int ile gelen değerin tam sayı olması sağlanır)
    bolum_id = SelectField("Bağlı Olduğu Bölüm", coerce=int)

    aciklama = TextAreaField("Açıklama", validators=[Optional()])
    submit = SubmitField("Hattı Kaydet")

    # Seçenekleri dinamik olarak doldurmak için constructor
    def __init__(self, bolumler=[], is_emirleri=[], *args, **kwargs):
        super(HatForm, self).__init__(*args, **kwargs)
        # Bölüm listesini (id, isim) şeklinde tuple olarak atarız
        self.bolum_id.choices = [(b.id, b.adi) for b in bolumler]
