feat: products page

This commit is contained in:
2025-10-08 22:32:16 +04:00
parent 820d9b4d33
commit 8af4fcce2f
25 changed files with 664 additions and 58 deletions

View File

@ -487,6 +487,14 @@ export type CreateProductSchema = {
* Factoryarticle
*/
factoryArticle: string;
/**
* Clientid
*/
clientId: number;
/**
* Barcodetemplateid
*/
barcodeTemplateId: number;
/**
* Brand
*/
@ -507,6 +515,10 @@ export type CreateProductSchema = {
* Additionalinfo
*/
additionalInfo: string | null;
/**
* Barcodes
*/
barcodes: Array<string>;
};
/**
@ -1098,6 +1110,7 @@ export type GetProductsResponse = {
* Items
*/
items: Array<ProductSchema>;
paginationInfo: PaginationInfoSchema;
};
/**
@ -1218,6 +1231,14 @@ export type ProductSchema = {
* Factoryarticle
*/
factoryArticle: string;
/**
* Clientid
*/
clientId: number;
/**
* Barcodetemplateid
*/
barcodeTemplateId: number;
/**
* Brand
*/
@ -1238,10 +1259,15 @@ export type ProductSchema = {
* Additionalinfo
*/
additionalInfo: string | null;
/**
* Barcodes
*/
barcodes: Array<string>;
/**
* Id
*/
id: number;
barcodeTemplate: BarcodeTemplateSchema;
};
/**
@ -1704,6 +1730,10 @@ export type UpdateProductSchema = {
* Factoryarticle
*/
factoryArticle?: string | null;
/**
* Barcodetemplateid
*/
barcodeTemplateId?: number | null;
/**
* Brand
*/
@ -1724,6 +1754,10 @@ export type UpdateProductSchema = {
* Additionalinfo
*/
additionalInfo?: string | null;
/**
* Barcodes
*/
barcodes?: Array<string> | null;
/**
* Images
*/
@ -3218,6 +3252,10 @@ export type GetProductsData = {
body?: never;
path?: never;
query?: {
/**
* Clientid
*/
clientId?: number | null;
/**
* Searchinput
*/

View File

@ -208,12 +208,16 @@ export const zProductSchema = z.object({
name: z.string(),
article: z.string(),
factoryArticle: z.string(),
clientId: z.int(),
barcodeTemplateId: z.int(),
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()]),
barcodes: z.array(z.string()),
id: z.int(),
barcodeTemplate: zBarcodeTemplateSchema,
});
/**
@ -377,11 +381,14 @@ export const zCreateProductSchema = z.object({
name: z.string(),
article: z.string(),
factoryArticle: z.string(),
clientId: z.int(),
barcodeTemplateId: z.int(),
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()]),
barcodes: z.array(z.string()),
});
/**
@ -765,6 +772,7 @@ export const zGetDealsResponse = z.object({
*/
export const zGetProductsResponse = z.object({
items: z.array(zProductSchema),
paginationInfo: zPaginationInfoSchema,
});
/**
@ -1014,11 +1022,13 @@ 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()])),
barcodeTemplateId: z.optional(z.union([z.int(), 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()])),
barcodes: z.optional(z.union([z.array(z.string()), z.null()])),
images: z.optional(z.union([z.array(zProductImageSchema), z.null()])),
});
@ -1718,6 +1728,7 @@ export const zGetProductsData = z.object({
path: z.optional(z.never()),
query: z.optional(
z.object({
clientId: z.optional(z.union([z.int(), z.null()])),
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()])),