UNPKG

flexbiz-server

Version:

Flexible Server

18 lines (17 loc) 7.59 kB
const validAccount=require("../libs/validator-account"),validator=require("../libs/validator"),unidecode=require("unidecode"),mongoose=require("mongoose"),Schema=mongoose.Schema,dmvtSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},stt:Number,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,ma_pk_xuat:String,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:[],trong_luong:{type:Number,default:0},chieu_sau:{type:Number,default:0},chieu_rong:{type:Number,default:0},chieu_cao:{type:Number,default:0},warranty_policy:{type:Schema.Types.ObjectId,ref:"warrantypolicy",default:null},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$$){$gx$$!="1"&&$gx$$!="2"&&$gx$$!="3"?$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$$){$gx$$!="1"&&$gx$$!="2"&&$gx$$!="3"?$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$$()}); (global.configs||{}).createIndexes&&(dmvtSchema.index({id_app:1,ma_vt:1},{unique:!0}),dmvtSchema.index({id_app:1,ma_vt:1,ma_can:1,ma_vt2:1,ten_vt:1,ten_vt_kd:1,ten_vt_eng:1,status:1,stt:1}),dmvtSchema.index({id_app:1,ma_lvt:1,status:1}),dmvtSchema.index({id_app:1,ma_nvt:1,status:1,stt:1}),dmvtSchema.index({id_app:1,ma_nvt2:1,status:1,stt:1}),dmvtSchema.index({id_app:1,ma_nvt3:1,status:1,stt:1}),dmvtSchema.index({id_app:1,ma_nvt4:1,status:1,stt:1}),dmvtSchema.index({id_app:1,ma_danh_muc:1,status:1, stt:1}),dmvtSchema.index({id_app:1,ma_danh_muc_cty:1,status:1,stt:1}),dmvtSchema.index({id_app:1,ma_ncc:1,ten_ncc:1,status:1,stt:1}),dmvtSchema.index({id_app:1,ma_kho_df:1,status:1}),dmvtSchema.index({id_app:1,ma_thuong_hieu:1,status:1,stt:1}),dmvtSchema.index({id_app:1,ma_xuat_xu:1,status:1,stt:1}),dmvtSchema.index({id_app:1,labels:1,status:1}),dmvtSchema.index({id_app:1,is_service:1,status:1}),dmvtSchema.index({id_app:1,is_digital:1,status:1}),dmvtSchema.index({id_app:1,date_created:-1}),dmvtSchema.index({id_app:1, ton_kho_online_hien_tai:1}),dmvtSchema.index({id_app:1,ma_pk_xuat:1}),dmvtSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1,status:1,stt:1}),dmvtSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1,ma_vt:1,ma_can:1,ma_vt2:1,ten_vt:1,ten_vt_kd:1,ten_vt_eng:1,status:1,stt:1}),dmvtSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1,ma_nvt:1,status:1,stt:1}),dmvtSchema.index({id_app:1,user_created:1,visible_to:1,ma_nvt2:1,status:1,stt:1}),dmvtSchema.index({id_app:1, user_created:1,visible_to:1,ma_nvt3:1,status:1,stt:1}),dmvtSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1,ma_lvt:1,status:1,stt:1}),dmvtSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1,ma_danh_muc:1,status:1,stt:1}),dmvtSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1,ma_danh_muc_cty:1,status:1,stt:1}),dmvtSchema.index({id_app:1,ten_vt:"text",ten_vt_kd:"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",default_language:"none"}));const model=mongoose.models.dmvt||mongoose.model("dmvt",dmvtSchema); if((global.configs||{}).createIndexes)model.on("index",async function($err$$){$err$$?(Logger.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$$)=>{$index$$>0&&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;