import { CliFlagInput, CliLeaf } from '@alwaysai/alwayscli';
import { yesCliInput } from '../../cli-inputs';
import { modelPublishComponent } from '../../components/model/model-publish-component';
import { checkUserIsLoggedInComponent } from '../../components/user';

export const modelPublish = CliLeaf({
  name: 'publish',
  description: 'Publish a new version of a model to the alwaysAI Cloud',
  namedInputs: {
    yes: yesCliInput,
    force: CliFlagInput({
      description: 'Publish the model even with validation failures'
    })
  },
  async action(_, { yes, force }) {
    await checkUserIsLoggedInComponent({ yes });
    await modelPublishComponent({ force });
  }
});
