feat(ADM-018): completed feature
This commit is contained in:
30
project/src/modules/inventory/domain/stock.ts
Normal file
30
project/src/modules/inventory/domain/stock.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
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');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user