github.com/Ali-iotechsys/sqlboiler/v4@v4.0.0-20221208124957-6aec9a5f1f71/templates/main/00_struct.go.tpl (about)

     1  {{- $alias := .Aliases.Table .Table.Name -}}
     2  {{- $orig_tbl_name := .Table.Name -}}
     3  
     4  // {{$alias.UpSingular}} is an object representing the database table.
     5  type {{$alias.UpSingular}} struct {
     6  	{{- range $column := .Table.Columns -}}
     7  	{{- $colAlias := $alias.Column $column.Name -}}
     8  	{{- $orig_col_name := $column.Name -}}
     9  	{{- range $column.Comment | splitLines -}} // {{ . }}
    10  	{{end -}}
    11  	{{if ignore $orig_tbl_name $orig_col_name $.TagIgnore -}}
    12  	{{$colAlias}} {{$column.Type}} `{{generateIgnoreTags $.Tags}}boil:"{{$column.Name}}" json:"-" toml:"-" yaml:"-"`
    13  	{{else if eq $.StructTagCasing "title" -}}
    14  	{{$colAlias}} {{$column.Type}} `{{generateTags $.Tags $column.Name}}boil:"{{$column.Name}}" json:"{{$column.Name | titleCase}}{{if $column.Nullable}},omitempty{{end}}" toml:"{{$column.Name | titleCase}}" yaml:"{{$column.Name | titleCase}}{{if $column.Nullable}},omitempty{{end}}"`
    15  	{{else if eq $.StructTagCasing "camel" -}}
    16  	{{$colAlias}} {{$column.Type}} `{{generateTags $.Tags $column.Name}}boil:"{{$column.Name}}" json:"{{$column.Name | camelCase}}{{if $column.Nullable}},omitempty{{end}}" toml:"{{$column.Name | camelCase}}" yaml:"{{$column.Name | camelCase}}{{if $column.Nullable}},omitempty{{end}}"`
    17  	{{else if eq $.StructTagCasing "alias" -}}
    18  	{{$colAlias}} {{$column.Type}} `{{generateTags $.Tags $colAlias}}boil:"{{$column.Name}}" json:"{{$colAlias}}{{if $column.Nullable}},omitempty{{end}}" toml:"{{$colAlias}}" yaml:"{{$colAlias}}{{if $column.Nullable}},omitempty{{end}}"`
    19  	{{else -}}
    20  	{{$colAlias}} {{$column.Type}} `{{generateTags $.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}}"`
    21  	{{end -}}
    22  	{{end -}}
    23  	{{- if or .Table.IsJoinTable .Table.IsView -}}
    24  	{{- else}}
    25  	R *{{$alias.DownSingular}}R `{{generateTags $.Tags $.RelationTag}}boil:"{{$.RelationTag}}" json:"{{$.RelationTag}}" toml:"{{$.RelationTag}}" yaml:"{{$.RelationTag}}"`
    26  	L {{$alias.DownSingular}}L `{{generateIgnoreTags $.Tags}}boil:"-" json:"-" toml:"-" yaml:"-"`
    27  	{{end -}}
    28  }
    29  
    30  var {{$alias.UpSingular}}Columns = struct {
    31  	{{range $column := .Table.Columns -}}
    32  	{{- $colAlias := $alias.Column $column.Name -}}
    33  	{{$colAlias}} string
    34  	{{end -}}
    35  }{
    36  	{{range $column := .Table.Columns -}}
    37  	{{- $colAlias := $alias.Column $column.Name -}}
    38  	{{$colAlias}}: "{{$column.Name}}",
    39  	{{end -}}
    40  }
    41  
    42  var {{$alias.UpSingular}}TableColumns = struct {
    43  	{{range $column := .Table.Columns -}}
    44  	{{- $colAlias := $alias.Column $column.Name -}}
    45  	{{$colAlias}} string
    46  	{{end -}}
    47  }{
    48  	{{range $column := .Table.Columns -}}
    49  	{{- $colAlias := $alias.Column $column.Name -}}
    50  	{{$colAlias}}: "{{$orig_tbl_name}}.{{$column.Name}}",
    51  	{{end -}}
    52  }
    53  
    54  {{/* Generated where helpers for all types in the database */}}
    55  // Generated where
    56  {{- range .Table.Columns -}}
    57  	{{- if (oncePut $.DBTypes .Type)}}
    58  		{{$name := printf "whereHelper%s" (goVarname .Type)}}
    59  type {{$name}} struct { field string }
    60  func (w {{$name}}) EQ(x {{.Type}}) qm.QueryMod { return qmhelper.Where{{if .Nullable}}NullEQ(w.field, false, x){{else}}(w.field, qmhelper.EQ, x){{end}} }
    61  func (w {{$name}}) NEQ(x {{.Type}}) qm.QueryMod { return qmhelper.Where{{if .Nullable}}NullEQ(w.field, true, x){{else}}(w.field, qmhelper.NEQ, x){{end}} }
    62  func (w {{$name}}) LT(x {{.Type}}) qm.QueryMod { return qmhelper.Where(w.field, qmhelper.LT, x) }
    63  func (w {{$name}}) LTE(x {{.Type}}) qm.QueryMod { return qmhelper.Where(w.field, qmhelper.LTE, x) }
    64  func (w {{$name}}) GT(x {{.Type}}) qm.QueryMod { return qmhelper.Where(w.field, qmhelper.GT, x) }
    65  func (w {{$name}}) GTE(x {{.Type}}) qm.QueryMod { return qmhelper.Where(w.field, qmhelper.GTE, x) }
    66  		{{if or (isPrimitive .Type) (isNullPrimitive .Type) (isEnumDBType .DBType) -}}
    67  func (w {{$name}}) IN(slice []{{convertNullToPrimitive .Type}}) qm.QueryMod {
    68  	values := make([]interface{}, 0, len(slice))
    69  	for _, value := range slice {
    70  		values = append(values, value)
    71  	}
    72  	return qm.WhereIn(fmt.Sprintf("%s IN ?", w.field), values...)
    73  }
    74  func (w {{$name}}) NIN(slice []{{convertNullToPrimitive .Type}}) qm.QueryMod {
    75  	values := make([]interface{}, 0, len(slice))
    76  	for _, value := range slice {
    77  	  values = append(values, value)
    78  	}
    79  	return qm.WhereNotIn(fmt.Sprintf("%s NOT IN ?", w.field), values...)
    80  }
    81  		{{end -}}
    82  	{{end -}}
    83  	{{if .Nullable -}}
    84  		{{- if (oncePut $.DBTypes (printf "%s.null" .Type))}}
    85  		{{$name := printf "whereHelper%s" (goVarname .Type)}}
    86  func (w {{$name}}) IsNull() qm.QueryMod { return qmhelper.WhereIsNull(w.field) }
    87  func (w {{$name}}) IsNotNull() qm.QueryMod { return qmhelper.WhereIsNotNull(w.field) }
    88  		{{end -}}
    89  	{{end -}}
    90  {{- end}}
    91  
    92  var {{$alias.UpSingular}}Where = struct {
    93  	{{range $column := .Table.Columns -}}
    94  	{{- $colAlias := $alias.Column $column.Name -}}
    95  	{{$colAlias}} whereHelper{{goVarname $column.Type}}
    96  	{{end -}}
    97  }{
    98  	{{range $column := .Table.Columns -}}
    99  	{{- $colAlias := $alias.Column $column.Name -}}
   100  	{{$colAlias}}: whereHelper{{goVarname $column.Type}}{field: "{{$.Table.Name | $.SchemaTable}}.{{$column.Name | $.Quotes}}"},
   101  	{{end -}}
   102  }
   103  
   104  {{if or .Table.IsJoinTable .Table.IsView -}}
   105  {{- else -}}
   106  // {{$alias.UpSingular}}Rels is where relationship names are stored.
   107  var {{$alias.UpSingular}}Rels = struct {
   108  	{{range .Table.FKeys -}}
   109  	{{- $relAlias := $alias.Relationship .Name -}}
   110  	{{$relAlias.Foreign}} string
   111  	{{end -}}
   112  
   113  	{{range .Table.ToOneRelationships -}}
   114  	{{- $ftable := $.Aliases.Table .ForeignTable -}}
   115  	{{- $relAlias := $ftable.Relationship .Name -}}
   116  	{{$relAlias.Local}} string
   117  	{{end -}}
   118  
   119  	{{range .Table.ToManyRelationships -}}
   120  	{{- $relAlias := $.Aliases.ManyRelationship .ForeignTable .Name .JoinTable .JoinLocalFKeyName -}}
   121  	{{$relAlias.Local}} string
   122  	{{end -}}{{/* range tomany */}}
   123  }{
   124  	{{range .Table.FKeys -}}
   125  	{{- $relAlias := $alias.Relationship .Name -}}
   126  	{{$relAlias.Foreign}}: "{{$relAlias.Foreign}}",
   127  	{{end -}}
   128  
   129  	{{range .Table.ToOneRelationships -}}
   130  	{{- $ftable := $.Aliases.Table .ForeignTable -}}
   131  	{{- $relAlias := $ftable.Relationship .Name -}}
   132  	{{$relAlias.Local}}: "{{$relAlias.Local}}",
   133  	{{end -}}
   134  
   135  	{{range .Table.ToManyRelationships -}}
   136  	{{- $relAlias := $.Aliases.ManyRelationship .ForeignTable .Name .JoinTable .JoinLocalFKeyName -}}
   137  	{{$relAlias.Local}}: "{{$relAlias.Local}}",
   138  	{{end -}}{{/* range tomany */}}
   139  }
   140  
   141  // {{$alias.DownSingular}}R is where relationships are stored.
   142  type {{$alias.DownSingular}}R struct {
   143  	{{range .Table.FKeys -}}
   144  	{{- $ftable := $.Aliases.Table .ForeignTable -}}
   145  	{{- $relAlias := $alias.Relationship .Name -}}
   146  	{{$relAlias.Foreign}} *{{$ftable.UpSingular}} `{{generateTags $.Tags $relAlias.Foreign}}boil:"{{$relAlias.Foreign}}" json:"{{$relAlias.Foreign}}" toml:"{{$relAlias.Foreign}}" yaml:"{{$relAlias.Foreign}}"`
   147  	{{end -}}
   148  
   149  	{{range .Table.ToOneRelationships -}}
   150  	{{- $ftable := $.Aliases.Table .ForeignTable -}}
   151  	{{- $relAlias := $ftable.Relationship .Name -}}
   152  	{{$relAlias.Local}} *{{$ftable.UpSingular}} `{{generateTags $.Tags $relAlias.Local}}boil:"{{$relAlias.Local}}" json:"{{$relAlias.Local}}" toml:"{{$relAlias.Local}}" yaml:"{{$relAlias.Local}}"`
   153  	{{end -}}
   154  
   155  	{{range .Table.ToManyRelationships -}}
   156  	{{- $ftable := $.Aliases.Table .ForeignTable -}}
   157  	{{- $relAlias := $.Aliases.ManyRelationship .ForeignTable .Name .JoinTable .JoinLocalFKeyName -}}
   158  	{{$relAlias.Local}} {{printf "%sSlice" $ftable.UpSingular}} `{{generateTags $.Tags $relAlias.Local}}boil:"{{$relAlias.Local}}" json:"{{$relAlias.Local}}" toml:"{{$relAlias.Local}}" yaml:"{{$relAlias.Local}}"`
   159  	{{end -}}{{/* range tomany */}}
   160  }
   161  
   162  // NewStruct creates a new relationship struct
   163  func (*{{$alias.DownSingular}}R) NewStruct() *{{$alias.DownSingular}}R {
   164  	return &{{$alias.DownSingular}}R{}
   165  }
   166  
   167  {{range .Table.FKeys -}}
   168  {{- $ftable := $.Aliases.Table .ForeignTable -}}
   169  {{- $relAlias := $alias.Relationship .Name -}}
   170  func (r *{{$alias.DownSingular}}R) Get{{$relAlias.Foreign}}() *{{$ftable.UpSingular}} {
   171  	if (r == nil) {
   172      return nil
   173  	}
   174    return r.{{$relAlias.Foreign}}
   175  }
   176  
   177  {{end -}}
   178  
   179  {{- range .Table.ToOneRelationships -}}
   180  {{- $ftable := $.Aliases.Table .ForeignTable -}}
   181  {{- $relAlias := $ftable.Relationship .Name -}}
   182  func (r *{{$alias.DownSingular}}R) Get{{$relAlias.Local}}() *{{$ftable.UpSingular}} {
   183  	if (r == nil) {
   184      return nil
   185  	}
   186    return r.{{$relAlias.Local}}
   187  }
   188  
   189  {{end -}}
   190  
   191  {{- range .Table.ToManyRelationships -}}
   192  {{- $ftable := $.Aliases.Table .ForeignTable -}}
   193  {{- $relAlias := $.Aliases.ManyRelationship .ForeignTable .Name .JoinTable .JoinLocalFKeyName -}}
   194  func (r *{{$alias.DownSingular}}R) Get{{$relAlias.Local}}() {{printf "%sSlice" $ftable.UpSingular}} {
   195  	if (r == nil) {
   196      return nil
   197  	}
   198    return r.{{$relAlias.Local}}
   199  }
   200  
   201  {{end -}}
   202  
   203  // {{$alias.DownSingular}}L is where Load methods for each relationship are stored.
   204  type {{$alias.DownSingular}}L struct{}
   205  {{end -}}