import * as selectively from "selectively" import * as base from "@payfunc/model-base" export type Items = base.Item[] export namespace Items { export function is(value: any | Items): value is Items { return Array.isArray(value) && value.every(base.Item.is) } export function from(value: number | base.Item | base.Item[] | undefined): Items | undefined { return Array.isArray(value) && value.every(base.Item.is) ? value : base.Item.is(value) ? [value] : typeof value == "number" && !isNaN(value) ? [{ price: value }] : undefined } export const template = new selectively.Type.Array([ new selectively.Type.Object({ number: new selectively.Type.String(), name: new selectively.Type.String(), price: new selectively.Type.Number(), quantity: new selectively.Type.Number(), unit: new selectively.Type.String(), vat: new selectively.Type.Number(), rebate: new selectively.Type.Number(), }), ]) }