Add support for meta data on attribute types (rdbms:type=integer)
This commit is contained in:
+3
-3
@@ -42,7 +42,7 @@ resources: { [key=_]: {"handle": key, "component": "system", "platform": "cortez
|
||||
}
|
||||
access: {
|
||||
goType: "types.Access"
|
||||
dal: { type: "Number" }
|
||||
dal: { type: "Number", meta: { "rdbms:type": "integer" } }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -271,7 +271,7 @@ resources: { [key=_]: {"handle": key, "component": "system", "platform": "cortez
|
||||
}
|
||||
severity: {
|
||||
goType: "types.Severity"
|
||||
dal: { type: "Number", default: 0 }
|
||||
dal: { type: "Number", default: 0, meta: { "rdbms:type": "integer" } }
|
||||
}
|
||||
description: {
|
||||
dal: {}
|
||||
@@ -351,7 +351,7 @@ resources: { [key=_]: {"handle": key, "component": "system", "platform": "cortez
|
||||
goType: "uint64",
|
||||
ident: "resourceID",
|
||||
storeIdent: "rel_resource"
|
||||
dal: { type: "Number" }
|
||||
dal: { type: "ID" }
|
||||
}
|
||||
meta: {
|
||||
goType: "rawJson"
|
||||
|
||||
Generated
+2
-2
@@ -37,7 +37,7 @@ var Session = &dal.Model{
|
||||
Ident: "Status", Sortable: true,
|
||||
Type: &dal.TypeNumber{HasDefault: true,
|
||||
DefaultValue: 0,
|
||||
Precision: -1, Scale: -1,
|
||||
Precision: -1, Scale: -1, Meta: map[string]interface{}{"rdbms:type": "integer"},
|
||||
},
|
||||
Store: &dal.CodecAlias{Ident: "status"},
|
||||
},
|
||||
@@ -408,7 +408,7 @@ var Workflow = &dal.Model{
|
||||
Ident: "KeepSessions",
|
||||
Type: &dal.TypeNumber{HasDefault: true,
|
||||
DefaultValue: 0,
|
||||
Precision: -1, Scale: -1,
|
||||
Precision: -1, Scale: -1, Meta: map[string]interface{}{"rdbms:type": "integer"},
|
||||
},
|
||||
Store: &dal.CodecAlias{Ident: "keep_sessions"},
|
||||
},
|
||||
|
||||
@@ -23,7 +23,7 @@ session: {
|
||||
status: {
|
||||
sortable: true,
|
||||
goType: "types.SessionStatus"
|
||||
dal: { type: "Number", default: 0 }
|
||||
dal: { type: "Number", default: 0, meta: { "rdbms:type": "integer" } }
|
||||
}
|
||||
event_type: {
|
||||
sortable: true,
|
||||
|
||||
@@ -25,7 +25,7 @@ workflow: {
|
||||
}
|
||||
keep_sessions: {
|
||||
goType: "int"
|
||||
dal: { type: "Number", default: 0 }
|
||||
dal: { type: "Number", default: 0, meta: { "rdbms:type": "integer" } }
|
||||
}
|
||||
scope: {
|
||||
goType: "*expr.Vars"
|
||||
|
||||
@@ -38,6 +38,7 @@ var {{ .var }} = &dal.Model{
|
||||
{{- if .dal.precision }} Precision: {{ .dal.precision }}, {{ end }}
|
||||
{{- if .dal.scale }} Scale: {{ .dal.scale }}, {{ end }}
|
||||
{{- if .dal.length }} Length: {{ .dal.length }}, {{ end }}
|
||||
{{- if .dal.meta }} Meta: {{ printf "%#v" .dal.meta }}, {{ end }}
|
||||
{{- if eq .dal.type "Ref" }}
|
||||
RefAttribute: {{ printf "%q" .dal.attribute }},
|
||||
RefModel: &dal.ModelRef{
|
||||
|
||||
@@ -65,7 +65,6 @@ import (
|
||||
nullable: bool | *false
|
||||
|
||||
|
||||
|
||||
if type == "ID" {
|
||||
generatedByStore: bool | *false
|
||||
default?: 0
|
||||
@@ -97,6 +96,7 @@ import (
|
||||
precision: number | *(-1)
|
||||
scale: number | *(-1)
|
||||
default?: number
|
||||
meta?: { [string]: _ }
|
||||
}
|
||||
|
||||
if type == "Text" {
|
||||
|
||||
@@ -29,6 +29,10 @@ _dalModelFn: {
|
||||
if attr.dal.default != _|_ {
|
||||
"quotedDefault": attr.dal.type == "String"
|
||||
}
|
||||
|
||||
if attr.dal.meta != _|_ {
|
||||
"meta": attr.dal.meta
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
Generated
+3
-3
@@ -358,7 +358,7 @@ var ModuleField = &dal.Model{
|
||||
|
||||
&dal.Attribute{
|
||||
Ident: "Place", Sortable: true,
|
||||
Type: &dal.TypeNumber{Precision: -1, Scale: -1},
|
||||
Type: &dal.TypeNumber{Precision: -1, Scale: -1, Meta: map[string]interface{}{"rdbms:type": "integer"}},
|
||||
Store: &dal.CodecAlias{Ident: "place"},
|
||||
},
|
||||
|
||||
@@ -656,7 +656,7 @@ var Page = &dal.Model{
|
||||
Ident: "Weight", Sortable: true,
|
||||
Type: &dal.TypeNumber{HasDefault: true,
|
||||
DefaultValue: 0,
|
||||
Precision: -1, Scale: -1,
|
||||
Precision: -1, Scale: -1, Meta: map[string]interface{}{"rdbms:type": "integer"},
|
||||
},
|
||||
Store: &dal.CodecAlias{Ident: "weight"},
|
||||
},
|
||||
@@ -765,7 +765,7 @@ var Record = &dal.Model{
|
||||
|
||||
&dal.Attribute{
|
||||
Ident: "Revision",
|
||||
Type: &dal.TypeNumber{Precision: -1, Scale: -1},
|
||||
Type: &dal.TypeNumber{Precision: -1, Scale: -1, Meta: map[string]interface{}{"rdbms:type": "integer"}},
|
||||
Store: &dal.CodecAlias{Ident: "revision"},
|
||||
},
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ moduleField: {
|
||||
place: {
|
||||
sortable: true,
|
||||
goType: "int"
|
||||
dal: { type: "Number" }
|
||||
dal: { type: "Number", meta: { "rdbms:type": "integer" } }
|
||||
}
|
||||
kind: {
|
||||
sortable: true,
|
||||
|
||||
+1
-1
@@ -55,7 +55,7 @@ page: {
|
||||
}
|
||||
weight: {
|
||||
goType: "int", sortable: true
|
||||
dal: { type: "Number", default: 0 }
|
||||
dal: { type: "Number", default: 0, meta: { "rdbms:type": "integer" } }
|
||||
}
|
||||
description: {
|
||||
goType: "string"
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ record: {
|
||||
id: schema.IdField
|
||||
revision: {
|
||||
goType: "uint"
|
||||
dal: { type: "Number" }
|
||||
dal: { type: "Number", meta: { "rdbms:type": "integer" } }
|
||||
}
|
||||
module_id: {
|
||||
ident: "moduleID",
|
||||
|
||||
@@ -18,7 +18,7 @@ record_revision: {
|
||||
}
|
||||
revision: {
|
||||
goType: "uint"
|
||||
dal: { type: "Number" }
|
||||
dal: { type: "Number", meta: { "rdbms:type": "integer" } }
|
||||
}
|
||||
operation: {
|
||||
dal: {}
|
||||
|
||||
@@ -91,6 +91,7 @@ type (
|
||||
|
||||
HasDefault bool
|
||||
DefaultValue float64
|
||||
Meta map[string]any
|
||||
}
|
||||
|
||||
// TypeText handles string coding
|
||||
@@ -151,9 +152,10 @@ type (
|
||||
}
|
||||
|
||||
TypeUUID struct {
|
||||
//
|
||||
Nullable bool
|
||||
}
|
||||
|
||||
TypeNumberStoreNativeType string
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
"github.com/doug-martin/goqu/v9"
|
||||
"github.com/doug-martin/goqu/v9/dialect/postgres"
|
||||
"github.com/doug-martin/goqu/v9/exp"
|
||||
"github.com/spf13/cast"
|
||||
)
|
||||
|
||||
type (
|
||||
@@ -143,6 +144,12 @@ func (postgresDialect) AttributeToColumn(attr *dal.Attribute) (col *ddl.Column,
|
||||
col.Default = ddl.DefaultValueCurrentTimestamp(t.DefaultCurrentTimestamp)
|
||||
|
||||
case *dal.TypeNumber:
|
||||
if numType := cast.ToString(t.Meta["rdbms:type"]); numType != "" {
|
||||
col.Type.Name = numType
|
||||
col.Default = ddl.DefaultNumber(t.HasDefault, 0, t.DefaultValue)
|
||||
break
|
||||
}
|
||||
|
||||
col.Type.Name = "NUMERIC"
|
||||
|
||||
switch {
|
||||
|
||||
@@ -16,8 +16,10 @@ apigw_filter: {
|
||||
sortable: true, goType: "uint64", storeIdent: "rel_route"
|
||||
dal: { type: "Ref", refModelResType: "corteza::system:apigw-route" }
|
||||
}
|
||||
weight: { sortable: true, goType: "uint64"
|
||||
dal: { type: "Number" }
|
||||
weight: {
|
||||
sortable: true,
|
||||
goType: "uint64"
|
||||
dal: { type: "Number", meta: { "rdbms:type": "integer" } }
|
||||
}
|
||||
kind: {
|
||||
sortable: true
|
||||
|
||||
@@ -20,7 +20,7 @@ application: {
|
||||
weight: {
|
||||
goType: "int",
|
||||
sortable: true
|
||||
dal: { type: "Number", default: 0 }
|
||||
dal: { type: "Number", default: 0, meta: { "rdbms:type": "integer" } }
|
||||
}
|
||||
unify: {
|
||||
goType: "*types.ApplicationUnify"
|
||||
|
||||
@@ -10,8 +10,9 @@ dal_sensitivity_level: {
|
||||
id: schema.IdField
|
||||
handle: schema.HandleField
|
||||
level: {
|
||||
sortable: true, goType: "int"
|
||||
dal: { type: "Number" }
|
||||
sortable: true,
|
||||
goType: "int"
|
||||
dal: { type: "Number", meta: { "rdbms:type": "integer" } }
|
||||
}
|
||||
|
||||
meta: {
|
||||
|
||||
Generated
+3
-3
@@ -83,7 +83,7 @@ var Action = &dal.Model{
|
||||
Ident: "Severity",
|
||||
Type: &dal.TypeNumber{HasDefault: true,
|
||||
DefaultValue: 0,
|
||||
Precision: -1, Scale: -1,
|
||||
Precision: -1, Scale: -1, Meta: map[string]interface{}{"rdbms:type": "integer"},
|
||||
},
|
||||
Store: &dal.CodecAlias{Ident: "severity"},
|
||||
},
|
||||
@@ -315,7 +315,7 @@ var ResourceActivity = &dal.Model{
|
||||
|
||||
&dal.Attribute{
|
||||
Ident: "ResourceID",
|
||||
Type: &dal.TypeNumber{Precision: -1, Scale: -1},
|
||||
Type: &dal.TypeID{},
|
||||
Store: &dal.CodecAlias{Ident: "rel_resource"},
|
||||
},
|
||||
|
||||
@@ -383,7 +383,7 @@ var Rule = &dal.Model{
|
||||
|
||||
&dal.Attribute{
|
||||
Ident: "Access",
|
||||
Type: &dal.TypeNumber{Precision: -1, Scale: -1},
|
||||
Type: &dal.TypeNumber{Precision: -1, Scale: -1, Meta: map[string]interface{}{"rdbms:type": "integer"}},
|
||||
Store: &dal.CodecAlias{Ident: "access"},
|
||||
},
|
||||
},
|
||||
|
||||
Generated
+4
-4
@@ -35,7 +35,7 @@ var ApigwFilter = &dal.Model{
|
||||
|
||||
&dal.Attribute{
|
||||
Ident: "Weight", Sortable: true,
|
||||
Type: &dal.TypeNumber{Precision: -1, Scale: -1},
|
||||
Type: &dal.TypeNumber{Precision: -1, Scale: -1, Meta: map[string]interface{}{"rdbms:type": "integer"}},
|
||||
Store: &dal.CodecAlias{Ident: "weight"},
|
||||
},
|
||||
|
||||
@@ -290,7 +290,7 @@ var Application = &dal.Model{
|
||||
Ident: "Weight", Sortable: true,
|
||||
Type: &dal.TypeNumber{HasDefault: true,
|
||||
DefaultValue: 0,
|
||||
Precision: -1, Scale: -1,
|
||||
Precision: -1, Scale: -1, Meta: map[string]interface{}{"rdbms:type": "integer"},
|
||||
},
|
||||
Store: &dal.CodecAlias{Ident: "weight"},
|
||||
},
|
||||
@@ -1136,7 +1136,7 @@ var DalSensitivityLevel = &dal.Model{
|
||||
|
||||
&dal.Attribute{
|
||||
Ident: "Level", Sortable: true,
|
||||
Type: &dal.TypeNumber{Precision: -1, Scale: -1},
|
||||
Type: &dal.TypeNumber{Precision: -1, Scale: -1, Meta: map[string]interface{}{"rdbms:type": "integer"}},
|
||||
Store: &dal.CodecAlias{Ident: "level"},
|
||||
},
|
||||
|
||||
@@ -1643,7 +1643,7 @@ var Reminder = &dal.Model{
|
||||
|
||||
&dal.Attribute{
|
||||
Ident: "SnoozeCount",
|
||||
Type: &dal.TypeNumber{Precision: -1, Scale: -1},
|
||||
Type: &dal.TypeNumber{Precision: -1, Scale: -1, Meta: map[string]interface{}{"rdbms:type": "integer"}},
|
||||
Store: &dal.CodecAlias{Ident: "snooze_count"},
|
||||
},
|
||||
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ reminder: {
|
||||
}
|
||||
snooze_count: {
|
||||
goType: "uint"
|
||||
dal: { type: "Number" }
|
||||
dal: { type: "Number", meta: { "rdbms:type": "integer" } }
|
||||
}
|
||||
assigned_to: schema.AttributeUserRef
|
||||
assigned_by: schema.AttributeUserRef
|
||||
|
||||
Reference in New Issue
Block a user