import { api } from '@/lib/api' import type { PaginatedResponse, StockBalanceResponse, StockMovementResponse, 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>('/stock/balances', { params }).then(r => r.data), movements: (params?: StockMovementParams) => api.get>('/stock/movements', { params }).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), }