import { QueryParams } from '../types/fetchResponse.type'; import { NullableDate } from '../types/expiredService.type'; interface Params { search?: string; page?: number; limit?: number; sortOrder?: number; sortBy?: string; } interface ExpiredOptionsParams { itemNameOptions?: boolean; brandOptions?: boolean; modelOptions?: boolean; tagTypeOptions?: boolean; } interface ExpiredReportOptionsParams { reportedByOptions?: boolean; tagTypeOptions?: boolean; statusOptions?: boolean; } export interface ExpiredReportedListParams extends QueryParams, Params { itemName?: string[]; brand?: string[]; model?: string[]; tag?: string; tagType?: string[]; administrativeGroup?: string[]; updatedAt?: string[]; } export type ExpiredReportedOptionsParams = ExpiredOptionsParams; export interface ExpiredReportedDetailStockListParams extends QueryParams, Params { tag?: string; tagType?: string[]; group?: string[]; status?: string[]; reportedBy?: string[]; productionDate?: string[]; expiredDate?: string[]; reportedDate?: string[]; updatedAt?: string[]; } export type ExpiredReportedDetailStockOptionsParams = ExpiredReportOptionsParams; export interface ExpiredItemListParams extends QueryParams, Params { itemName?: string[]; brand?: string[]; model?: string[]; tagType?: string[]; tag?: string; } export type ExpiredItemOptionsParams = ExpiredOptionsParams; export interface ExpiredStockListParams extends QueryParams, Params { tab?: string; group?: string[]; reportedBy?: string[]; productionDate?: string[]; expiredDate?: string[]; reportedDate?: string[]; excludeStockId?: string; } export interface ExpiredStockOptionsParams { tab?: string; reportedByOptions?: string[]; excludeStockId?: string; } export interface ExpiredUpdateDateRequestBody { requests: ExpiredUpdateDateRequestBodyData[]; } export interface ExpiredUpdateDateRequestBodyData { _id: string; newExpiredDate: number; note: string; } export interface ExpiredUpdateDateCancelBody { requestIds: string[]; } export interface ExpiredApprovalListParams extends QueryParams, Params { itemName?: string[]; brand?: string[]; model?: string[]; administrativeGroup?: string[]; updatedAt?: string[]; status?: string; } export interface ExpiredApprovalOptionsParams extends Omit { administrativeGroupOptions?: boolean; status?: string; } export interface ExpiredApprovalBody { data: ExpiredApprovalBodyData[]; } export interface ExpiredApprovalBodyData { _id: string; isApproved: boolean; approvedExpiredDate: NullableDate; approvalNote: string | null; } export interface ExpiredApprovalStockListParams extends QueryParams, Params { group?: string[]; productionDate?: string[]; currentExpiredDate?: string[]; updateExpiredDate?: string[]; reportedBy?: string[]; approvedExpiredDate?: string[]; isApprovedLabel?: string[]; } export interface ExpiredApprovalStockOptionsParams { reportedByOptions?: boolean; } export interface ExpiredHistoryListParams extends QueryParams, Params { itemName?: string[]; brand?: string[]; model?: string[]; tagType?: string[]; administrativeGroup?: string[]; updatedAt?: string[]; } export interface ExpiredHistoryOptionsParams extends ExpiredOptionsParams { administrativeGroupOptions?: boolean; } export interface ExpiredHistoryDetailStockListParams extends QueryParams, Params { tagType?: string[]; group?: string[]; status?: string[]; productionDate?: string[]; expiredDate?: string[]; updatedDate?: string[]; } export interface ExpiredHistoryDetailStockOptionParams extends Omit { groupOptions?: boolean; } export interface ExpiredReportTAGBody { requestId: string; } export {};