import 'package:oto/oto/commands/command.dart';

import 'build_ios_archive.dart';
import 'build_ios_build.dart';
import 'macos_signing.dart';

export 'build_ios_archive.dart';
export 'build_ios_build.dart';
export 'macos_signing.dart';

void registerBuildIosCommands() {
  Command.register(
    CommandType.BuildiOS,
    () => BuildiOS(),
    spec: const CommandSpec(
      type: CommandType.BuildiOS,
      category: 'build',
      dataModel: 'DataBuildiOS',
      samplePath: 'assets/yaml/sample/10_build_ios.yaml',
    ),
  );
  Command.register(
    CommandType.ArchiveiOS,
    () => ArchiveiOS(),
    spec: const CommandSpec(
      type: CommandType.ArchiveiOS,
      category: 'build',
      dataModel: 'DataArchiveiOS',
      samplePath: 'assets/yaml/sample/10_build_ios.yaml',
    ),
  );
  Command.register(
    CommandType.ExportiOS,
    () => ExportiOS(),
    spec: const CommandSpec(
      type: CommandType.ExportiOS,
      category: 'build',
      dataModel: 'DataExportiOS',
      samplePath: 'assets/yaml/sample/10_build_ios.yaml',
    ),
  );
  Command.register(
    CommandType.CodeSign,
    () => CodeSign(),
    spec: const CommandSpec(
      type: CommandType.CodeSign,
      category: 'build',
      dataModel: 'DataCodeSign',
      samplePath: 'assets/yaml/sample/10_build_ios.yaml',
    ),
  );
  Command.register(
    CommandType.CodeSignVerify,
    () => CodeSignVerify(),
    spec: const CommandSpec(
      type: CommandType.CodeSignVerify,
      category: 'build',
      dataModel: 'DataCodeSignVerify',
      samplePath: 'assets/yaml/sample/10_build_ios.yaml',
    ),
  );
  Command.register(
    CommandType.ProductBuild,
    () => ProductBuild(),
    spec: const CommandSpec(
      type: CommandType.ProductBuild,
      category: 'build',
      dataModel: 'DataProductBuild',
      samplePath: 'assets/yaml/sample/10_build_ios.yaml',
    ),
  );
  Command.register(
    CommandType.Notarize,
    () => Notarize(),
    spec: const CommandSpec(
      type: CommandType.Notarize,
      category: 'build',
      dataModel: 'DataNotarize',
      samplePath: 'assets/yaml/sample/10_build_ios.yaml',
    ),
  );
}
