Files
ERP_Distribution/distribution_fe/lib/api/stock.ts
T
2026-09-29 12:08:54 +05:30

53 lines
1.5 KiB
TypeScript

import { api } from '@/lib/api'
import type {
PaginatedResponse,
StockBalanceResponse,
StockMovementResponse,
LowStockItemResponse,
LocationType,
MovementType,
} from '@/types/api'
import type { PageParams } from './master'
export interface StockBalanceParams extends PageParams {
locationId?: string
locationType?: LocationType
itemId?: string
}
export interface StockMovementParams extends PageParams {
itemId?: string
locationId?: string
type?: MovementType
from?: string
to?: string
}
export interface AdjustmentBody {
itemId: string
locationId: string
locationType: LocationType
quantity: number
reasonCode: string
// TEMPORARY: required while auth doesn't resolve a logged-in user server-side — see testbug.md #28.
adjustedByUserId: string
}
export const stock = {
balances: (params?: StockBalanceParams) =>
api.get<PaginatedResponse<StockBalanceResponse>>('/stock/balances', { params }).then(r => r.data),
movements: (params?: StockMovementParams) =>
api.get<PaginatedResponse<StockMovementResponse>>('/stock/movements', { params }).then(r => r.data),
lowStock: (locationId?: string) =>
api.get<LowStockItemResponse[]>('/stock/low-stock', { params: { locationId } }).then(r => r.data),
adjust: (body: AdjustmentBody) =>
api.post('/stock/adjustment', body).then(r => r.data),
updateMovementReason: (id: string, reasonCode: string) =>
api.patch(`/stock/movements/${id}/reason`, { reasonCode }).then(r => r.data),
}