feat: creating and updating groups

This commit is contained in:
2025-10-17 19:47:47 +04:00
parent daa9d12983
commit 30bc7bbee4
18 changed files with 657 additions and 290 deletions

View File

@ -9,7 +9,6 @@ import {
import type { AxiosError } from "axios";
import { client as _heyApiClient } from "../client.gen";
import {
addDeal,
addKitToDeal,
addKitToDealProduct,
createBarcodeTemplate,
@ -31,6 +30,7 @@ import {
deleteBoard,
deleteClient,
deleteDeal,
deleteDealGroup,
deleteDealProduct,
deleteDealProductService,
deleteDealService,
@ -61,7 +61,6 @@ import {
getServicesKits,
getStatuses,
getStatusHistory,
removeDeal,
updateBarcodeTemplate,
updateBoard,
updateClient,
@ -70,6 +69,7 @@ import {
updateDealProduct,
updateDealProductService,
updateDealService,
updateDealsInGroup,
updateMarketplace,
updateProduct,
updateProject,
@ -80,9 +80,6 @@ import {
type Options,
} from "../sdk.gen";
import type {
AddDealData,
AddDealError,
AddDealResponse,
AddKitToDealData,
AddKitToDealError,
AddKitToDealProductData,
@ -145,6 +142,9 @@ import type {
DeleteClientResponse2,
DeleteDealData,
DeleteDealError,
DeleteDealGroupData,
DeleteDealGroupError,
DeleteDealGroupResponse2,
DeleteDealProductData,
DeleteDealProductError,
DeleteDealProductResponse2,
@ -204,9 +204,6 @@ import type {
GetServicesKitsData,
GetStatusesData,
GetStatusHistoryData,
RemoveDealData,
RemoveDealError,
RemoveDealResponse,
UpdateBarcodeTemplateData,
UpdateBarcodeTemplateError,
UpdateBarcodeTemplateResponse2,
@ -231,6 +228,9 @@ import type {
UpdateDealServiceData,
UpdateDealServiceError,
UpdateDealServiceResponse2,
UpdateDealsInGroupData,
UpdateDealsInGroupError,
UpdateDealsInGroupResponse2,
UpdateMarketplaceData,
UpdateMarketplaceError,
UpdateMarketplaceResponse2,
@ -621,6 +621,33 @@ export const updateDealMutation = (
return mutationOptions;
};
/**
* Delete Group
*/
export const deleteDealGroupMutation = (
options?: Partial<Options<DeleteDealGroupData>>
): UseMutationOptions<
DeleteDealGroupResponse2,
AxiosError<DeleteDealGroupError>,
Options<DeleteDealGroupData>
> => {
const mutationOptions: UseMutationOptions<
DeleteDealGroupResponse2,
AxiosError<DeleteDealGroupError>,
Options<DeleteDealGroupData>
> = {
mutationFn: async localOptions => {
const { data } = await deleteDealGroup({
...options,
...localOptions,
throwOnError: true,
});
return data;
},
};
return mutationOptions;
};
/**
* Update Group
*/
@ -699,43 +726,19 @@ export const createDealGroupMutation = (
return mutationOptions;
};
/**
* Remove Deal
*/
export const removeDealMutation = (
options?: Partial<Options<RemoveDealData>>
): UseMutationOptions<
RemoveDealResponse,
AxiosError<RemoveDealError>,
Options<RemoveDealData>
> => {
const mutationOptions: UseMutationOptions<
RemoveDealResponse,
AxiosError<RemoveDealError>,
Options<RemoveDealData>
> = {
mutationFn: async localOptions => {
const { data } = await removeDeal({
...options,
...localOptions,
throwOnError: true,
});
return data;
},
};
return mutationOptions;
};
export const addDealQueryKey = (options: Options<AddDealData>) =>
createQueryKey("addDeal", options);
export const updateDealsInGroupQueryKey = (
options: Options<UpdateDealsInGroupData>
) => createQueryKey("updateDealsInGroup", options);
/**
* Add Deal
* Update Deals In Group
*/
export const addDealOptions = (options: Options<AddDealData>) => {
export const updateDealsInGroupOptions = (
options: Options<UpdateDealsInGroupData>
) => {
return queryOptions({
queryFn: async ({ queryKey, signal }) => {
const { data } = await addDeal({
const { data } = await updateDealsInGroup({
...options,
...queryKey[0],
signal,
@ -743,27 +746,27 @@ export const addDealOptions = (options: Options<AddDealData>) => {
});
return data;
},
queryKey: addDealQueryKey(options),
queryKey: updateDealsInGroupQueryKey(options),
});
};
/**
* Add Deal
* Update Deals In Group
*/
export const addDealMutation = (
options?: Partial<Options<AddDealData>>
export const updateDealsInGroupMutation = (
options?: Partial<Options<UpdateDealsInGroupData>>
): UseMutationOptions<
AddDealResponse,
AxiosError<AddDealError>,
Options<AddDealData>
UpdateDealsInGroupResponse2,
AxiosError<UpdateDealsInGroupError>,
Options<UpdateDealsInGroupData>
> => {
const mutationOptions: UseMutationOptions<
AddDealResponse,
AxiosError<AddDealError>,
Options<AddDealData>
UpdateDealsInGroupResponse2,
AxiosError<UpdateDealsInGroupError>,
Options<UpdateDealsInGroupData>
> = {
mutationFn: async localOptions => {
const { data } = await addDeal({
const { data } = await updateDealsInGroup({
...options,
...localOptions,
throwOnError: true,

View File

@ -3,9 +3,6 @@
import type { Client, Options as ClientOptions, TDataShape } from "./client";
import { client as _heyApiClient } from "./client.gen";
import type {
AddDealData,
AddDealErrors,
AddDealResponses,
AddKitToDealData,
AddKitToDealErrors,
AddKitToDealProductData,
@ -68,6 +65,9 @@ import type {
DeleteClientResponses,
DeleteDealData,
DeleteDealErrors,
DeleteDealGroupData,
DeleteDealGroupErrors,
DeleteDealGroupResponses,
DeleteDealProductData,
DeleteDealProductErrors,
DeleteDealProductResponses,
@ -150,9 +150,6 @@ import type {
GetStatusHistoryData,
GetStatusHistoryErrors,
GetStatusHistoryResponses,
RemoveDealData,
RemoveDealErrors,
RemoveDealResponses,
UpdateBarcodeTemplateData,
UpdateBarcodeTemplateErrors,
UpdateBarcodeTemplateResponses,
@ -177,6 +174,9 @@ import type {
UpdateDealServiceData,
UpdateDealServiceErrors,
UpdateDealServiceResponses,
UpdateDealsInGroupData,
UpdateDealsInGroupErrors,
UpdateDealsInGroupResponses,
UpdateMarketplaceData,
UpdateMarketplaceErrors,
UpdateMarketplaceResponses,
@ -200,8 +200,6 @@ import type {
UpdateStatusResponses,
} from "./types.gen";
import {
zAddDealData,
zAddDealResponse,
zAddKitToDealData,
zAddKitToDealProductData,
zAddKitToDealProductResponse,
@ -243,6 +241,8 @@ import {
zDeleteClientData,
zDeleteClientResponse2,
zDeleteDealData,
zDeleteDealGroupData,
zDeleteDealGroupResponse2,
zDeleteDealProductData,
zDeleteDealProductResponse2,
zDeleteDealProductServiceData,
@ -304,8 +304,6 @@ import {
zGetStatusesResponse2,
zGetStatusHistoryData,
zGetStatusHistoryResponse2,
zRemoveDealData,
zRemoveDealResponse,
zUpdateBarcodeTemplateData,
zUpdateBarcodeTemplateResponse2,
zUpdateBoardData,
@ -322,6 +320,8 @@ import {
zUpdateDealResponse2,
zUpdateDealServiceData,
zUpdateDealServiceResponse2,
zUpdateDealsInGroupData,
zUpdateDealsInGroupResponse2,
zUpdateMarketplaceData,
zUpdateMarketplaceResponse2,
zUpdateProductData,
@ -555,6 +555,29 @@ export const updateDeal = <ThrowOnError extends boolean = false>(
});
};
/**
* Delete Group
*/
export const deleteDealGroup = <ThrowOnError extends boolean = false>(
options: Options<DeleteDealGroupData, ThrowOnError>
) => {
return (options.client ?? _heyApiClient).delete<
DeleteDealGroupResponses,
DeleteDealGroupErrors,
ThrowOnError
>({
requestValidator: async data => {
return await zDeleteDealGroupData.parseAsync(data);
},
responseType: "json",
responseValidator: async data => {
return await zDeleteDealGroupResponse2.parseAsync(data);
},
url: "/deal-group/{pk}",
...options,
});
};
/**
* Update Group
*/
@ -610,51 +633,24 @@ export const createDealGroup = <ThrowOnError extends boolean = false>(
};
/**
* Remove Deal
* Update Deals In Group
*/
export const removeDeal = <ThrowOnError extends boolean = false>(
options: Options<RemoveDealData, ThrowOnError>
) => {
return (options.client ?? _heyApiClient).delete<
RemoveDealResponses,
RemoveDealErrors,
ThrowOnError
>({
requestValidator: async data => {
return await zRemoveDealData.parseAsync(data);
},
responseType: "json",
responseValidator: async data => {
return await zRemoveDealResponse.parseAsync(data);
},
url: "/deal-group/deal",
...options,
headers: {
"Content-Type": "application/json",
...options.headers,
},
});
};
/**
* Add Deal
*/
export const addDeal = <ThrowOnError extends boolean = false>(
options: Options<AddDealData, ThrowOnError>
export const updateDealsInGroup = <ThrowOnError extends boolean = false>(
options: Options<UpdateDealsInGroupData, ThrowOnError>
) => {
return (options.client ?? _heyApiClient).post<
AddDealResponses,
AddDealErrors,
UpdateDealsInGroupResponses,
UpdateDealsInGroupErrors,
ThrowOnError
>({
requestValidator: async data => {
return await zAddDealData.parseAsync(data);
return await zUpdateDealsInGroupData.parseAsync(data);
},
responseType: "json",
responseValidator: async data => {
return await zAddDealResponse.parseAsync(data);
return await zUpdateDealsInGroupResponse2.parseAsync(data);
},
url: "/deal-group/deal",
url: "/deal-group/{pk}/deals",
...options,
headers: {
"Content-Type": "application/json",

View File

@ -1,29 +1,5 @@
// This file is auto-generated by @hey-api/openapi-ts
/**
* AddDealToGroupRequest
*/
export type AddDealToGroupRequest = {
/**
* Dealid
*/
dealId: number;
/**
* Groupid
*/
groupId: number;
};
/**
* AddDealToGroupResponse
*/
export type AddDealToGroupResponse = {
/**
* Message
*/
message: string;
};
/**
* BarcodeTemplateAttributeSchema
*/
@ -376,13 +352,13 @@ export type CreateClientSchema = {
*/
export type CreateDealGroupRequest = {
/**
* Draggingdealid
* Maindealid
*/
draggingDealId: number;
mainDealId: number;
/**
* Hovereddealid
* Otherdealids
*/
hoveredDealId: number;
otherDealIds: Array<number>;
};
/**
@ -950,26 +926,6 @@ export type DealProductSchema = {
productServices: Array<ProductServiceSchema>;
};
/**
* DealRemoveFromGroupRequest
*/
export type DealRemoveFromGroupRequest = {
/**
* Dealid
*/
dealId: number;
};
/**
* DealRemoveFromGroupResponse
*/
export type DealRemoveFromGroupResponse = {
/**
* Message
*/
message: string;
};
/**
* DealSchema
*/
@ -1061,6 +1017,16 @@ export type DeleteClientResponse = {
message: string;
};
/**
* DeleteDealGroupResponse
*/
export type DeleteDealGroupResponse = {
/**
* Message
*/
message: string;
};
/**
* DeleteDealProductResponse
*/
@ -1978,6 +1944,26 @@ export type UpdateDealServiceSchema = {
isFixedPrice: boolean;
};
/**
* UpdateDealsInGroupRequest
*/
export type UpdateDealsInGroupRequest = {
/**
* Dealids
*/
dealIds: Array<number>;
};
/**
* UpdateDealsInGroupResponse
*/
export type UpdateDealsInGroupResponse = {
/**
* Message
*/
message: string;
};
/**
* UpdateMarketplaceRequest
*/
@ -2585,6 +2571,38 @@ export type UpdateDealResponses = {
export type UpdateDealResponse2 =
UpdateDealResponses[keyof UpdateDealResponses];
export type DeleteDealGroupData = {
body?: never;
path: {
/**
* Pk
*/
pk: number;
};
query?: never;
url: "/deal-group/{pk}";
};
export type DeleteDealGroupErrors = {
/**
* Validation Error
*/
422: HttpValidationError;
};
export type DeleteDealGroupError =
DeleteDealGroupErrors[keyof DeleteDealGroupErrors];
export type DeleteDealGroupResponses = {
/**
* Successful Response
*/
200: DeleteDealGroupResponse;
};
export type DeleteDealGroupResponse2 =
DeleteDealGroupResponses[keyof DeleteDealGroupResponses];
export type UpdateDealGroupData = {
body: UpdateDealGroupRequest;
path: {
@ -2644,55 +2662,37 @@ export type CreateDealGroupResponses = {
export type CreateDealGroupResponse2 =
CreateDealGroupResponses[keyof CreateDealGroupResponses];
export type RemoveDealData = {
body: DealRemoveFromGroupRequest;
path?: never;
export type UpdateDealsInGroupData = {
body: UpdateDealsInGroupRequest;
path: {
/**
* Pk
*/
pk: number;
};
query?: never;
url: "/deal-group/deal";
url: "/deal-group/{pk}/deals";
};
export type RemoveDealErrors = {
export type UpdateDealsInGroupErrors = {
/**
* Validation Error
*/
422: HttpValidationError;
};
export type RemoveDealError = RemoveDealErrors[keyof RemoveDealErrors];
export type UpdateDealsInGroupError =
UpdateDealsInGroupErrors[keyof UpdateDealsInGroupErrors];
export type RemoveDealResponses = {
export type UpdateDealsInGroupResponses = {
/**
* Successful Response
*/
200: DealRemoveFromGroupResponse;
200: UpdateDealsInGroupResponse;
};
export type RemoveDealResponse = RemoveDealResponses[keyof RemoveDealResponses];
export type AddDealData = {
body: AddDealToGroupRequest;
path?: never;
query?: never;
url: "/deal-group/deal";
};
export type AddDealErrors = {
/**
* Validation Error
*/
422: HttpValidationError;
};
export type AddDealError = AddDealErrors[keyof AddDealErrors];
export type AddDealResponses = {
/**
* Successful Response
*/
200: AddDealToGroupResponse;
};
export type AddDealResponse = AddDealResponses[keyof AddDealResponses];
export type UpdateDealsInGroupResponse2 =
UpdateDealsInGroupResponses[keyof UpdateDealsInGroupResponses];
export type GetBuiltInModulesData = {
body?: never;

View File

@ -2,21 +2,6 @@
import { z } from "zod";
/**
* AddDealToGroupRequest
*/
export const zAddDealToGroupRequest = z.object({
dealId: z.int(),
groupId: z.int(),
});
/**
* AddDealToGroupResponse
*/
export const zAddDealToGroupResponse = z.object({
message: z.string(),
});
/**
* BarcodeTemplateAttributeSchema
*/
@ -212,8 +197,8 @@ export const zCreateClientResponse = z.object({
* CreateDealGroupRequest
*/
export const zCreateDealGroupRequest = z.object({
draggingDealId: z.int(),
hoveredDealId: z.int(),
mainDealId: z.int(),
otherDealIds: z.array(z.int()),
});
/**
@ -694,20 +679,6 @@ export const zDealProductAddKitResponse = z.object({
message: z.string(),
});
/**
* DealRemoveFromGroupRequest
*/
export const zDealRemoveFromGroupRequest = z.object({
dealId: z.int(),
});
/**
* DealRemoveFromGroupResponse
*/
export const zDealRemoveFromGroupResponse = z.object({
message: z.string(),
});
/**
* DeleteBarcodeTemplateResponse
*/
@ -729,6 +700,13 @@ export const zDeleteClientResponse = z.object({
message: z.string(),
});
/**
* DeleteDealGroupResponse
*/
export const zDeleteDealGroupResponse = z.object({
message: z.string(),
});
/**
* DeleteDealProductResponse
*/
@ -1181,6 +1159,20 @@ export const zUpdateDealServiceResponse = z.object({
message: z.string(),
});
/**
* UpdateDealsInGroupRequest
*/
export const zUpdateDealsInGroupRequest = z.object({
dealIds: z.array(z.int()),
});
/**
* UpdateDealsInGroupResponse
*/
export const zUpdateDealsInGroupResponse = z.object({
message: z.string(),
});
/**
* UpdateMarketplaceSchema
*/
@ -1489,6 +1481,19 @@ export const zUpdateDealData = z.object({
*/
export const zUpdateDealResponse2 = zUpdateDealResponse;
export const zDeleteDealGroupData = z.object({
body: z.optional(z.never()),
path: z.object({
pk: z.int(),
}),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zDeleteDealGroupResponse2 = zDeleteDealGroupResponse;
export const zUpdateDealGroupData = z.object({
body: zUpdateDealGroupRequest,
path: z.object({
@ -1513,27 +1518,18 @@ export const zCreateDealGroupData = z.object({
*/
export const zCreateDealGroupResponse2 = zCreateDealGroupResponse;
export const zRemoveDealData = z.object({
body: zDealRemoveFromGroupRequest,
path: z.optional(z.never()),
export const zUpdateDealsInGroupData = z.object({
body: zUpdateDealsInGroupRequest,
path: z.object({
pk: z.int(),
}),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zRemoveDealResponse = zDealRemoveFromGroupResponse;
export const zAddDealData = z.object({
body: zAddDealToGroupRequest,
path: z.optional(z.never()),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zAddDealResponse = zAddDealToGroupResponse;
export const zUpdateDealsInGroupResponse2 = zUpdateDealsInGroupResponse;
export const zGetBuiltInModulesData = z.object({
body: z.optional(z.never()),