import DownloadIcon from '../../components/Icons/DownloadIcon' import EditIcon from '../../components/Icons/EditIcon' import InfoCircleIcon from '../../components/Icons/InfoCircleIcon' import PartIcon from '../../components/Icons/PartIcon' import ReloadIcon from '../../components/Icons/ReloadIcon' export const Part = { name: 'part', label: 'Part', prefix: 'PRT', icon: PartIcon, actions: [ { name: 'info', label: 'Info', default: true, row: true, icon: InfoCircleIcon, url: (_id) => `/dashboard/management/parts/info?partId=${_id}` }, { name: 'reload', label: 'Reload', icon: ReloadIcon, url: (_id) => `/dashboard/management/parts/info?partId=${_id}&action=reload` }, { name: 'download', label: 'Download', row: true, icon: DownloadIcon, url: (_id) => `/dashboard/management/parts/info?partId=${_id}&action=download` }, { name: 'edit', label: 'Edit', row: true, icon: EditIcon, url: (_id) => `/dashboard/management/parts/info?partId=${_id}&action=edit` } ], columns: [ 'name', '_id', 'product', 'product._id', 'globalPricing', 'createdAt' ], filters: ['name', '_id', 'product', 'product._id', 'globalPricing'], sorters: ['name', 'email', 'role', 'createdAt', '_id'], properties: [ { name: '_id', label: 'ID', columnFixed: 'left', type: 'id', objectType: 'part', showCopy: true, readOnly: true }, { name: 'createdAt', label: 'Created At', type: 'dateTime', readOnly: true }, { name: 'name', label: 'Name', columnFixed: 'left', required: true, type: 'text' }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', readOnly: true }, { name: 'product', label: 'Product', type: 'object', required: true, objectType: 'product' }, { name: 'product._id', label: 'Product ID', type: 'id', readOnly: true, showHyperlink: true, objectType: 'product' }, { name: 'globalPricing', label: 'Global Price', columnWidth: 150, required: true, type: 'bool' }, { name: 'priceMode', label: 'Price Mode', type: 'priceMode', disabled: (objectData) => { return objectData.globalPricing == true } }, { name: 'margin', label: 'Margin', type: 'number', disabled: (objectData) => { return ( objectData.globalPricing == true || objectData.priceMode == 'amount' ) }, suffix: '%', min: 0, max: 100, step: 0.01 }, { name: 'amount', label: 'Amount', disabled: (objectData) => { return ( objectData.globalPricing == true || objectData.priceMode == 'margin' ) }, type: 'number', prefix: '£', min: 0, step: 0.1 } ] }