Selaa lähdekoodia

feat(class): seleciona neurotrainer da unidade em vez de digitar o instrutor

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ebagabee 4 viikkoa sitten
vanhempi
commit
1d226b8932
1 muutettua tiedostoa jossa 31 lisäystä ja 4 poistoa
  1. 31 4
      src/pages/classes/components/AddEditClassDialog.vue

+ 31 - 4
src/pages/classes/components/AddEditClassDialog.vue

@@ -78,10 +78,17 @@
                 </template>
               </DefaultInput>
 
-              <!-- Instrutor -->
-              <DefaultInput
+              <!-- Instrutor (Neurotrainer da unidade) -->
+              <DefaultSelect
                 v-model="form.instructor"
-                label="Nome do Instrutor"
+                label="Neurotrainer"
+                :options="instructorOptions"
+                option-value="name"
+                option-label="name"
+                emit-value
+                map-options
+                clearable
+                :loading="loadingInstructors"
                 class="col-6"
               />
 
@@ -130,6 +137,7 @@ import DefaultInputDatePicker from "src/components/defaults/DefaultInputDatePick
 
 import { createClass, updateClass } from "src/api/class";
 import { getUnitPackages } from "src/api/package";
+import { getUsersByUnit } from "src/api/user";
 
 defineEmits([...useDialogPluginComponent.emits]);
 
@@ -148,6 +156,8 @@ const formRef = ref(null);
 const saving = ref(false);
 const loadingPackages = ref(false);
 const packageOptions = ref([]);
+const loadingInstructors = ref(false);
+const instructorOptions = ref([]);
 
 const toDisplay = (isoDate) =>
   isoDate ? isoDate.split("-").reverse().join("/") : null;
@@ -174,6 +184,20 @@ const loadPackages = async () => {
   }
 };
 
+const loadInstructors = async () => {
+  loadingInstructors.value = true;
+  try {
+    const users = await getUsersByUnit();
+    instructorOptions.value = (users ?? []).filter(
+      (u) => u.user_type === "NEUROTRAINER",
+    );
+  } catch (e) {
+    console.error("Erro ao carregar neurotrainers:", e);
+  } finally {
+    loadingInstructors.value = false;
+  }
+};
+
 const onSubmit = async () => {
   const valid = await formRef.value.validate();
   if (!valid) return;
@@ -203,5 +227,8 @@ const onSubmit = async () => {
   }
 };
 
-onMounted(loadPackages);
+onMounted(() => {
+  loadPackages();
+  loadInstructors();
+});
 </script>