feat: modules, products, services, services kits

This commit is contained in:
2025-09-16 10:56:10 +04:00
parent f2746b8b65
commit 553e76d610
92 changed files with 8404 additions and 103 deletions

View File

@ -12,6 +12,17 @@ export const zBoardSchema = z.object({
projectId: z.int(),
});
/**
* BuiltInModuleSchema
*/
export const zBuiltInModuleSchema = z.object({
id: z.int(),
key: z.string(),
label: z.string(),
iconName: z.string(),
description: z.string(),
});
/**
* CreateBoardSchema
*/
@ -36,6 +47,104 @@ export const zCreateBoardResponse = z.object({
entity: zBoardSchema,
});
/**
* CreateDealProductSchema
*/
export const zCreateDealProductSchema = z.object({
dealId: z.int(),
productId: z.int(),
quantity: z.int(),
comment: z.string(),
});
/**
* CreateDealProductRequest
*/
export const zCreateDealProductRequest = z.object({
entity: zCreateDealProductSchema,
});
/**
* ProductSchema
*/
export const zProductSchema = z.object({
name: z.string(),
article: z.string(),
factoryArticle: z.string(),
brand: z.union([z.string(), z.null()]),
color: z.union([z.string(), z.null()]),
composition: z.union([z.string(), z.null()]),
size: z.union([z.string(), z.null()]),
additionalInfo: z.union([z.string(), z.null()]),
id: z.int(),
});
/**
* ServiceCategorySchema
*/
export const zServiceCategorySchema = z.object({
id: z.int(),
name: z.string(),
dealServiceRank: z.string(),
productServiceRank: z.string(),
});
/**
* ServicePriceRangeSchema
*/
export const zServicePriceRangeSchema = z.object({
id: z.union([z.int(), z.null()]),
fromQuantity: z.int(),
toQuantity: z.int(),
price: z.number(),
});
/**
* ServiceSchema
*/
export const zServiceSchema = z.object({
id: z.int(),
name: z.string(),
category: zServiceCategorySchema,
price: z.number(),
serviceType: z.int(),
priceRanges: z.array(zServicePriceRangeSchema),
cost: z.union([z.number(), z.null()]),
lexorank: z.string(),
});
/**
* ProductServiceSchema
*/
export const zProductServiceSchema = z.object({
dealId: z.int(),
productId: z.int(),
serviceId: z.int(),
service: zServiceSchema,
price: z.number(),
isFixedPrice: z.boolean(),
});
/**
* DealProductSchema
*/
export const zDealProductSchema = z.object({
dealId: z.int(),
productId: z.int(),
product: zProductSchema,
quantity: z.int(),
comment: z.string(),
productServices: z.array(zProductServiceSchema),
});
/**
* CreateDealProductResponse
*/
export const zCreateDealProductResponse = z.object({
message: z.string(),
entity: zDealProductSchema,
});
/**
* CreateDealSchema
*/
@ -84,6 +193,97 @@ export const zCreateDealResponse = z.object({
entity: zDealSchema,
});
/**
* CreateDealServiceSchema
*/
export const zCreateDealServiceSchema = z.object({
dealId: z.int(),
serviceId: z.int(),
quantity: z.int(),
price: z.number(),
});
/**
* CreateDealServiceRequest
*/
export const zCreateDealServiceRequest = z.object({
entity: zCreateDealServiceSchema,
});
/**
* DealServiceSchema
*/
export const zDealServiceSchema = z.object({
dealId: z.int(),
serviceId: z.int(),
service: zServiceSchema,
quantity: z.int(),
price: z.number(),
isFixedPrice: z.boolean(),
});
/**
* CreateDealServiceResponse
*/
export const zCreateDealServiceResponse = z.object({
message: z.string(),
entity: zDealServiceSchema,
});
/**
* CreateProductSchema
*/
export const zCreateProductSchema = z.object({
name: z.string(),
article: z.string(),
factoryArticle: z.string(),
brand: z.union([z.string(), z.null()]),
color: z.union([z.string(), z.null()]),
composition: z.union([z.string(), z.null()]),
size: z.union([z.string(), z.null()]),
additionalInfo: z.union([z.string(), z.null()]),
});
/**
* CreateProductRequest
*/
export const zCreateProductRequest = z.object({
entity: zCreateProductSchema,
});
/**
* CreateProductResponse
*/
export const zCreateProductResponse = z.object({
message: z.string(),
entity: zProductSchema,
});
/**
* CreateProductServiceSchema
*/
export const zCreateProductServiceSchema = z.object({
dealId: z.int(),
productId: z.int(),
serviceId: z.int(),
price: z.number(),
});
/**
* CreateProductServiceRequest
*/
export const zCreateProductServiceRequest = z.object({
entity: zCreateProductServiceSchema,
});
/**
* CreateProductServiceResponse
*/
export const zCreateProductServiceResponse = z.object({
message: z.string(),
entity: zProductServiceSchema,
});
/**
* CreateProjectSchema
*/
@ -104,6 +304,7 @@ export const zCreateProjectRequest = z.object({
export const zProjectSchema = z.object({
id: z.int(),
name: z.string(),
builtInModules: z.array(zBuiltInModuleSchema),
});
/**
@ -114,6 +315,69 @@ export const zCreateProjectResponse = z.object({
entity: zProjectSchema,
});
/**
* CreateServiceSchema
*/
export const zCreateServiceSchema = z.object({
id: z.int(),
name: z.string(),
category: zServiceCategorySchema,
price: z.number(),
serviceType: z.int(),
priceRanges: z.array(zServicePriceRangeSchema),
cost: z.union([z.number(), z.null()]),
lexorank: z.string(),
});
/**
* CreateServiceRequest
*/
export const zCreateServiceRequest = z.object({
entity: zCreateServiceSchema,
});
/**
* CreateServiceResponse
*/
export const zCreateServiceResponse = z.object({
message: z.string(),
entity: zServiceSchema,
});
/**
* CreateServicesKitSchema
*/
export const zCreateServicesKitSchema = z.object({
name: z.string(),
serviceType: z.int(),
servicesIds: z.array(z.int()),
});
/**
* CreateServicesKitRequest
*/
export const zCreateServicesKitRequest = z.object({
entity: zCreateServicesKitSchema,
});
/**
* ServicesKitSchema
*/
export const zServicesKitSchema = z.object({
name: z.string(),
serviceType: z.int(),
id: z.int(),
services: z.array(zServiceSchema),
});
/**
* CreateServicesKitResponse
*/
export const zCreateServicesKitResponse = z.object({
message: z.string(),
entity: zServicesKitSchema,
});
/**
* CreateStatusSchema
*/
@ -138,6 +402,22 @@ export const zCreateStatusResponse = z.object({
entity: zStatusSchema,
});
/**
* DealProductAddKitRequest
*/
export const zDealProductAddKitRequest = z.object({
dealId: z.int(),
productId: z.int(),
kitId: z.int(),
});
/**
* DealProductAddKitResponse
*/
export const zDealProductAddKitResponse = z.object({
message: z.string(),
});
/**
* DeleteBoardResponse
*/
@ -145,6 +425,13 @@ export const zDeleteBoardResponse = z.object({
message: z.string(),
});
/**
* DeleteDealProductResponse
*/
export const zDeleteDealProductResponse = z.object({
message: z.string(),
});
/**
* DeleteDealResponse
*/
@ -152,6 +439,27 @@ export const zDeleteDealResponse = z.object({
message: z.string(),
});
/**
* DeleteDealServiceResponse
*/
export const zDeleteDealServiceResponse = z.object({
message: z.string(),
});
/**
* DeleteProductResponse
*/
export const zDeleteProductResponse = z.object({
message: z.string(),
});
/**
* DeleteProductServiceResponse
*/
export const zDeleteProductServiceResponse = z.object({
message: z.string(),
});
/**
* DeleteProjectResponse
*/
@ -159,6 +467,20 @@ export const zDeleteProjectResponse = z.object({
message: z.string(),
});
/**
* DeleteServiceResponse
*/
export const zDeleteServiceResponse = z.object({
message: z.string(),
});
/**
* DeleteServicesKitResponse
*/
export const zDeleteServicesKitResponse = z.object({
message: z.string(),
});
/**
* DeleteStatusResponse
*/
@ -166,6 +488,13 @@ export const zDeleteStatusResponse = z.object({
message: z.string(),
});
/**
* GetAllBuiltInModulesResponse
*/
export const zGetAllBuiltInModulesResponse = z.object({
items: z.array(zBuiltInModuleSchema),
});
/**
* GetBoardsResponse
*/
@ -173,6 +502,20 @@ export const zGetBoardsResponse = z.object({
items: z.array(zBoardSchema),
});
/**
* GetDealProductsResponse
*/
export const zGetDealProductsResponse = z.object({
items: z.array(zDealProductSchema),
});
/**
* GetDealServicesResponse
*/
export const zGetDealServicesResponse = z.object({
items: z.array(zDealServiceSchema),
});
/**
* PaginationInfoSchema
*/
@ -189,6 +532,13 @@ export const zGetDealsResponse = z.object({
paginationInfo: zPaginationInfoSchema,
});
/**
* GetProductsResponse
*/
export const zGetProductsResponse = z.object({
items: z.array(zProductSchema),
});
/**
* GetProjectsResponse
*/
@ -196,6 +546,20 @@ export const zGetProjectsResponse = z.object({
items: z.array(zProjectSchema),
});
/**
* GetServicesKitResponse
*/
export const zGetServicesKitResponse = z.object({
items: z.array(zServicesKitSchema),
});
/**
* GetServicesResponse
*/
export const zGetServicesResponse = z.object({
items: z.array(zServiceSchema),
});
/**
* GetStatusesResponse
*/
@ -219,6 +583,31 @@ export const zHttpValidationError = z.object({
detail: z.optional(z.array(zValidationError)),
});
/**
* ProductImageSchema
*/
export const zProductImageSchema = z.object({
id: z.int(),
productId: z.int(),
imageUrl: z.string(),
});
/**
* ProductServicesDuplicateRequest
*/
export const zProductServicesDuplicateRequest = z.object({
dealId: z.int(),
sourceDealProductId: z.int(),
targetDealProductIds: z.array(z.int()),
});
/**
* ProductServicesDuplicateResponse
*/
export const zProductServicesDuplicateResponse = z.object({
message: z.string(),
});
export const zSortDir = z.enum(["asc", "desc"]);
/**
@ -243,6 +632,28 @@ export const zUpdateBoardResponse = z.object({
message: z.string(),
});
/**
* UpdateDealProductSchema
*/
export const zUpdateDealProductSchema = z.object({
quantity: z.int(),
comment: z.string(),
});
/**
* UpdateDealProductRequest
*/
export const zUpdateDealProductRequest = z.object({
entity: zUpdateDealProductSchema,
});
/**
* UpdateDealProductResponse
*/
export const zUpdateDealProductResponse = z.object({
message: z.string(),
});
/**
* UpdateDealSchema
*/
@ -267,11 +678,86 @@ export const zUpdateDealResponse = z.object({
message: z.string(),
});
/**
* UpdateDealServiceSchema
*/
export const zUpdateDealServiceSchema = z.object({
quantity: z.int(),
price: z.number(),
isFixedPrice: z.boolean(),
});
/**
* UpdateDealServiceRequest
*/
export const zUpdateDealServiceRequest = z.object({
entity: zUpdateDealServiceSchema,
});
/**
* UpdateDealServiceResponse
*/
export const zUpdateDealServiceResponse = z.object({
message: z.string(),
});
/**
* UpdateProductSchema
*/
export const zUpdateProductSchema = z.object({
name: z.optional(z.union([z.string(), z.null()])),
article: z.optional(z.union([z.string(), z.null()])),
factoryArticle: z.optional(z.union([z.string(), z.null()])),
brand: z.optional(z.union([z.string(), z.null()])),
color: z.optional(z.union([z.string(), z.null()])),
composition: z.optional(z.union([z.string(), z.null()])),
size: z.optional(z.union([z.string(), z.null()])),
additionalInfo: z.optional(z.union([z.string(), z.null()])),
images: z.optional(z.union([z.array(zProductImageSchema), z.null()])),
});
/**
* UpdateProductRequest
*/
export const zUpdateProductRequest = z.object({
entity: zUpdateProductSchema,
});
/**
* UpdateProductResponse
*/
export const zUpdateProductResponse = z.object({
message: z.string(),
});
/**
* UpdateProductServiceSchema
*/
export const zUpdateProductServiceSchema = z.object({
price: z.number(),
isFixedPrice: z.boolean(),
});
/**
* UpdateProductServiceRequest
*/
export const zUpdateProductServiceRequest = z.object({
entity: zUpdateProductServiceSchema,
});
/**
* UpdateProductServiceResponse
*/
export const zUpdateProductServiceResponse = z.object({
message: z.string(),
});
/**
* UpdateProjectSchema
*/
export const zUpdateProjectSchema = z.object({
name: z.optional(z.union([z.string(), z.null()])),
builtInModules: z.optional(z.array(zBuiltInModuleSchema)),
});
/**
@ -288,6 +774,57 @@ export const zUpdateProjectResponse = z.object({
message: z.string(),
});
/**
* UpdateServiceSchema
*/
export const zUpdateServiceSchema = z.object({
id: z.int(),
name: z.string(),
category: zServiceCategorySchema,
price: z.number(),
serviceType: z.int(),
priceRanges: z.array(zServicePriceRangeSchema),
cost: z.union([z.number(), z.null()]),
lexorank: z.string(),
});
/**
* UpdateServiceRequest
*/
export const zUpdateServiceRequest = z.object({
entity: zUpdateServiceSchema,
});
/**
* UpdateServiceResponse
*/
export const zUpdateServiceResponse = z.object({
message: z.string(),
});
/**
* UpdateServicesKitSchema
*/
export const zUpdateServicesKitSchema = z.object({
name: z.string(),
serviceType: z.int(),
servicesIds: z.array(z.int()),
});
/**
* UpdateServicesKitRequest
*/
export const zUpdateServicesKitRequest = z.object({
entity: zUpdateServicesKitSchema,
});
/**
* UpdateServicesKitResponse
*/
export const zUpdateServicesKitResponse = z.object({
message: z.string(),
});
/**
* UpdateStatusSchema
*/
@ -420,6 +957,17 @@ export const zUpdateDealData = z.object({
*/
export const zUpdateDealResponse2 = zUpdateDealResponse;
export const zGetBuiltInModulesData = z.object({
body: z.optional(z.never()),
path: z.optional(z.never()),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zGetBuiltInModulesResponse = zGetAllBuiltInModulesResponse;
export const zGetProjectsData = z.object({
body: z.optional(z.never()),
path: z.optional(z.never()),
@ -517,3 +1065,321 @@ export const zUpdateStatusData = z.object({
* Successful Response
*/
export const zUpdateStatusResponse2 = zUpdateStatusResponse;
export const zGetDealProductsData = z.object({
body: z.optional(z.never()),
path: z.object({
dealId: z.int(),
}),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zGetDealProductsResponse2 = zGetDealProductsResponse;
export const zCreateDealProductData = z.object({
body: zCreateDealProductRequest,
path: z.optional(z.never()),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zCreateDealProductResponse2 = zCreateDealProductResponse;
export const zDeleteDealProductData = z.object({
body: z.optional(z.never()),
path: z.object({
dealId: z.int(),
productId: z.int(),
}),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zDeleteDealProductResponse2 = zDeleteDealProductResponse;
export const zUpdateDealProductData = z.object({
body: zUpdateDealProductRequest,
path: z.object({
dealId: z.int(),
productId: z.int(),
}),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zUpdateDealProductResponse2 = zUpdateDealProductResponse;
export const zAddKitToDealProductData = z.object({
body: zDealProductAddKitRequest,
path: z.optional(z.never()),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zAddKitToDealProductResponse = zDealProductAddKitResponse;
export const zCreateDealProductServiceData = z.object({
body: zCreateProductServiceRequest,
path: z.optional(z.never()),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zCreateDealProductServiceResponse = zCreateProductServiceResponse;
export const zDeleteDealProductServiceData = z.object({
body: z.optional(z.never()),
path: z.object({
dealId: z.int(),
productId: z.int(),
serviceId: z.int(),
}),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zDeleteDealProductServiceResponse = zDeleteProductServiceResponse;
export const zUpdateDealProductServiceData = z.object({
body: zUpdateProductServiceRequest,
path: z.object({
dealId: z.int(),
productId: z.int(),
serviceId: z.int(),
}),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zUpdateDealProductServiceResponse = zUpdateProductServiceResponse;
export const zDuplicateProductServicesData = z.object({
body: zProductServicesDuplicateRequest,
path: z.optional(z.never()),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zDuplicateProductServicesResponse =
zProductServicesDuplicateResponse;
export const zGetDealServicesData = z.object({
body: z.optional(z.never()),
path: z.object({
dealId: z.int(),
}),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zGetDealServicesResponse2 = zGetDealServicesResponse;
export const zCreateDealServiceData = z.object({
body: zCreateDealServiceRequest,
path: z.optional(z.never()),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zCreateDealServiceResponse2 = zCreateDealServiceResponse;
export const zDeleteDealServiceData = z.object({
body: z.optional(z.never()),
path: z.object({
dealId: z.int(),
serviceId: z.int(),
}),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zDeleteDealServiceResponse2 = zDeleteDealServiceResponse;
export const zUpdateDealServiceData = z.object({
body: zUpdateDealServiceRequest,
path: z.object({
dealId: z.int(),
serviceId: z.int(),
}),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zUpdateDealServiceResponse2 = zUpdateDealServiceResponse;
export const zGetProductsData = z.object({
body: z.optional(z.never()),
path: z.optional(z.never()),
query: z.optional(
z.object({
searchInput: z.optional(z.union([z.string(), z.null()])),
page: z.optional(z.union([z.int(), z.null()])),
itemsPerPage: z.optional(z.union([z.int(), z.null()])),
})
),
});
/**
* Successful Response
*/
export const zGetProductsResponse2 = zGetProductsResponse;
export const zCreateProductData = z.object({
body: zCreateProductRequest,
path: z.optional(z.never()),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zCreateProductResponse2 = zCreateProductResponse;
export const zDeleteProductData = z.object({
body: z.optional(z.never()),
path: z.object({
pk: z.int(),
}),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zDeleteProductResponse2 = zDeleteProductResponse;
export const zUpdateProductData = z.object({
body: zUpdateProductRequest,
path: z.object({
pk: z.int(),
}),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zUpdateProductResponse2 = zUpdateProductResponse;
export const zGetServicesData = z.object({
body: z.optional(z.never()),
path: z.optional(z.never()),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zGetServicesResponse2 = zGetServicesResponse;
export const zCreateServiceData = z.object({
body: zCreateServiceRequest,
path: z.optional(z.never()),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zCreateServiceResponse2 = zCreateServiceResponse;
export const zDeleteServiceData = z.object({
body: z.optional(z.never()),
path: z.object({
pk: z.int(),
}),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zDeleteServiceResponse2 = zDeleteServiceResponse;
export const zUpdateServiceData = z.object({
body: zUpdateServiceRequest,
path: z.object({
pk: z.int(),
}),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zUpdateServiceResponse2 = zUpdateServiceResponse;
export const zGetServicesKitsData = z.object({
body: z.optional(z.never()),
path: z.optional(z.never()),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zGetServicesKitsResponse = zGetServicesKitResponse;
export const zCreateServicesKitData = z.object({
body: zCreateServicesKitRequest,
path: z.optional(z.never()),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zCreateServicesKitResponse2 = zCreateServicesKitResponse;
export const zDeleteServicesKitData = z.object({
body: z.optional(z.never()),
path: z.object({
pk: z.int(),
}),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zDeleteServicesKitResponse2 = zDeleteServicesKitResponse;
export const zUpdateServicesKitData = z.object({
body: zUpdateServicesKitRequest,
path: z.object({
pk: z.int(),
}),
query: z.optional(z.never()),
});
/**
* Successful Response
*/
export const zUpdateServicesKitResponse2 = zUpdateServicesKitResponse;