import { z } from 'zod';

export const arithmeticOperatorSchema = z.enum(['+', '-', '*', '/']);

// Regex for SimpleArithmeticString: check for operator followed by numbers
export const simpleArithmeticStringSchema = z.string().regex(/^[\+\-\*\/]-?\d+(\.\d+)?$/);

// Regex for ContextArithmeticString: $variable operator number
export const kartContextVariableSchema = z.enum(['$kart.configuredSpeed', '$kart.powerUpTime']);

export const contextArithmeticStringSchema = z.string().regex(/^\$[a-zA-Z0-9\.]+\s[\+\-\*\/]\s-?\d+(\.\d+)?$/);

export const arithmeticExpressionSchema = z.union([
  z.number(),
  simpleArithmeticStringSchema,
  contextArithmeticStringSchema,
]);
