import { z } from "zod";
import { PositiveInteger } from "../common";

const JumperLevelSchema = z.object({
  type: z.literal("JUMPER_LEVEL"),
  data: z.object({
    minAmount: PositiveInteger,
  }),
});

const JumperRewardTypeSchema = z.object({
  type: z.literal("JUMPER_TYPE"),
  data: z.object({
    rewardType: z.string().min(1),
  }),
});

const JumperTraitsCategorySchema = z.object({
  category: z.string().min(1),
});
const JumperTraitsNameSchema = z.object({
  name: z.string().min(1),
});
const JumperTraitsCategoryNameSchema = z.object({
  category: z.string().min(1),
  name: z.string().min(1),
});

const JumperTraitsSchema = z.object({
  type: z.literal("JUMPER_TRAITS"),
  data: z.union([
    JumperTraitsCategorySchema,
    JumperTraitsNameSchema,
    JumperTraitsCategoryNameSchema,
  ]),
});

export default [JumperLevelSchema, JumperRewardTypeSchema, JumperTraitsSchema];
