UNPKG

flexbiz-server

Version:

Flexible Server

15 lines (14 loc) 6.41 kB
'use strict';const validAccount=require("../libs/validator-account"),validator=require("../libs/validator"),unidecode=require("unidecode"),dmvtSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_vt:{type:String,required:"M\u00e3 v\u1eadt t\u01b0 kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ed1ng",uppercase:!0,trim:!0,maxlength:1024},ma_vt2:{type:String,maxlength:1024,uppercase:!0,trim:!0},ma_can:{type:String,maxlength:1024,uppercase:!0,trim:!0},ten_vt:{type:String,required:"T\u00ean v\u1eadt t\u01b0 kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ed1ng", maxlength:1024},ten_vt_kd:String,ten_vt_eng:String,ma_dvt:{type:String,required:"M\u00e3 \u0111\u01a1n v\u1ecb t\u00ednh kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ed1ng",maxlength:32,trim:!0},ma_lvt:{type:String,required:!1,maxlength:32,trim:!0},ma_nvt:{type:String,required:!1,maxlength:1024,trim:!0},ten_nvt:String,ma_nvt2:[String],ma_nvt3:[String],ma_nvt4:[String],ma_danh_muc:String,ma_danh_muc_cty:String,ma_ncc:{type:String,required:!1,maxlength:32,trim:!0},ten_ncc:String,tg_tk:{type:Boolean,default:!0}, kg_kiem_tra_ton_kho:{type:Boolean,default:!1},kg_kiem_tra_ton_kho_tt:{type:Boolean,default:!1},gia_xuat:{type:String,default:"1",maxlength:32},tk_vt:{type:String,default:"1561",maxlength:32},tk_dt:{type:String,maxlength:32},tk_gv:{type:String,maxlength:32},tk_dl:{type:String,maxlength:32},tk_tl:{type:String,maxlength:32},gia_ban_le0:{type:Number,default:0},gia_ban_buon0:{type:Number,default:0},gia_ban_le:{type:Number,default:0},gia_ban_buon:{type:Number,default:0},gia_ban_chua_thue:{type:Boolean, default:!1},ban_theo_tg:{type:Boolean,default:!1},khong_duoc_sua_gia_ban:{type:Boolean,default:!0},sp_yeu_cau_che_bien:{type:Boolean,default:!1},sp_yeu_cau_pha_che:{type:Boolean,default:!1},gia_mua:{type:Number,default:0},gia_mua_tmp:{type:Number,default:0},ty_le_ck0:{type:Number,default:0},tien_ck0:{type:Number,default:0},thue_suat_nk0:{type:Number,default:0},ton_kho_mac_dinh:{type:Number,default:0},ton_kho_online_hien_tai:{type:Number,default:0},thue_suat_nk:{type:Number,default:0},ma_thue:{type:String, maxlength:32},picture_slide:{type:String,maxlength:1024},picture:{type:String,maxlength:1024},picture2:{type:String,maxlength:1024},picture3:{type:String,maxlength:1024},picture4:{type:String,maxlength:1024},picture5:{type:String,maxlength:1024},picture6:{type:String,maxlength:1024},mieu_ta:{type:String},mieu_ta_chi_tiet:{type:String},khuyen_mai:{type:String},bao_hang:{type:String},ma_xuat_xu:{type:String},ma_thuong_hieu:{type:String},hot:{type:Boolean},bestseller:{type:Boolean},banner_large:{type:Boolean}, banner_small:{type:Boolean},options:[],xk_nvl:{type:Boolean},tinh_trang:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,labels:[String],ma_kho_df:String,ma_lo_yn:Boolean,ma_tt1_yn:Boolean,ma_tt2_yn:Boolean,ma_tt3_yn:Boolean,thuoc_tinh:Schema.Types.Mixed,cong_doan_sx:[Schema.Types.Mixed],is_service:{type:Boolean,default:!1},is_digital:{type:Boolean,default:!1},is_coin:Boolean,is_point:Boolean,file_digital:String,combo:[],shared:{type:Boolean,default:!0},status:{type:Boolean,default:!0},date_created:{type:Date, default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String]},{toJSON:{virtuals:!0}}); dmvtSchema.validate={tk_vt:validAccount.existsTk,ma_dvt:validator.existsDvt,ma_thue:validator.existsVat,gia_xuat:[function($id_app$$,$gx$$,$callback$$){"1"!=$gx$$&&"2"!=$gx$$&&"3"!=$gx$$?$callback$$(!1):$callback$$(!0)},"Ph\u01b0\u01a1ng ph\u00e1p t\u00ednh gi\u00e1 xu\u1ea5t: 1- Trung b\u00ecnh th\u00e1ng, 2- Nh\u1eadp tr\u01b0\u1edbc xu\u1ea5t tr\u01b0\u1edbc, 3- \u0110\u00edch danh"],tinh_trang:[function($id_app$$,$gx$$,$callback$$){"1"!=$gx$$&&"2"!=$gx$$&&"3"!=$gx$$?$callback$$(!1):$callback$$(!0)}, "T\u00ecnh tr\u1ea1ng: 1- \u0110ang c\u00f3 h\u00e0ng, 2- S\u1eafp c\u00f3 h\u00e0ng, 3- H\u1ebft h\u00e0ng"]};dmvtSchema.pre("save",function($next$$){const $self$$=this;$self$$.ten_vt?setImmediate(()=>{const $ten_vt_kd$$=unidecode($self$$.ten_vt);$self$$.ten_vt_kd=`${$ten_vt_kd$$}`;$next$$()}):$next$$()});const model=mongoose.models.dmvt||mongoose.model("dmvt",dmvtSchema); (global.configs||{}).createIndexes&&(dmvtSchema.index({ten_vt:"text",mieu_ta:"text",ma_vt:"text",ma_vt2:"text",ma_can:"text",ma_thuong_hieu:"text",ma_xuat_xu:"text",ma_nvt:"text",ten_nvt:"text",ma_ncc:"text",ten_ncc:"text",labels:"text",ten_vt_eng:"text"},{name:"product_index"}),dmvtSchema.index({id_app:1,ma_vt:1},{unique:!0}),dmvtSchema.index({ma_vt2:1}),dmvtSchema.index({ma_can:1}),dmvtSchema.index({ten_vt:1}),dmvtSchema.index({ten_vt_eng:1}),dmvtSchema.index({ma_dvt:1}),dmvtSchema.index({ma_lvt:1}), dmvtSchema.index({ma_nvt:1}),dmvtSchema.index({ma_nvt2:1}),dmvtSchema.index({ma_nvt3:1}),dmvtSchema.index({ma_nvt4:1}),dmvtSchema.index({ma_danh_muc:1}),dmvtSchema.index({ma_danh_muc_cty:1}),dmvtSchema.index({ten_nvt:1}),dmvtSchema.index({ma_ncc:1}),dmvtSchema.index({ten_ncc:1}),dmvtSchema.index({ma_kho_df:1}),dmvtSchema.index({tg_tk:1}),dmvtSchema.index({ma_thuong_hieu:1}),dmvtSchema.index({ma_xuat_xu:1}),dmvtSchema.index({labels:1}),dmvtSchema.index({mieu_ta:1}),dmvtSchema.index({id_app:1}),dmvtSchema.index({is_service:1}), dmvtSchema.index({is_digital:1}),dmvtSchema.index({date_updated:-1}),dmvtSchema.index({date_created:-1}),dmvtSchema.index({user_created:1}),dmvtSchema.index({ton_kho_online_hien_tai:1}),dmvtSchema.index({ten_vt_kd:1}),dmvtSchema.index({status:1}),dmvtSchema.index({user_created:1,visible_to:1,visible_to_users:1}),model.on("index",async function($err$$){$err$$?(console.error("Product index error",$err$$),(await model.aggregate([{$group:{_id:{id_app:"$id_app",ma_vt:"$ma_vt"},count:{$sum:1},ids:{$push:"$_id"}}}, {$match:{count:{$gt:1}}}])).forEach($d$$=>{console.info("product duplication",$d$$._id,$d$$.ids);$d$$.ids.forEach(($id$$,$index$$)=>{0<$index$$&&console.info("you should delete product",$id$$)})})):console.info("Product indexing complete")}));model.referenceKeys={ma_vt:[{model:"sokho",key:"ma_vt",error:"V\u1eadt t\u01b0 ${obj.ten_vt} \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u trong s\u1ed5 kho"},{model:"cdvt",key:"ma_vt",error:"V\u1eadt t\u01b0 ${obj.ten_vt} \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u trong c\u00e2n \u0111\u1ed1i v\u1eadt t\u01b0"}]}; module.exports=model;