31 lines
663 B
TypeScript
31 lines
663 B
TypeScript
export type StockState = 'available' | 'reserved' | 'sold' | 'incoming';
|
|
|
|
export interface StockItem {
|
|
id: string;
|
|
variantId: string;
|
|
available: number;
|
|
reserved: number;
|
|
sold: number;
|
|
incoming: number;
|
|
createdAt: Date;
|
|
updatedAt: Date;
|
|
}
|
|
|
|
export interface StockCommand {
|
|
variantId: string;
|
|
quantity: number;
|
|
}
|
|
|
|
export type SetAvailableStockCommand = StockCommand;
|
|
|
|
export interface Availability {
|
|
available: boolean;
|
|
availableQuantity: number;
|
|
}
|
|
|
|
export function assertPositiveQuantity(quantity: number): void {
|
|
if (!Number.isInteger(quantity) || quantity <= 0) {
|
|
throw new Error('Stock quantity must be a positive integer');
|
|
}
|
|
}
|