From 41f7eea81a57c9993c5a2bb2fb968fded32db467 Mon Sep 17 00:00:00 2001 From: Rodrigo Rodriguez Date: Sun, 8 Oct 2023 16:03:33 -0300 Subject: [PATCH] new(basic.gblib): Allow relationships in TABLE keywod #381. --- packages/basic.gblib/services/GBVMService.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/basic.gblib/services/GBVMService.ts b/packages/basic.gblib/services/GBVMService.ts index d05bdb17..367cc447 100644 --- a/packages/basic.gblib/services/GBVMService.ts +++ b/packages/basic.gblib/services/GBVMService.ts @@ -198,13 +198,18 @@ export class GBVMService extends GBService { case 'boolean': return { key: 'BOOLEAN' }; default: - return { key: 'STRING' }; // Default to string if the type is unknown + return { key: 'TABLE' , name: t}; } }; + const associations = []; + Object.keys(t.fields).forEach(key => { let obj = t.fields[key]; obj.type = getTypeBasedOnCondition(obj.type); + if (obj.type.key === "TABLE"){ + associations.push({from: t.name,to: obj.type.name}); + } if (obj.name.toLowerCase() === 'id') { obj['primaryKey'] = true; @@ -212,6 +217,15 @@ export class GBVMService extends GBService { }); + associations.forEach(e=>{ + const from = minBoot.core.sequelize.models[e.from]; + const to = minBoot.core.sequelize.models[e.to]; + + from.hasMany(to); + to.belongsTo(from); + + }); + minBoot.core.sequelize.define(t.name, t.fields); await minBoot.core.sequelize.sync({