package generator var autoGenWarningTemplate = ` // // Code generated by sqlbuilder 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 = `package table import ( "github.com/sub0zero/go-sqlbuilder/sqlbuilder" ) type {{.ToGoStructName}} struct { sqlbuilder.Table //Columns {{- range .Columns}} {{.ToGoFieldName}} *sqlbuilder.{{.ToSqlBuilderColumnType}} {{- end}} AllColumns sqlbuilder.ColumnList } var {{.ToGoVarName}} = new{{.ToGoStructName}}() func new{{.ToGoStructName}}() *{{.ToGoStructName}} { var ( {{- range .Columns}} {{.ToGoVarName}} = sqlbuilder.New{{.ToSqlBuilderColumnType}}("{{.Name}}", {{if .IsNullable}}sqlbuilder.Nullable{{else}}sqlbuilder.NotNullable{{end}}) {{- end}} ) return &{{.ToGoStructName}}{ Table: *sqlbuilder.NewTable("{{.SchemaName}}", "{{.Name}}", {{.ToGoColumnFieldList ", "}}), //Columns {{- range .Columns}} {{.ToGoFieldName}}: {{.ToGoVarName}}, {{- end}} AllColumns: sqlbuilder.ColumnList{ {{.ToGoColumnFieldList ", "}} }, } } func (a *{{.ToGoStructName}}) AS(alias string) *{{.ToGoStructName}} { aliasTable := new{{.ToGoStructName}}() aliasTable.Table.SetAlias(alias) return aliasTable } ` var dataModelTemplate = `package model {{ if .GetImports }} import ( {{- range .GetImports}} "{{.}}" {{- end}} ) {{end}} type {{.ToGoModelStructName}} struct { {{- range .Columns}} {{.ToGoFieldName}} {{.ToGoType}} {{if $.IsUnique .Name}}` + "`sql:\"unique\"`" + ` {{end}} {{- 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) } `