1
+ import Joi from "joi" ;
2
+
3
+ const addProductValidation = Joi . object ( {
4
+ title : Joi . string ( ) . required ( ) . trim ( ) . min ( 3 ) ,
5
+ imgCover : Joi . string ( ) ,
6
+ images : Joi . array ( ) . items ( Joi . string ( ) ) ,
7
+ descripton : Joi . string ( ) . max ( 100 ) . min ( 10 ) . required ( ) . trim ( ) ,
8
+ price : Joi . number ( ) . min ( 0 ) . required ( ) . default ( 0 ) ,
9
+ priceAfterDiscount : Joi . number ( ) . min ( 0 ) . default ( 0 ) ,
10
+ quantity : Joi . number ( ) . min ( 0 ) . default ( 0 ) ,
11
+ sold : Joi . number ( ) . min ( 0 ) . default ( 0 ) ,
12
+ category : Joi . string ( ) . hex ( ) . length ( 24 ) . required ( ) ,
13
+ subcategory : Joi . string ( ) . hex ( ) . length ( 24 ) . required ( ) ,
14
+ brand : Joi . string ( ) . hex ( ) . length ( 24 ) . required ( ) ,
15
+ ratingAvg : Joi . number ( ) . min ( 1 ) . max ( 5 ) ,
16
+ ratingCount : Joi . number ( ) . min ( 0 ) ,
17
+ } ) ;
18
+
19
+ const getSpecificProductValidation = Joi . object ( {
20
+ id : Joi . string ( ) . hex ( ) . length ( 24 ) . required ( ) ,
21
+ } ) ;
22
+
23
+ const updateProductValidation = Joi . object ( {
24
+ id : Joi . string ( ) . hex ( ) . length ( 24 ) . required ( ) ,
25
+ imgCover : Joi . string ( ) ,
26
+ images : Joi . array ( ) . items ( Joi . string ( ) ) ,
27
+ title : Joi . string ( ) . required ( ) . trim ( ) . min ( 3 ) ,
28
+ descripton : Joi . string ( ) . max ( 100 ) . min ( 10 ) . trim ( ) ,
29
+ price : Joi . number ( ) . min ( 0 ) . default ( 0 ) ,
30
+ priceAfterDiscount : Joi . number ( ) . min ( 0 ) . default ( 0 ) ,
31
+ quantity : Joi . number ( ) . min ( 0 ) . default ( 0 ) ,
32
+ sold : Joi . number ( ) . min ( 0 ) . default ( 0 ) ,
33
+ category : Joi . string ( ) . hex ( ) . length ( 24 ) ,
34
+ subcategory : Joi . string ( ) . hex ( ) . length ( 24 ) ,
35
+ brand : Joi . string ( ) . hex ( ) . length ( 24 ) ,
36
+ ratingAvg : Joi . number ( ) . min ( 1 ) . max ( 5 ) ,
37
+ ratingCount : Joi . number ( ) . min ( 0 ) ,
38
+ } ) ;
39
+
40
+ const deleteProductValidation = Joi . object ( {
41
+ id : Joi . string ( ) . hex ( ) . length ( 24 ) . required ( ) ,
42
+ } ) ;
43
+
44
+ export {
45
+ addProductValidation ,
46
+ getSpecificProductValidation ,
47
+ updateProductValidation ,
48
+ deleteProductValidation ,
49
+ } ;
0 commit comments