forked from corestoreio/pkg
-
Notifications
You must be signed in to change notification settings - Fork 0
/
master_tab_gen.go
354 lines (321 loc) · 11.6 KB
/
master_tab_gen.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
// Copyright 2015-2016, Cyrill @ Schumacher.fm and the CoreStore contributors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// +build !mage1,!mage2
// Only include this file IF no specific build tag for mage has been set
package store
/*
Initial idea to use https://github.com/go-goast/goast
- so far so good but some generics are hard to implement like the Extract* structs
need to invest more time
- Comments are not ported to the newly generated file
- This code here works just run `$ go generate .`
*/
// Auto generated via tableToStruct
//go:generate goast write impl --prefix=zgen_ github.com/corestoreio/csfw/codegen/tableToStruct/_goast_generic
import (
"sort"
"github.com/corestoreio/csfw/storage/csdb"
"github.com/corestoreio/csfw/storage/dbr"
"github.com/corestoreio/csfw/util/errors"
)
// TableIndex... is the index to a table. These constants are guaranteed
// to stay the same for all Magento versions. Please access a table via this
// constant instead of the raw table name. TableIndex iotas must start with 0.
const (
TableIndexStore csdb.Index = iota // Table: store
TableIndexGroup // Table: store_group
TableIndexWebsite // Table: store_website
TableIndexZZZ // the maximum index, which is not available.
)
func init() {
TableCollection = csdb.MustNewTables(
csdb.WithTable(TableIndexStore, "store"),
csdb.WithTable(TableIndexGroup, "store_group"),
csdb.WithTable(TableIndexWebsite, "store_website"),
)
// Don't forget to call TableCollection.ReInit(...) in your code to load the column definitions.
}
// TableStoreSlice represents a collection type for DB table store
// Generated via tableToStruct.
type TableStoreSlice []*TableStore
// TableStore represents a type for DB table store
// Generated via tableToStruct.
type TableStore struct {
StoreID int64 `db:"store_id" json:",omitempty"` // store_id smallint(5) unsigned NOT NULL PRI auto_increment
Code dbr.NullString `db:"code" json:",omitempty"` // code varchar(32) NULL UNI
WebsiteID int64 `db:"website_id" json:",omitempty"` // website_id smallint(5) unsigned NOT NULL MUL DEFAULT '0'
GroupID int64 `db:"group_id" json:",omitempty"` // group_id smallint(5) unsigned NOT NULL MUL DEFAULT '0'
Name string `db:"name" json:",omitempty"` // name varchar(255) NOT NULL
SortOrder int64 `db:"sort_order" json:",omitempty"` // sort_order smallint(5) unsigned NOT NULL DEFAULT '0'
IsActive bool `db:"is_active" json:",omitempty"` // is_active smallint(5) unsigned NOT NULL MUL DEFAULT '0'
}
// parentSQLSelect fills this slice with data from the database.
// Generated via tableToStruct.
func (s *TableStoreSlice) parentSQLSelect(dbrSess dbr.SessionRunner, cbs ...dbr.SelectCb) (int, error) {
return csdb.LoadSlice(dbrSess, TableCollection, TableIndexStore, &(*s), cbs...)
}
// SQLInsert inserts all records into the database @todo.
// Generated via tableToStruct.
func (s *TableStoreSlice) SQLInsert(dbrSess dbr.SessionRunner, cbs ...dbr.InsertCb) (int, error) {
return 0, nil
}
// SQLUpdate updates all record in the database @todo.
// Generated via tableToStruct.
func (s *TableStoreSlice) SQLUpdate(dbrSess dbr.SessionRunner, cbs ...dbr.UpdateCb) (int, error) {
return 0, nil
}
// SQLDelete deletes all record from the database @todo.
// Generated via tableToStruct.
func (s *TableStoreSlice) SQLDelete(dbrSess dbr.SessionRunner, cbs ...dbr.DeleteCb) (int, error) {
return 0, nil
}
// ExtractStore functions for extracting fields from Store
// slice. Generated via tableToStruct.
type ExtractStore struct {
StoreID func() []int64
Code func() []string
WebsiteID func() []int64
GroupID func() []int64
Name func() []string
SortOrder func() []int64
IsActive func() []bool
}
// Extract extracts from a specified field all values into a slice.
// Generated via tableToStruct.
func (s TableStoreSlice) Extract() ExtractStore {
return ExtractStore{
StoreID: func() []int64 {
ext := make([]int64, 0, len(s))
for _, v := range s {
ext = append(ext, v.StoreID)
}
return ext
},
Code: func() []string {
ext := make([]string, 0, len(s))
for _, v := range s {
ext = append(ext, v.Code.String)
}
return ext
},
WebsiteID: func() []int64 {
ext := make([]int64, 0, len(s))
for _, v := range s {
ext = append(ext, v.WebsiteID)
}
return ext
},
GroupID: func() []int64 {
ext := make([]int64, 0, len(s))
for _, v := range s {
ext = append(ext, v.GroupID)
}
return ext
},
Name: func() []string {
ext := make([]string, 0, len(s))
for _, v := range s {
ext = append(ext, v.Name)
}
return ext
},
SortOrder: func() []int64 {
ext := make([]int64, 0, len(s))
for _, v := range s {
ext = append(ext, v.SortOrder)
}
return ext
},
IsActive: func() []bool {
ext := make([]bool, 0, len(s))
for _, v := range s {
ext = append(ext, v.IsActive)
}
return ext
},
}
}
// TableGroupSlice represents a collection type for DB table store_group
// Generated via tableToStruct.
type TableGroupSlice []*TableGroup
// TableGroup represents a type for DB table store_group
// Generated via tableToStruct.
type TableGroup struct {
GroupID int64 `db:"group_id" json:",omitempty"` // group_id smallint(5) unsigned NOT NULL PRI auto_increment
WebsiteID int64 `db:"website_id" json:",omitempty"` // website_id smallint(5) unsigned NOT NULL MUL DEFAULT '0'
Name string `db:"name" json:",omitempty"` // name varchar(255) NOT NULL
RootCategoryID int64 `db:"root_category_id" json:",omitempty"` // root_category_id int(10) unsigned NOT NULL DEFAULT '0'
DefaultStoreID int64 `db:"default_store_id" json:",omitempty"` // default_store_id smallint(5) unsigned NOT NULL MUL DEFAULT '0'
}
// parentSQLSelect fills this slice with data from the database.
// Generated via tableToStruct.
func (s *TableGroupSlice) parentSQLSelect(dbrSess dbr.SessionRunner, cbs ...dbr.SelectCb) (int, error) {
return csdb.LoadSlice(dbrSess, TableCollection, TableIndexGroup, &(*s), cbs...)
}
// SQLInsert inserts all records into the database @todo.
// Generated via tableToStruct.
func (s *TableGroupSlice) SQLInsert(dbrSess dbr.SessionRunner, cbs ...dbr.InsertCb) (int, error) {
return 0, nil
}
// SQLUpdate updates all record in the database @todo.
// Generated via tableToStruct.
func (s *TableGroupSlice) SQLUpdate(dbrSess dbr.SessionRunner, cbs ...dbr.UpdateCb) (int, error) {
return 0, nil
}
// SQLDelete deletes all record from the database @todo.
// Generated via tableToStruct.
func (s *TableGroupSlice) SQLDelete(dbrSess dbr.SessionRunner, cbs ...dbr.DeleteCb) (int, error) {
return 0, nil
}
// ExtractGroup functions for extracting fields from Group
// slice. Generated via tableToStruct.
type ExtractGroup struct {
GroupID func() []int64
WebsiteID func() []int64
Name func() []string
RootCategoryID func() []int64
DefaultStoreID func() []int64
}
// Extract extracts from a specified field all values into a slice.
// Generated via tableToStruct.
func (s TableGroupSlice) Extract() ExtractGroup {
return ExtractGroup{
GroupID: func() []int64 {
ext := make([]int64, 0, len(s))
for _, v := range s {
ext = append(ext, v.GroupID)
}
return ext
},
WebsiteID: func() []int64 {
ext := make([]int64, 0, len(s))
for _, v := range s {
ext = append(ext, v.WebsiteID)
}
return ext
},
Name: func() []string {
ext := make([]string, 0, len(s))
for _, v := range s {
ext = append(ext, v.Name)
}
return ext
},
RootCategoryID: func() []int64 {
ext := make([]int64, 0, len(s))
for _, v := range s {
ext = append(ext, v.RootCategoryID)
}
return ext
},
DefaultStoreID: func() []int64 {
ext := make([]int64, 0, len(s))
for _, v := range s {
ext = append(ext, v.DefaultStoreID)
}
return ext
},
}
}
// TableWebsiteSlice represents a collection type for DB table store_website
// Generated via tableToStruct.
type TableWebsiteSlice []*TableWebsite
// TableWebsite represents a type for DB table store_website
// Generated via tableToStruct.
type TableWebsite struct {
WebsiteID int64 `db:"website_id" json:",omitempty"` // website_id smallint(5) unsigned NOT NULL PRI auto_increment
Code dbr.NullString `db:"code" json:",omitempty"` // code varchar(32) NULL UNI
Name dbr.NullString `db:"name" json:",omitempty"` // name varchar(64) NULL
SortOrder int64 `db:"sort_order" json:",omitempty"` // sort_order smallint(5) unsigned NOT NULL MUL DEFAULT '0'
DefaultGroupID int64 `db:"default_group_id" json:",omitempty"` // default_group_id smallint(5) unsigned NOT NULL MUL DEFAULT '0'
IsDefault dbr.NullBool `db:"is_default" json:",omitempty"` // is_default smallint(5) unsigned NULL DEFAULT '0'
}
// parentSQLSelect fills this slice with data from the database.
// Generated via tableToStruct.
func (s *TableWebsiteSlice) parentSQLSelect(dbrSess dbr.SessionRunner, cbs ...dbr.SelectCb) (int, error) {
return csdb.LoadSlice(dbrSess, TableCollection, TableIndexWebsite, &(*s), cbs...)
}
// SQLInsert inserts all records into the database @todo.
// Generated via tableToStruct.
func (s *TableWebsiteSlice) SQLInsert(dbrSess dbr.SessionRunner, cbs ...dbr.InsertCb) (int, error) {
return 0, nil
}
// SQLUpdate updates all record in the database @todo.
// Generated via tableToStruct.
func (s *TableWebsiteSlice) SQLUpdate(dbrSess dbr.SessionRunner, cbs ...dbr.UpdateCb) (int, error) {
return 0, nil
}
// SQLDelete deletes all record from the database @todo.
// Generated via tableToStruct.
func (s *TableWebsiteSlice) SQLDelete(dbrSess dbr.SessionRunner, cbs ...dbr.DeleteCb) (int, error) {
return 0, nil
}
// ExtractWebsite functions for extracting fields from Website
// slice. Generated via tableToStruct.
type ExtractWebsite struct {
WebsiteID func() []int64
Code func() []string
Name func() []string
SortOrder func() []int64
DefaultGroupID func() []int64
IsDefault func() []bool
}
// Extract extracts from a specified field all values into a slice.
// Generated via tableToStruct.
func (s TableWebsiteSlice) Extract() ExtractWebsite {
return ExtractWebsite{
WebsiteID: func() []int64 {
ext := make([]int64, 0, len(s))
for _, v := range s {
ext = append(ext, v.WebsiteID)
}
return ext
},
Code: func() []string {
ext := make([]string, 0, len(s))
for _, v := range s {
ext = append(ext, v.Code.String)
}
return ext
},
Name: func() []string {
ext := make([]string, 0, len(s))
for _, v := range s {
ext = append(ext, v.Name.String)
}
return ext
},
SortOrder: func() []int64 {
ext := make([]int64, 0, len(s))
for _, v := range s {
ext = append(ext, v.SortOrder)
}
return ext
},
DefaultGroupID: func() []int64 {
ext := make([]int64, 0, len(s))
for _, v := range s {
ext = append(ext, v.DefaultGroupID)
}
return ext
},
IsDefault: func() []bool {
ext := make([]bool, 0, len(s))
for _, v := range s {
ext = append(ext, v.IsDefault.Bool)
}
return ext
},
}
}