<template>
  <div
    class="dark:bg-gray-800 mt-5 sm:m-5 bg-white p-4 hover:-translate-y-2 hover:shadow-2xl border-slate-100 rounded-xl transition"
  >
    <div class="flex flex-wrap items-center gap-2 w-full justify-between">
      <!-- Поля ввода дат в одной строке -->
      <div class="flex items-center gap-2 flex-grow max-w-130">
        <span class="dark:text-neutral-300 whitespace-nowrap">с</span>

        <DatePicker v-model="data_start" />

        <span class="dark:text-neutral-300 whitespace-nowrap">по</span>

        <DatePicker v-model="data_finish" />
      </div>

      <!-- Кнопка выгрузки -->
      <button
        class="dark:bg-orange-500 hover:dark:bg-orange-600 shadow text-white bg-sky-700 hover:bg-sky-900 rounded-xl px-2 min-h-11 cursor-pointer w-full sm:w-auto sm:min-w-40 flex-shrink-0"
        @click="downloadAll"
      >
        Выгрузить
      </button>
    </div>
  </div>
</template>

<script setup>
import { ref } from "vue";
import axios from "axios";
import DatePicker from "./DatePicker.vue";

// Переменные для выгрузки с датами по умолчанию
const data_start = ref(getYesterdayDate());
const data_finish = ref(getTodayDate());

// Функция для получения вчерашней даты в формате YYYY-MM-DD
function getYesterdayDate() {
  const date = new Date();
  date.setDate(date.getDate() - 1);
  return date.toISOString().split("T")[0];
}

// Функция для получения сегодняшней даты в формате YYYY-MM-DD
function getTodayDate() {
  return new Date().toISOString().split("T")[0];
}

// Выгрузка
const downloadAll = async () => {
  try {
    const response = await axios.post(
      // "http://127.0.0.1:8001/download_all",
      "https://allowlgroup.ru/api/8001/download_all",
      {
        data_start: data_start.value,
        data_finish: data_finish.value,
      },
      {
        responseType: "blob",
      },
    );

    const url = window.URL.createObjectURL(new Blob([response.data]));
    const link = document.createElement("a");
    link.href = url;
    link.setAttribute(
      "download",
      `documents_${data_start.value}_${data_finish.value}.zip`,
    );
    document.body.appendChild(link);
    link.click();
    link.remove();
    window.URL.revokeObjectURL(url);
  } catch (error) {
    console.error("Ошибка при выгрузке:", error);
  }
};
</script>


