import { z } from 'zod';
import { ballSensorDiskThrowerModuleStatusSchema } from './ballSensor';
import { diskSensorBallShooterModuleStatusSchema } from './diskSensor';
import { emergencyModuleStatusSchema } from './emergency';
import { flagModuleStatusSchema } from './flag';
import { lightsModuleStatusSchema } from './lights';
import { MODULE_NAME } from './ModuleName.const';
import { rgbModuleStatusSchema } from './rgb';
import { speedModuleStatusSchema } from './speed';
import { screenModuleStatusSchema } from './screen';
import { starLaserModuleStatusSchema } from './star-laser';
import { steeringWheelModuleStatusSchema } from './steering-wheel';

export const moduleNameSchema = z.enum(MODULE_NAME);

export const moduleStatusSchema = z.union([
  speedModuleStatusSchema,
  rgbModuleStatusSchema,
  flagModuleStatusSchema,
  diskSensorBallShooterModuleStatusSchema,
  ballSensorDiskThrowerModuleStatusSchema,
  starLaserModuleStatusSchema,
  steeringWheelModuleStatusSchema,
  emergencyModuleStatusSchema,
  screenModuleStatusSchema,
  lightsModuleStatusSchema,
]);
