export default class Routes { type; attributes = []; hasOnes = []; hasManys = []; constructor(type, model = null) { this.type = type; this.model = model; } attribute(name) { this.attributes.push(name); return this; } hasOne(type) { this.hasOnes.push(type); return this; } hasMany(type) { this.hasManys.push(type); return this; } extend(app, extension) { if (this.model) { app.store.models[this.type] = this.model; } const model = app.store.models[this.type]; this.attributes.forEach((name) => (model.prototype[name] = model.attribute(name))); this.hasOnes.forEach((name) => (model.prototype[name] = model.hasOne(name))); this.hasManys.forEach((name) => (model.prototype[name] = model.hasMany(name))); } }