import { Meta, StoryObj } from "@storybook/nextjs-vite";
import { SpecialOfferTemplate } from "./SpecialOffer";
import { fn } from "storybook/test";
import type { SpecialOfferScreenDefinition } from "@/lib/funnel/types";
import { buildSpecialOfferDefaults } from "@/lib/admin/builder/state/defaults/specialOffer";

const defaultScreen = buildSpecialOfferDefaults(
  "special-offer-screen-story"
) as SpecialOfferScreenDefinition;

/** SpecialOfferTemplate - экраны со специальным предложением */
const meta: Meta<typeof SpecialOfferTemplate> = {
  title: "Funnel Templates/SpecialOfferTemplate",
  component: SpecialOfferTemplate,
  tags: ["autodocs"],
  parameters: {
    layout: "fullscreen",
  },
  args: {
    screen: defaultScreen,
    onContinue: fn(),
    canGoBack: true,
    onBack: fn(),
    screenProgress: { current: 8, total: 10 },
    defaultTexts: {
      nextButton: "GET 14-DAY TRIAL",
    },
  },
  argTypes: {
    screen: {
      control: { type: "object" },
    },
    screenProgress: {
      control: { type: "object" },
    },
    onContinue: { action: "continue" },
    onBack: { action: "back" },
  },
};

export default meta;
type Story = StoryObj<typeof meta>;

export const Default: Story = {};

// /** Купон с показом прогресса */
// export const WithProgress: Story = {
//   args: {
//     screen: {
//       ...defaultScreen,
//       header: {
//         show: true,
//         showBackButton: true,
//         showProgress: true, // Показываем прогресс
//       },
//     },
//   },
// };

// /** Экран без header */
// export const WithoutHeader: Story = {
//   args: {
//     screen: {
//       ...defaultScreen,
//       header: {
//         show: false,
//       },
//     },
//   },
// };

// /** Купон с другой скидкой */
// export const CustomDiscount: Story = {
//   args: {
//     screen: {
//       ...defaultScreen,
//       coupon: {
//         ...defaultScreen.coupon,
//         offer: {
//           title: {
//             text: "50% OFF",
//             font: "manrope",
//             weight: "bold",
//             align: "center",
//             size: "3xl",
//             color: "primary",
//           },
//           description: {
//             text: "Скидка на первую покупку",
//             font: "inter",
//             weight: "medium",
//             color: "muted",
//             align: "center",
//             size: "md",
//           },
//         },
//         promoCode: {
//           text: "FIRST50",
//           font: "geistMono",
//           weight: "bold",
//           align: "center",
//           size: "lg",
//           color: "accent",
//         },
//       },
//     },
//   },
// };
