11type FindUniqueBuilder[M any, S any, O any] struct {
22 where UniquePredicate[M]
33 additional []PredicateOf[M]
4+ selects *S
5+ omits *O
46 execFunc func(ctx context.Context, where UniquePredicate[M], additional []PredicateOf[M], s *S, o *O) (*M, error)
57}
68
7- func (b *FindUniqueBuilder[M, S, O]) Select(s S) *FindUniqueSelectBuilder[M, S, O] {
8- return &FindUniqueSelectBuilder[M, S, O]{builder: b, selects: s}
9+ func (b *FindUniqueBuilder[M, S, O]) Select(s S) *FindUniqueBuilder[M, S, O] {
10+ b.selects = &s
11+ return b
912}
1013
11- func (b *FindUniqueBuilder[M, S, O]) Omit(o O) *FindUniqueOmitBuilder[M, S, O] {
12- return &FindUniqueOmitBuilder[M, S, O]{builder: b, omits: o}
14+ func (b *FindUniqueBuilder[M, S, O]) Omit(o O) *FindUniqueBuilder[M, S, O] {
15+ b.omits = &o
16+ return b
1317}
1418
1519func (b *FindUniqueBuilder[M, S, O]) Exec(ctx context.Context) (*M, error) {
16- return b.execFunc(ctx, b.where, b.additional, nil, nil)
17- }
18-
19- type FindUniqueSelectBuilder[M any, S any, O any] struct {
20- builder *FindUniqueBuilder[M, S, O]
21- selects S
22- }
23-
24- func (b *FindUniqueSelectBuilder[M, S, O]) Exec(ctx context.Context) (*M, error) {
25- return b.builder.execFunc(ctx, b.builder.where, b.builder.additional, &b.selects, nil)
26- }
27-
28- type FindUniqueOmitBuilder[M any, S any, O any] struct {
29- builder *FindUniqueBuilder[M, S, O]
30- omits O
31- }
32-
33- func (b *FindUniqueOmitBuilder[M, S, O]) Exec(ctx context.Context) (*M, error) {
34- return b.builder.execFunc(ctx, b.builder.where, b.builder.additional, nil, &b.omits)
20+ return b.execFunc(ctx, b.where, b.additional, b.selects, b.omits)
3521}
3622
3723type FindFirstBuilder[M any, S any, O any] struct {
@@ -40,6 +26,8 @@ type FindFirstBuilder[M any, S any, O any] struct {
4026 skip *int
4127 orderBy []OrderBy[M]
4228 cursor UniquePredicate[M]
29+ selects *S
30+ omits *O
4331 execFunc func(ctx context.Context, params QueryParams[M], s *S, o *O) (*M, error)
4432}
4533
@@ -63,12 +51,14 @@ func (b *FindFirstBuilder[M, S, O]) Cursor(where UniquePredicate[M]) *FindFirstB
6351 return b
6452}
6553
66- func (b *FindFirstBuilder[M, S, O]) Select(s S) *FindFirstSelectBuilder[M, S, O] {
67- return &FindFirstSelectBuilder[M, S, O]{builder: b, selects: s}
54+ func (b *FindFirstBuilder[M, S, O]) Select(s S) *FindFirstBuilder[M, S, O] {
55+ b.selects = &s
56+ return b
6857}
6958
70- func (b *FindFirstBuilder[M, S, O]) Omit(o O) *FindFirstOmitBuilder[M, S, O] {
71- return &FindFirstOmitBuilder[M, S, O]{builder: b, omits: o}
59+ func (b *FindFirstBuilder[M, S, O]) Omit(o O) *FindFirstBuilder[M, S, O] {
60+ b.omits = &o
61+ return b
7262}
7363
7464func (b *FindFirstBuilder[M, S, O]) Exec(ctx context.Context) (*M, error) {
@@ -79,39 +69,7 @@ func (b *FindFirstBuilder[M, S, O]) Exec(ctx context.Context) (*M, error) {
7969 OrderBy: b.orderBy,
8070 Cursor: b.cursor,
8171 }
82- return b.execFunc(ctx, params, nil, nil)
83- }
84-
85- type FindFirstSelectBuilder[M any, S any, O any] struct {
86- builder *FindFirstBuilder[M, S, O]
87- selects S
88- }
89-
90- func (b *FindFirstSelectBuilder[M, S, O]) Exec(ctx context.Context) (*M, error) {
91- params := QueryParams[M]{
92- Where: b.builder.where,
93- Take: b.builder.take,
94- Skip: b.builder.skip,
95- OrderBy: b.builder.orderBy,
96- Cursor: b.builder.cursor,
97- }
98- return b.builder.execFunc(ctx, params, &b.selects, nil)
99- }
100-
101- type FindFirstOmitBuilder[M any, S any, O any] struct {
102- builder *FindFirstBuilder[M, S, O]
103- omits O
104- }
105-
106- func (b *FindFirstOmitBuilder[M, S, O]) Exec(ctx context.Context) (*M, error) {
107- params := QueryParams[M]{
108- Where: b.builder.where,
109- Take: b.builder.take,
110- Skip: b.builder.skip,
111- OrderBy: b.builder.orderBy,
112- Cursor: b.builder.cursor,
113- }
114- return b.builder.execFunc(ctx, params, nil, &b.omits)
72+ return b.execFunc(ctx, params, b.selects, b.omits)
11573}
11674
11775type FindManyBuilder[M any, S any, O any] struct {
@@ -120,6 +78,8 @@ type FindManyBuilder[M any, S any, O any] struct {
12078 skip *int
12179 orderBy []OrderBy[M]
12280 cursor UniquePredicate[M]
81+ selects *S
82+ omits *O
12383 execFunc func(ctx context.Context, params QueryParams[M], s *S, o *O) ([]*M, error)
12484}
12585
@@ -143,12 +103,14 @@ func (b *FindManyBuilder[M, S, O]) Cursor(where UniquePredicate[M]) *FindManyBui
143103 return b
144104}
145105
146- func (b *FindManyBuilder[M, S, O]) Select(s S) *FindManySelectBuilder[M, S, O] {
147- return &FindManySelectBuilder[M, S, O]{builder: b, selects: s}
106+ func (b *FindManyBuilder[M, S, O]) Select(s S) *FindManyBuilder[M, S, O] {
107+ b.selects = &s
108+ return b
148109}
149110
150- func (b *FindManyBuilder[M, S, O]) Omit(o O) *FindManyOmitBuilder[M, S, O] {
151- return &FindManyOmitBuilder[M, S, O]{builder: b, omits: o}
111+ func (b *FindManyBuilder[M, S, O]) Omit(o O) *FindManyBuilder[M, S, O] {
112+ b.omits = &o
113+ return b
152114}
153115
154116func (b *FindManyBuilder[M, S, O]) Exec(ctx context.Context) ([]*M, error) {
@@ -159,39 +121,5 @@ func (b *FindManyBuilder[M, S, O]) Exec(ctx context.Context) ([]*M, error) {
159121 OrderBy: b.orderBy,
160122 Cursor: b.cursor,
161123 }
162- return b.execFunc(ctx, params, nil, nil)
163- }
164-
165- type FindManySelectBuilder[M any, S any, O any] struct {
166- builder *FindManyBuilder[M, S, O]
167- selects S
168- }
169-
170- func (b *FindManySelectBuilder[M, S, O]) Exec(ctx context.Context) ([]*M, error) {
171- params := QueryParams[M]{
172- Where: b.builder.where,
173- Take: b.builder.take,
174- Skip: b.builder.skip,
175- OrderBy: b.builder.orderBy,
176- Cursor: b.builder.cursor,
177- }
178- return b.builder.execFunc(ctx, params, &b.selects, nil)
179- }
180-
181- type FindManyOmitBuilder[M any, S any, O any] struct {
182- builder *FindManyBuilder[M, S, O]
183- omits O
184- }
185-
186- func (b *FindManyOmitBuilder[M, S, O]) Exec(ctx context.Context) ([]*M, error) {
187- params := QueryParams[M]{
188- Where: b.builder.where,
189- Take: b.builder.take,
190- Skip: b.builder.skip,
191- OrderBy: b.builder.orderBy,
192- Cursor: b.builder.cursor,
193- }
194- return b.builder.execFunc(ctx, params, nil, &b.omits)
124+ return b.execFunc(ctx, params, b.selects, b.omits)
195125}
196-
197-
0 commit comments