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