import { api } from '@/lib/api' import type { PaginatedResponse, PriceListResponse, SchemeResponse, SchemeRuleType, } from '@/types/api' import type { PageParams } from './master' // ─── Price Lists ────────────────────────────────────────────────────────────── export interface PriceListItemBody { itemId: string price: number minPrice?: number | null } export interface PriceListBody { name: string regionId?: string | null effectiveFrom: string effectiveTo: string isActive?: boolean items: PriceListItemBody[] } export interface PriceListListParams extends PageParams { regionId?: string isActive?: boolean } export const priceLists = { list: (params?: PriceListListParams) => api.get>('/price-lists', { params }).then(r => r.data), get: (id: string) => api.get(`/price-lists/${id}`).then(r => r.data), create: (body: PriceListBody) => api.post('/price-lists', body).then(r => r.data), update: (id: string, body: Partial) => api.put(`/price-lists/${id}`, body).then(r => r.data), } // ─── Schemes ────────────────────────────────────────────────────────────────── export interface BundleComponentBody { itemId: string qty: number } export interface SchemeBody { name: string ruleType: SchemeRuleType ruleConfig?: string | null triggerItemId?: string | null triggerQty?: number freeItemId?: string | null freeQty?: number bundleComponents?: BundleComponentBody[] regionId?: string | null eligibleSegment?: string | null dateRangeFrom: string dateRangeTo: string agentLimitExempt?: boolean baselineExpectedSales?: number isActive?: boolean } export interface SchemeListParams extends PageParams { regionId?: string isActive?: boolean } export const schemes = { list: (params?: SchemeListParams) => api.get>('/schemes', { params }).then(r => r.data), get: (id: string) => api.get(`/schemes/${id}`).then(r => r.data), create: (body: SchemeBody) => api.post('/schemes', body).then(r => r.data), update: (id: string, body: Partial) => api.put(`/schemes/${id}`, body).then(r => r.data), }