UNPKG

@marteye/studio-cli

Version:

CLI for MartEye Studio API

114 lines (110 loc) 4.87 kB
'use strict'; var commander = require('commander'); var studio = require('../utils/studio.js'); var output = require('../utils/output.js'); function salesCommand() { const sales = new commander.Command('sales') .description('Sales operations'); sales .command('list <market-id>') .description('List sales within date range') .option('--start <date>', 'Start date (YYYY-MM-DD)') .option('--end <date>', 'End date (YYYY-MM-DD)') .action(async (marketId, options, command) => { const globalOptions = command.optsWithGlobals ? command.optsWithGlobals() : command.parent?.parent?.opts() || {}; try { const studio$1 = studio.createStudioInstance(globalOptions); const result = await studio$1.sales.list(marketId, { start: options.start, end: options.end }); output.output(result.sales, globalOptions); } catch (err) { output.error(err.message, err.response?.data); process.exit(1); } }); sales .command('get <market-id> <sale-id>') .description('Get specific sale details') .action(async (marketId, saleId, _options, command) => { const globalOptions = command.optsWithGlobals ? command.optsWithGlobals() : command.parent?.parent?.opts() || {}; try { const studio$1 = studio.createStudioInstance(globalOptions); const result = await studio$1.sales.get(marketId, saleId); output.output(result, globalOptions); } catch (err) { output.error(err.message, err.response?.data); process.exit(1); } }); sales .command('create <market-id>') .description('Create a new sale') .requiredOption('--name <name>', 'Sale name') .requiredOption('--starts-at <datetime>', 'Start date and time') .option('--product-codes <codes...>', 'Available product codes') .option('--recurring <type>', 'Recurring type: Weekly, Bi-weekly, Monthly') .option('--type <type>', 'Sale type: LIVE or TIMED') .option('--location <location>', 'Sale location') .option('--description <description>', 'Sale description') .action(async (marketId, options, command) => { const globalOptions = command.optsWithGlobals ? command.optsWithGlobals() : command.parent?.parent?.opts() || {}; try { const studio$1 = studio.createStudioInstance(globalOptions); const saleData = { name: options.name, startsAt: options.startsAt, availableProductCodes: options.productCodes || [], recurring: options.recurring || null, martEyeSaleType: options.type || null, location: options.location || null, description: options.description || null, image: null, cover: null }; const result = await studio$1.sales.create(marketId, saleData); output.success(`Sale ID: ${result.saleId}`); if (globalOptions.output !== 'json') { output.output(result, globalOptions); } } catch (err) { output.error(err.message, err.response?.data); process.exit(1); } }); sales .command('update <market-id> <sale-id>') .description('Update sale information') .option('--name <name>', 'Sale name') .option('--starts-at <datetime>', 'Start date and time (ISO 8601 format)') .option('--recurring <type>', 'Recurring type: Weekly, Bi-weekly, Monthly') .option('--default-product-code <code>', 'Default product code') .action(async (marketId, saleId, _options, command) => { const globalOptions = command.optsWithGlobals ? command.optsWithGlobals() : command.parent?.parent?.opts() || {}; try { const studio$1 = studio.createStudioInstance(globalOptions); const updateData = {}; if (_options.name) updateData.name = _options.name; if (_options.startsAt) updateData.startsAt = _options.startsAt; if (_options.recurring) updateData.recurring = _options.recurring; if (_options.defaultProductCode) updateData.defaultProductCode = _options.defaultProductCode; const result = await studio$1.sales.update(marketId, saleId, updateData); output.output(result, globalOptions); } catch (err) { output.error(err.message, err.response?.data); process.exit(1); } }); return sales; } exports.salesCommand = salesCommand; //# sourceMappingURL=sales.js.map