import { Card } from "flowbite-react";

import { ReleaseChips } from "../ReleasePoster/Chips";
import { Poster } from "../ReleasePoster/Poster";
import Link from "next/link";

const profile_lists = {
  // 0: "Не смотрю",
  1: { name: "Смотрю", bg_color: "bg-green-500" },
  2: { name: "В планах", bg_color: "bg-purple-500" },
  3: { name: "Просмотрено", bg_color: "bg-blue-500" },
  4: { name: "Отложено", bg_color: "bg-yellow-500" },
  5: { name: "Брошено", bg_color: "bg-red-500" },
};

export const ProfileReleaseHistory = (props: any) => {
  return (
    <Card className="h-fit">
      <h1 className="text-2xl font-bold">Недавно просмотренные</h1>
      <div className="flex flex-col gap-4">
        {props.history.map((release) => {
          const genres = [];
          const grade = release.grade ? Number(release.grade.toFixed(1)) : null;
          const profile_list_status = release.profile_list_status || null;
          let user_list = null;
          if (profile_list_status != null || profile_list_status != 0) {
            user_list = profile_lists[profile_list_status];
          }
          if (release.genres) {
            const genres_array = release.genres.split(",");
            genres_array.forEach((genre) => {
              genres.push(genre.trim());
            });
          }
          return (
            <Link href={`/release/${release.id}`} key={`history-${release.id}`}>
              <div className="flex gap-2">
                <div className="flex-shrink-0 w-32">
                  <Poster image={release.image} className="h-auto" />
                </div>
                <div className="flex flex-col gap-1">
                  <ReleaseChips
                    {...release}
                    user_list={user_list}
                    grade={grade}
                    settings={{ lastWatchedHidden: false }}
                  />
                  <div>
                    {genres.length > 0 &&
                      genres.map((genre: string, index: number) => {
                        return (
                          <span
                            key={`release_${props.id}_genre_${genre}_${index}`}
                            className="text-sm font-light dark:text-white"
                          >
                            {index > 0 && ", "}
                            {genre}
                          </span>
                        );
                      })}
                  </div>
                  {release.title_ru && (
                    <p className="text-lg font-bold dark:text-white">
                      {release.title_ru}
                    </p>
                  )}
                  {release.title_original && (
                    <p className="text-sm text-gray-600 dark:text-gray-300">
                      {release.title_original}
                    </p>
                  )}
                </div>
              </div>
            </Link>
          );
        })}
      </div>
    </Card>
  );
};