package postgresgen var autoGenWarningTemplate = ` // // Code generated by go-jet DO NOT EDIT. // Generated at {{now}} // // WARNING: Changes to this file may cause incorrect behavior and will be lost // if the code is regenerated // // Licence under ... // ` var sqlBuilderTableTemplate = ` {{define "column-list" -}} {{- range $i, $c := . }} {{- if gt $i 0 }}, {{end}}{{camelize $c.Name}}Column {{- end}} {{- end}} package table import ( "github.com/go-jet/jet" ) type {{.GoStructName}} struct { jet.Table //Columns {{- range .Columns}} {{camelize .Name}} jet.Column{{.SqlBuilderColumnType}} {{- end}} AllColumns jet.ColumnList } var {{camelize .Name}} = new{{.GoStructName}}() func new{{.GoStructName}}() *{{.GoStructName}} { var ( {{- range .Columns}} {{camelize .Name}}Column = jet.{{.SqlBuilderColumnType}}Column("{{.Name}}") {{- end}} ) return &{{.GoStructName}}{ Table: jet.NewTable("{{.SchemaName}}", "{{.Name}}", {{template "column-list" .Columns}}), //Columns {{- range .Columns}} {{camelize .Name}}: {{camelize .Name}}Column, {{- end}} AllColumns: jet.ColumnList{ {{template "column-list" .Columns}} }, } } func (a *{{.GoStructName}}) AS(alias string) *{{.GoStructName}} { aliasTable := new{{.GoStructName}}() aliasTable.Table.AS(alias) return aliasTable } ` var dataModelTemplate = `package model {{ if .GetImports }} import ( {{- range .GetImports}} "{{.}}" {{- end}} ) {{end}} type {{camelize .Name}} struct { {{- range .Columns}} {{camelize .Name}} {{.GoModelType}} ` + "{{.GoModelTag ($.IsUnique .Name)}}" + ` {{- end}} } ` var enumModelTemplate = `package model import "errors" type {{camelize $.Name}} string const ( {{- range $index, $element := .Values}} {{camelize $.Name}}_{{camelize $element}} {{camelize $.Name}} = "{{$element}}" {{- end}} ) func (e *{{camelize $.Name}}) Scan(value interface{}) error { if v, ok := value.(string); !ok { return errors.New("Invalid data for {{camelize $.Name}} enum") } else { switch string(v) { {{- range $index, $element := .Values}} case "{{$element}}": *e = {{camelize $.Name}}_{{camelize $element}} {{- end}} default: return errors.New("Inavlid data " + string(v) + "for {{camelize $.Name}} enum") } return nil } } func (e {{camelize $.Name}}) String() string { return string(e) } ` var enumTypeTemplate = `package enum import "github.com/go-jet/jet" var {{camelize $.Name}} = &struct { {{- range $index, $element := .Values}} {{camelize $element}} jet.StringExpression {{- end}} } { {{- range $index, $element := .Values}} {{camelize $element}}: jet.NewEnumValue("{{$element}}"), {{- end}} } `