import { CreateImage } from "./lib/image";
import { Login, Upload } from "./lib/instagram";

console.time("🎉 | Done")

console.time("🔓 | Instagram login");

await Login()
  .then((data) => {
    console.log("✨ | Instagram login successful");
    console.log(`🤔 | Login as ${data.currentUser.full_name}`);
  })
  .catch((error) => {
    console.error("❌ | Instagram login failed:", error);
  })
  .finally(() => {
    console.timeEnd("🔓 | Instagram login");
  });


let YYMMDD = "";

// 실행할 때 --today 옵션을 주면 오늘 날짜로 바뀜
const args = process.argv.slice(2);
if (args.includes("--today")) {
  console.log("📅 | --today option detected, using today's date");
  YYMMDD = new Date().toISOString().slice(0, 10).replace(/-/g, "").toString();
  console.log("📅 | Using today's date:", YYMMDD);
} else {
  const yesterday = new Date();
  yesterday.setDate(yesterday.getDate() - 1);
  YYMMDD = yesterday.toISOString().slice(0, 10).replace(/-/g, "").toString();
  console.log("📅 | Using yesterday's date:", YYMMDD);
}
// Tomorrow is 1st of the month
const tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);

console.log(tomorrow.getDate());
if (tomorrow.getDate() === 1) {
  console.log("📅 | Tomorrow is the 1st of the month, fetching schedule...");
  console.time("📅 | Create Post Schedule");
  await CreateImage.PostSchedule();
  console.timeEnd("📅 | Create Post Schedule");

  console.time("📤 | Upload Post Schedule");
  await Upload.Post(`./temp/schedule-${new Date().getFullYear()}-${new Date().getMonth() + 1}.png`, `#인천상정중학교 #상정중학교 #학사일정 \n${new Date().getFullYear()}년도 ${new Date().getMonth() + 1}월 학사 일정`);
}
try {
  console.time("📷 | Create Post Image");
  await CreateImage.PostMeal(YYMMDD);
  console.timeEnd("📷 | Create Post Image");

  console.time("📱 | Create Story Image");
  await CreateImage.ConvertToStory(`./temp/${YYMMDD}.png`);
  console.timeEnd("📱 | Create Story Image");

  console.time("📤 | Upload Post");
  await Upload.Post(`./temp/${YYMMDD}.png`, `#인천상정중학교 #상정중학교 #급식 \n${YYMMDD}일자 급식`);
  console.timeEnd("📤 | Upload Post");

  console.time("📤 | Upload Story");
  await Upload.Story(`./temp/${YYMMDD}-story.png`, YYMMDD);
  console.timeEnd("📤 | Upload Story");
} catch (error) {
  console.error("❌ | Error during image creation or upload:", error);
} finally {
  console.timeEnd("🎉 | Done");
}
