41 lines
1.8 KiB
Smarty
41 lines
1.8 KiB
Smarty
{{- define "relationship_to_one_struct_helper" -}}
|
|
{{.Function.Name}} *{{.ForeignTable.NameGo}}
|
|
{{- end -}}
|
|
|
|
{{- $dot := . -}}
|
|
{{- $tableNameSingular := .Table.Name | singular -}}
|
|
{{- $modelName := $tableNameSingular | titleCase -}}
|
|
{{- $modelNameCamel := $tableNameSingular | camelCase -}}
|
|
// {{$modelName}} is an object representing the database table.
|
|
type {{$modelName}} struct {
|
|
{{range $column := .Table.Columns -}}
|
|
{{titleCase $column.Name}} {{$column.Type}} `{{generateTags $dot.Tags $column.Name}}boil:"{{$column.Name}}" json:"{{$column.Name}}{{if $column.Nullable}},omitempty{{end}}" toml:"{{$column.Name}}" yaml:"{{$column.Name}}{{if $column.Nullable}},omitempty{{end}}"`
|
|
{{end -}}
|
|
{{- if .Table.IsJoinTable -}}
|
|
{{- else}}
|
|
R *{{$modelNameCamel}}R `{{generateIgnoreTags $dot.Tags}}boil:"-" json:"-" toml:"-" yaml:"-"`
|
|
L {{$modelNameCamel}}L `{{generateIgnoreTags $dot.Tags}}boil:"-" json:"-" toml:"-" yaml:"-"`
|
|
{{end -}}
|
|
}
|
|
|
|
{{- if .Table.IsJoinTable -}}
|
|
{{- else}}
|
|
// {{$modelNameCamel}}R is where relationships are stored.
|
|
type {{$modelNameCamel}}R struct {
|
|
{{range .Table.FKeys -}}
|
|
{{- $rel := textsFromForeignKey $dot.PkgName $dot.Tables $dot.Table . -}}
|
|
{{- template "relationship_to_one_struct_helper" $rel}}
|
|
{{end -}}
|
|
{{- range .Table.ToManyRelationships -}}
|
|
{{- if (and .ForeignColumnUnique (not .ToJoinTable)) -}}
|
|
{{- template "relationship_to_one_struct_helper" (textsFromOneToOneRelationship $dot.PkgName $dot.Tables $dot.Table .)}}
|
|
{{else -}}
|
|
{{- $rel := textsFromRelationship $dot.Tables $dot.Table . -}}
|
|
{{$rel.Function.Name}} {{$rel.ForeignTable.Slice}}
|
|
{{end -}}{{/* if ForeignColumnUnique */}}
|
|
{{- end -}}{{/* range tomany */}}
|
|
}
|
|
|
|
// {{$modelNameCamel}}L is where Load methods for each relationship are stored.
|
|
type {{$modelNameCamel}}L struct{}
|
|
{{end -}}
|