<template>
  <div class="d-flex justify-content-center">
    <div class="col-8">
      <form name="editForm" novalidate @submit.prevent="save()">
        <h2 id="smartbookingApp.disponibilita.home.createOrEditLabel" data-cy="DisponibilitaCreateUpdateHeading">
          {{ t$('smartbookingApp.disponibilita.home.createOrEditLabel') }}
        </h2>
        <div>
          <div class="mb-3" v-if="disponibilita.id">
            <label for="id">{{ t$('global.field.id') }}</label>
            <input type="text" class="form-control" id="id" name="id" v-model="disponibilita.id" readonly />
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="disponibilita">{{ t$('smartbookingApp.disponibilita.giornoSettimana') }}</label>
            <select
              class="form-control"
              name="giornoSettimana"
              :class="{ valid: !v$.giornoSettimana.$invalid, invalid: v$.giornoSettimana.$invalid }"
              v-model="v$.giornoSettimana.$model"
              id="disponibilita-giornoSettimana"
              data-cy="giornoSettimana"
            >
              <option
                v-for="giornoSettimana in giornoSettimanaValues"
                :key="giornoSettimana"
                :value="giornoSettimana"
                :label="t$('smartbookingApp.GiornoSettimana.' + giornoSettimana)"
              >
                {{ giornoSettimana }}
              </option>
            </select>
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="disponibilita">{{ t$('smartbookingApp.disponibilita.dataSpecifica') }}</label>
            <b-input-group class="mb-3">
              <b-input-group-prepend>
                <b-form-datepicker
                  aria-controls="disponibilita-dataSpecifica"
                  v-model="v$.dataSpecifica.$model"
                  name="dataSpecifica"
                  class="form-control"
                  :locale="currentLanguage"
                  button-only
                  today-button
                  reset-button
                  close-button
                >
                </b-form-datepicker>
              </b-input-group-prepend>
              <b-form-input
                id="disponibilita-dataSpecifica"
                data-cy="dataSpecifica"
                type="text"
                class="form-control"
                name="dataSpecifica"
                :class="{ valid: !v$.dataSpecifica.$invalid, invalid: v$.dataSpecifica.$invalid }"
                v-model="v$.dataSpecifica.$model"
              />
            </b-input-group>
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="disponibilita">{{ t$('smartbookingApp.disponibilita.oraInizio') }}</label>
            <div class="d-flex">
              <input
                id="disponibilita-oraInizio"
                data-cy="oraInizio"
                type="datetime-local"
                class="form-control"
                name="oraInizio"
                :class="{ valid: !v$.oraInizio.$invalid, invalid: v$.oraInizio.$invalid }"
                :value="convertDateTimeFromServer(v$.oraInizio.$model)"
                @change="updateInstantField('oraInizio', $event)"
              />
            </div>
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="disponibilita">{{ t$('smartbookingApp.disponibilita.oraFine') }}</label>
            <div class="d-flex">
              <input
                id="disponibilita-oraFine"
                data-cy="oraFine"
                type="datetime-local"
                class="form-control"
                name="oraFine"
                :class="{ valid: !v$.oraFine.$invalid, invalid: v$.oraFine.$invalid }"
                :value="convertDateTimeFromServer(v$.oraFine.$model)"
                @change="updateInstantField('oraFine', $event)"
              />
            </div>
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="disponibilita">{{ t$('smartbookingApp.disponibilita.orarioInizio') }}</label>
            <input
              type="text"
              class="form-control"
              name="orarioInizio"
              id="disponibilita-orarioInizio"
              data-cy="orarioInizio"
              :class="{ valid: !v$.orarioInizio.$invalid, invalid: v$.orarioInizio.$invalid }"
              v-model="v$.orarioInizio.$model"
            />
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="disponibilita">{{ t$('smartbookingApp.disponibilita.orarioFine') }}</label>
            <input
              type="text"
              class="form-control"
              name="orarioFine"
              id="disponibilita-orarioFine"
              data-cy="orarioFine"
              :class="{ valid: !v$.orarioFine.$invalid, invalid: v$.orarioFine.$invalid }"
              v-model="v$.orarioFine.$model"
            />
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="disponibilita">{{ t$('smartbookingApp.disponibilita.tipo') }}</label>
            <select
              class="form-control"
              name="tipo"
              :class="{ valid: !v$.tipo.$invalid, invalid: v$.tipo.$invalid }"
              v-model="v$.tipo.$model"
              id="disponibilita-tipo"
              data-cy="tipo"
            >
              <option
                v-for="tipoDisponibilita in tipoDisponibilitaValues"
                :key="tipoDisponibilita"
                :value="tipoDisponibilita"
                :label="t$('smartbookingApp.TipoDisponibilita.' + tipoDisponibilita)"
              >
                {{ tipoDisponibilita }}
              </option>
            </select>
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="disponibilita">{{ t$('smartbookingApp.disponibilita.note') }}</label>
            <input
              type="text"
              class="form-control"
              name="note"
              id="disponibilita-note"
              data-cy="note"
              :class="{ valid: !v$.note.$invalid, invalid: v$.note.$invalid }"
              v-model="v$.note.$model"
            />
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="disponibilita">{{ t$('smartbookingApp.disponibilita.struttura') }}</label>
            <select
              class="form-control"
              id="disponibilita-struttura"
              data-cy="struttura"
              name="struttura"
              v-model="disponibilita.struttura"
            >
              <option :value="null"></option>
              <option
                :value="
                  disponibilita.struttura && strutturaOption.id === disponibilita.struttura.id ? disponibilita.struttura : strutturaOption
                "
                v-for="strutturaOption in strutturas"
                :key="strutturaOption.id"
              >
                {{ strutturaOption.nome }}
              </option>
            </select>
          </div>
        </div>
        <div>
          <button type="button" id="cancel-save" data-cy="entityCreateCancelButton" class="btn btn-secondary" @click="previousState()">
            <font-awesome-icon icon="ban"></font-awesome-icon>&nbsp;<span>{{ t$('entity.action.cancel') }}</span>
          </button>
          <button
            type="submit"
            id="save-entity"
            data-cy="entityCreateSaveButton"
            :disabled="v$.$invalid || isSaving"
            class="btn btn-primary"
          >
            <font-awesome-icon icon="save"></font-awesome-icon>&nbsp;<span>{{ t$('entity.action.save') }}</span>
          </button>
        </div>
      </form>
    </div>
  </div>
</template>
<script lang="ts" src="./disponibilita-update.component.ts"></script>
