const mongoose = require('mongoose') function file(file) { return '/uploads/representation_docs/' + this.name } const FilesSchema = mongoose.Schema({ name: String }) FilesSchema.virtual('url').get(file) const RepresentationSchema = mongoose.Schema({ // user info user_id: { type: String, ref: 'User' }, representation_code: String, agent_code: String, editAccess: { type: Boolean, default: false }, // personal info full_name: String, birth_date: String, id_number: String, place_of_issue: String, national_code: String, fathers_name: String, education_level: String, military_status: String, certificates: String, // contact info store_name: String, province_name: String, province_id: String, city_name: String, city_id: String, postal_code: String, mobile_number: String, tel_number: String, fax_number: String, economic_code: String, email: String, address: String, // location info business_license: Boolean, ownership_type: { type: String, enum: ['owner', 'rent', 'rghit_of_business'] }, total_area: String, repair_area: String, stock_area: String, customer_reference_floor: String, place_location: { type: String, enum: ['tech_passage', 'other'] }, geo_location: { type: String, enum: ['main_street', 'side_street', 'alley', 'inside_passage', 'outside_passage'] }, banner_info: String, repair_technicians: String, repair_masters: String, office_workers: String, bike_deliveries: String, // experience info computer_repair_exp: String, multimedia_repair_exp: String, business_exp: String, // common questions representation_type: { type: [String], enum: ['mobile_accessories', 'computer_accessories', 'memory_products', 'car_audio_video', 'home_products'], default: [] }, know_asanServ_from: { type: String, enum: ['company_agents', 'website', 'company_workers', 'exhibition', 'introduced', 'other'] }, introducer_info: String, asanServ_products_knowledge: { type: Number, enum: [0, 1, 2, 3, 4] }, computer_saling_exp: Boolean, computer_saling_description: String, other_representations: [ { trademark: String, company_name: String, cooperation_history: String, cooperation_start_year: String } ], more_descriptions: String, // admins status: { type: String, enum: ['registered', 'ongoing', 'verification', 'accepted', 'rejected'], default: 'registered' }, // files upload: { type: Boolean, default: true }, tradeUnion: [FilesSchema], expertise: [FilesSchema], ownership: [FilesSchema], repairShop: [FilesSchema], itEmployee: [FilesSchema], itExpert: [FilesSchema], financialGuarantees: [FilesSchema], // archived: { type: Boolean, default: false }, _updatedBy: { type: mongoose.ObjectId, ref: 'User' }, _revoked: { type: Boolean, default: false }, _revokedBy: { type: mongoose.ObjectId, ref: 'User' } }) module.exports = mongoose.model('Representation', RepresentationSchema)