forked from mirrors/homebox
Compare commits
22 commits
main
...
fix/web-so
Author | SHA1 | Date | |
---|---|---|---|
|
2cd107b8bd | ||
|
a3cce59a2a | ||
|
9fa17bec90 | ||
|
b5987f2e8d | ||
|
2cbcc8bb1d | ||
|
cceec06148 | ||
|
2e2eed143d | ||
|
272cc5a370 | ||
|
275e106d72 | ||
|
3f0e65a2ad | ||
|
22bbaae08f | ||
|
8c7d91ea52 | ||
|
5a219f6a9c | ||
|
895017b28e | ||
|
02ce52dbe3 | ||
|
c5ae6b17f9 | ||
|
371fc0a6af | ||
|
016780920d | ||
|
06eb6c1f91 | ||
|
27dad0e118 | ||
|
dc9446516a | ||
|
a042496c71 |
152 changed files with 2594 additions and 1130 deletions
|
@ -22,3 +22,4 @@
|
||||||
**/secrets.dev.yaml
|
**/secrets.dev.yaml
|
||||||
**/values.dev.yaml
|
**/values.dev.yaml
|
||||||
README.md
|
README.md
|
||||||
|
!Dockerfile.rootless
|
||||||
|
|
12
.github/workflows/partial-publish.yaml
vendored
12
.github/workflows/partial-publish.yaml
vendored
|
@ -44,7 +44,7 @@ jobs:
|
||||||
env:
|
env:
|
||||||
CR_PAT: ${{ secrets.GH_TOKEN }}
|
CR_PAT: ${{ secrets.GH_TOKEN }}
|
||||||
|
|
||||||
- name: build nightly the image
|
- name: build nightly image
|
||||||
if: ${{ inputs.release == false }}
|
if: ${{ inputs.release == false }}
|
||||||
run: |
|
run: |
|
||||||
docker build --push --no-cache \
|
docker build --push --no-cache \
|
||||||
|
@ -53,6 +53,16 @@ jobs:
|
||||||
--build-arg=BUILD_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
|
--build-arg=BUILD_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
|
||||||
--platform=linux/amd64,linux/arm64,linux/arm/v7 .
|
--platform=linux/amd64,linux/arm64,linux/arm/v7 .
|
||||||
|
|
||||||
|
- name: build nightly-rootless image
|
||||||
|
if: ${{ inputs.release == false }}
|
||||||
|
run: |
|
||||||
|
docker build --push --no-cache \
|
||||||
|
--tag=ghcr.io/hay-kot/homebox:${{ inputs.tag }}-rootless \
|
||||||
|
--build-arg=COMMIT=$(git rev-parse HEAD) \
|
||||||
|
--build-arg=BUILD_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
|
||||||
|
--file Dockerfile.rootless \
|
||||||
|
--platform=linux/amd64,linux/arm64,linux/arm/v7 .
|
||||||
|
|
||||||
- name: build release tagged the image
|
- name: build release tagged the image
|
||||||
if: ${{ inputs.release == true }}
|
if: ${{ inputs.release == true }}
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
# Build Nuxt
|
# Build Nuxt
|
||||||
FROM node:17-alpine as frontend-builder
|
FROM node:18-alpine as frontend-builder
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
RUN npm install -g pnpm
|
RUN npm install -g pnpm
|
||||||
COPY frontend/package.json frontend/pnpm-lock.yaml ./
|
COPY frontend/package.json frontend/pnpm-lock.yaml ./
|
||||||
|
|
|
@ -20,7 +20,7 @@ tasks:
|
||||||
- db:generate
|
- db:generate
|
||||||
cmds:
|
cmds:
|
||||||
- cd backend/app/api/static && swag fmt --dir=../
|
- cd backend/app/api/static && swag fmt --dir=../
|
||||||
- cd backend/app/api/static && swag init --dir=../,../../../internal,../../../pkgs --parseDependency
|
- cd backend/app/api/static && swag init --dir=../,../../../internal,../../../pkgs
|
||||||
- |
|
- |
|
||||||
npx swagger-typescript-api \
|
npx swagger-typescript-api \
|
||||||
--no-client \
|
--no-client \
|
||||||
|
@ -139,4 +139,4 @@ tasks:
|
||||||
- task: go:all
|
- task: go:all
|
||||||
- task: ui:check
|
- task: ui:check
|
||||||
- task: ui:fix
|
- task: ui:fix
|
||||||
- task: test:ci
|
- task: test:ci
|
||||||
|
|
BIN
backend/api
Executable file
BIN
backend/api
Executable file
Binary file not shown.
|
@ -4,6 +4,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/hay-kot/homebox/backend/internal/core/services"
|
"github.com/hay-kot/homebox/backend/internal/core/services"
|
||||||
|
"github.com/hay-kot/homebox/backend/internal/core/services/reporting/eventbus"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/ent"
|
"github.com/hay-kot/homebox/backend/internal/data/ent"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/repo"
|
"github.com/hay-kot/homebox/backend/internal/data/repo"
|
||||||
"github.com/hay-kot/homebox/backend/internal/sys/config"
|
"github.com/hay-kot/homebox/backend/internal/sys/config"
|
||||||
|
@ -18,6 +19,7 @@ type app struct {
|
||||||
server *server.Server
|
server *server.Server
|
||||||
repos *repo.AllRepos
|
repos *repo.AllRepos
|
||||||
services *services.AllServices
|
services *services.AllServices
|
||||||
|
bus *eventbus.EventBus
|
||||||
}
|
}
|
||||||
|
|
||||||
func new(conf *config.Config) *app {
|
func new(conf *config.Config) *app {
|
||||||
|
|
|
@ -1,12 +1,18 @@
|
||||||
package v1
|
package v1
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/google/uuid"
|
||||||
"github.com/hay-kot/homebox/backend/internal/core/services"
|
"github.com/hay-kot/homebox/backend/internal/core/services"
|
||||||
|
"github.com/hay-kot/homebox/backend/internal/core/services/reporting/eventbus"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/repo"
|
"github.com/hay-kot/homebox/backend/internal/data/repo"
|
||||||
"github.com/hay-kot/httpkit/errchain"
|
"github.com/hay-kot/httpkit/errchain"
|
||||||
"github.com/hay-kot/httpkit/server"
|
"github.com/hay-kot/httpkit/server"
|
||||||
|
"github.com/rs/zerolog/log"
|
||||||
|
|
||||||
|
"github.com/olahol/melody"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Results[T any] struct {
|
type Results[T any] struct {
|
||||||
|
@ -49,6 +55,7 @@ type V1Controller struct {
|
||||||
maxUploadSize int64
|
maxUploadSize int64
|
||||||
isDemo bool
|
isDemo bool
|
||||||
allowRegistration bool
|
allowRegistration bool
|
||||||
|
bus *eventbus.EventBus
|
||||||
}
|
}
|
||||||
|
|
||||||
type (
|
type (
|
||||||
|
@ -77,11 +84,12 @@ func BaseUrlFunc(prefix string) func(s string) string {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewControllerV1(svc *services.AllServices, repos *repo.AllRepos, options ...func(*V1Controller)) *V1Controller {
|
func NewControllerV1(svc *services.AllServices, repos *repo.AllRepos, bus *eventbus.EventBus, options ...func(*V1Controller)) *V1Controller {
|
||||||
ctrl := &V1Controller{
|
ctrl := &V1Controller{
|
||||||
repo: repos,
|
repo: repos,
|
||||||
svc: svc,
|
svc: svc,
|
||||||
allowRegistration: true,
|
allowRegistration: true,
|
||||||
|
bus: bus,
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, opt := range options {
|
for _, opt := range options {
|
||||||
|
@ -110,3 +118,42 @@ func (ctrl *V1Controller) HandleBase(ready ReadyFunc, build Build) errchain.Hand
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (ctrl *V1Controller) HandleCacheWS() errchain.HandlerFunc {
|
||||||
|
m := melody.New()
|
||||||
|
|
||||||
|
m.HandleConnect(func(s *melody.Session) {
|
||||||
|
auth := services.NewContext(s.Request.Context())
|
||||||
|
s.Set("gid", auth.GID)
|
||||||
|
})
|
||||||
|
|
||||||
|
factory := func(e string) func(data any) {
|
||||||
|
return func(data any) {
|
||||||
|
eventData, ok := data.(eventbus.GroupMutationEvent)
|
||||||
|
if !ok {
|
||||||
|
log.Log().Msgf("invalid event data: %v", data)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
jsonStr := fmt.Sprintf(`{"event": "%s"}`, e)
|
||||||
|
|
||||||
|
_ = m.BroadcastFilter([]byte(jsonStr), func(s *melody.Session) bool {
|
||||||
|
groupIDStr, ok := s.Get("gid")
|
||||||
|
if !ok {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
GID := groupIDStr.(uuid.UUID)
|
||||||
|
return GID == eventData.GID
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ctrl.bus.Subscribe(eventbus.EventLabelMutation, factory("label.mutation"))
|
||||||
|
ctrl.bus.Subscribe(eventbus.EventLocationMutation, factory("location.mutation"))
|
||||||
|
ctrl.bus.Subscribe(eventbus.EventItemMutation, factory("item.mutation"))
|
||||||
|
|
||||||
|
return func(w http.ResponseWriter, r *http.Request) error {
|
||||||
|
return m.HandleRequest(w, r)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ import (
|
||||||
"github.com/go-chi/chi/v5/middleware"
|
"github.com/go-chi/chi/v5/middleware"
|
||||||
|
|
||||||
"github.com/hay-kot/homebox/backend/internal/core/services"
|
"github.com/hay-kot/homebox/backend/internal/core/services"
|
||||||
|
"github.com/hay-kot/homebox/backend/internal/core/services/reporting/eventbus"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/ent"
|
"github.com/hay-kot/homebox/backend/internal/data/ent"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/migrations"
|
"github.com/hay-kot/homebox/backend/internal/data/migrations"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/repo"
|
"github.com/hay-kot/homebox/backend/internal/data/repo"
|
||||||
|
@ -116,8 +117,9 @@ func run(cfg *config.Config) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
app.bus = eventbus.New()
|
||||||
app.db = c
|
app.db = c
|
||||||
app.repos = repo.New(c, cfg.Storage.Data)
|
app.repos = repo.New(c, app.bus, cfg.Storage.Data)
|
||||||
app.services = services.New(
|
app.services = services.New(
|
||||||
app.repos,
|
app.repos,
|
||||||
services.WithAutoIncrementAssetID(cfg.Options.AutoIncrementAssetID),
|
services.WithAutoIncrementAssetID(cfg.Options.AutoIncrementAssetID),
|
||||||
|
@ -150,6 +152,8 @@ func run(cfg *config.Config) error {
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
// Start Reoccurring Tasks
|
// Start Reoccurring Tasks
|
||||||
|
|
||||||
|
go app.bus.Run()
|
||||||
|
|
||||||
go app.startBgTask(time.Duration(24)*time.Hour, func() {
|
go app.startBgTask(time.Duration(24)*time.Hour, func() {
|
||||||
_, err := app.repos.AuthTokens.PurgeExpiredTokens(context.Background())
|
_, err := app.repos.AuthTokens.PurgeExpiredTokens(context.Background())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -51,6 +51,7 @@ func (a *app) mountRoutes(r *chi.Mux, chain *errchain.ErrChain, repos *repo.AllR
|
||||||
v1Ctrl := v1.NewControllerV1(
|
v1Ctrl := v1.NewControllerV1(
|
||||||
a.services,
|
a.services,
|
||||||
a.repos,
|
a.repos,
|
||||||
|
a.bus,
|
||||||
v1.WithMaxUploadSize(a.conf.Web.MaxUploadSize),
|
v1.WithMaxUploadSize(a.conf.Web.MaxUploadSize),
|
||||||
v1.WithRegistration(a.conf.Options.AllowRegistration),
|
v1.WithRegistration(a.conf.Options.AllowRegistration),
|
||||||
v1.WithDemoStatus(a.conf.Demo), // Disable Password Change in Demo Mode
|
v1.WithDemoStatus(a.conf.Demo), // Disable Password Change in Demo Mode
|
||||||
|
@ -70,6 +71,7 @@ func (a *app) mountRoutes(r *chi.Mux, chain *errchain.ErrChain, repos *repo.AllR
|
||||||
a.mwRoles(RoleModeOr, authroles.RoleUser.String()),
|
a.mwRoles(RoleModeOr, authroles.RoleUser.String()),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
r.Get(v1Base("/ws/events"), chain.ToHandlerFunc(v1Ctrl.HandleCacheWS(), userMW...))
|
||||||
r.Get(v1Base("/users/self"), chain.ToHandlerFunc(v1Ctrl.HandleUserSelf(), userMW...))
|
r.Get(v1Base("/users/self"), chain.ToHandlerFunc(v1Ctrl.HandleUserSelf(), userMW...))
|
||||||
r.Put(v1Base("/users/self"), chain.ToHandlerFunc(v1Ctrl.HandleUserSelfUpdate(), userMW...))
|
r.Put(v1Base("/users/self"), chain.ToHandlerFunc(v1Ctrl.HandleUserSelfUpdate(), userMW...))
|
||||||
r.Delete(v1Base("/users/self"), chain.ToHandlerFunc(v1Ctrl.HandleUserSelfDelete(), userMW...))
|
r.Delete(v1Base("/users/self"), chain.ToHandlerFunc(v1Ctrl.HandleUserSelfDelete(), userMW...))
|
||||||
|
@ -125,7 +127,7 @@ func (a *app) mountRoutes(r *chi.Mux, chain *errchain.ErrChain, repos *repo.AllR
|
||||||
r.Put(v1Base("/items/{id}/maintenance/{entry_id}"), chain.ToHandlerFunc(v1Ctrl.HandleMaintenanceEntryUpdate(), userMW...))
|
r.Put(v1Base("/items/{id}/maintenance/{entry_id}"), chain.ToHandlerFunc(v1Ctrl.HandleMaintenanceEntryUpdate(), userMW...))
|
||||||
r.Delete(v1Base("/items/{id}/maintenance/{entry_id}"), chain.ToHandlerFunc(v1Ctrl.HandleMaintenanceEntryDelete(), userMW...))
|
r.Delete(v1Base("/items/{id}/maintenance/{entry_id}"), chain.ToHandlerFunc(v1Ctrl.HandleMaintenanceEntryDelete(), userMW...))
|
||||||
|
|
||||||
r.Get(v1Base("/asset/{id}"), chain.ToHandlerFunc(v1Ctrl.HandleAssetGet(), userMW...))
|
r.Get(v1Base("/assets/{id}"), chain.ToHandlerFunc(v1Ctrl.HandleAssetGet(), userMW...))
|
||||||
|
|
||||||
// Notifiers
|
// Notifiers
|
||||||
r.Get(v1Base("/notifiers"), chain.ToHandlerFunc(v1Ctrl.HandleGetUserNotifiers(), userMW...))
|
r.Get(v1Base("/notifiers"), chain.ToHandlerFunc(v1Ctrl.HandleGetUserNotifiers(), userMW...))
|
||||||
|
@ -153,7 +155,6 @@ func (a *app) mountRoutes(r *chi.Mux, chain *errchain.ErrChain, repos *repo.AllR
|
||||||
r.Get(v1Base("/reporting/bill-of-materials"), chain.ToHandlerFunc(v1Ctrl.HandleBillOfMaterialsExport(), userMW...))
|
r.Get(v1Base("/reporting/bill-of-materials"), chain.ToHandlerFunc(v1Ctrl.HandleBillOfMaterialsExport(), userMW...))
|
||||||
|
|
||||||
r.NotFound(chain.ToHandlerFunc(notFoundHandler()))
|
r.NotFound(chain.ToHandlerFunc(notFoundHandler()))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func registerMimes() {
|
func registerMimes() {
|
||||||
|
|
|
@ -731,7 +731,7 @@ const docTemplate = `{
|
||||||
"422": {
|
"422": {
|
||||||
"description": "Unprocessable Entity",
|
"description": "Unprocessable Entity",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$ref": "#/definitions/mid.ErrorResponse"
|
"$ref": "#/definitions/validate.ErrorResponse"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1799,20 +1799,6 @@ const docTemplate = `{
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"definitions": {
|
"definitions": {
|
||||||
"mid.ErrorResponse": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"error": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"fields": {
|
|
||||||
"type": "object",
|
|
||||||
"additionalProperties": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"repo.DocumentOut": {
|
"repo.DocumentOut": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
@ -2853,6 +2839,17 @@ const docTemplate = `{
|
||||||
"properties": {
|
"properties": {
|
||||||
"item": {}
|
"item": {}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"validate.ErrorResponse": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"error": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"fields": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"securityDefinitions": {
|
"securityDefinitions": {
|
||||||
|
|
|
@ -723,7 +723,7 @@
|
||||||
"422": {
|
"422": {
|
||||||
"description": "Unprocessable Entity",
|
"description": "Unprocessable Entity",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$ref": "#/definitions/mid.ErrorResponse"
|
"$ref": "#/definitions/validate.ErrorResponse"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1791,20 +1791,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"definitions": {
|
"definitions": {
|
||||||
"mid.ErrorResponse": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"error": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"fields": {
|
|
||||||
"type": "object",
|
|
||||||
"additionalProperties": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"repo.DocumentOut": {
|
"repo.DocumentOut": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
@ -2845,6 +2831,17 @@
|
||||||
"properties": {
|
"properties": {
|
||||||
"item": {}
|
"item": {}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"validate.ErrorResponse": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"error": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"fields": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"securityDefinitions": {
|
"securityDefinitions": {
|
||||||
|
|
|
@ -1,14 +1,5 @@
|
||||||
basePath: /api
|
basePath: /api
|
||||||
definitions:
|
definitions:
|
||||||
mid.ErrorResponse:
|
|
||||||
properties:
|
|
||||||
error:
|
|
||||||
type: string
|
|
||||||
fields:
|
|
||||||
additionalProperties:
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
repo.DocumentOut:
|
repo.DocumentOut:
|
||||||
properties:
|
properties:
|
||||||
id:
|
id:
|
||||||
|
@ -707,6 +698,13 @@ definitions:
|
||||||
properties:
|
properties:
|
||||||
item: {}
|
item: {}
|
||||||
type: object
|
type: object
|
||||||
|
validate.ErrorResponse:
|
||||||
|
properties:
|
||||||
|
error:
|
||||||
|
type: string
|
||||||
|
fields:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
info:
|
info:
|
||||||
contact:
|
contact:
|
||||||
name: Don't
|
name: Don't
|
||||||
|
@ -1084,7 +1082,7 @@ paths:
|
||||||
"422":
|
"422":
|
||||||
description: Unprocessable Entity
|
description: Unprocessable Entity
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/definitions/mid.ErrorResponse'
|
$ref: '#/definitions/validate.ErrorResponse'
|
||||||
security:
|
security:
|
||||||
- Bearer: []
|
- Bearer: []
|
||||||
summary: Create Item Attachment
|
summary: Create Item Attachment
|
||||||
|
|
|
@ -3,24 +3,24 @@ module github.com/hay-kot/homebox/backend
|
||||||
go 1.20
|
go 1.20
|
||||||
|
|
||||||
require (
|
require (
|
||||||
ariga.io/atlas v0.10.1
|
ariga.io/atlas v0.12.0
|
||||||
entgo.io/ent v0.11.10
|
entgo.io/ent v0.12.3
|
||||||
github.com/ardanlabs/conf/v3 v3.1.6
|
github.com/ardanlabs/conf/v3 v3.1.6
|
||||||
github.com/containrrr/shoutrrr v0.7.1
|
github.com/containrrr/shoutrrr v0.7.1
|
||||||
github.com/go-chi/chi/v5 v5.0.10
|
github.com/go-chi/chi/v5 v5.0.10
|
||||||
github.com/go-playground/validator/v10 v10.14.1
|
github.com/go-playground/validator/v10 v10.14.1
|
||||||
github.com/gocarina/gocsv v0.0.0-20230510095315-7f30c79fd20c
|
github.com/gocarina/gocsv v0.0.0-20230616125104-99d496ca653d
|
||||||
github.com/google/uuid v1.3.0
|
github.com/google/uuid v1.3.0
|
||||||
github.com/gorilla/schema v1.2.0
|
github.com/gorilla/schema v1.2.0
|
||||||
github.com/hay-kot/httpkit v0.0.3
|
github.com/hay-kot/httpkit v0.0.3
|
||||||
github.com/mattn/go-sqlite3 v1.14.17
|
github.com/mattn/go-sqlite3 v1.14.17
|
||||||
|
github.com/olahol/melody v1.1.4
|
||||||
github.com/pkg/errors v0.9.1
|
github.com/pkg/errors v0.9.1
|
||||||
github.com/rs/zerolog v1.29.1
|
github.com/rs/zerolog v1.29.1
|
||||||
github.com/stretchr/testify v1.8.4
|
github.com/stretchr/testify v1.8.4
|
||||||
github.com/swaggo/http-swagger v1.3.4
|
github.com/swaggo/http-swagger v1.3.4
|
||||||
github.com/swaggo/http-swagger/v2 v2.0.1
|
|
||||||
github.com/swaggo/swag v1.16.1
|
github.com/swaggo/swag v1.16.1
|
||||||
github.com/yeqown/go-qrcode/v2 v2.2.1
|
github.com/yeqown/go-qrcode/v2 v2.2.2
|
||||||
github.com/yeqown/go-qrcode/writer/standard v1.2.1
|
github.com/yeqown/go-qrcode/writer/standard v1.2.1
|
||||||
golang.org/x/crypto v0.11.0
|
golang.org/x/crypto v0.11.0
|
||||||
modernc.org/sqlite v1.24.0
|
modernc.org/sqlite v1.24.0
|
||||||
|
@ -32,45 +32,46 @@ require (
|
||||||
github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect
|
github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect
|
||||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||||
github.com/fatih/color v1.13.0 // indirect
|
github.com/fatih/color v1.15.0 // indirect
|
||||||
github.com/fogleman/gg v1.3.0 // indirect
|
github.com/fogleman/gg v1.3.0 // indirect
|
||||||
github.com/gabriel-vasile/mimetype v1.4.2 // indirect
|
github.com/gabriel-vasile/mimetype v1.4.2 // indirect
|
||||||
github.com/go-openapi/inflect v0.19.0 // indirect
|
github.com/go-openapi/inflect v0.19.0 // indirect
|
||||||
github.com/go-openapi/jsonpointer v0.19.5 // indirect
|
github.com/go-openapi/jsonpointer v0.20.0 // indirect
|
||||||
github.com/go-openapi/jsonreference v0.20.0 // indirect
|
github.com/go-openapi/jsonreference v0.20.2 // indirect
|
||||||
github.com/go-openapi/spec v0.20.7 // indirect
|
github.com/go-openapi/spec v0.20.9 // indirect
|
||||||
github.com/go-openapi/swag v0.22.3 // indirect
|
github.com/go-openapi/swag v0.22.4 // indirect
|
||||||
github.com/go-playground/locales v0.14.1 // indirect
|
github.com/go-playground/locales v0.14.1 // indirect
|
||||||
github.com/go-playground/universal-translator v0.18.1 // indirect
|
github.com/go-playground/universal-translator v0.18.1 // indirect
|
||||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
|
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
|
||||||
github.com/google/go-cmp v0.5.9 // indirect
|
github.com/google/go-cmp v0.5.9 // indirect
|
||||||
github.com/hashicorp/hcl/v2 v2.15.0 // indirect
|
github.com/gorilla/websocket v1.5.0 // indirect
|
||||||
|
github.com/hashicorp/hcl/v2 v2.17.0 // indirect
|
||||||
github.com/josharian/intern v1.0.0 // indirect
|
github.com/josharian/intern v1.0.0 // indirect
|
||||||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
|
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
|
||||||
github.com/leodido/go-urn v1.2.4 // indirect
|
github.com/leodido/go-urn v1.2.4 // indirect
|
||||||
github.com/mailru/easyjson v0.7.7 // indirect
|
github.com/mailru/easyjson v0.7.7 // indirect
|
||||||
github.com/mattn/go-colorable v0.1.13 // indirect
|
github.com/mattn/go-colorable v0.1.13 // indirect
|
||||||
github.com/mattn/go-isatty v0.0.17 // indirect
|
github.com/mattn/go-isatty v0.0.19 // indirect
|
||||||
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
|
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
|
||||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
||||||
github.com/swaggo/files v1.0.0 // indirect
|
github.com/swaggo/files v1.0.1 // indirect
|
||||||
github.com/yeqown/reedsolomon v1.0.0 // indirect
|
github.com/yeqown/reedsolomon v1.0.0 // indirect
|
||||||
github.com/zclconf/go-cty v1.12.1 // indirect
|
github.com/zclconf/go-cty v1.13.2 // indirect
|
||||||
golang.org/x/image v0.0.0-20200927104501-e162460cd6b5 // indirect
|
golang.org/x/image v0.9.0 // indirect
|
||||||
golang.org/x/mod v0.9.0 // indirect
|
golang.org/x/mod v0.12.0 // indirect
|
||||||
golang.org/x/net v0.10.0 // indirect
|
golang.org/x/net v0.12.0 // indirect
|
||||||
golang.org/x/sys v0.10.0 // indirect
|
golang.org/x/sys v0.10.0 // indirect
|
||||||
golang.org/x/text v0.11.0 // indirect
|
golang.org/x/text v0.11.0 // indirect
|
||||||
golang.org/x/tools v0.7.0 // indirect
|
golang.org/x/tools v0.11.0 // indirect
|
||||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
lukechampine.com/uint128 v1.2.0 // indirect
|
lukechampine.com/uint128 v1.3.0 // indirect
|
||||||
modernc.org/cc/v3 v3.40.0 // indirect
|
modernc.org/cc/v3 v3.41.0 // indirect
|
||||||
modernc.org/ccgo/v3 v3.16.13 // indirect
|
modernc.org/ccgo/v3 v3.16.14 // indirect
|
||||||
modernc.org/libc v1.22.5 // indirect
|
modernc.org/libc v1.24.1 // indirect
|
||||||
modernc.org/mathutil v1.5.0 // indirect
|
modernc.org/mathutil v1.6.0 // indirect
|
||||||
modernc.org/memory v1.5.0 // indirect
|
modernc.org/memory v1.6.0 // indirect
|
||||||
modernc.org/opt v0.1.3 // indirect
|
modernc.org/opt v0.1.3 // indirect
|
||||||
modernc.org/strutil v1.1.3 // indirect
|
modernc.org/strutil v1.1.3 // indirect
|
||||||
modernc.org/token v1.0.1 // indirect
|
modernc.org/token v1.1.0 // indirect
|
||||||
)
|
)
|
||||||
|
|
152
backend/go.sum
152
backend/go.sum
|
@ -1,5 +1,5 @@
|
||||||
ariga.io/atlas v0.10.1 h1:zub8+r1P4OqUYoDl6AgUxqPRwl8A9oeI5q3LucfsnUE=
|
ariga.io/atlas v0.12.0 h1:jDfjxT3ppKhzqLS26lZv9ni7p9TVNrhy7SQquaF7bPs=
|
||||||
ariga.io/atlas v0.10.1/go.mod h1:+TR129FJZ5Lvzms6dvCeGWh1yR6hMvmXBhug4hrNIGk=
|
ariga.io/atlas v0.12.0/go.mod h1:+TR129FJZ5Lvzms6dvCeGWh1yR6hMvmXBhug4hrNIGk=
|
||||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||||
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||||
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
|
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
|
||||||
|
@ -183,8 +183,8 @@ cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuW
|
||||||
cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0=
|
cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0=
|
||||||
cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M=
|
cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M=
|
||||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||||
entgo.io/ent v0.11.10 h1:iqn32ybY5HRW3xSAyMNdNKpZhKgMf1Zunsej9yPKUI8=
|
entgo.io/ent v0.12.3 h1:N5lO2EOrHpCH5HYfiMOCHYbo+oh5M8GjT0/cx5x6xkk=
|
||||||
entgo.io/ent v0.11.10/go.mod h1:mzTZ0trE+jCQw/fnzijbm5Mck/l8Gbg7gC/+L1COyzM=
|
entgo.io/ent v0.12.3/go.mod h1:AigGGx+tbrBBYHAzGOg8ND661E5cxx1Uiu5o/otJ6Yg=
|
||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||||
github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60=
|
github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60=
|
||||||
|
@ -192,8 +192,6 @@ github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3
|
||||||
github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc=
|
github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc=
|
||||||
github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE=
|
github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE=
|
||||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
||||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
|
||||||
github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo=
|
github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo=
|
||||||
github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
|
github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
|
||||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
||||||
|
@ -202,11 +200,8 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF
|
||||||
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||||
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
|
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
|
||||||
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
||||||
github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM=
|
|
||||||
github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw=
|
github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw=
|
||||||
github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo=
|
github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo=
|
||||||
github.com/ardanlabs/conf/v3 v3.1.5 h1:G6df2AxKnGHAK+ur2p50Ys8Vo1HnKcsvqSj9lxVeczk=
|
|
||||||
github.com/ardanlabs/conf/v3 v3.1.5/go.mod h1:zclexWKe0NVj6LHQ8NgDDZ7bQ1spE0KeKPFficdtAjU=
|
|
||||||
github.com/ardanlabs/conf/v3 v3.1.6 h1:t6AkG131ncy21ko18KQvBIc6+fWGZHTho12fd8JaUo8=
|
github.com/ardanlabs/conf/v3 v3.1.6 h1:t6AkG131ncy21ko18KQvBIc6+fWGZHTho12fd8JaUo8=
|
||||||
github.com/ardanlabs/conf/v3 v3.1.6/go.mod h1:zclexWKe0NVj6LHQ8NgDDZ7bQ1spE0KeKPFficdtAjU=
|
github.com/ardanlabs/conf/v3 v3.1.6/go.mod h1:zclexWKe0NVj6LHQ8NgDDZ7bQ1spE0KeKPFficdtAjU=
|
||||||
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
||||||
|
@ -263,8 +258,9 @@ github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.
|
||||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||||
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
|
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
|
||||||
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
|
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
|
||||||
github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
|
|
||||||
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
|
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
|
||||||
|
github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
|
||||||
|
github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw=
|
||||||
github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8=
|
github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8=
|
||||||
github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
|
github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
|
||||||
github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps=
|
github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps=
|
||||||
|
@ -274,8 +270,6 @@ github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbS
|
||||||
github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU=
|
github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU=
|
||||||
github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA=
|
github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA=
|
||||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||||
github.com/go-chi/chi/v5 v5.0.8 h1:lD+NLqFcAi1ovnVZpsnObHGW4xb4J8lNmoYVfECH1Y0=
|
|
||||||
github.com/go-chi/chi/v5 v5.0.8/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8=
|
|
||||||
github.com/go-chi/chi/v5 v5.0.10 h1:rLz5avzKpjqxrYwXNfmjkrYYXOyLJd37pz53UFHC6vk=
|
github.com/go-chi/chi/v5 v5.0.10 h1:rLz5avzKpjqxrYwXNfmjkrYYXOyLJd37pz53UFHC6vk=
|
||||||
github.com/go-chi/chi/v5 v5.0.10/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8=
|
github.com/go-chi/chi/v5 v5.0.10/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8=
|
||||||
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
||||||
|
@ -292,31 +286,32 @@ github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbV
|
||||||
github.com/go-openapi/inflect v0.19.0 h1:9jCH9scKIbHeV9m12SmPilScz6krDxKRasNNSNPXu/4=
|
github.com/go-openapi/inflect v0.19.0 h1:9jCH9scKIbHeV9m12SmPilScz6krDxKRasNNSNPXu/4=
|
||||||
github.com/go-openapi/inflect v0.19.0/go.mod h1:lHpZVlpIQqLyKwJ4N+YSc9hchQy/i12fJykb83CRBH4=
|
github.com/go-openapi/inflect v0.19.0/go.mod h1:lHpZVlpIQqLyKwJ4N+YSc9hchQy/i12fJykb83CRBH4=
|
||||||
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||||
github.com/go-openapi/jsonreference v0.20.0 h1:MYlu0sBgChmCfJxxUKZ8g1cPWFOB37YSZqewK7OKeyA=
|
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
||||||
|
github.com/go-openapi/jsonpointer v0.20.0 h1:ESKJdU9ASRfaPNOPRx12IUyA1vn3R9GiE3KYD14BXdQ=
|
||||||
|
github.com/go-openapi/jsonpointer v0.20.0/go.mod h1:6PGzBjjIIumbLYysB73Klnms1mwnU4G3YHOECG3CedA=
|
||||||
github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo=
|
github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo=
|
||||||
github.com/go-openapi/spec v0.20.7 h1:1Rlu/ZrOCCob0n+JKKJAWhNWMPW8bOZRg8FJaY+0SKI=
|
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
||||||
github.com/go-openapi/spec v0.20.7/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA=
|
github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
|
||||||
|
github.com/go-openapi/spec v0.20.9 h1:xnlYNQAwKd2VQRRfwTEI0DcK+2cbuvI/0c7jx3gA8/8=
|
||||||
|
github.com/go-openapi/spec v0.20.9/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA=
|
||||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||||
github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
|
github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
|
||||||
github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
|
|
||||||
github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
|
github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
|
||||||
|
github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU=
|
||||||
|
github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
|
||||||
github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
|
github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
|
||||||
github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
|
github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
|
||||||
github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
|
github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
|
||||||
github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
|
github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
|
||||||
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
|
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
|
||||||
github.com/go-playground/validator/v10 v10.14.0 h1:vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js=
|
|
||||||
github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
|
|
||||||
github.com/go-playground/validator/v10 v10.14.1 h1:9c50NUPC30zyuKprjL3vNZ0m5oG+jU0zvx4AqHGnv4k=
|
github.com/go-playground/validator/v10 v10.14.1 h1:9c50NUPC30zyuKprjL3vNZ0m5oG+jU0zvx4AqHGnv4k=
|
||||||
github.com/go-playground/validator/v10 v10.14.1/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
|
github.com/go-playground/validator/v10 v10.14.1/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
|
||||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||||
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
|
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
|
||||||
github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68=
|
github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68=
|
||||||
github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
|
github.com/gocarina/gocsv v0.0.0-20230616125104-99d496ca653d h1:KbPOUXFUDJxwZ04vbmDOc3yuruGvVO+LOa7cVER3yWw=
|
||||||
github.com/gocarina/gocsv v0.0.0-20230510095315-7f30c79fd20c h1:ZaB8yqPWgWQ3HelTDCiJREs8yh1LutQaAhE/e1PqDLc=
|
github.com/gocarina/gocsv v0.0.0-20230616125104-99d496ca653d/go.mod h1:5YoVOkjYAQumqlV356Hj3xeYh4BdZuLE0/nRkf2NKkI=
|
||||||
github.com/gocarina/gocsv v0.0.0-20230510095315-7f30c79fd20c/go.mod h1:5YoVOkjYAQumqlV356Hj3xeYh4BdZuLE0/nRkf2NKkI=
|
|
||||||
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
||||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||||
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
||||||
|
@ -415,6 +410,8 @@ github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+
|
||||||
github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
|
github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
|
||||||
github.com/gorilla/schema v1.2.0 h1:YufUaxZYCKGFuAq3c96BOhjgd5nmXiOY9NGzF247Tsc=
|
github.com/gorilla/schema v1.2.0 h1:YufUaxZYCKGFuAq3c96BOhjgd5nmXiOY9NGzF247Tsc=
|
||||||
github.com/gorilla/schema v1.2.0/go.mod h1:kgLaKoK1FELgZqMAVxx/5cbj0kT+57qxUrAlIO2eleU=
|
github.com/gorilla/schema v1.2.0/go.mod h1:kgLaKoK1FELgZqMAVxx/5cbj0kT+57qxUrAlIO2eleU=
|
||||||
|
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
|
||||||
|
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||||
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
|
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
|
||||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
|
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
|
||||||
github.com/hashicorp/consul/api v1.15.3/go.mod h1:/g/qgcoBcEXALCNZgRRisyTW0nY86++L0KbeAMXYCeY=
|
github.com/hashicorp/consul/api v1.15.3/go.mod h1:/g/qgcoBcEXALCNZgRRisyTW0nY86++L0KbeAMXYCeY=
|
||||||
|
@ -446,8 +443,8 @@ github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ
|
||||||
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||||
github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
|
github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
|
||||||
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
||||||
github.com/hashicorp/hcl/v2 v2.15.0 h1:CPDXO6+uORPjKflkWCCwoWc9uRp+zSIPcCQ+BrxV7m8=
|
github.com/hashicorp/hcl/v2 v2.17.0 h1:z1XvSUyXd1HP10U4lrLg5e0JMVz6CPaJvAgxM0KNZVY=
|
||||||
github.com/hashicorp/hcl/v2 v2.15.0/go.mod h1:JRmR89jycNkrrqnMmvPDMd56n1rQJ2Q6KocSLCMCXng=
|
github.com/hashicorp/hcl/v2 v2.17.0/go.mod h1:gJyW2PTShkJqQBKpAmPO3yxMxIuoXkOF2TpqXzrQyx4=
|
||||||
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
|
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
|
||||||
github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc=
|
github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc=
|
||||||
github.com/hashicorp/memberlist v0.3.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE=
|
github.com/hashicorp/memberlist v0.3.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE=
|
||||||
|
@ -485,14 +482,13 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
|
|
||||||
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
|
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
|
||||||
|
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||||
github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348 h1:MtvEpTB6LX3vkb4ax0b5D2DHbNAUsen0Gx5wZoq3lV4=
|
github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348 h1:MtvEpTB6LX3vkb4ax0b5D2DHbNAUsen0Gx5wZoq3lV4=
|
||||||
github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=
|
|
||||||
github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q=
|
github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q=
|
||||||
github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4=
|
github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4=
|
||||||
github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
|
github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
|
||||||
|
@ -515,11 +511,8 @@ github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOA
|
||||||
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
|
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
|
||||||
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
|
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
|
||||||
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
||||||
github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng=
|
github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
|
||||||
github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||||
github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
|
|
||||||
github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y=
|
|
||||||
github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
|
|
||||||
github.com/mattn/go-sqlite3 v1.14.17 h1:mCRHCLDUBXgpKAqIKsaAaAsrAlbkeomtRFKXh2L6YIM=
|
github.com/mattn/go-sqlite3 v1.14.17 h1:mCRHCLDUBXgpKAqIKsaAaAsrAlbkeomtRFKXh2L6YIM=
|
||||||
github.com/mattn/go-sqlite3 v1.14.17/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
|
github.com/mattn/go-sqlite3 v1.14.17/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
||||||
|
@ -545,7 +538,8 @@ github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRW
|
||||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
||||||
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
|
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
|
||||||
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
|
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
|
||||||
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
|
github.com/olahol/melody v1.1.4 h1:RQHfKZkQmDxI0+SLZRNBCn4LiXdqxLKRGSkT8Dyoe/E=
|
||||||
|
github.com/olahol/melody v1.1.4/go.mod h1:GgkTl6Y7yWj/HtfD48Q5vLKPVoZOH+Qqgfa7CvJgJM4=
|
||||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||||
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
|
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
|
||||||
github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc=
|
github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc=
|
||||||
|
@ -595,7 +589,6 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT
|
||||||
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
|
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
|
||||||
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
|
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
|
||||||
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
|
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
|
||||||
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
|
||||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
|
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
|
||||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
||||||
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
||||||
|
@ -611,17 +604,14 @@ github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFo
|
||||||
github.com/sagikazarmark/crypt v0.8.0/go.mod h1:TmKwZAo97S4Fy4sfMH/HX/cQP5D+ijra2NyLpNNmttY=
|
github.com/sagikazarmark/crypt v0.8.0/go.mod h1:TmKwZAo97S4Fy4sfMH/HX/cQP5D+ijra2NyLpNNmttY=
|
||||||
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
|
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
|
||||||
github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=
|
github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=
|
||||||
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
|
|
||||||
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
||||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||||
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
||||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
||||||
github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
|
github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
|
||||||
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
|
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
|
||||||
github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA=
|
|
||||||
github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY=
|
github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY=
|
||||||
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
|
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
|
||||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
|
||||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||||
github.com/spf13/viper v1.14.0/go.mod h1:WT//axPky3FdvXHzGw33dNdXXXfFQqmEalje+egj8As=
|
github.com/spf13/viper v1.14.0/go.mod h1:WT//axPky3FdvXHzGw33dNdXXXfFQqmEalje+egj8As=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
|
@ -639,23 +629,18 @@ github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO
|
||||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||||
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||||
github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY=
|
|
||||||
github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
|
||||||
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
|
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
|
||||||
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||||
github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
|
github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
|
||||||
github.com/swaggo/files v1.0.0 h1:1gGXVIeUFCS/dta17rnP0iOpr6CXFwKD7EO5ID233e4=
|
github.com/swaggo/files v1.0.1 h1:J1bVJ4XHZNq0I46UU90611i9/YzdrF7x92oX1ig5IdE=
|
||||||
github.com/swaggo/files v1.0.0/go.mod h1:N59U6URJLyU1PQgFqPM7wXLMhJx7QAolnvfQkqO13kc=
|
github.com/swaggo/files v1.0.1/go.mod h1:0qXmMNH6sXNf+73t65aKeB+ApmgxdnkQzVTAj2uaMUg=
|
||||||
github.com/swaggo/http-swagger v1.3.4 h1:q7t/XLx0n15H1Q9/tk3Y9L4n210XzJF5WtnDX64a5ww=
|
github.com/swaggo/http-swagger v1.3.4 h1:q7t/XLx0n15H1Q9/tk3Y9L4n210XzJF5WtnDX64a5ww=
|
||||||
github.com/swaggo/http-swagger v1.3.4/go.mod h1:9dAh0unqMBAlbp1uE2Uc2mQTxNMU/ha4UbucIg1MFkQ=
|
github.com/swaggo/http-swagger v1.3.4/go.mod h1:9dAh0unqMBAlbp1uE2Uc2mQTxNMU/ha4UbucIg1MFkQ=
|
||||||
github.com/swaggo/http-swagger/v2 v2.0.1/go.mod h1:XYhrQVIKz13CxuKD4p4kvpaRB4jJ1/MlfQXVOE+CX8Y=
|
|
||||||
github.com/swaggo/swag v1.16.1 h1:fTNRhKstPKxcnoKsytm4sahr8FaYzUcT7i1/3nd/fBg=
|
github.com/swaggo/swag v1.16.1 h1:fTNRhKstPKxcnoKsytm4sahr8FaYzUcT7i1/3nd/fBg=
|
||||||
github.com/swaggo/swag v1.16.1/go.mod h1:9/LMvHycG3NFHfR6LwvikHv5iFvmPADQ359cKikGxto=
|
github.com/swaggo/swag v1.16.1/go.mod h1:9/LMvHycG3NFHfR6LwvikHv5iFvmPADQ359cKikGxto=
|
||||||
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
|
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
|
||||||
github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4=
|
github.com/yeqown/go-qrcode/v2 v2.2.2 h1:0comk6jEwi0oWNhKEmzx4JI+Q7XIneAApmFSMKWmSVc=
|
||||||
github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI=
|
github.com/yeqown/go-qrcode/v2 v2.2.2/go.mod h1:2Qsk2APUCPne0TsRo40DIkI5MYnbzYKCnKGEFWrxd24=
|
||||||
github.com/yeqown/go-qrcode/v2 v2.2.1 h1:Jc1Q916fwC05R8C7mpWDbrT9tyLPaLLKDABoC5XBCe8=
|
|
||||||
github.com/yeqown/go-qrcode/v2 v2.2.1/go.mod h1:2Qsk2APUCPne0TsRo40DIkI5MYnbzYKCnKGEFWrxd24=
|
|
||||||
github.com/yeqown/go-qrcode/writer/standard v1.2.1 h1:FMRZiur5yApUIe4fqtqmcdl/XQTZAZWt2DhkPx4VIW0=
|
github.com/yeqown/go-qrcode/writer/standard v1.2.1 h1:FMRZiur5yApUIe4fqtqmcdl/XQTZAZWt2DhkPx4VIW0=
|
||||||
github.com/yeqown/go-qrcode/writer/standard v1.2.1/go.mod h1:ZelyDFiVymrauRjUn454iF7bjsabmB1vixkDA5kq2bw=
|
github.com/yeqown/go-qrcode/writer/standard v1.2.1/go.mod h1:ZelyDFiVymrauRjUn454iF7bjsabmB1vixkDA5kq2bw=
|
||||||
github.com/yeqown/reedsolomon v1.0.0 h1:x1h/Ej/uJnNu8jaX7GLHBWmZKCAWjEJTetkqaabr4B0=
|
github.com/yeqown/reedsolomon v1.0.0 h1:x1h/Ej/uJnNu8jaX7GLHBWmZKCAWjEJTetkqaabr4B0=
|
||||||
|
@ -667,9 +652,8 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec
|
||||||
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||||
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||||
github.com/zclconf/go-cty v1.12.1 h1:PcupnljUm9EIvbgSHQnHhUr3fO6oFmkOrvs2BAFNXXY=
|
github.com/zclconf/go-cty v1.13.2 h1:4GvrUxe/QUDYuJKAav4EYqdM47/kZa672LwmXFmEKT0=
|
||||||
github.com/zclconf/go-cty v1.12.1/go.mod h1:s9IfD1LK5ccNMSWCVFCE2rJfHiZgi7JijgeWIMfhLvA=
|
github.com/zclconf/go-cty v1.13.2/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0=
|
||||||
github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8=
|
|
||||||
go.etcd.io/etcd/api/v3 v3.5.5/go.mod h1:KFtNaxGDw4Yx/BA4iPPwevUTAuqcsPxzyX8PHydchN8=
|
go.etcd.io/etcd/api/v3 v3.5.5/go.mod h1:KFtNaxGDw4Yx/BA4iPPwevUTAuqcsPxzyX8PHydchN8=
|
||||||
go.etcd.io/etcd/client/pkg/v3 v3.5.5/go.mod h1:ggrwbk069qxpKPq8/FKkQ3Xq9y39kbFR4LnKszpRXeQ=
|
go.etcd.io/etcd/client/pkg/v3 v3.5.5/go.mod h1:ggrwbk069qxpKPq8/FKkQ3Xq9y39kbFR4LnKszpRXeQ=
|
||||||
go.etcd.io/etcd/client/v2 v2.305.5/go.mod h1:zQjKllfqfBVyVStbt4FaosoX2iYd8fV/GRy/PbowgP4=
|
go.etcd.io/etcd/client/v2 v2.305.5/go.mod h1:zQjKllfqfBVyVStbt4FaosoX2iYd8fV/GRy/PbowgP4=
|
||||||
|
@ -701,8 +685,6 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y
|
||||||
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||||
golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||||
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
|
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
|
||||||
golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g=
|
|
||||||
golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
|
|
||||||
golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA=
|
golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA=
|
||||||
golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
|
golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
|
||||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
|
@ -717,8 +699,8 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH
|
||||||
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
|
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
|
||||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
||||||
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||||
golang.org/x/image v0.0.0-20200927104501-e162460cd6b5 h1:QelT11PB4FXiDEXucrfNckHoFxwt8USGY1ajP1ZF5lM=
|
golang.org/x/image v0.9.0 h1:QrzfX26snvCM20hIhBwuHI/ThTg18b/+kcKdXHvnR+g=
|
||||||
golang.org/x/image v0.0.0-20200927104501-e162460cd6b5/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
golang.org/x/image v0.9.0/go.mod h1:jtrku+n79PfroUbvDdeUWMAI+heR786BofxrbiSF+J0=
|
||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||||
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
|
@ -745,8 +727,9 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
|
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||||
golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI=
|
golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI=
|
||||||
golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs=
|
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||||
golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
|
||||||
|
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
@ -805,9 +788,10 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
|
||||||
golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
|
golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
|
||||||
golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
|
golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
|
||||||
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
|
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
|
||||||
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
|
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||||
golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
|
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||||
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
|
golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50=
|
||||||
|
golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
|
@ -846,8 +830,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ
|
||||||
golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
|
|
||||||
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
|
||||||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
|
@ -941,15 +925,14 @@ golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBc
|
||||||
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
|
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
|
||||||
golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA=
|
golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA=
|
||||||
golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||||
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||||
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
|
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
||||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
|
@ -960,8 +943,7 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||||
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||||
golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
|
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||||
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
|
||||||
golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4=
|
golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4=
|
||||||
golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
||||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
|
@ -1027,8 +1009,9 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||||
golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
|
golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
|
||||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||||
golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA=
|
golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA=
|
||||||
golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4=
|
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||||
golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s=
|
golang.org/x/tools v0.11.0 h1:EMCa6U9S2LtZXLAMoWiR/R8dAQFRqbAitmbJ2UKhoi8=
|
||||||
|
golang.org/x/tools v0.11.0/go.mod h1:anzJrxPjNtfgiYQYirP2CPGzGLxrH2u2QBhn6Bf3qY8=
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
|
@ -1255,6 +1238,7 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8
|
||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
||||||
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||||
|
@ -1280,34 +1264,30 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
|
||||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||||
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||||
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||||
lukechampine.com/uint128 v1.2.0 h1:mBi/5l91vocEN8otkC5bDLhi2KdCticRiwbdB0O+rjI=
|
lukechampine.com/uint128 v1.3.0 h1:cDdUVfRwDUDovz610ABgFD17nXD4/uDgVHl2sC3+sbo=
|
||||||
lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
|
lukechampine.com/uint128 v1.3.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
|
||||||
modernc.org/cc/v3 v3.40.0 h1:P3g79IUS/93SYhtoeaHW+kRCIrYaxJ27MFPv+7kaTOw=
|
modernc.org/cc/v3 v3.41.0 h1:QoR1Sn3YWlmA1T4vLaKZfawdVtSiGx8H+cEojbC7v1Q=
|
||||||
modernc.org/cc/v3 v3.40.0/go.mod h1:/bTg4dnWkSXowUO6ssQKnOV0yMVxDYNIsIrzqTFDGH0=
|
modernc.org/cc/v3 v3.41.0/go.mod h1:Ni4zjJYJ04CDOhG7dn640WGfwBzfE0ecX8TyMB0Fv0Y=
|
||||||
modernc.org/ccgo/v3 v3.16.13 h1:Mkgdzl46i5F/CNR/Kj80Ri59hC8TKAhZrYSaqvkwzUw=
|
modernc.org/ccgo/v3 v3.16.14 h1:af6KNtFgsVmnDYrWk3PQCS9XT6BXe7o3ZFJKkIKvXNQ=
|
||||||
modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY=
|
modernc.org/ccgo/v3 v3.16.14/go.mod h1:mPDSujUIaTNWQSG4eqKw+atqLOEbma6Ncsa94WbC9zo=
|
||||||
modernc.org/ccorpus v1.11.6 h1:J16RXiiqiCgua6+ZvQot4yUuUy8zxgqbqEEUuGPlISk=
|
modernc.org/ccorpus v1.11.6 h1:J16RXiiqiCgua6+ZvQot4yUuUy8zxgqbqEEUuGPlISk=
|
||||||
modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM=
|
modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM=
|
||||||
modernc.org/libc v1.22.4 h1:wymSbZb0AlrjdAVX3cjreCHTPCpPARbQXNz6BHPzdwQ=
|
modernc.org/libc v1.24.1 h1:uvJSeCKL/AgzBo2yYIPPTy82v21KgGnizcGYfBHaNuM=
|
||||||
modernc.org/libc v1.22.4/go.mod h1:jj+Z7dTNX8fBScMVNRAYZ/jF91K8fdT2hYMThc3YjBY=
|
modernc.org/libc v1.24.1/go.mod h1:FmfO1RLrU3MHJfyi9eYYmZBfi/R+tqZ6+hQ3yQQUkak=
|
||||||
modernc.org/libc v1.22.5 h1:91BNch/e5B0uPbJFgqbxXuOnxBQjlS//icfQEGmvyjE=
|
modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4=
|
||||||
modernc.org/libc v1.22.5/go.mod h1:jj+Z7dTNX8fBScMVNRAYZ/jF91K8fdT2hYMThc3YjBY=
|
modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo=
|
||||||
modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ=
|
modernc.org/memory v1.6.0 h1:i6mzavxrE9a30whzMfwf7XWVODx2r5OYXvU46cirX7o=
|
||||||
modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
|
modernc.org/memory v1.6.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU=
|
||||||
modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds=
|
|
||||||
modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU=
|
|
||||||
modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4=
|
modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4=
|
||||||
modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
|
modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
|
||||||
modernc.org/sqlite v1.22.0 h1:Uo+wEWePCspy4SAu0w2VbzUHEftOs7yoaWX/cYjsq84=
|
|
||||||
modernc.org/sqlite v1.22.0/go.mod h1:cxbLkB5WS32DnQqeH4h4o1B0eMr8W/y8/RGuxQ3JsC0=
|
|
||||||
modernc.org/sqlite v1.24.0 h1:EsClRIWHGhLTCX44p+Ri/JLD+vFGo0QGjasg2/F9TlI=
|
modernc.org/sqlite v1.24.0 h1:EsClRIWHGhLTCX44p+Ri/JLD+vFGo0QGjasg2/F9TlI=
|
||||||
modernc.org/sqlite v1.24.0/go.mod h1:OrDj17Mggn6MhE+iPbBNf7RGKODDE9NFT0f3EwDzJqk=
|
modernc.org/sqlite v1.24.0/go.mod h1:OrDj17Mggn6MhE+iPbBNf7RGKODDE9NFT0f3EwDzJqk=
|
||||||
modernc.org/strutil v1.1.3 h1:fNMm+oJklMGYfU9Ylcywl0CO5O6nTfaowNsh2wpPjzY=
|
modernc.org/strutil v1.1.3 h1:fNMm+oJklMGYfU9Ylcywl0CO5O6nTfaowNsh2wpPjzY=
|
||||||
modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw=
|
modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw=
|
||||||
modernc.org/tcl v1.15.1 h1:mOQwiEK4p7HruMZcwKTZPw/aqtGM4aY00uzWhlKKYws=
|
modernc.org/tcl v1.15.2 h1:C4ybAYCGJw968e+Me18oW55kD/FexcHbqH2xak1ROSY=
|
||||||
modernc.org/token v1.0.1 h1:A3qvTqOwexpfZZeyI0FeGPDlSWX5pjZu9hF4lU+EKWg=
|
modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=
|
||||||
modernc.org/token v1.0.1/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
|
modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
|
||||||
modernc.org/z v1.7.0 h1:xkDw/KepgEjeizO2sNco+hqYkU12taxQFqPEmgm1GWE=
|
modernc.org/z v1.7.3 h1:zDJf6iHjrnB+WRD88stbXokugjyc0/pB91ri1gO6LZY=
|
||||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
||||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||||
|
|
|
@ -6,6 +6,7 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/hay-kot/homebox/backend/internal/core/services/reporting/eventbus"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/ent"
|
"github.com/hay-kot/homebox/backend/internal/data/ent"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/repo"
|
"github.com/hay-kot/homebox/backend/internal/data/repo"
|
||||||
"github.com/hay-kot/homebox/backend/pkgs/faker"
|
"github.com/hay-kot/homebox/backend/pkgs/faker"
|
||||||
|
@ -13,7 +14,8 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
fk = faker.NewFaker()
|
fk = faker.NewFaker()
|
||||||
|
tbus = eventbus.New()
|
||||||
|
|
||||||
tCtx = Context{}
|
tCtx = Context{}
|
||||||
tClient *ent.Client
|
tClient *ent.Client
|
||||||
|
@ -58,7 +60,7 @@ func TestMain(m *testing.M) {
|
||||||
}
|
}
|
||||||
|
|
||||||
tClient = client
|
tClient = client
|
||||||
tRepos = repo.New(tClient, os.TempDir()+"/homebox")
|
tRepos = repo.New(tClient, tbus, os.TempDir()+"/homebox")
|
||||||
tSvc = New(tRepos)
|
tSvc = New(tRepos)
|
||||||
defer client.Close()
|
defer client.Close()
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,85 @@
|
||||||
|
// / Package eventbus provides an interface for event bus.
|
||||||
|
package eventbus
|
||||||
|
|
||||||
|
import (
|
||||||
|
"sync"
|
||||||
|
|
||||||
|
"github.com/google/uuid"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Event string
|
||||||
|
|
||||||
|
const (
|
||||||
|
EventLabelMutation Event = "label.mutation"
|
||||||
|
EventLocationMutation Event = "location.mutation"
|
||||||
|
EventItemMutation Event = "item.mutation"
|
||||||
|
)
|
||||||
|
|
||||||
|
type GroupMutationEvent struct {
|
||||||
|
GID uuid.UUID
|
||||||
|
}
|
||||||
|
|
||||||
|
type eventData struct {
|
||||||
|
event Event
|
||||||
|
data any
|
||||||
|
}
|
||||||
|
|
||||||
|
type EventBus struct {
|
||||||
|
started bool
|
||||||
|
ch chan eventData
|
||||||
|
|
||||||
|
mu sync.RWMutex
|
||||||
|
subscribers map[Event][]func(any)
|
||||||
|
}
|
||||||
|
|
||||||
|
func New() *EventBus {
|
||||||
|
return &EventBus{
|
||||||
|
ch: make(chan eventData, 10),
|
||||||
|
subscribers: map[Event][]func(any){
|
||||||
|
EventLabelMutation: {},
|
||||||
|
EventLocationMutation: {},
|
||||||
|
EventItemMutation: {},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *EventBus) Run() {
|
||||||
|
if e.started {
|
||||||
|
panic("event bus already started")
|
||||||
|
}
|
||||||
|
|
||||||
|
e.started = true
|
||||||
|
|
||||||
|
for event := range e.ch {
|
||||||
|
e.mu.RLock()
|
||||||
|
arr, ok := e.subscribers[event.event]
|
||||||
|
e.mu.RUnlock()
|
||||||
|
|
||||||
|
if !ok {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, fn := range arr {
|
||||||
|
fn(event.data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *EventBus) Publish(event Event, data any) {
|
||||||
|
e.ch <- eventData{
|
||||||
|
event: event,
|
||||||
|
data: data,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *EventBus) Subscribe(event Event, fn func(any)) {
|
||||||
|
e.mu.Lock()
|
||||||
|
defer e.mu.Unlock()
|
||||||
|
|
||||||
|
arr, ok := e.subscribers[event]
|
||||||
|
if !ok {
|
||||||
|
panic("event not found")
|
||||||
|
}
|
||||||
|
|
||||||
|
e.subscribers[event] = append(arr, fn)
|
||||||
|
}
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent"
|
||||||
"entgo.io/ent/dialect/sql"
|
"entgo.io/ent/dialect/sql"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/ent/attachment"
|
"github.com/hay-kot/homebox/backend/internal/data/ent/attachment"
|
||||||
|
@ -30,6 +31,7 @@ type Attachment struct {
|
||||||
Edges AttachmentEdges `json:"edges"`
|
Edges AttachmentEdges `json:"edges"`
|
||||||
document_attachments *uuid.UUID
|
document_attachments *uuid.UUID
|
||||||
item_attachments *uuid.UUID
|
item_attachments *uuid.UUID
|
||||||
|
selectValues sql.SelectValues
|
||||||
}
|
}
|
||||||
|
|
||||||
// AttachmentEdges holds the relations/edges for other nodes in the graph.
|
// AttachmentEdges holds the relations/edges for other nodes in the graph.
|
||||||
|
@ -85,7 +87,7 @@ func (*Attachment) scanValues(columns []string) ([]any, error) {
|
||||||
case attachment.ForeignKeys[1]: // item_attachments
|
case attachment.ForeignKeys[1]: // item_attachments
|
||||||
values[i] = &sql.NullScanner{S: new(uuid.UUID)}
|
values[i] = &sql.NullScanner{S: new(uuid.UUID)}
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unexpected column %q for type Attachment", columns[i])
|
values[i] = new(sql.UnknownType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return values, nil
|
return values, nil
|
||||||
|
@ -137,11 +139,19 @@ func (a *Attachment) assignValues(columns []string, values []any) error {
|
||||||
a.item_attachments = new(uuid.UUID)
|
a.item_attachments = new(uuid.UUID)
|
||||||
*a.item_attachments = *value.S.(*uuid.UUID)
|
*a.item_attachments = *value.S.(*uuid.UUID)
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
a.selectValues.Set(columns[i], values[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Value returns the ent.Value that was dynamically selected and assigned to the Attachment.
|
||||||
|
// This includes values selected through modifiers, order, etc.
|
||||||
|
func (a *Attachment) Value(name string) (ent.Value, error) {
|
||||||
|
return a.selectValues.Get(name)
|
||||||
|
}
|
||||||
|
|
||||||
// QueryItem queries the "item" edge of the Attachment entity.
|
// QueryItem queries the "item" edge of the Attachment entity.
|
||||||
func (a *Attachment) QueryItem() *ItemQuery {
|
func (a *Attachment) QueryItem() *ItemQuery {
|
||||||
return NewAttachmentClient(a.config).QueryItem(a)
|
return NewAttachmentClient(a.config).QueryItem(a)
|
||||||
|
|
|
@ -6,6 +6,8 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent/dialect/sql"
|
||||||
|
"entgo.io/ent/dialect/sql/sqlgraph"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -111,3 +113,54 @@ func TypeValidator(_type Type) error {
|
||||||
return fmt.Errorf("attachment: invalid enum value for type field: %q", _type)
|
return fmt.Errorf("attachment: invalid enum value for type field: %q", _type)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OrderOption defines the ordering options for the Attachment queries.
|
||||||
|
type OrderOption func(*sql.Selector)
|
||||||
|
|
||||||
|
// ByID orders the results by the id field.
|
||||||
|
func ByID(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldID, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByCreatedAt orders the results by the created_at field.
|
||||||
|
func ByCreatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldCreatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByUpdatedAt orders the results by the updated_at field.
|
||||||
|
func ByUpdatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldUpdatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByType orders the results by the type field.
|
||||||
|
func ByType(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldType, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByItemField orders the results by item field.
|
||||||
|
func ByItemField(field string, opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newItemStep(), sql.OrderByField(field, opts...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByDocumentField orders the results by document field.
|
||||||
|
func ByDocumentField(field string, opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newDocumentStep(), sql.OrderByField(field, opts...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func newItemStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(ItemInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.M2O, true, ItemTable, ItemColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newDocumentStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(DocumentInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.M2O, true, DocumentTable, DocumentColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -180,11 +180,7 @@ func HasItem() predicate.Attachment {
|
||||||
// HasItemWith applies the HasEdge predicate on the "item" edge with a given conditions (other predicates).
|
// HasItemWith applies the HasEdge predicate on the "item" edge with a given conditions (other predicates).
|
||||||
func HasItemWith(preds ...predicate.Item) predicate.Attachment {
|
func HasItemWith(preds ...predicate.Item) predicate.Attachment {
|
||||||
return predicate.Attachment(func(s *sql.Selector) {
|
return predicate.Attachment(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newItemStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(ItemInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.M2O, true, ItemTable, ItemColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -207,11 +203,7 @@ func HasDocument() predicate.Attachment {
|
||||||
// HasDocumentWith applies the HasEdge predicate on the "document" edge with a given conditions (other predicates).
|
// HasDocumentWith applies the HasEdge predicate on the "document" edge with a given conditions (other predicates).
|
||||||
func HasDocumentWith(preds ...predicate.Document) predicate.Attachment {
|
func HasDocumentWith(preds ...predicate.Document) predicate.Attachment {
|
||||||
return predicate.Attachment(func(s *sql.Selector) {
|
return predicate.Attachment(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newDocumentStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(DocumentInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.M2O, true, DocumentTable, DocumentColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
|
|
@ -109,7 +109,7 @@ func (ac *AttachmentCreate) Mutation() *AttachmentMutation {
|
||||||
// Save creates the Attachment in the database.
|
// Save creates the Attachment in the database.
|
||||||
func (ac *AttachmentCreate) Save(ctx context.Context) (*Attachment, error) {
|
func (ac *AttachmentCreate) Save(ctx context.Context) (*Attachment, error) {
|
||||||
ac.defaults()
|
ac.defaults()
|
||||||
return withHooks[*Attachment, AttachmentMutation](ctx, ac.sqlSave, ac.mutation, ac.hooks)
|
return withHooks(ctx, ac.sqlSave, ac.mutation, ac.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX calls Save and panics if Save returns an error.
|
// SaveX calls Save and panics if Save returns an error.
|
||||||
|
@ -284,8 +284,8 @@ func (acb *AttachmentCreateBulk) Save(ctx context.Context) ([]*Attachment, error
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
builder.mutation = mutation
|
builder.mutation = mutation
|
||||||
nodes[i], specs[i] = builder.createSpec()
|
|
||||||
var err error
|
var err error
|
||||||
|
nodes[i], specs[i] = builder.createSpec()
|
||||||
if i < len(mutators)-1 {
|
if i < len(mutators)-1 {
|
||||||
_, err = mutators[i+1].Mutate(root, acb.builders[i+1].mutation)
|
_, err = mutators[i+1].Mutate(root, acb.builders[i+1].mutation)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -27,7 +27,7 @@ func (ad *AttachmentDelete) Where(ps ...predicate.Attachment) *AttachmentDelete
|
||||||
|
|
||||||
// Exec executes the deletion query and returns how many vertices were deleted.
|
// Exec executes the deletion query and returns how many vertices were deleted.
|
||||||
func (ad *AttachmentDelete) Exec(ctx context.Context) (int, error) {
|
func (ad *AttachmentDelete) Exec(ctx context.Context) (int, error) {
|
||||||
return withHooks[int, AttachmentMutation](ctx, ad.sqlExec, ad.mutation, ad.hooks)
|
return withHooks(ctx, ad.sqlExec, ad.mutation, ad.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExecX is like Exec, but panics if an error occurs.
|
// ExecX is like Exec, but panics if an error occurs.
|
||||||
|
|
|
@ -21,7 +21,7 @@ import (
|
||||||
type AttachmentQuery struct {
|
type AttachmentQuery struct {
|
||||||
config
|
config
|
||||||
ctx *QueryContext
|
ctx *QueryContext
|
||||||
order []OrderFunc
|
order []attachment.OrderOption
|
||||||
inters []Interceptor
|
inters []Interceptor
|
||||||
predicates []predicate.Attachment
|
predicates []predicate.Attachment
|
||||||
withItem *ItemQuery
|
withItem *ItemQuery
|
||||||
|
@ -58,7 +58,7 @@ func (aq *AttachmentQuery) Unique(unique bool) *AttachmentQuery {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Order specifies how the records should be ordered.
|
// Order specifies how the records should be ordered.
|
||||||
func (aq *AttachmentQuery) Order(o ...OrderFunc) *AttachmentQuery {
|
func (aq *AttachmentQuery) Order(o ...attachment.OrderOption) *AttachmentQuery {
|
||||||
aq.order = append(aq.order, o...)
|
aq.order = append(aq.order, o...)
|
||||||
return aq
|
return aq
|
||||||
}
|
}
|
||||||
|
@ -296,7 +296,7 @@ func (aq *AttachmentQuery) Clone() *AttachmentQuery {
|
||||||
return &AttachmentQuery{
|
return &AttachmentQuery{
|
||||||
config: aq.config,
|
config: aq.config,
|
||||||
ctx: aq.ctx.Clone(),
|
ctx: aq.ctx.Clone(),
|
||||||
order: append([]OrderFunc{}, aq.order...),
|
order: append([]attachment.OrderOption{}, aq.order...),
|
||||||
inters: append([]Interceptor{}, aq.inters...),
|
inters: append([]Interceptor{}, aq.inters...),
|
||||||
predicates: append([]predicate.Attachment{}, aq.predicates...),
|
predicates: append([]predicate.Attachment{}, aq.predicates...),
|
||||||
withItem: aq.withItem.Clone(),
|
withItem: aq.withItem.Clone(),
|
||||||
|
|
|
@ -93,7 +93,7 @@ func (au *AttachmentUpdate) ClearDocument() *AttachmentUpdate {
|
||||||
// Save executes the query and returns the number of nodes affected by the update operation.
|
// Save executes the query and returns the number of nodes affected by the update operation.
|
||||||
func (au *AttachmentUpdate) Save(ctx context.Context) (int, error) {
|
func (au *AttachmentUpdate) Save(ctx context.Context) (int, error) {
|
||||||
au.defaults()
|
au.defaults()
|
||||||
return withHooks[int, AttachmentMutation](ctx, au.sqlSave, au.mutation, au.hooks)
|
return withHooks(ctx, au.sqlSave, au.mutation, au.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
@ -313,7 +313,7 @@ func (auo *AttachmentUpdateOne) Select(field string, fields ...string) *Attachme
|
||||||
// Save executes the query and returns the updated Attachment entity.
|
// Save executes the query and returns the updated Attachment entity.
|
||||||
func (auo *AttachmentUpdateOne) Save(ctx context.Context) (*Attachment, error) {
|
func (auo *AttachmentUpdateOne) Save(ctx context.Context) (*Attachment, error) {
|
||||||
auo.defaults()
|
auo.defaults()
|
||||||
return withHooks[*Attachment, AttachmentMutation](ctx, auo.sqlSave, auo.mutation, auo.hooks)
|
return withHooks(ctx, auo.sqlSave, auo.mutation, auo.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
|
|
@ -6,6 +6,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"entgo.io/ent"
|
||||||
"entgo.io/ent/dialect/sql"
|
"entgo.io/ent/dialect/sql"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/ent/authroles"
|
"github.com/hay-kot/homebox/backend/internal/data/ent/authroles"
|
||||||
|
@ -23,6 +24,7 @@ type AuthRoles struct {
|
||||||
// The values are being populated by the AuthRolesQuery when eager-loading is set.
|
// The values are being populated by the AuthRolesQuery when eager-loading is set.
|
||||||
Edges AuthRolesEdges `json:"edges"`
|
Edges AuthRolesEdges `json:"edges"`
|
||||||
auth_tokens_roles *uuid.UUID
|
auth_tokens_roles *uuid.UUID
|
||||||
|
selectValues sql.SelectValues
|
||||||
}
|
}
|
||||||
|
|
||||||
// AuthRolesEdges holds the relations/edges for other nodes in the graph.
|
// AuthRolesEdges holds the relations/edges for other nodes in the graph.
|
||||||
|
@ -59,7 +61,7 @@ func (*AuthRoles) scanValues(columns []string) ([]any, error) {
|
||||||
case authroles.ForeignKeys[0]: // auth_tokens_roles
|
case authroles.ForeignKeys[0]: // auth_tokens_roles
|
||||||
values[i] = &sql.NullScanner{S: new(uuid.UUID)}
|
values[i] = &sql.NullScanner{S: new(uuid.UUID)}
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unexpected column %q for type AuthRoles", columns[i])
|
values[i] = new(sql.UnknownType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return values, nil
|
return values, nil
|
||||||
|
@ -92,11 +94,19 @@ func (ar *AuthRoles) assignValues(columns []string, values []any) error {
|
||||||
ar.auth_tokens_roles = new(uuid.UUID)
|
ar.auth_tokens_roles = new(uuid.UUID)
|
||||||
*ar.auth_tokens_roles = *value.S.(*uuid.UUID)
|
*ar.auth_tokens_roles = *value.S.(*uuid.UUID)
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
ar.selectValues.Set(columns[i], values[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Value returns the ent.Value that was dynamically selected and assigned to the AuthRoles.
|
||||||
|
// This includes values selected through modifiers, order, etc.
|
||||||
|
func (ar *AuthRoles) Value(name string) (ent.Value, error) {
|
||||||
|
return ar.selectValues.Get(name)
|
||||||
|
}
|
||||||
|
|
||||||
// QueryToken queries the "token" edge of the AuthRoles entity.
|
// QueryToken queries the "token" edge of the AuthRoles entity.
|
||||||
func (ar *AuthRoles) QueryToken() *AuthTokensQuery {
|
func (ar *AuthRoles) QueryToken() *AuthTokensQuery {
|
||||||
return NewAuthRolesClient(ar.config).QueryToken(ar)
|
return NewAuthRolesClient(ar.config).QueryToken(ar)
|
||||||
|
|
|
@ -4,6 +4,9 @@ package authroles
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
|
"entgo.io/ent/dialect/sql"
|
||||||
|
"entgo.io/ent/dialect/sql/sqlgraph"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -79,3 +82,30 @@ func RoleValidator(r Role) error {
|
||||||
return fmt.Errorf("authroles: invalid enum value for role field: %q", r)
|
return fmt.Errorf("authroles: invalid enum value for role field: %q", r)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OrderOption defines the ordering options for the AuthRoles queries.
|
||||||
|
type OrderOption func(*sql.Selector)
|
||||||
|
|
||||||
|
// ByID orders the results by the id field.
|
||||||
|
func ByID(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldID, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByRole orders the results by the role field.
|
||||||
|
func ByRole(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldRole, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByTokenField orders the results by token field.
|
||||||
|
func ByTokenField(field string, opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newTokenStep(), sql.OrderByField(field, opts...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func newTokenStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(TokenInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.O2O, true, TokenTable, TokenColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -87,11 +87,7 @@ func HasToken() predicate.AuthRoles {
|
||||||
// HasTokenWith applies the HasEdge predicate on the "token" edge with a given conditions (other predicates).
|
// HasTokenWith applies the HasEdge predicate on the "token" edge with a given conditions (other predicates).
|
||||||
func HasTokenWith(preds ...predicate.AuthTokens) predicate.AuthRoles {
|
func HasTokenWith(preds ...predicate.AuthTokens) predicate.AuthRoles {
|
||||||
return predicate.AuthRoles(func(s *sql.Selector) {
|
return predicate.AuthRoles(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newTokenStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(TokenInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.O2O, true, TokenTable, TokenColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
|
|
@ -62,7 +62,7 @@ func (arc *AuthRolesCreate) Mutation() *AuthRolesMutation {
|
||||||
// Save creates the AuthRoles in the database.
|
// Save creates the AuthRoles in the database.
|
||||||
func (arc *AuthRolesCreate) Save(ctx context.Context) (*AuthRoles, error) {
|
func (arc *AuthRolesCreate) Save(ctx context.Context) (*AuthRoles, error) {
|
||||||
arc.defaults()
|
arc.defaults()
|
||||||
return withHooks[*AuthRoles, AuthRolesMutation](ctx, arc.sqlSave, arc.mutation, arc.hooks)
|
return withHooks(ctx, arc.sqlSave, arc.mutation, arc.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX calls Save and panics if Save returns an error.
|
// SaveX calls Save and panics if Save returns an error.
|
||||||
|
@ -179,8 +179,8 @@ func (arcb *AuthRolesCreateBulk) Save(ctx context.Context) ([]*AuthRoles, error)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
builder.mutation = mutation
|
builder.mutation = mutation
|
||||||
nodes[i], specs[i] = builder.createSpec()
|
|
||||||
var err error
|
var err error
|
||||||
|
nodes[i], specs[i] = builder.createSpec()
|
||||||
if i < len(mutators)-1 {
|
if i < len(mutators)-1 {
|
||||||
_, err = mutators[i+1].Mutate(root, arcb.builders[i+1].mutation)
|
_, err = mutators[i+1].Mutate(root, arcb.builders[i+1].mutation)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -27,7 +27,7 @@ func (ard *AuthRolesDelete) Where(ps ...predicate.AuthRoles) *AuthRolesDelete {
|
||||||
|
|
||||||
// Exec executes the deletion query and returns how many vertices were deleted.
|
// Exec executes the deletion query and returns how many vertices were deleted.
|
||||||
func (ard *AuthRolesDelete) Exec(ctx context.Context) (int, error) {
|
func (ard *AuthRolesDelete) Exec(ctx context.Context) (int, error) {
|
||||||
return withHooks[int, AuthRolesMutation](ctx, ard.sqlExec, ard.mutation, ard.hooks)
|
return withHooks(ctx, ard.sqlExec, ard.mutation, ard.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExecX is like Exec, but panics if an error occurs.
|
// ExecX is like Exec, but panics if an error occurs.
|
||||||
|
|
|
@ -20,7 +20,7 @@ import (
|
||||||
type AuthRolesQuery struct {
|
type AuthRolesQuery struct {
|
||||||
config
|
config
|
||||||
ctx *QueryContext
|
ctx *QueryContext
|
||||||
order []OrderFunc
|
order []authroles.OrderOption
|
||||||
inters []Interceptor
|
inters []Interceptor
|
||||||
predicates []predicate.AuthRoles
|
predicates []predicate.AuthRoles
|
||||||
withToken *AuthTokensQuery
|
withToken *AuthTokensQuery
|
||||||
|
@ -56,7 +56,7 @@ func (arq *AuthRolesQuery) Unique(unique bool) *AuthRolesQuery {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Order specifies how the records should be ordered.
|
// Order specifies how the records should be ordered.
|
||||||
func (arq *AuthRolesQuery) Order(o ...OrderFunc) *AuthRolesQuery {
|
func (arq *AuthRolesQuery) Order(o ...authroles.OrderOption) *AuthRolesQuery {
|
||||||
arq.order = append(arq.order, o...)
|
arq.order = append(arq.order, o...)
|
||||||
return arq
|
return arq
|
||||||
}
|
}
|
||||||
|
@ -272,7 +272,7 @@ func (arq *AuthRolesQuery) Clone() *AuthRolesQuery {
|
||||||
return &AuthRolesQuery{
|
return &AuthRolesQuery{
|
||||||
config: arq.config,
|
config: arq.config,
|
||||||
ctx: arq.ctx.Clone(),
|
ctx: arq.ctx.Clone(),
|
||||||
order: append([]OrderFunc{}, arq.order...),
|
order: append([]authroles.OrderOption{}, arq.order...),
|
||||||
inters: append([]Interceptor{}, arq.inters...),
|
inters: append([]Interceptor{}, arq.inters...),
|
||||||
predicates: append([]predicate.AuthRoles{}, arq.predicates...),
|
predicates: append([]predicate.AuthRoles{}, arq.predicates...),
|
||||||
withToken: arq.withToken.Clone(),
|
withToken: arq.withToken.Clone(),
|
||||||
|
|
|
@ -75,7 +75,7 @@ func (aru *AuthRolesUpdate) ClearToken() *AuthRolesUpdate {
|
||||||
|
|
||||||
// Save executes the query and returns the number of nodes affected by the update operation.
|
// Save executes the query and returns the number of nodes affected by the update operation.
|
||||||
func (aru *AuthRolesUpdate) Save(ctx context.Context) (int, error) {
|
func (aru *AuthRolesUpdate) Save(ctx context.Context) (int, error) {
|
||||||
return withHooks[int, AuthRolesMutation](ctx, aru.sqlSave, aru.mutation, aru.hooks)
|
return withHooks(ctx, aru.sqlSave, aru.mutation, aru.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
@ -233,7 +233,7 @@ func (aruo *AuthRolesUpdateOne) Select(field string, fields ...string) *AuthRole
|
||||||
|
|
||||||
// Save executes the query and returns the updated AuthRoles entity.
|
// Save executes the query and returns the updated AuthRoles entity.
|
||||||
func (aruo *AuthRolesUpdateOne) Save(ctx context.Context) (*AuthRoles, error) {
|
func (aruo *AuthRolesUpdateOne) Save(ctx context.Context) (*AuthRoles, error) {
|
||||||
return withHooks[*AuthRoles, AuthRolesMutation](ctx, aruo.sqlSave, aruo.mutation, aruo.hooks)
|
return withHooks(ctx, aruo.sqlSave, aruo.mutation, aruo.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent"
|
||||||
"entgo.io/ent/dialect/sql"
|
"entgo.io/ent/dialect/sql"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/ent/authroles"
|
"github.com/hay-kot/homebox/backend/internal/data/ent/authroles"
|
||||||
|
@ -31,6 +32,7 @@ type AuthTokens struct {
|
||||||
// The values are being populated by the AuthTokensQuery when eager-loading is set.
|
// The values are being populated by the AuthTokensQuery when eager-loading is set.
|
||||||
Edges AuthTokensEdges `json:"edges"`
|
Edges AuthTokensEdges `json:"edges"`
|
||||||
user_auth_tokens *uuid.UUID
|
user_auth_tokens *uuid.UUID
|
||||||
|
selectValues sql.SelectValues
|
||||||
}
|
}
|
||||||
|
|
||||||
// AuthTokensEdges holds the relations/edges for other nodes in the graph.
|
// AuthTokensEdges holds the relations/edges for other nodes in the graph.
|
||||||
|
@ -84,7 +86,7 @@ func (*AuthTokens) scanValues(columns []string) ([]any, error) {
|
||||||
case authtokens.ForeignKeys[0]: // user_auth_tokens
|
case authtokens.ForeignKeys[0]: // user_auth_tokens
|
||||||
values[i] = &sql.NullScanner{S: new(uuid.UUID)}
|
values[i] = &sql.NullScanner{S: new(uuid.UUID)}
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unexpected column %q for type AuthTokens", columns[i])
|
values[i] = new(sql.UnknownType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return values, nil
|
return values, nil
|
||||||
|
@ -135,11 +137,19 @@ func (at *AuthTokens) assignValues(columns []string, values []any) error {
|
||||||
at.user_auth_tokens = new(uuid.UUID)
|
at.user_auth_tokens = new(uuid.UUID)
|
||||||
*at.user_auth_tokens = *value.S.(*uuid.UUID)
|
*at.user_auth_tokens = *value.S.(*uuid.UUID)
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
at.selectValues.Set(columns[i], values[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Value returns the ent.Value that was dynamically selected and assigned to the AuthTokens.
|
||||||
|
// This includes values selected through modifiers, order, etc.
|
||||||
|
func (at *AuthTokens) Value(name string) (ent.Value, error) {
|
||||||
|
return at.selectValues.Get(name)
|
||||||
|
}
|
||||||
|
|
||||||
// QueryUser queries the "user" edge of the AuthTokens entity.
|
// QueryUser queries the "user" edge of the AuthTokens entity.
|
||||||
func (at *AuthTokens) QueryUser() *UserQuery {
|
func (at *AuthTokens) QueryUser() *UserQuery {
|
||||||
return NewAuthTokensClient(at.config).QueryUser(at)
|
return NewAuthTokensClient(at.config).QueryUser(at)
|
||||||
|
|
|
@ -5,6 +5,8 @@ package authtokens
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent/dialect/sql"
|
||||||
|
"entgo.io/ent/dialect/sql/sqlgraph"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -85,3 +87,54 @@ var (
|
||||||
// DefaultID holds the default value on creation for the "id" field.
|
// DefaultID holds the default value on creation for the "id" field.
|
||||||
DefaultID func() uuid.UUID
|
DefaultID func() uuid.UUID
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// OrderOption defines the ordering options for the AuthTokens queries.
|
||||||
|
type OrderOption func(*sql.Selector)
|
||||||
|
|
||||||
|
// ByID orders the results by the id field.
|
||||||
|
func ByID(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldID, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByCreatedAt orders the results by the created_at field.
|
||||||
|
func ByCreatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldCreatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByUpdatedAt orders the results by the updated_at field.
|
||||||
|
func ByUpdatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldUpdatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByExpiresAt orders the results by the expires_at field.
|
||||||
|
func ByExpiresAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldExpiresAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByUserField orders the results by user field.
|
||||||
|
func ByUserField(field string, opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newUserStep(), sql.OrderByField(field, opts...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByRolesField orders the results by roles field.
|
||||||
|
func ByRolesField(field string, opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newRolesStep(), sql.OrderByField(field, opts...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func newUserStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(UserInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.M2O, true, UserTable, UserColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newRolesStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(RolesInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.O2O, false, RolesTable, RolesColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -250,11 +250,7 @@ func HasUser() predicate.AuthTokens {
|
||||||
// HasUserWith applies the HasEdge predicate on the "user" edge with a given conditions (other predicates).
|
// HasUserWith applies the HasEdge predicate on the "user" edge with a given conditions (other predicates).
|
||||||
func HasUserWith(preds ...predicate.User) predicate.AuthTokens {
|
func HasUserWith(preds ...predicate.User) predicate.AuthTokens {
|
||||||
return predicate.AuthTokens(func(s *sql.Selector) {
|
return predicate.AuthTokens(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newUserStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(UserInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.M2O, true, UserTable, UserColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -277,11 +273,7 @@ func HasRoles() predicate.AuthTokens {
|
||||||
// HasRolesWith applies the HasEdge predicate on the "roles" edge with a given conditions (other predicates).
|
// HasRolesWith applies the HasEdge predicate on the "roles" edge with a given conditions (other predicates).
|
||||||
func HasRolesWith(preds ...predicate.AuthRoles) predicate.AuthTokens {
|
func HasRolesWith(preds ...predicate.AuthRoles) predicate.AuthTokens {
|
||||||
return predicate.AuthTokens(func(s *sql.Selector) {
|
return predicate.AuthTokens(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newRolesStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(RolesInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.O2O, false, RolesTable, RolesColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
|
|
@ -131,7 +131,7 @@ func (atc *AuthTokensCreate) Mutation() *AuthTokensMutation {
|
||||||
// Save creates the AuthTokens in the database.
|
// Save creates the AuthTokens in the database.
|
||||||
func (atc *AuthTokensCreate) Save(ctx context.Context) (*AuthTokens, error) {
|
func (atc *AuthTokensCreate) Save(ctx context.Context) (*AuthTokens, error) {
|
||||||
atc.defaults()
|
atc.defaults()
|
||||||
return withHooks[*AuthTokens, AuthTokensMutation](ctx, atc.sqlSave, atc.mutation, atc.hooks)
|
return withHooks(ctx, atc.sqlSave, atc.mutation, atc.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX calls Save and panics if Save returns an error.
|
// SaveX calls Save and panics if Save returns an error.
|
||||||
|
@ -301,8 +301,8 @@ func (atcb *AuthTokensCreateBulk) Save(ctx context.Context) ([]*AuthTokens, erro
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
builder.mutation = mutation
|
builder.mutation = mutation
|
||||||
nodes[i], specs[i] = builder.createSpec()
|
|
||||||
var err error
|
var err error
|
||||||
|
nodes[i], specs[i] = builder.createSpec()
|
||||||
if i < len(mutators)-1 {
|
if i < len(mutators)-1 {
|
||||||
_, err = mutators[i+1].Mutate(root, atcb.builders[i+1].mutation)
|
_, err = mutators[i+1].Mutate(root, atcb.builders[i+1].mutation)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -27,7 +27,7 @@ func (atd *AuthTokensDelete) Where(ps ...predicate.AuthTokens) *AuthTokensDelete
|
||||||
|
|
||||||
// Exec executes the deletion query and returns how many vertices were deleted.
|
// Exec executes the deletion query and returns how many vertices were deleted.
|
||||||
func (atd *AuthTokensDelete) Exec(ctx context.Context) (int, error) {
|
func (atd *AuthTokensDelete) Exec(ctx context.Context) (int, error) {
|
||||||
return withHooks[int, AuthTokensMutation](ctx, atd.sqlExec, atd.mutation, atd.hooks)
|
return withHooks(ctx, atd.sqlExec, atd.mutation, atd.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExecX is like Exec, but panics if an error occurs.
|
// ExecX is like Exec, but panics if an error occurs.
|
||||||
|
|
|
@ -22,7 +22,7 @@ import (
|
||||||
type AuthTokensQuery struct {
|
type AuthTokensQuery struct {
|
||||||
config
|
config
|
||||||
ctx *QueryContext
|
ctx *QueryContext
|
||||||
order []OrderFunc
|
order []authtokens.OrderOption
|
||||||
inters []Interceptor
|
inters []Interceptor
|
||||||
predicates []predicate.AuthTokens
|
predicates []predicate.AuthTokens
|
||||||
withUser *UserQuery
|
withUser *UserQuery
|
||||||
|
@ -59,7 +59,7 @@ func (atq *AuthTokensQuery) Unique(unique bool) *AuthTokensQuery {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Order specifies how the records should be ordered.
|
// Order specifies how the records should be ordered.
|
||||||
func (atq *AuthTokensQuery) Order(o ...OrderFunc) *AuthTokensQuery {
|
func (atq *AuthTokensQuery) Order(o ...authtokens.OrderOption) *AuthTokensQuery {
|
||||||
atq.order = append(atq.order, o...)
|
atq.order = append(atq.order, o...)
|
||||||
return atq
|
return atq
|
||||||
}
|
}
|
||||||
|
@ -297,7 +297,7 @@ func (atq *AuthTokensQuery) Clone() *AuthTokensQuery {
|
||||||
return &AuthTokensQuery{
|
return &AuthTokensQuery{
|
||||||
config: atq.config,
|
config: atq.config,
|
||||||
ctx: atq.ctx.Clone(),
|
ctx: atq.ctx.Clone(),
|
||||||
order: append([]OrderFunc{}, atq.order...),
|
order: append([]authtokens.OrderOption{}, atq.order...),
|
||||||
inters: append([]Interceptor{}, atq.inters...),
|
inters: append([]Interceptor{}, atq.inters...),
|
||||||
predicates: append([]predicate.AuthTokens{}, atq.predicates...),
|
predicates: append([]predicate.AuthTokens{}, atq.predicates...),
|
||||||
withUser: atq.withUser.Clone(),
|
withUser: atq.withUser.Clone(),
|
||||||
|
@ -494,7 +494,7 @@ func (atq *AuthTokensQuery) loadRoles(ctx context.Context, query *AuthRolesQuery
|
||||||
}
|
}
|
||||||
query.withFKs = true
|
query.withFKs = true
|
||||||
query.Where(predicate.AuthRoles(func(s *sql.Selector) {
|
query.Where(predicate.AuthRoles(func(s *sql.Selector) {
|
||||||
s.Where(sql.InValues(authtokens.RolesColumn, fks...))
|
s.Where(sql.InValues(s.C(authtokens.RolesColumn), fks...))
|
||||||
}))
|
}))
|
||||||
neighbors, err := query.All(ctx)
|
neighbors, err := query.All(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -507,7 +507,7 @@ func (atq *AuthTokensQuery) loadRoles(ctx context.Context, query *AuthRolesQuery
|
||||||
}
|
}
|
||||||
node, ok := nodeids[*fk]
|
node, ok := nodeids[*fk]
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf(`unexpected foreign-key "auth_tokens_roles" returned %v for node %v`, *fk, n.ID)
|
return fmt.Errorf(`unexpected referenced foreign-key "auth_tokens_roles" returned %v for node %v`, *fk, n.ID)
|
||||||
}
|
}
|
||||||
assign(node, n)
|
assign(node, n)
|
||||||
}
|
}
|
||||||
|
|
|
@ -115,7 +115,7 @@ func (atu *AuthTokensUpdate) ClearRoles() *AuthTokensUpdate {
|
||||||
// Save executes the query and returns the number of nodes affected by the update operation.
|
// Save executes the query and returns the number of nodes affected by the update operation.
|
||||||
func (atu *AuthTokensUpdate) Save(ctx context.Context) (int, error) {
|
func (atu *AuthTokensUpdate) Save(ctx context.Context) (int, error) {
|
||||||
atu.defaults()
|
atu.defaults()
|
||||||
return withHooks[int, AuthTokensMutation](ctx, atu.sqlSave, atu.mutation, atu.hooks)
|
return withHooks(ctx, atu.sqlSave, atu.mutation, atu.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
@ -341,7 +341,7 @@ func (atuo *AuthTokensUpdateOne) Select(field string, fields ...string) *AuthTok
|
||||||
// Save executes the query and returns the updated AuthTokens entity.
|
// Save executes the query and returns the updated AuthTokens entity.
|
||||||
func (atuo *AuthTokensUpdateOne) Save(ctx context.Context) (*AuthTokens, error) {
|
func (atuo *AuthTokensUpdateOne) Save(ctx context.Context) (*AuthTokens, error) {
|
||||||
atuo.defaults()
|
atuo.defaults()
|
||||||
return withHooks[*AuthTokens, AuthTokensMutation](ctx, atuo.sqlSave, atuo.mutation, atuo.hooks)
|
return withHooks(ctx, atuo.sqlSave, atuo.mutation, atuo.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent"
|
||||||
"entgo.io/ent/dialect/sql"
|
"entgo.io/ent/dialect/sql"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/ent/document"
|
"github.com/hay-kot/homebox/backend/internal/data/ent/document"
|
||||||
|
@ -30,6 +31,7 @@ type Document struct {
|
||||||
// The values are being populated by the DocumentQuery when eager-loading is set.
|
// The values are being populated by the DocumentQuery when eager-loading is set.
|
||||||
Edges DocumentEdges `json:"edges"`
|
Edges DocumentEdges `json:"edges"`
|
||||||
group_documents *uuid.UUID
|
group_documents *uuid.UUID
|
||||||
|
selectValues sql.SelectValues
|
||||||
}
|
}
|
||||||
|
|
||||||
// DocumentEdges holds the relations/edges for other nodes in the graph.
|
// DocumentEdges holds the relations/edges for other nodes in the graph.
|
||||||
|
@ -79,7 +81,7 @@ func (*Document) scanValues(columns []string) ([]any, error) {
|
||||||
case document.ForeignKeys[0]: // group_documents
|
case document.ForeignKeys[0]: // group_documents
|
||||||
values[i] = &sql.NullScanner{S: new(uuid.UUID)}
|
values[i] = &sql.NullScanner{S: new(uuid.UUID)}
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unexpected column %q for type Document", columns[i])
|
values[i] = new(sql.UnknownType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return values, nil
|
return values, nil
|
||||||
|
@ -130,11 +132,19 @@ func (d *Document) assignValues(columns []string, values []any) error {
|
||||||
d.group_documents = new(uuid.UUID)
|
d.group_documents = new(uuid.UUID)
|
||||||
*d.group_documents = *value.S.(*uuid.UUID)
|
*d.group_documents = *value.S.(*uuid.UUID)
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
d.selectValues.Set(columns[i], values[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Value returns the ent.Value that was dynamically selected and assigned to the Document.
|
||||||
|
// This includes values selected through modifiers, order, etc.
|
||||||
|
func (d *Document) Value(name string) (ent.Value, error) {
|
||||||
|
return d.selectValues.Get(name)
|
||||||
|
}
|
||||||
|
|
||||||
// QueryGroup queries the "group" edge of the Document entity.
|
// QueryGroup queries the "group" edge of the Document entity.
|
||||||
func (d *Document) QueryGroup() *GroupQuery {
|
func (d *Document) QueryGroup() *GroupQuery {
|
||||||
return NewDocumentClient(d.config).QueryGroup(d)
|
return NewDocumentClient(d.config).QueryGroup(d)
|
||||||
|
|
|
@ -5,6 +5,8 @@ package document
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent/dialect/sql"
|
||||||
|
"entgo.io/ent/dialect/sql/sqlgraph"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -87,3 +89,66 @@ var (
|
||||||
// DefaultID holds the default value on creation for the "id" field.
|
// DefaultID holds the default value on creation for the "id" field.
|
||||||
DefaultID func() uuid.UUID
|
DefaultID func() uuid.UUID
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// OrderOption defines the ordering options for the Document queries.
|
||||||
|
type OrderOption func(*sql.Selector)
|
||||||
|
|
||||||
|
// ByID orders the results by the id field.
|
||||||
|
func ByID(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldID, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByCreatedAt orders the results by the created_at field.
|
||||||
|
func ByCreatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldCreatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByUpdatedAt orders the results by the updated_at field.
|
||||||
|
func ByUpdatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldUpdatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByTitle orders the results by the title field.
|
||||||
|
func ByTitle(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldTitle, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByPath orders the results by the path field.
|
||||||
|
func ByPath(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldPath, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByGroupField orders the results by group field.
|
||||||
|
func ByGroupField(field string, opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newGroupStep(), sql.OrderByField(field, opts...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByAttachmentsCount orders the results by attachments count.
|
||||||
|
func ByAttachmentsCount(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborsCount(s, newAttachmentsStep(), opts...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByAttachments orders the results by attachments terms.
|
||||||
|
func ByAttachments(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newAttachmentsStep(), append([]sql.OrderTerm{term}, terms...)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func newGroupStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(GroupInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.M2O, true, GroupTable, GroupColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newAttachmentsStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(AttachmentsInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.O2M, false, AttachmentsTable, AttachmentsColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -300,11 +300,7 @@ func HasGroup() predicate.Document {
|
||||||
// HasGroupWith applies the HasEdge predicate on the "group" edge with a given conditions (other predicates).
|
// HasGroupWith applies the HasEdge predicate on the "group" edge with a given conditions (other predicates).
|
||||||
func HasGroupWith(preds ...predicate.Group) predicate.Document {
|
func HasGroupWith(preds ...predicate.Group) predicate.Document {
|
||||||
return predicate.Document(func(s *sql.Selector) {
|
return predicate.Document(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newGroupStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(GroupInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.M2O, true, GroupTable, GroupColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -327,11 +323,7 @@ func HasAttachments() predicate.Document {
|
||||||
// HasAttachmentsWith applies the HasEdge predicate on the "attachments" edge with a given conditions (other predicates).
|
// HasAttachmentsWith applies the HasEdge predicate on the "attachments" edge with a given conditions (other predicates).
|
||||||
func HasAttachmentsWith(preds ...predicate.Attachment) predicate.Document {
|
func HasAttachmentsWith(preds ...predicate.Attachment) predicate.Document {
|
||||||
return predicate.Document(func(s *sql.Selector) {
|
return predicate.Document(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newAttachmentsStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(AttachmentsInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.O2M, false, AttachmentsTable, AttachmentsColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
|
|
@ -111,7 +111,7 @@ func (dc *DocumentCreate) Mutation() *DocumentMutation {
|
||||||
// Save creates the Document in the database.
|
// Save creates the Document in the database.
|
||||||
func (dc *DocumentCreate) Save(ctx context.Context) (*Document, error) {
|
func (dc *DocumentCreate) Save(ctx context.Context) (*Document, error) {
|
||||||
dc.defaults()
|
dc.defaults()
|
||||||
return withHooks[*Document, DocumentMutation](ctx, dc.sqlSave, dc.mutation, dc.hooks)
|
return withHooks(ctx, dc.sqlSave, dc.mutation, dc.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX calls Save and panics if Save returns an error.
|
// SaveX calls Save and panics if Save returns an error.
|
||||||
|
@ -290,8 +290,8 @@ func (dcb *DocumentCreateBulk) Save(ctx context.Context) ([]*Document, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
builder.mutation = mutation
|
builder.mutation = mutation
|
||||||
nodes[i], specs[i] = builder.createSpec()
|
|
||||||
var err error
|
var err error
|
||||||
|
nodes[i], specs[i] = builder.createSpec()
|
||||||
if i < len(mutators)-1 {
|
if i < len(mutators)-1 {
|
||||||
_, err = mutators[i+1].Mutate(root, dcb.builders[i+1].mutation)
|
_, err = mutators[i+1].Mutate(root, dcb.builders[i+1].mutation)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -27,7 +27,7 @@ func (dd *DocumentDelete) Where(ps ...predicate.Document) *DocumentDelete {
|
||||||
|
|
||||||
// Exec executes the deletion query and returns how many vertices were deleted.
|
// Exec executes the deletion query and returns how many vertices were deleted.
|
||||||
func (dd *DocumentDelete) Exec(ctx context.Context) (int, error) {
|
func (dd *DocumentDelete) Exec(ctx context.Context) (int, error) {
|
||||||
return withHooks[int, DocumentMutation](ctx, dd.sqlExec, dd.mutation, dd.hooks)
|
return withHooks(ctx, dd.sqlExec, dd.mutation, dd.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExecX is like Exec, but panics if an error occurs.
|
// ExecX is like Exec, but panics if an error occurs.
|
||||||
|
|
|
@ -22,7 +22,7 @@ import (
|
||||||
type DocumentQuery struct {
|
type DocumentQuery struct {
|
||||||
config
|
config
|
||||||
ctx *QueryContext
|
ctx *QueryContext
|
||||||
order []OrderFunc
|
order []document.OrderOption
|
||||||
inters []Interceptor
|
inters []Interceptor
|
||||||
predicates []predicate.Document
|
predicates []predicate.Document
|
||||||
withGroup *GroupQuery
|
withGroup *GroupQuery
|
||||||
|
@ -59,7 +59,7 @@ func (dq *DocumentQuery) Unique(unique bool) *DocumentQuery {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Order specifies how the records should be ordered.
|
// Order specifies how the records should be ordered.
|
||||||
func (dq *DocumentQuery) Order(o ...OrderFunc) *DocumentQuery {
|
func (dq *DocumentQuery) Order(o ...document.OrderOption) *DocumentQuery {
|
||||||
dq.order = append(dq.order, o...)
|
dq.order = append(dq.order, o...)
|
||||||
return dq
|
return dq
|
||||||
}
|
}
|
||||||
|
@ -297,7 +297,7 @@ func (dq *DocumentQuery) Clone() *DocumentQuery {
|
||||||
return &DocumentQuery{
|
return &DocumentQuery{
|
||||||
config: dq.config,
|
config: dq.config,
|
||||||
ctx: dq.ctx.Clone(),
|
ctx: dq.ctx.Clone(),
|
||||||
order: append([]OrderFunc{}, dq.order...),
|
order: append([]document.OrderOption{}, dq.order...),
|
||||||
inters: append([]Interceptor{}, dq.inters...),
|
inters: append([]Interceptor{}, dq.inters...),
|
||||||
predicates: append([]predicate.Document{}, dq.predicates...),
|
predicates: append([]predicate.Document{}, dq.predicates...),
|
||||||
withGroup: dq.withGroup.Clone(),
|
withGroup: dq.withGroup.Clone(),
|
||||||
|
@ -498,7 +498,7 @@ func (dq *DocumentQuery) loadAttachments(ctx context.Context, query *AttachmentQ
|
||||||
}
|
}
|
||||||
query.withFKs = true
|
query.withFKs = true
|
||||||
query.Where(predicate.Attachment(func(s *sql.Selector) {
|
query.Where(predicate.Attachment(func(s *sql.Selector) {
|
||||||
s.Where(sql.InValues(document.AttachmentsColumn, fks...))
|
s.Where(sql.InValues(s.C(document.AttachmentsColumn), fks...))
|
||||||
}))
|
}))
|
||||||
neighbors, err := query.All(ctx)
|
neighbors, err := query.All(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -511,7 +511,7 @@ func (dq *DocumentQuery) loadAttachments(ctx context.Context, query *AttachmentQ
|
||||||
}
|
}
|
||||||
node, ok := nodeids[*fk]
|
node, ok := nodeids[*fk]
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf(`unexpected foreign-key "document_attachments" returned %v for node %v`, *fk, n.ID)
|
return fmt.Errorf(`unexpected referenced foreign-key "document_attachments" returned %v for node %v`, *fk, n.ID)
|
||||||
}
|
}
|
||||||
assign(node, n)
|
assign(node, n)
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,7 +110,7 @@ func (du *DocumentUpdate) RemoveAttachments(a ...*Attachment) *DocumentUpdate {
|
||||||
// Save executes the query and returns the number of nodes affected by the update operation.
|
// Save executes the query and returns the number of nodes affected by the update operation.
|
||||||
func (du *DocumentUpdate) Save(ctx context.Context) (int, error) {
|
func (du *DocumentUpdate) Save(ctx context.Context) (int, error) {
|
||||||
du.defaults()
|
du.defaults()
|
||||||
return withHooks[int, DocumentMutation](ctx, du.sqlSave, du.mutation, du.hooks)
|
return withHooks(ctx, du.sqlSave, du.mutation, du.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
@ -368,7 +368,7 @@ func (duo *DocumentUpdateOne) Select(field string, fields ...string) *DocumentUp
|
||||||
// Save executes the query and returns the updated Document entity.
|
// Save executes the query and returns the updated Document entity.
|
||||||
func (duo *DocumentUpdateOne) Save(ctx context.Context) (*Document, error) {
|
func (duo *DocumentUpdateOne) Save(ctx context.Context) (*Document, error) {
|
||||||
duo.defaults()
|
duo.defaults()
|
||||||
return withHooks[*Document, DocumentMutation](ctx, duo.sqlSave, duo.mutation, duo.hooks)
|
return withHooks(ctx, duo.sqlSave, duo.mutation, duo.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
"sync"
|
||||||
|
|
||||||
"entgo.io/ent"
|
"entgo.io/ent"
|
||||||
"entgo.io/ent/dialect/sql"
|
"entgo.io/ent/dialect/sql"
|
||||||
|
@ -72,45 +73,41 @@ func NewTxContext(parent context.Context, tx *Tx) context.Context {
|
||||||
}
|
}
|
||||||
|
|
||||||
// OrderFunc applies an ordering on the sql selector.
|
// OrderFunc applies an ordering on the sql selector.
|
||||||
|
// Deprecated: Use Asc/Desc functions or the package builders instead.
|
||||||
type OrderFunc func(*sql.Selector)
|
type OrderFunc func(*sql.Selector)
|
||||||
|
|
||||||
// columnChecker returns a function indicates if the column exists in the given column.
|
var (
|
||||||
func columnChecker(table string) func(string) error {
|
initCheck sync.Once
|
||||||
checks := map[string]func(string) bool{
|
columnCheck sql.ColumnCheck
|
||||||
attachment.Table: attachment.ValidColumn,
|
)
|
||||||
authroles.Table: authroles.ValidColumn,
|
|
||||||
authtokens.Table: authtokens.ValidColumn,
|
// columnChecker checks if the column exists in the given table.
|
||||||
document.Table: document.ValidColumn,
|
func checkColumn(table, column string) error {
|
||||||
group.Table: group.ValidColumn,
|
initCheck.Do(func() {
|
||||||
groupinvitationtoken.Table: groupinvitationtoken.ValidColumn,
|
columnCheck = sql.NewColumnCheck(map[string]func(string) bool{
|
||||||
item.Table: item.ValidColumn,
|
attachment.Table: attachment.ValidColumn,
|
||||||
itemfield.Table: itemfield.ValidColumn,
|
authroles.Table: authroles.ValidColumn,
|
||||||
label.Table: label.ValidColumn,
|
authtokens.Table: authtokens.ValidColumn,
|
||||||
location.Table: location.ValidColumn,
|
document.Table: document.ValidColumn,
|
||||||
maintenanceentry.Table: maintenanceentry.ValidColumn,
|
group.Table: group.ValidColumn,
|
||||||
notifier.Table: notifier.ValidColumn,
|
groupinvitationtoken.Table: groupinvitationtoken.ValidColumn,
|
||||||
user.Table: user.ValidColumn,
|
item.Table: item.ValidColumn,
|
||||||
}
|
itemfield.Table: itemfield.ValidColumn,
|
||||||
check, ok := checks[table]
|
label.Table: label.ValidColumn,
|
||||||
if !ok {
|
location.Table: location.ValidColumn,
|
||||||
return func(string) error {
|
maintenanceentry.Table: maintenanceentry.ValidColumn,
|
||||||
return fmt.Errorf("unknown table %q", table)
|
notifier.Table: notifier.ValidColumn,
|
||||||
}
|
user.Table: user.ValidColumn,
|
||||||
}
|
})
|
||||||
return func(column string) error {
|
})
|
||||||
if !check(column) {
|
return columnCheck(table, column)
|
||||||
return fmt.Errorf("unknown column %q for table %q", column, table)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Asc applies the given fields in ASC order.
|
// Asc applies the given fields in ASC order.
|
||||||
func Asc(fields ...string) OrderFunc {
|
func Asc(fields ...string) func(*sql.Selector) {
|
||||||
return func(s *sql.Selector) {
|
return func(s *sql.Selector) {
|
||||||
check := columnChecker(s.TableName())
|
|
||||||
for _, f := range fields {
|
for _, f := range fields {
|
||||||
if err := check(f); err != nil {
|
if err := checkColumn(s.TableName(), f); err != nil {
|
||||||
s.AddError(&ValidationError{Name: f, err: fmt.Errorf("ent: %w", err)})
|
s.AddError(&ValidationError{Name: f, err: fmt.Errorf("ent: %w", err)})
|
||||||
}
|
}
|
||||||
s.OrderBy(sql.Asc(s.C(f)))
|
s.OrderBy(sql.Asc(s.C(f)))
|
||||||
|
@ -119,11 +116,10 @@ func Asc(fields ...string) OrderFunc {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Desc applies the given fields in DESC order.
|
// Desc applies the given fields in DESC order.
|
||||||
func Desc(fields ...string) OrderFunc {
|
func Desc(fields ...string) func(*sql.Selector) {
|
||||||
return func(s *sql.Selector) {
|
return func(s *sql.Selector) {
|
||||||
check := columnChecker(s.TableName())
|
|
||||||
for _, f := range fields {
|
for _, f := range fields {
|
||||||
if err := check(f); err != nil {
|
if err := checkColumn(s.TableName(), f); err != nil {
|
||||||
s.AddError(&ValidationError{Name: f, err: fmt.Errorf("ent: %w", err)})
|
s.AddError(&ValidationError{Name: f, err: fmt.Errorf("ent: %w", err)})
|
||||||
}
|
}
|
||||||
s.OrderBy(sql.Desc(s.C(f)))
|
s.OrderBy(sql.Desc(s.C(f)))
|
||||||
|
@ -155,8 +151,7 @@ func Count() AggregateFunc {
|
||||||
// Max applies the "max" aggregation function on the given field of each group.
|
// Max applies the "max" aggregation function on the given field of each group.
|
||||||
func Max(field string) AggregateFunc {
|
func Max(field string) AggregateFunc {
|
||||||
return func(s *sql.Selector) string {
|
return func(s *sql.Selector) string {
|
||||||
check := columnChecker(s.TableName())
|
if err := checkColumn(s.TableName(), field); err != nil {
|
||||||
if err := check(field); err != nil {
|
|
||||||
s.AddError(&ValidationError{Name: field, err: fmt.Errorf("ent: %w", err)})
|
s.AddError(&ValidationError{Name: field, err: fmt.Errorf("ent: %w", err)})
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
@ -167,8 +162,7 @@ func Max(field string) AggregateFunc {
|
||||||
// Mean applies the "mean" aggregation function on the given field of each group.
|
// Mean applies the "mean" aggregation function on the given field of each group.
|
||||||
func Mean(field string) AggregateFunc {
|
func Mean(field string) AggregateFunc {
|
||||||
return func(s *sql.Selector) string {
|
return func(s *sql.Selector) string {
|
||||||
check := columnChecker(s.TableName())
|
if err := checkColumn(s.TableName(), field); err != nil {
|
||||||
if err := check(field); err != nil {
|
|
||||||
s.AddError(&ValidationError{Name: field, err: fmt.Errorf("ent: %w", err)})
|
s.AddError(&ValidationError{Name: field, err: fmt.Errorf("ent: %w", err)})
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
@ -179,8 +173,7 @@ func Mean(field string) AggregateFunc {
|
||||||
// Min applies the "min" aggregation function on the given field of each group.
|
// Min applies the "min" aggregation function on the given field of each group.
|
||||||
func Min(field string) AggregateFunc {
|
func Min(field string) AggregateFunc {
|
||||||
return func(s *sql.Selector) string {
|
return func(s *sql.Selector) string {
|
||||||
check := columnChecker(s.TableName())
|
if err := checkColumn(s.TableName(), field); err != nil {
|
||||||
if err := check(field); err != nil {
|
|
||||||
s.AddError(&ValidationError{Name: field, err: fmt.Errorf("ent: %w", err)})
|
s.AddError(&ValidationError{Name: field, err: fmt.Errorf("ent: %w", err)})
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
@ -191,8 +184,7 @@ func Min(field string) AggregateFunc {
|
||||||
// Sum applies the "sum" aggregation function on the given field of each group.
|
// Sum applies the "sum" aggregation function on the given field of each group.
|
||||||
func Sum(field string) AggregateFunc {
|
func Sum(field string) AggregateFunc {
|
||||||
return func(s *sql.Selector) string {
|
return func(s *sql.Selector) string {
|
||||||
check := columnChecker(s.TableName())
|
if err := checkColumn(s.TableName(), field); err != nil {
|
||||||
if err := check(field); err != nil {
|
|
||||||
s.AddError(&ValidationError{Name: field, err: fmt.Errorf("ent: %w", err)})
|
s.AddError(&ValidationError{Name: field, err: fmt.Errorf("ent: %w", err)})
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent"
|
||||||
"entgo.io/ent/dialect/sql"
|
"entgo.io/ent/dialect/sql"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/ent/group"
|
"github.com/hay-kot/homebox/backend/internal/data/ent/group"
|
||||||
|
@ -27,7 +28,8 @@ type Group struct {
|
||||||
Currency group.Currency `json:"currency,omitempty"`
|
Currency group.Currency `json:"currency,omitempty"`
|
||||||
// Edges holds the relations/edges for other nodes in the graph.
|
// Edges holds the relations/edges for other nodes in the graph.
|
||||||
// The values are being populated by the GroupQuery when eager-loading is set.
|
// The values are being populated by the GroupQuery when eager-loading is set.
|
||||||
Edges GroupEdges `json:"edges"`
|
Edges GroupEdges `json:"edges"`
|
||||||
|
selectValues sql.SelectValues
|
||||||
}
|
}
|
||||||
|
|
||||||
// GroupEdges holds the relations/edges for other nodes in the graph.
|
// GroupEdges holds the relations/edges for other nodes in the graph.
|
||||||
|
@ -126,7 +128,7 @@ func (*Group) scanValues(columns []string) ([]any, error) {
|
||||||
case group.FieldID:
|
case group.FieldID:
|
||||||
values[i] = new(uuid.UUID)
|
values[i] = new(uuid.UUID)
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unexpected column %q for type Group", columns[i])
|
values[i] = new(sql.UnknownType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return values, nil
|
return values, nil
|
||||||
|
@ -170,11 +172,19 @@ func (gr *Group) assignValues(columns []string, values []any) error {
|
||||||
} else if value.Valid {
|
} else if value.Valid {
|
||||||
gr.Currency = group.Currency(value.String)
|
gr.Currency = group.Currency(value.String)
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
gr.selectValues.Set(columns[i], values[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Value returns the ent.Value that was dynamically selected and assigned to the Group.
|
||||||
|
// This includes values selected through modifiers, order, etc.
|
||||||
|
func (gr *Group) Value(name string) (ent.Value, error) {
|
||||||
|
return gr.selectValues.Get(name)
|
||||||
|
}
|
||||||
|
|
||||||
// QueryUsers queries the "users" edge of the Group entity.
|
// QueryUsers queries the "users" edge of the Group entity.
|
||||||
func (gr *Group) QueryUsers() *UserQuery {
|
func (gr *Group) QueryUsers() *UserQuery {
|
||||||
return NewGroupClient(gr.config).QueryUsers(gr)
|
return NewGroupClient(gr.config).QueryUsers(gr)
|
||||||
|
|
|
@ -6,6 +6,8 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent/dialect/sql"
|
||||||
|
"entgo.io/ent/dialect/sql/sqlgraph"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -129,24 +131,36 @@ const DefaultCurrency = CurrencyUsd
|
||||||
|
|
||||||
// Currency values.
|
// Currency values.
|
||||||
const (
|
const (
|
||||||
CurrencyUsd Currency = "usd"
|
CurrencyAed Currency = "aed"
|
||||||
|
CurrencyAud Currency = "aud"
|
||||||
|
CurrencyBgn Currency = "bgn"
|
||||||
|
CurrencyBrl Currency = "brl"
|
||||||
|
CurrencyCad Currency = "cad"
|
||||||
|
CurrencyChf Currency = "chf"
|
||||||
|
CurrencyCny Currency = "cny"
|
||||||
|
CurrencyCzk Currency = "czk"
|
||||||
|
CurrencyDkk Currency = "dkk"
|
||||||
CurrencyEur Currency = "eur"
|
CurrencyEur Currency = "eur"
|
||||||
CurrencyGbp Currency = "gbp"
|
CurrencyGbp Currency = "gbp"
|
||||||
|
CurrencyHkd Currency = "hkd"
|
||||||
|
CurrencyIdr Currency = "idr"
|
||||||
|
CurrencyInr Currency = "inr"
|
||||||
CurrencyJpy Currency = "jpy"
|
CurrencyJpy Currency = "jpy"
|
||||||
CurrencyZar Currency = "zar"
|
CurrencyKrw Currency = "krw"
|
||||||
CurrencyAud Currency = "aud"
|
CurrencyMxn Currency = "mxn"
|
||||||
CurrencyNok Currency = "nok"
|
CurrencyNok Currency = "nok"
|
||||||
CurrencyNzd Currency = "nzd"
|
CurrencyNzd Currency = "nzd"
|
||||||
CurrencySek Currency = "sek"
|
|
||||||
CurrencyDkk Currency = "dkk"
|
|
||||||
CurrencyInr Currency = "inr"
|
|
||||||
CurrencyRmb Currency = "rmb"
|
|
||||||
CurrencyBgn Currency = "bgn"
|
|
||||||
CurrencyChf Currency = "chf"
|
|
||||||
CurrencyPln Currency = "pln"
|
CurrencyPln Currency = "pln"
|
||||||
CurrencyTry Currency = "try"
|
CurrencyRmb Currency = "rmb"
|
||||||
CurrencyRon Currency = "ron"
|
CurrencyRon Currency = "ron"
|
||||||
CurrencyCzk Currency = "czk"
|
CurrencyRub Currency = "rub"
|
||||||
|
CurrencySar Currency = "sar"
|
||||||
|
CurrencySek Currency = "sek"
|
||||||
|
CurrencySgd Currency = "sgd"
|
||||||
|
CurrencyThb Currency = "thb"
|
||||||
|
CurrencyTry Currency = "try"
|
||||||
|
CurrencyUsd Currency = "usd"
|
||||||
|
CurrencyZar Currency = "zar"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c Currency) String() string {
|
func (c Currency) String() string {
|
||||||
|
@ -156,9 +170,184 @@ func (c Currency) String() string {
|
||||||
// CurrencyValidator is a validator for the "currency" field enum values. It is called by the builders before save.
|
// CurrencyValidator is a validator for the "currency" field enum values. It is called by the builders before save.
|
||||||
func CurrencyValidator(c Currency) error {
|
func CurrencyValidator(c Currency) error {
|
||||||
switch c {
|
switch c {
|
||||||
case CurrencyUsd, CurrencyEur, CurrencyGbp, CurrencyJpy, CurrencyZar, CurrencyAud, CurrencyNok, CurrencyNzd, CurrencySek, CurrencyDkk, CurrencyInr, CurrencyRmb, CurrencyBgn, CurrencyChf, CurrencyPln, CurrencyTry, CurrencyRon, CurrencyCzk:
|
case CurrencyAed, CurrencyAud, CurrencyBgn, CurrencyBrl, CurrencyCad, CurrencyChf, CurrencyCny, CurrencyCzk, CurrencyDkk, CurrencyEur, CurrencyGbp, CurrencyHkd, CurrencyIdr, CurrencyInr, CurrencyJpy, CurrencyKrw, CurrencyMxn, CurrencyNok, CurrencyNzd, CurrencyPln, CurrencyRmb, CurrencyRon, CurrencyRub, CurrencySar, CurrencySek, CurrencySgd, CurrencyThb, CurrencyTry, CurrencyUsd, CurrencyZar:
|
||||||
return nil
|
return nil
|
||||||
default:
|
default:
|
||||||
return fmt.Errorf("group: invalid enum value for currency field: %q", c)
|
return fmt.Errorf("group: invalid enum value for currency field: %q", c)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OrderOption defines the ordering options for the Group queries.
|
||||||
|
type OrderOption func(*sql.Selector)
|
||||||
|
|
||||||
|
// ByID orders the results by the id field.
|
||||||
|
func ByID(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldID, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByCreatedAt orders the results by the created_at field.
|
||||||
|
func ByCreatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldCreatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByUpdatedAt orders the results by the updated_at field.
|
||||||
|
func ByUpdatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldUpdatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByName orders the results by the name field.
|
||||||
|
func ByName(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldName, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByCurrency orders the results by the currency field.
|
||||||
|
func ByCurrency(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldCurrency, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByUsersCount orders the results by users count.
|
||||||
|
func ByUsersCount(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborsCount(s, newUsersStep(), opts...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByUsers orders the results by users terms.
|
||||||
|
func ByUsers(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newUsersStep(), append([]sql.OrderTerm{term}, terms...)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByLocationsCount orders the results by locations count.
|
||||||
|
func ByLocationsCount(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborsCount(s, newLocationsStep(), opts...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByLocations orders the results by locations terms.
|
||||||
|
func ByLocations(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newLocationsStep(), append([]sql.OrderTerm{term}, terms...)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByItemsCount orders the results by items count.
|
||||||
|
func ByItemsCount(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborsCount(s, newItemsStep(), opts...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByItems orders the results by items terms.
|
||||||
|
func ByItems(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newItemsStep(), append([]sql.OrderTerm{term}, terms...)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByLabelsCount orders the results by labels count.
|
||||||
|
func ByLabelsCount(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborsCount(s, newLabelsStep(), opts...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByLabels orders the results by labels terms.
|
||||||
|
func ByLabels(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newLabelsStep(), append([]sql.OrderTerm{term}, terms...)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByDocumentsCount orders the results by documents count.
|
||||||
|
func ByDocumentsCount(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborsCount(s, newDocumentsStep(), opts...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByDocuments orders the results by documents terms.
|
||||||
|
func ByDocuments(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newDocumentsStep(), append([]sql.OrderTerm{term}, terms...)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByInvitationTokensCount orders the results by invitation_tokens count.
|
||||||
|
func ByInvitationTokensCount(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborsCount(s, newInvitationTokensStep(), opts...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByInvitationTokens orders the results by invitation_tokens terms.
|
||||||
|
func ByInvitationTokens(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newInvitationTokensStep(), append([]sql.OrderTerm{term}, terms...)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByNotifiersCount orders the results by notifiers count.
|
||||||
|
func ByNotifiersCount(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborsCount(s, newNotifiersStep(), opts...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByNotifiers orders the results by notifiers terms.
|
||||||
|
func ByNotifiers(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newNotifiersStep(), append([]sql.OrderTerm{term}, terms...)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func newUsersStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(UsersInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.O2M, false, UsersTable, UsersColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newLocationsStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(LocationsInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.O2M, false, LocationsTable, LocationsColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newItemsStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(ItemsInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.O2M, false, ItemsTable, ItemsColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newLabelsStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(LabelsInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.O2M, false, LabelsTable, LabelsColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newDocumentsStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(DocumentsInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.O2M, false, DocumentsTable, DocumentsColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newInvitationTokensStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(InvitationTokensInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.O2M, false, InvitationTokensTable, InvitationTokensColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newNotifiersStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(NotifiersInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.O2M, false, NotifiersTable, NotifiersColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -250,11 +250,7 @@ func HasUsers() predicate.Group {
|
||||||
// HasUsersWith applies the HasEdge predicate on the "users" edge with a given conditions (other predicates).
|
// HasUsersWith applies the HasEdge predicate on the "users" edge with a given conditions (other predicates).
|
||||||
func HasUsersWith(preds ...predicate.User) predicate.Group {
|
func HasUsersWith(preds ...predicate.User) predicate.Group {
|
||||||
return predicate.Group(func(s *sql.Selector) {
|
return predicate.Group(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newUsersStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(UsersInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.O2M, false, UsersTable, UsersColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -277,11 +273,7 @@ func HasLocations() predicate.Group {
|
||||||
// HasLocationsWith applies the HasEdge predicate on the "locations" edge with a given conditions (other predicates).
|
// HasLocationsWith applies the HasEdge predicate on the "locations" edge with a given conditions (other predicates).
|
||||||
func HasLocationsWith(preds ...predicate.Location) predicate.Group {
|
func HasLocationsWith(preds ...predicate.Location) predicate.Group {
|
||||||
return predicate.Group(func(s *sql.Selector) {
|
return predicate.Group(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newLocationsStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(LocationsInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.O2M, false, LocationsTable, LocationsColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -304,11 +296,7 @@ func HasItems() predicate.Group {
|
||||||
// HasItemsWith applies the HasEdge predicate on the "items" edge with a given conditions (other predicates).
|
// HasItemsWith applies the HasEdge predicate on the "items" edge with a given conditions (other predicates).
|
||||||
func HasItemsWith(preds ...predicate.Item) predicate.Group {
|
func HasItemsWith(preds ...predicate.Item) predicate.Group {
|
||||||
return predicate.Group(func(s *sql.Selector) {
|
return predicate.Group(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newItemsStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(ItemsInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.O2M, false, ItemsTable, ItemsColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -331,11 +319,7 @@ func HasLabels() predicate.Group {
|
||||||
// HasLabelsWith applies the HasEdge predicate on the "labels" edge with a given conditions (other predicates).
|
// HasLabelsWith applies the HasEdge predicate on the "labels" edge with a given conditions (other predicates).
|
||||||
func HasLabelsWith(preds ...predicate.Label) predicate.Group {
|
func HasLabelsWith(preds ...predicate.Label) predicate.Group {
|
||||||
return predicate.Group(func(s *sql.Selector) {
|
return predicate.Group(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newLabelsStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(LabelsInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.O2M, false, LabelsTable, LabelsColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -358,11 +342,7 @@ func HasDocuments() predicate.Group {
|
||||||
// HasDocumentsWith applies the HasEdge predicate on the "documents" edge with a given conditions (other predicates).
|
// HasDocumentsWith applies the HasEdge predicate on the "documents" edge with a given conditions (other predicates).
|
||||||
func HasDocumentsWith(preds ...predicate.Document) predicate.Group {
|
func HasDocumentsWith(preds ...predicate.Document) predicate.Group {
|
||||||
return predicate.Group(func(s *sql.Selector) {
|
return predicate.Group(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newDocumentsStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(DocumentsInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.O2M, false, DocumentsTable, DocumentsColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -385,11 +365,7 @@ func HasInvitationTokens() predicate.Group {
|
||||||
// HasInvitationTokensWith applies the HasEdge predicate on the "invitation_tokens" edge with a given conditions (other predicates).
|
// HasInvitationTokensWith applies the HasEdge predicate on the "invitation_tokens" edge with a given conditions (other predicates).
|
||||||
func HasInvitationTokensWith(preds ...predicate.GroupInvitationToken) predicate.Group {
|
func HasInvitationTokensWith(preds ...predicate.GroupInvitationToken) predicate.Group {
|
||||||
return predicate.Group(func(s *sql.Selector) {
|
return predicate.Group(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newInvitationTokensStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(InvitationTokensInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.O2M, false, InvitationTokensTable, InvitationTokensColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -412,11 +388,7 @@ func HasNotifiers() predicate.Group {
|
||||||
// HasNotifiersWith applies the HasEdge predicate on the "notifiers" edge with a given conditions (other predicates).
|
// HasNotifiersWith applies the HasEdge predicate on the "notifiers" edge with a given conditions (other predicates).
|
||||||
func HasNotifiersWith(preds ...predicate.Notifier) predicate.Group {
|
func HasNotifiersWith(preds ...predicate.Notifier) predicate.Group {
|
||||||
return predicate.Group(func(s *sql.Selector) {
|
return predicate.Group(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newNotifiersStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(NotifiersInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.O2M, false, NotifiersTable, NotifiersColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
|
|
@ -203,7 +203,7 @@ func (gc *GroupCreate) Mutation() *GroupMutation {
|
||||||
// Save creates the Group in the database.
|
// Save creates the Group in the database.
|
||||||
func (gc *GroupCreate) Save(ctx context.Context) (*Group, error) {
|
func (gc *GroupCreate) Save(ctx context.Context) (*Group, error) {
|
||||||
gc.defaults()
|
gc.defaults()
|
||||||
return withHooks[*Group, GroupMutation](ctx, gc.sqlSave, gc.mutation, gc.hooks)
|
return withHooks(ctx, gc.sqlSave, gc.mutation, gc.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX calls Save and panics if Save returns an error.
|
// SaveX calls Save and panics if Save returns an error.
|
||||||
|
@ -462,8 +462,8 @@ func (gcb *GroupCreateBulk) Save(ctx context.Context) ([]*Group, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
builder.mutation = mutation
|
builder.mutation = mutation
|
||||||
nodes[i], specs[i] = builder.createSpec()
|
|
||||||
var err error
|
var err error
|
||||||
|
nodes[i], specs[i] = builder.createSpec()
|
||||||
if i < len(mutators)-1 {
|
if i < len(mutators)-1 {
|
||||||
_, err = mutators[i+1].Mutate(root, gcb.builders[i+1].mutation)
|
_, err = mutators[i+1].Mutate(root, gcb.builders[i+1].mutation)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -27,7 +27,7 @@ func (gd *GroupDelete) Where(ps ...predicate.Group) *GroupDelete {
|
||||||
|
|
||||||
// Exec executes the deletion query and returns how many vertices were deleted.
|
// Exec executes the deletion query and returns how many vertices were deleted.
|
||||||
func (gd *GroupDelete) Exec(ctx context.Context) (int, error) {
|
func (gd *GroupDelete) Exec(ctx context.Context) (int, error) {
|
||||||
return withHooks[int, GroupMutation](ctx, gd.sqlExec, gd.mutation, gd.hooks)
|
return withHooks(ctx, gd.sqlExec, gd.mutation, gd.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExecX is like Exec, but panics if an error occurs.
|
// ExecX is like Exec, but panics if an error occurs.
|
||||||
|
|
|
@ -27,7 +27,7 @@ import (
|
||||||
type GroupQuery struct {
|
type GroupQuery struct {
|
||||||
config
|
config
|
||||||
ctx *QueryContext
|
ctx *QueryContext
|
||||||
order []OrderFunc
|
order []group.OrderOption
|
||||||
inters []Interceptor
|
inters []Interceptor
|
||||||
predicates []predicate.Group
|
predicates []predicate.Group
|
||||||
withUsers *UserQuery
|
withUsers *UserQuery
|
||||||
|
@ -68,7 +68,7 @@ func (gq *GroupQuery) Unique(unique bool) *GroupQuery {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Order specifies how the records should be ordered.
|
// Order specifies how the records should be ordered.
|
||||||
func (gq *GroupQuery) Order(o ...OrderFunc) *GroupQuery {
|
func (gq *GroupQuery) Order(o ...group.OrderOption) *GroupQuery {
|
||||||
gq.order = append(gq.order, o...)
|
gq.order = append(gq.order, o...)
|
||||||
return gq
|
return gq
|
||||||
}
|
}
|
||||||
|
@ -416,7 +416,7 @@ func (gq *GroupQuery) Clone() *GroupQuery {
|
||||||
return &GroupQuery{
|
return &GroupQuery{
|
||||||
config: gq.config,
|
config: gq.config,
|
||||||
ctx: gq.ctx.Clone(),
|
ctx: gq.ctx.Clone(),
|
||||||
order: append([]OrderFunc{}, gq.order...),
|
order: append([]group.OrderOption{}, gq.order...),
|
||||||
inters: append([]Interceptor{}, gq.inters...),
|
inters: append([]Interceptor{}, gq.inters...),
|
||||||
predicates: append([]predicate.Group{}, gq.predicates...),
|
predicates: append([]predicate.Group{}, gq.predicates...),
|
||||||
withUsers: gq.withUsers.Clone(),
|
withUsers: gq.withUsers.Clone(),
|
||||||
|
@ -681,7 +681,7 @@ func (gq *GroupQuery) loadUsers(ctx context.Context, query *UserQuery, nodes []*
|
||||||
}
|
}
|
||||||
query.withFKs = true
|
query.withFKs = true
|
||||||
query.Where(predicate.User(func(s *sql.Selector) {
|
query.Where(predicate.User(func(s *sql.Selector) {
|
||||||
s.Where(sql.InValues(group.UsersColumn, fks...))
|
s.Where(sql.InValues(s.C(group.UsersColumn), fks...))
|
||||||
}))
|
}))
|
||||||
neighbors, err := query.All(ctx)
|
neighbors, err := query.All(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -694,7 +694,7 @@ func (gq *GroupQuery) loadUsers(ctx context.Context, query *UserQuery, nodes []*
|
||||||
}
|
}
|
||||||
node, ok := nodeids[*fk]
|
node, ok := nodeids[*fk]
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf(`unexpected foreign-key "group_users" returned %v for node %v`, *fk, n.ID)
|
return fmt.Errorf(`unexpected referenced foreign-key "group_users" returned %v for node %v`, *fk, n.ID)
|
||||||
}
|
}
|
||||||
assign(node, n)
|
assign(node, n)
|
||||||
}
|
}
|
||||||
|
@ -712,7 +712,7 @@ func (gq *GroupQuery) loadLocations(ctx context.Context, query *LocationQuery, n
|
||||||
}
|
}
|
||||||
query.withFKs = true
|
query.withFKs = true
|
||||||
query.Where(predicate.Location(func(s *sql.Selector) {
|
query.Where(predicate.Location(func(s *sql.Selector) {
|
||||||
s.Where(sql.InValues(group.LocationsColumn, fks...))
|
s.Where(sql.InValues(s.C(group.LocationsColumn), fks...))
|
||||||
}))
|
}))
|
||||||
neighbors, err := query.All(ctx)
|
neighbors, err := query.All(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -725,7 +725,7 @@ func (gq *GroupQuery) loadLocations(ctx context.Context, query *LocationQuery, n
|
||||||
}
|
}
|
||||||
node, ok := nodeids[*fk]
|
node, ok := nodeids[*fk]
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf(`unexpected foreign-key "group_locations" returned %v for node %v`, *fk, n.ID)
|
return fmt.Errorf(`unexpected referenced foreign-key "group_locations" returned %v for node %v`, *fk, n.ID)
|
||||||
}
|
}
|
||||||
assign(node, n)
|
assign(node, n)
|
||||||
}
|
}
|
||||||
|
@ -743,7 +743,7 @@ func (gq *GroupQuery) loadItems(ctx context.Context, query *ItemQuery, nodes []*
|
||||||
}
|
}
|
||||||
query.withFKs = true
|
query.withFKs = true
|
||||||
query.Where(predicate.Item(func(s *sql.Selector) {
|
query.Where(predicate.Item(func(s *sql.Selector) {
|
||||||
s.Where(sql.InValues(group.ItemsColumn, fks...))
|
s.Where(sql.InValues(s.C(group.ItemsColumn), fks...))
|
||||||
}))
|
}))
|
||||||
neighbors, err := query.All(ctx)
|
neighbors, err := query.All(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -756,7 +756,7 @@ func (gq *GroupQuery) loadItems(ctx context.Context, query *ItemQuery, nodes []*
|
||||||
}
|
}
|
||||||
node, ok := nodeids[*fk]
|
node, ok := nodeids[*fk]
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf(`unexpected foreign-key "group_items" returned %v for node %v`, *fk, n.ID)
|
return fmt.Errorf(`unexpected referenced foreign-key "group_items" returned %v for node %v`, *fk, n.ID)
|
||||||
}
|
}
|
||||||
assign(node, n)
|
assign(node, n)
|
||||||
}
|
}
|
||||||
|
@ -774,7 +774,7 @@ func (gq *GroupQuery) loadLabels(ctx context.Context, query *LabelQuery, nodes [
|
||||||
}
|
}
|
||||||
query.withFKs = true
|
query.withFKs = true
|
||||||
query.Where(predicate.Label(func(s *sql.Selector) {
|
query.Where(predicate.Label(func(s *sql.Selector) {
|
||||||
s.Where(sql.InValues(group.LabelsColumn, fks...))
|
s.Where(sql.InValues(s.C(group.LabelsColumn), fks...))
|
||||||
}))
|
}))
|
||||||
neighbors, err := query.All(ctx)
|
neighbors, err := query.All(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -787,7 +787,7 @@ func (gq *GroupQuery) loadLabels(ctx context.Context, query *LabelQuery, nodes [
|
||||||
}
|
}
|
||||||
node, ok := nodeids[*fk]
|
node, ok := nodeids[*fk]
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf(`unexpected foreign-key "group_labels" returned %v for node %v`, *fk, n.ID)
|
return fmt.Errorf(`unexpected referenced foreign-key "group_labels" returned %v for node %v`, *fk, n.ID)
|
||||||
}
|
}
|
||||||
assign(node, n)
|
assign(node, n)
|
||||||
}
|
}
|
||||||
|
@ -805,7 +805,7 @@ func (gq *GroupQuery) loadDocuments(ctx context.Context, query *DocumentQuery, n
|
||||||
}
|
}
|
||||||
query.withFKs = true
|
query.withFKs = true
|
||||||
query.Where(predicate.Document(func(s *sql.Selector) {
|
query.Where(predicate.Document(func(s *sql.Selector) {
|
||||||
s.Where(sql.InValues(group.DocumentsColumn, fks...))
|
s.Where(sql.InValues(s.C(group.DocumentsColumn), fks...))
|
||||||
}))
|
}))
|
||||||
neighbors, err := query.All(ctx)
|
neighbors, err := query.All(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -818,7 +818,7 @@ func (gq *GroupQuery) loadDocuments(ctx context.Context, query *DocumentQuery, n
|
||||||
}
|
}
|
||||||
node, ok := nodeids[*fk]
|
node, ok := nodeids[*fk]
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf(`unexpected foreign-key "group_documents" returned %v for node %v`, *fk, n.ID)
|
return fmt.Errorf(`unexpected referenced foreign-key "group_documents" returned %v for node %v`, *fk, n.ID)
|
||||||
}
|
}
|
||||||
assign(node, n)
|
assign(node, n)
|
||||||
}
|
}
|
||||||
|
@ -836,7 +836,7 @@ func (gq *GroupQuery) loadInvitationTokens(ctx context.Context, query *GroupInvi
|
||||||
}
|
}
|
||||||
query.withFKs = true
|
query.withFKs = true
|
||||||
query.Where(predicate.GroupInvitationToken(func(s *sql.Selector) {
|
query.Where(predicate.GroupInvitationToken(func(s *sql.Selector) {
|
||||||
s.Where(sql.InValues(group.InvitationTokensColumn, fks...))
|
s.Where(sql.InValues(s.C(group.InvitationTokensColumn), fks...))
|
||||||
}))
|
}))
|
||||||
neighbors, err := query.All(ctx)
|
neighbors, err := query.All(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -849,7 +849,7 @@ func (gq *GroupQuery) loadInvitationTokens(ctx context.Context, query *GroupInvi
|
||||||
}
|
}
|
||||||
node, ok := nodeids[*fk]
|
node, ok := nodeids[*fk]
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf(`unexpected foreign-key "group_invitation_tokens" returned %v for node %v`, *fk, n.ID)
|
return fmt.Errorf(`unexpected referenced foreign-key "group_invitation_tokens" returned %v for node %v`, *fk, n.ID)
|
||||||
}
|
}
|
||||||
assign(node, n)
|
assign(node, n)
|
||||||
}
|
}
|
||||||
|
@ -865,8 +865,11 @@ func (gq *GroupQuery) loadNotifiers(ctx context.Context, query *NotifierQuery, n
|
||||||
init(nodes[i])
|
init(nodes[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if len(query.ctx.Fields) > 0 {
|
||||||
|
query.ctx.AppendFieldOnce(notifier.FieldGroupID)
|
||||||
|
}
|
||||||
query.Where(predicate.Notifier(func(s *sql.Selector) {
|
query.Where(predicate.Notifier(func(s *sql.Selector) {
|
||||||
s.Where(sql.InValues(group.NotifiersColumn, fks...))
|
s.Where(sql.InValues(s.C(group.NotifiersColumn), fks...))
|
||||||
}))
|
}))
|
||||||
neighbors, err := query.All(ctx)
|
neighbors, err := query.All(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -876,7 +879,7 @@ func (gq *GroupQuery) loadNotifiers(ctx context.Context, query *NotifierQuery, n
|
||||||
fk := n.GroupID
|
fk := n.GroupID
|
||||||
node, ok := nodeids[fk]
|
node, ok := nodeids[fk]
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf(`unexpected foreign-key "group_id" returned %v for node %v`, fk, n.ID)
|
return fmt.Errorf(`unexpected referenced foreign-key "group_id" returned %v for node %v`, fk, n.ID)
|
||||||
}
|
}
|
||||||
assign(node, n)
|
assign(node, n)
|
||||||
}
|
}
|
||||||
|
|
|
@ -322,7 +322,7 @@ func (gu *GroupUpdate) RemoveNotifiers(n ...*Notifier) *GroupUpdate {
|
||||||
// Save executes the query and returns the number of nodes affected by the update operation.
|
// Save executes the query and returns the number of nodes affected by the update operation.
|
||||||
func (gu *GroupUpdate) Save(ctx context.Context) (int, error) {
|
func (gu *GroupUpdate) Save(ctx context.Context) (int, error) {
|
||||||
gu.defaults()
|
gu.defaults()
|
||||||
return withHooks[int, GroupMutation](ctx, gu.sqlSave, gu.mutation, gu.hooks)
|
return withHooks(ctx, gu.sqlSave, gu.mutation, gu.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
@ -1025,7 +1025,7 @@ func (guo *GroupUpdateOne) Select(field string, fields ...string) *GroupUpdateOn
|
||||||
// Save executes the query and returns the updated Group entity.
|
// Save executes the query and returns the updated Group entity.
|
||||||
func (guo *GroupUpdateOne) Save(ctx context.Context) (*Group, error) {
|
func (guo *GroupUpdateOne) Save(ctx context.Context) (*Group, error) {
|
||||||
guo.defaults()
|
guo.defaults()
|
||||||
return withHooks[*Group, GroupMutation](ctx, guo.sqlSave, guo.mutation, guo.hooks)
|
return withHooks(ctx, guo.sqlSave, guo.mutation, guo.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent"
|
||||||
"entgo.io/ent/dialect/sql"
|
"entgo.io/ent/dialect/sql"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/ent/group"
|
"github.com/hay-kot/homebox/backend/internal/data/ent/group"
|
||||||
|
@ -32,6 +33,7 @@ type GroupInvitationToken struct {
|
||||||
// The values are being populated by the GroupInvitationTokenQuery when eager-loading is set.
|
// The values are being populated by the GroupInvitationTokenQuery when eager-loading is set.
|
||||||
Edges GroupInvitationTokenEdges `json:"edges"`
|
Edges GroupInvitationTokenEdges `json:"edges"`
|
||||||
group_invitation_tokens *uuid.UUID
|
group_invitation_tokens *uuid.UUID
|
||||||
|
selectValues sql.SelectValues
|
||||||
}
|
}
|
||||||
|
|
||||||
// GroupInvitationTokenEdges holds the relations/edges for other nodes in the graph.
|
// GroupInvitationTokenEdges holds the relations/edges for other nodes in the graph.
|
||||||
|
@ -72,7 +74,7 @@ func (*GroupInvitationToken) scanValues(columns []string) ([]any, error) {
|
||||||
case groupinvitationtoken.ForeignKeys[0]: // group_invitation_tokens
|
case groupinvitationtoken.ForeignKeys[0]: // group_invitation_tokens
|
||||||
values[i] = &sql.NullScanner{S: new(uuid.UUID)}
|
values[i] = &sql.NullScanner{S: new(uuid.UUID)}
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unexpected column %q for type GroupInvitationToken", columns[i])
|
values[i] = new(sql.UnknownType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return values, nil
|
return values, nil
|
||||||
|
@ -129,11 +131,19 @@ func (git *GroupInvitationToken) assignValues(columns []string, values []any) er
|
||||||
git.group_invitation_tokens = new(uuid.UUID)
|
git.group_invitation_tokens = new(uuid.UUID)
|
||||||
*git.group_invitation_tokens = *value.S.(*uuid.UUID)
|
*git.group_invitation_tokens = *value.S.(*uuid.UUID)
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
git.selectValues.Set(columns[i], values[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Value returns the ent.Value that was dynamically selected and assigned to the GroupInvitationToken.
|
||||||
|
// This includes values selected through modifiers, order, etc.
|
||||||
|
func (git *GroupInvitationToken) Value(name string) (ent.Value, error) {
|
||||||
|
return git.selectValues.Get(name)
|
||||||
|
}
|
||||||
|
|
||||||
// QueryGroup queries the "group" edge of the GroupInvitationToken entity.
|
// QueryGroup queries the "group" edge of the GroupInvitationToken entity.
|
||||||
func (git *GroupInvitationToken) QueryGroup() *GroupQuery {
|
func (git *GroupInvitationToken) QueryGroup() *GroupQuery {
|
||||||
return NewGroupInvitationTokenClient(git.config).QueryGroup(git)
|
return NewGroupInvitationTokenClient(git.config).QueryGroup(git)
|
||||||
|
|
|
@ -5,6 +5,8 @@ package groupinvitationtoken
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent/dialect/sql"
|
||||||
|
"entgo.io/ent/dialect/sql/sqlgraph"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -81,3 +83,45 @@ var (
|
||||||
// DefaultID holds the default value on creation for the "id" field.
|
// DefaultID holds the default value on creation for the "id" field.
|
||||||
DefaultID func() uuid.UUID
|
DefaultID func() uuid.UUID
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// OrderOption defines the ordering options for the GroupInvitationToken queries.
|
||||||
|
type OrderOption func(*sql.Selector)
|
||||||
|
|
||||||
|
// ByID orders the results by the id field.
|
||||||
|
func ByID(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldID, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByCreatedAt orders the results by the created_at field.
|
||||||
|
func ByCreatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldCreatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByUpdatedAt orders the results by the updated_at field.
|
||||||
|
func ByUpdatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldUpdatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByExpiresAt orders the results by the expires_at field.
|
||||||
|
func ByExpiresAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldExpiresAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByUses orders the results by the uses field.
|
||||||
|
func ByUses(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldUses, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByGroupField orders the results by group field.
|
||||||
|
func ByGroupField(field string, opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newGroupStep(), sql.OrderByField(field, opts...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func newGroupStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(GroupInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.M2O, true, GroupTable, GroupColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -295,11 +295,7 @@ func HasGroup() predicate.GroupInvitationToken {
|
||||||
// HasGroupWith applies the HasEdge predicate on the "group" edge with a given conditions (other predicates).
|
// HasGroupWith applies the HasEdge predicate on the "group" edge with a given conditions (other predicates).
|
||||||
func HasGroupWith(preds ...predicate.Group) predicate.GroupInvitationToken {
|
func HasGroupWith(preds ...predicate.Group) predicate.GroupInvitationToken {
|
||||||
return predicate.GroupInvitationToken(func(s *sql.Selector) {
|
return predicate.GroupInvitationToken(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newGroupStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(GroupInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.M2O, true, GroupTable, GroupColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
|
|
@ -125,7 +125,7 @@ func (gitc *GroupInvitationTokenCreate) Mutation() *GroupInvitationTokenMutation
|
||||||
// Save creates the GroupInvitationToken in the database.
|
// Save creates the GroupInvitationToken in the database.
|
||||||
func (gitc *GroupInvitationTokenCreate) Save(ctx context.Context) (*GroupInvitationToken, error) {
|
func (gitc *GroupInvitationTokenCreate) Save(ctx context.Context) (*GroupInvitationToken, error) {
|
||||||
gitc.defaults()
|
gitc.defaults()
|
||||||
return withHooks[*GroupInvitationToken, GroupInvitationTokenMutation](ctx, gitc.sqlSave, gitc.mutation, gitc.hooks)
|
return withHooks(ctx, gitc.sqlSave, gitc.mutation, gitc.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX calls Save and panics if Save returns an error.
|
// SaveX calls Save and panics if Save returns an error.
|
||||||
|
@ -290,8 +290,8 @@ func (gitcb *GroupInvitationTokenCreateBulk) Save(ctx context.Context) ([]*Group
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
builder.mutation = mutation
|
builder.mutation = mutation
|
||||||
nodes[i], specs[i] = builder.createSpec()
|
|
||||||
var err error
|
var err error
|
||||||
|
nodes[i], specs[i] = builder.createSpec()
|
||||||
if i < len(mutators)-1 {
|
if i < len(mutators)-1 {
|
||||||
_, err = mutators[i+1].Mutate(root, gitcb.builders[i+1].mutation)
|
_, err = mutators[i+1].Mutate(root, gitcb.builders[i+1].mutation)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -27,7 +27,7 @@ func (gitd *GroupInvitationTokenDelete) Where(ps ...predicate.GroupInvitationTok
|
||||||
|
|
||||||
// Exec executes the deletion query and returns how many vertices were deleted.
|
// Exec executes the deletion query and returns how many vertices were deleted.
|
||||||
func (gitd *GroupInvitationTokenDelete) Exec(ctx context.Context) (int, error) {
|
func (gitd *GroupInvitationTokenDelete) Exec(ctx context.Context) (int, error) {
|
||||||
return withHooks[int, GroupInvitationTokenMutation](ctx, gitd.sqlExec, gitd.mutation, gitd.hooks)
|
return withHooks(ctx, gitd.sqlExec, gitd.mutation, gitd.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExecX is like Exec, but panics if an error occurs.
|
// ExecX is like Exec, but panics if an error occurs.
|
||||||
|
|
|
@ -20,7 +20,7 @@ import (
|
||||||
type GroupInvitationTokenQuery struct {
|
type GroupInvitationTokenQuery struct {
|
||||||
config
|
config
|
||||||
ctx *QueryContext
|
ctx *QueryContext
|
||||||
order []OrderFunc
|
order []groupinvitationtoken.OrderOption
|
||||||
inters []Interceptor
|
inters []Interceptor
|
||||||
predicates []predicate.GroupInvitationToken
|
predicates []predicate.GroupInvitationToken
|
||||||
withGroup *GroupQuery
|
withGroup *GroupQuery
|
||||||
|
@ -56,7 +56,7 @@ func (gitq *GroupInvitationTokenQuery) Unique(unique bool) *GroupInvitationToken
|
||||||
}
|
}
|
||||||
|
|
||||||
// Order specifies how the records should be ordered.
|
// Order specifies how the records should be ordered.
|
||||||
func (gitq *GroupInvitationTokenQuery) Order(o ...OrderFunc) *GroupInvitationTokenQuery {
|
func (gitq *GroupInvitationTokenQuery) Order(o ...groupinvitationtoken.OrderOption) *GroupInvitationTokenQuery {
|
||||||
gitq.order = append(gitq.order, o...)
|
gitq.order = append(gitq.order, o...)
|
||||||
return gitq
|
return gitq
|
||||||
}
|
}
|
||||||
|
@ -272,7 +272,7 @@ func (gitq *GroupInvitationTokenQuery) Clone() *GroupInvitationTokenQuery {
|
||||||
return &GroupInvitationTokenQuery{
|
return &GroupInvitationTokenQuery{
|
||||||
config: gitq.config,
|
config: gitq.config,
|
||||||
ctx: gitq.ctx.Clone(),
|
ctx: gitq.ctx.Clone(),
|
||||||
order: append([]OrderFunc{}, gitq.order...),
|
order: append([]groupinvitationtoken.OrderOption{}, gitq.order...),
|
||||||
inters: append([]Interceptor{}, gitq.inters...),
|
inters: append([]Interceptor{}, gitq.inters...),
|
||||||
predicates: append([]predicate.GroupInvitationToken{}, gitq.predicates...),
|
predicates: append([]predicate.GroupInvitationToken{}, gitq.predicates...),
|
||||||
withGroup: gitq.withGroup.Clone(),
|
withGroup: gitq.withGroup.Clone(),
|
||||||
|
|
|
@ -110,7 +110,7 @@ func (gitu *GroupInvitationTokenUpdate) ClearGroup() *GroupInvitationTokenUpdate
|
||||||
// Save executes the query and returns the number of nodes affected by the update operation.
|
// Save executes the query and returns the number of nodes affected by the update operation.
|
||||||
func (gitu *GroupInvitationTokenUpdate) Save(ctx context.Context) (int, error) {
|
func (gitu *GroupInvitationTokenUpdate) Save(ctx context.Context) (int, error) {
|
||||||
gitu.defaults()
|
gitu.defaults()
|
||||||
return withHooks[int, GroupInvitationTokenMutation](ctx, gitu.sqlSave, gitu.mutation, gitu.hooks)
|
return withHooks(ctx, gitu.sqlSave, gitu.mutation, gitu.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
@ -309,7 +309,7 @@ func (gituo *GroupInvitationTokenUpdateOne) Select(field string, fields ...strin
|
||||||
// Save executes the query and returns the updated GroupInvitationToken entity.
|
// Save executes the query and returns the updated GroupInvitationToken entity.
|
||||||
func (gituo *GroupInvitationTokenUpdateOne) Save(ctx context.Context) (*GroupInvitationToken, error) {
|
func (gituo *GroupInvitationTokenUpdateOne) Save(ctx context.Context) (*GroupInvitationToken, error) {
|
||||||
gituo.defaults()
|
gituo.defaults()
|
||||||
return withHooks[*GroupInvitationToken, GroupInvitationTokenMutation](ctx, gituo.sqlSave, gituo.mutation, gituo.hooks)
|
return withHooks(ctx, gituo.sqlSave, gituo.mutation, gituo.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent"
|
||||||
"entgo.io/ent/dialect/sql"
|
"entgo.io/ent/dialect/sql"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/ent/group"
|
"github.com/hay-kot/homebox/backend/internal/data/ent/group"
|
||||||
|
@ -71,6 +72,7 @@ type Item struct {
|
||||||
group_items *uuid.UUID
|
group_items *uuid.UUID
|
||||||
item_children *uuid.UUID
|
item_children *uuid.UUID
|
||||||
location_items *uuid.UUID
|
location_items *uuid.UUID
|
||||||
|
selectValues sql.SelectValues
|
||||||
}
|
}
|
||||||
|
|
||||||
// ItemEdges holds the relations/edges for other nodes in the graph.
|
// ItemEdges holds the relations/edges for other nodes in the graph.
|
||||||
|
@ -204,7 +206,7 @@ func (*Item) scanValues(columns []string) ([]any, error) {
|
||||||
case item.ForeignKeys[2]: // location_items
|
case item.ForeignKeys[2]: // location_items
|
||||||
values[i] = &sql.NullScanner{S: new(uuid.UUID)}
|
values[i] = &sql.NullScanner{S: new(uuid.UUID)}
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unexpected column %q for type Item", columns[i])
|
values[i] = new(sql.UnknownType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return values, nil
|
return values, nil
|
||||||
|
@ -383,11 +385,19 @@ func (i *Item) assignValues(columns []string, values []any) error {
|
||||||
i.location_items = new(uuid.UUID)
|
i.location_items = new(uuid.UUID)
|
||||||
*i.location_items = *value.S.(*uuid.UUID)
|
*i.location_items = *value.S.(*uuid.UUID)
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
i.selectValues.Set(columns[j], values[j])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Value returns the ent.Value that was dynamically selected and assigned to the Item.
|
||||||
|
// This includes values selected through modifiers, order, etc.
|
||||||
|
func (i *Item) Value(name string) (ent.Value, error) {
|
||||||
|
return i.selectValues.Get(name)
|
||||||
|
}
|
||||||
|
|
||||||
// QueryGroup queries the "group" edge of the Item entity.
|
// QueryGroup queries the "group" edge of the Item entity.
|
||||||
func (i *Item) QueryGroup() *GroupQuery {
|
func (i *Item) QueryGroup() *GroupQuery {
|
||||||
return NewItemClient(i.config).QueryGroup(i)
|
return NewItemClient(i.config).QueryGroup(i)
|
||||||
|
|
|
@ -5,6 +5,8 @@ package item
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent/dialect/sql"
|
||||||
|
"entgo.io/ent/dialect/sql/sqlgraph"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -226,3 +228,273 @@ var (
|
||||||
// DefaultID holds the default value on creation for the "id" field.
|
// DefaultID holds the default value on creation for the "id" field.
|
||||||
DefaultID func() uuid.UUID
|
DefaultID func() uuid.UUID
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// OrderOption defines the ordering options for the Item queries.
|
||||||
|
type OrderOption func(*sql.Selector)
|
||||||
|
|
||||||
|
// ByID orders the results by the id field.
|
||||||
|
func ByID(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldID, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByCreatedAt orders the results by the created_at field.
|
||||||
|
func ByCreatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldCreatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByUpdatedAt orders the results by the updated_at field.
|
||||||
|
func ByUpdatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldUpdatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByName orders the results by the name field.
|
||||||
|
func ByName(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldName, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByDescription orders the results by the description field.
|
||||||
|
func ByDescription(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldDescription, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByImportRef orders the results by the import_ref field.
|
||||||
|
func ByImportRef(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldImportRef, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByNotes orders the results by the notes field.
|
||||||
|
func ByNotes(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldNotes, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByQuantity orders the results by the quantity field.
|
||||||
|
func ByQuantity(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldQuantity, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByInsured orders the results by the insured field.
|
||||||
|
func ByInsured(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldInsured, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByArchived orders the results by the archived field.
|
||||||
|
func ByArchived(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldArchived, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByAssetID orders the results by the asset_id field.
|
||||||
|
func ByAssetID(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldAssetID, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// BySerialNumber orders the results by the serial_number field.
|
||||||
|
func BySerialNumber(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldSerialNumber, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByModelNumber orders the results by the model_number field.
|
||||||
|
func ByModelNumber(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldModelNumber, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByManufacturer orders the results by the manufacturer field.
|
||||||
|
func ByManufacturer(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldManufacturer, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByLifetimeWarranty orders the results by the lifetime_warranty field.
|
||||||
|
func ByLifetimeWarranty(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldLifetimeWarranty, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByWarrantyExpires orders the results by the warranty_expires field.
|
||||||
|
func ByWarrantyExpires(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldWarrantyExpires, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByWarrantyDetails orders the results by the warranty_details field.
|
||||||
|
func ByWarrantyDetails(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldWarrantyDetails, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByPurchaseTime orders the results by the purchase_time field.
|
||||||
|
func ByPurchaseTime(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldPurchaseTime, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByPurchaseFrom orders the results by the purchase_from field.
|
||||||
|
func ByPurchaseFrom(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldPurchaseFrom, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByPurchasePrice orders the results by the purchase_price field.
|
||||||
|
func ByPurchasePrice(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldPurchasePrice, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// BySoldTime orders the results by the sold_time field.
|
||||||
|
func BySoldTime(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldSoldTime, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// BySoldTo orders the results by the sold_to field.
|
||||||
|
func BySoldTo(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldSoldTo, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// BySoldPrice orders the results by the sold_price field.
|
||||||
|
func BySoldPrice(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldSoldPrice, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// BySoldNotes orders the results by the sold_notes field.
|
||||||
|
func BySoldNotes(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldSoldNotes, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByGroupField orders the results by group field.
|
||||||
|
func ByGroupField(field string, opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newGroupStep(), sql.OrderByField(field, opts...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByParentField orders the results by parent field.
|
||||||
|
func ByParentField(field string, opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newParentStep(), sql.OrderByField(field, opts...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByChildrenCount orders the results by children count.
|
||||||
|
func ByChildrenCount(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborsCount(s, newChildrenStep(), opts...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByChildren orders the results by children terms.
|
||||||
|
func ByChildren(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newChildrenStep(), append([]sql.OrderTerm{term}, terms...)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByLabelCount orders the results by label count.
|
||||||
|
func ByLabelCount(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborsCount(s, newLabelStep(), opts...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByLabel orders the results by label terms.
|
||||||
|
func ByLabel(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newLabelStep(), append([]sql.OrderTerm{term}, terms...)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByLocationField orders the results by location field.
|
||||||
|
func ByLocationField(field string, opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newLocationStep(), sql.OrderByField(field, opts...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByFieldsCount orders the results by fields count.
|
||||||
|
func ByFieldsCount(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborsCount(s, newFieldsStep(), opts...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByFields orders the results by fields terms.
|
||||||
|
func ByFields(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newFieldsStep(), append([]sql.OrderTerm{term}, terms...)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByMaintenanceEntriesCount orders the results by maintenance_entries count.
|
||||||
|
func ByMaintenanceEntriesCount(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborsCount(s, newMaintenanceEntriesStep(), opts...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByMaintenanceEntries orders the results by maintenance_entries terms.
|
||||||
|
func ByMaintenanceEntries(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newMaintenanceEntriesStep(), append([]sql.OrderTerm{term}, terms...)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByAttachmentsCount orders the results by attachments count.
|
||||||
|
func ByAttachmentsCount(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborsCount(s, newAttachmentsStep(), opts...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByAttachments orders the results by attachments terms.
|
||||||
|
func ByAttachments(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newAttachmentsStep(), append([]sql.OrderTerm{term}, terms...)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func newGroupStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(GroupInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.M2O, true, GroupTable, GroupColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newParentStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(Table, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.M2O, true, ParentTable, ParentColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newChildrenStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(Table, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.O2M, false, ChildrenTable, ChildrenColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newLabelStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(LabelInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.M2M, true, LabelTable, LabelPrimaryKey...),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newLocationStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(LocationInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.M2O, true, LocationTable, LocationColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newFieldsStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(FieldsInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.O2M, false, FieldsTable, FieldsColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newMaintenanceEntriesStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(MaintenanceEntriesInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.O2M, false, MaintenanceEntriesTable, MaintenanceEntriesColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newAttachmentsStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(AttachmentsInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.O2M, false, AttachmentsTable, AttachmentsColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -1420,11 +1420,7 @@ func HasGroup() predicate.Item {
|
||||||
// HasGroupWith applies the HasEdge predicate on the "group" edge with a given conditions (other predicates).
|
// HasGroupWith applies the HasEdge predicate on the "group" edge with a given conditions (other predicates).
|
||||||
func HasGroupWith(preds ...predicate.Group) predicate.Item {
|
func HasGroupWith(preds ...predicate.Group) predicate.Item {
|
||||||
return predicate.Item(func(s *sql.Selector) {
|
return predicate.Item(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newGroupStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(GroupInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.M2O, true, GroupTable, GroupColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -1447,11 +1443,7 @@ func HasParent() predicate.Item {
|
||||||
// HasParentWith applies the HasEdge predicate on the "parent" edge with a given conditions (other predicates).
|
// HasParentWith applies the HasEdge predicate on the "parent" edge with a given conditions (other predicates).
|
||||||
func HasParentWith(preds ...predicate.Item) predicate.Item {
|
func HasParentWith(preds ...predicate.Item) predicate.Item {
|
||||||
return predicate.Item(func(s *sql.Selector) {
|
return predicate.Item(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newParentStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(Table, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.M2O, true, ParentTable, ParentColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -1474,11 +1466,7 @@ func HasChildren() predicate.Item {
|
||||||
// HasChildrenWith applies the HasEdge predicate on the "children" edge with a given conditions (other predicates).
|
// HasChildrenWith applies the HasEdge predicate on the "children" edge with a given conditions (other predicates).
|
||||||
func HasChildrenWith(preds ...predicate.Item) predicate.Item {
|
func HasChildrenWith(preds ...predicate.Item) predicate.Item {
|
||||||
return predicate.Item(func(s *sql.Selector) {
|
return predicate.Item(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newChildrenStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(Table, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.O2M, false, ChildrenTable, ChildrenColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -1501,11 +1489,7 @@ func HasLabel() predicate.Item {
|
||||||
// HasLabelWith applies the HasEdge predicate on the "label" edge with a given conditions (other predicates).
|
// HasLabelWith applies the HasEdge predicate on the "label" edge with a given conditions (other predicates).
|
||||||
func HasLabelWith(preds ...predicate.Label) predicate.Item {
|
func HasLabelWith(preds ...predicate.Label) predicate.Item {
|
||||||
return predicate.Item(func(s *sql.Selector) {
|
return predicate.Item(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newLabelStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(LabelInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.M2M, true, LabelTable, LabelPrimaryKey...),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -1528,11 +1512,7 @@ func HasLocation() predicate.Item {
|
||||||
// HasLocationWith applies the HasEdge predicate on the "location" edge with a given conditions (other predicates).
|
// HasLocationWith applies the HasEdge predicate on the "location" edge with a given conditions (other predicates).
|
||||||
func HasLocationWith(preds ...predicate.Location) predicate.Item {
|
func HasLocationWith(preds ...predicate.Location) predicate.Item {
|
||||||
return predicate.Item(func(s *sql.Selector) {
|
return predicate.Item(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newLocationStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(LocationInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.M2O, true, LocationTable, LocationColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -1555,11 +1535,7 @@ func HasFields() predicate.Item {
|
||||||
// HasFieldsWith applies the HasEdge predicate on the "fields" edge with a given conditions (other predicates).
|
// HasFieldsWith applies the HasEdge predicate on the "fields" edge with a given conditions (other predicates).
|
||||||
func HasFieldsWith(preds ...predicate.ItemField) predicate.Item {
|
func HasFieldsWith(preds ...predicate.ItemField) predicate.Item {
|
||||||
return predicate.Item(func(s *sql.Selector) {
|
return predicate.Item(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newFieldsStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(FieldsInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.O2M, false, FieldsTable, FieldsColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -1582,11 +1558,7 @@ func HasMaintenanceEntries() predicate.Item {
|
||||||
// HasMaintenanceEntriesWith applies the HasEdge predicate on the "maintenance_entries" edge with a given conditions (other predicates).
|
// HasMaintenanceEntriesWith applies the HasEdge predicate on the "maintenance_entries" edge with a given conditions (other predicates).
|
||||||
func HasMaintenanceEntriesWith(preds ...predicate.MaintenanceEntry) predicate.Item {
|
func HasMaintenanceEntriesWith(preds ...predicate.MaintenanceEntry) predicate.Item {
|
||||||
return predicate.Item(func(s *sql.Selector) {
|
return predicate.Item(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newMaintenanceEntriesStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(MaintenanceEntriesInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.O2M, false, MaintenanceEntriesTable, MaintenanceEntriesColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -1609,11 +1581,7 @@ func HasAttachments() predicate.Item {
|
||||||
// HasAttachmentsWith applies the HasEdge predicate on the "attachments" edge with a given conditions (other predicates).
|
// HasAttachmentsWith applies the HasEdge predicate on the "attachments" edge with a given conditions (other predicates).
|
||||||
func HasAttachmentsWith(preds ...predicate.Attachment) predicate.Item {
|
func HasAttachmentsWith(preds ...predicate.Attachment) predicate.Item {
|
||||||
return predicate.Item(func(s *sql.Selector) {
|
return predicate.Item(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newAttachmentsStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(AttachmentsInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.O2M, false, AttachmentsTable, AttachmentsColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
|
|
@ -487,7 +487,7 @@ func (ic *ItemCreate) Mutation() *ItemMutation {
|
||||||
// Save creates the Item in the database.
|
// Save creates the Item in the database.
|
||||||
func (ic *ItemCreate) Save(ctx context.Context) (*Item, error) {
|
func (ic *ItemCreate) Save(ctx context.Context) (*Item, error) {
|
||||||
ic.defaults()
|
ic.defaults()
|
||||||
return withHooks[*Item, ItemMutation](ctx, ic.sqlSave, ic.mutation, ic.hooks)
|
return withHooks(ctx, ic.sqlSave, ic.mutation, ic.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX calls Save and panics if Save returns an error.
|
// SaveX calls Save and panics if Save returns an error.
|
||||||
|
@ -921,8 +921,8 @@ func (icb *ItemCreateBulk) Save(ctx context.Context) ([]*Item, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
builder.mutation = mutation
|
builder.mutation = mutation
|
||||||
nodes[i], specs[i] = builder.createSpec()
|
|
||||||
var err error
|
var err error
|
||||||
|
nodes[i], specs[i] = builder.createSpec()
|
||||||
if i < len(mutators)-1 {
|
if i < len(mutators)-1 {
|
||||||
_, err = mutators[i+1].Mutate(root, icb.builders[i+1].mutation)
|
_, err = mutators[i+1].Mutate(root, icb.builders[i+1].mutation)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -27,7 +27,7 @@ func (id *ItemDelete) Where(ps ...predicate.Item) *ItemDelete {
|
||||||
|
|
||||||
// Exec executes the deletion query and returns how many vertices were deleted.
|
// Exec executes the deletion query and returns how many vertices were deleted.
|
||||||
func (id *ItemDelete) Exec(ctx context.Context) (int, error) {
|
func (id *ItemDelete) Exec(ctx context.Context) (int, error) {
|
||||||
return withHooks[int, ItemMutation](ctx, id.sqlExec, id.mutation, id.hooks)
|
return withHooks(ctx, id.sqlExec, id.mutation, id.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExecX is like Exec, but panics if an error occurs.
|
// ExecX is like Exec, but panics if an error occurs.
|
||||||
|
|
|
@ -26,7 +26,7 @@ import (
|
||||||
type ItemQuery struct {
|
type ItemQuery struct {
|
||||||
config
|
config
|
||||||
ctx *QueryContext
|
ctx *QueryContext
|
||||||
order []OrderFunc
|
order []item.OrderOption
|
||||||
inters []Interceptor
|
inters []Interceptor
|
||||||
predicates []predicate.Item
|
predicates []predicate.Item
|
||||||
withGroup *GroupQuery
|
withGroup *GroupQuery
|
||||||
|
@ -69,7 +69,7 @@ func (iq *ItemQuery) Unique(unique bool) *ItemQuery {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Order specifies how the records should be ordered.
|
// Order specifies how the records should be ordered.
|
||||||
func (iq *ItemQuery) Order(o ...OrderFunc) *ItemQuery {
|
func (iq *ItemQuery) Order(o ...item.OrderOption) *ItemQuery {
|
||||||
iq.order = append(iq.order, o...)
|
iq.order = append(iq.order, o...)
|
||||||
return iq
|
return iq
|
||||||
}
|
}
|
||||||
|
@ -439,7 +439,7 @@ func (iq *ItemQuery) Clone() *ItemQuery {
|
||||||
return &ItemQuery{
|
return &ItemQuery{
|
||||||
config: iq.config,
|
config: iq.config,
|
||||||
ctx: iq.ctx.Clone(),
|
ctx: iq.ctx.Clone(),
|
||||||
order: append([]OrderFunc{}, iq.order...),
|
order: append([]item.OrderOption{}, iq.order...),
|
||||||
inters: append([]Interceptor{}, iq.inters...),
|
inters: append([]Interceptor{}, iq.inters...),
|
||||||
predicates: append([]predicate.Item{}, iq.predicates...),
|
predicates: append([]predicate.Item{}, iq.predicates...),
|
||||||
withGroup: iq.withGroup.Clone(),
|
withGroup: iq.withGroup.Clone(),
|
||||||
|
@ -790,7 +790,7 @@ func (iq *ItemQuery) loadChildren(ctx context.Context, query *ItemQuery, nodes [
|
||||||
}
|
}
|
||||||
query.withFKs = true
|
query.withFKs = true
|
||||||
query.Where(predicate.Item(func(s *sql.Selector) {
|
query.Where(predicate.Item(func(s *sql.Selector) {
|
||||||
s.Where(sql.InValues(item.ChildrenColumn, fks...))
|
s.Where(sql.InValues(s.C(item.ChildrenColumn), fks...))
|
||||||
}))
|
}))
|
||||||
neighbors, err := query.All(ctx)
|
neighbors, err := query.All(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -803,7 +803,7 @@ func (iq *ItemQuery) loadChildren(ctx context.Context, query *ItemQuery, nodes [
|
||||||
}
|
}
|
||||||
node, ok := nodeids[*fk]
|
node, ok := nodeids[*fk]
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf(`unexpected foreign-key "item_children" returned %v for node %v`, *fk, n.ID)
|
return fmt.Errorf(`unexpected referenced foreign-key "item_children" returned %v for node %v`, *fk, n.ID)
|
||||||
}
|
}
|
||||||
assign(node, n)
|
assign(node, n)
|
||||||
}
|
}
|
||||||
|
@ -914,7 +914,7 @@ func (iq *ItemQuery) loadFields(ctx context.Context, query *ItemFieldQuery, node
|
||||||
}
|
}
|
||||||
query.withFKs = true
|
query.withFKs = true
|
||||||
query.Where(predicate.ItemField(func(s *sql.Selector) {
|
query.Where(predicate.ItemField(func(s *sql.Selector) {
|
||||||
s.Where(sql.InValues(item.FieldsColumn, fks...))
|
s.Where(sql.InValues(s.C(item.FieldsColumn), fks...))
|
||||||
}))
|
}))
|
||||||
neighbors, err := query.All(ctx)
|
neighbors, err := query.All(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -927,7 +927,7 @@ func (iq *ItemQuery) loadFields(ctx context.Context, query *ItemFieldQuery, node
|
||||||
}
|
}
|
||||||
node, ok := nodeids[*fk]
|
node, ok := nodeids[*fk]
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf(`unexpected foreign-key "item_fields" returned %v for node %v`, *fk, n.ID)
|
return fmt.Errorf(`unexpected referenced foreign-key "item_fields" returned %v for node %v`, *fk, n.ID)
|
||||||
}
|
}
|
||||||
assign(node, n)
|
assign(node, n)
|
||||||
}
|
}
|
||||||
|
@ -943,8 +943,11 @@ func (iq *ItemQuery) loadMaintenanceEntries(ctx context.Context, query *Maintena
|
||||||
init(nodes[i])
|
init(nodes[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if len(query.ctx.Fields) > 0 {
|
||||||
|
query.ctx.AppendFieldOnce(maintenanceentry.FieldItemID)
|
||||||
|
}
|
||||||
query.Where(predicate.MaintenanceEntry(func(s *sql.Selector) {
|
query.Where(predicate.MaintenanceEntry(func(s *sql.Selector) {
|
||||||
s.Where(sql.InValues(item.MaintenanceEntriesColumn, fks...))
|
s.Where(sql.InValues(s.C(item.MaintenanceEntriesColumn), fks...))
|
||||||
}))
|
}))
|
||||||
neighbors, err := query.All(ctx)
|
neighbors, err := query.All(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -954,7 +957,7 @@ func (iq *ItemQuery) loadMaintenanceEntries(ctx context.Context, query *Maintena
|
||||||
fk := n.ItemID
|
fk := n.ItemID
|
||||||
node, ok := nodeids[fk]
|
node, ok := nodeids[fk]
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf(`unexpected foreign-key "item_id" returned %v for node %v`, fk, n.ID)
|
return fmt.Errorf(`unexpected referenced foreign-key "item_id" returned %v for node %v`, fk, n.ID)
|
||||||
}
|
}
|
||||||
assign(node, n)
|
assign(node, n)
|
||||||
}
|
}
|
||||||
|
@ -972,7 +975,7 @@ func (iq *ItemQuery) loadAttachments(ctx context.Context, query *AttachmentQuery
|
||||||
}
|
}
|
||||||
query.withFKs = true
|
query.withFKs = true
|
||||||
query.Where(predicate.Attachment(func(s *sql.Selector) {
|
query.Where(predicate.Attachment(func(s *sql.Selector) {
|
||||||
s.Where(sql.InValues(item.AttachmentsColumn, fks...))
|
s.Where(sql.InValues(s.C(item.AttachmentsColumn), fks...))
|
||||||
}))
|
}))
|
||||||
neighbors, err := query.All(ctx)
|
neighbors, err := query.All(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -985,7 +988,7 @@ func (iq *ItemQuery) loadAttachments(ctx context.Context, query *AttachmentQuery
|
||||||
}
|
}
|
||||||
node, ok := nodeids[*fk]
|
node, ok := nodeids[*fk]
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf(`unexpected foreign-key "item_attachments" returned %v for node %v`, *fk, n.ID)
|
return fmt.Errorf(`unexpected referenced foreign-key "item_attachments" returned %v for node %v`, *fk, n.ID)
|
||||||
}
|
}
|
||||||
assign(node, n)
|
assign(node, n)
|
||||||
}
|
}
|
||||||
|
|
|
@ -688,7 +688,7 @@ func (iu *ItemUpdate) RemoveAttachments(a ...*Attachment) *ItemUpdate {
|
||||||
// Save executes the query and returns the number of nodes affected by the update operation.
|
// Save executes the query and returns the number of nodes affected by the update operation.
|
||||||
func (iu *ItemUpdate) Save(ctx context.Context) (int, error) {
|
func (iu *ItemUpdate) Save(ctx context.Context) (int, error) {
|
||||||
iu.defaults()
|
iu.defaults()
|
||||||
return withHooks[int, ItemMutation](ctx, iu.sqlSave, iu.mutation, iu.hooks)
|
return withHooks(ctx, iu.sqlSave, iu.mutation, iu.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
@ -1901,7 +1901,7 @@ func (iuo *ItemUpdateOne) Select(field string, fields ...string) *ItemUpdateOne
|
||||||
// Save executes the query and returns the updated Item entity.
|
// Save executes the query and returns the updated Item entity.
|
||||||
func (iuo *ItemUpdateOne) Save(ctx context.Context) (*Item, error) {
|
func (iuo *ItemUpdateOne) Save(ctx context.Context) (*Item, error) {
|
||||||
iuo.defaults()
|
iuo.defaults()
|
||||||
return withHooks[*Item, ItemMutation](ctx, iuo.sqlSave, iuo.mutation, iuo.hooks)
|
return withHooks(ctx, iuo.sqlSave, iuo.mutation, iuo.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent"
|
||||||
"entgo.io/ent/dialect/sql"
|
"entgo.io/ent/dialect/sql"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/ent/item"
|
"github.com/hay-kot/homebox/backend/internal/data/ent/item"
|
||||||
|
@ -38,8 +39,9 @@ type ItemField struct {
|
||||||
TimeValue time.Time `json:"time_value,omitempty"`
|
TimeValue time.Time `json:"time_value,omitempty"`
|
||||||
// Edges holds the relations/edges for other nodes in the graph.
|
// Edges holds the relations/edges for other nodes in the graph.
|
||||||
// The values are being populated by the ItemFieldQuery when eager-loading is set.
|
// The values are being populated by the ItemFieldQuery when eager-loading is set.
|
||||||
Edges ItemFieldEdges `json:"edges"`
|
Edges ItemFieldEdges `json:"edges"`
|
||||||
item_fields *uuid.UUID
|
item_fields *uuid.UUID
|
||||||
|
selectValues sql.SelectValues
|
||||||
}
|
}
|
||||||
|
|
||||||
// ItemFieldEdges holds the relations/edges for other nodes in the graph.
|
// ItemFieldEdges holds the relations/edges for other nodes in the graph.
|
||||||
|
@ -82,7 +84,7 @@ func (*ItemField) scanValues(columns []string) ([]any, error) {
|
||||||
case itemfield.ForeignKeys[0]: // item_fields
|
case itemfield.ForeignKeys[0]: // item_fields
|
||||||
values[i] = &sql.NullScanner{S: new(uuid.UUID)}
|
values[i] = &sql.NullScanner{S: new(uuid.UUID)}
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unexpected column %q for type ItemField", columns[i])
|
values[i] = new(sql.UnknownType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return values, nil
|
return values, nil
|
||||||
|
@ -163,11 +165,19 @@ func (_if *ItemField) assignValues(columns []string, values []any) error {
|
||||||
_if.item_fields = new(uuid.UUID)
|
_if.item_fields = new(uuid.UUID)
|
||||||
*_if.item_fields = *value.S.(*uuid.UUID)
|
*_if.item_fields = *value.S.(*uuid.UUID)
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
_if.selectValues.Set(columns[i], values[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Value returns the ent.Value that was dynamically selected and assigned to the ItemField.
|
||||||
|
// This includes values selected through modifiers, order, etc.
|
||||||
|
func (_if *ItemField) Value(name string) (ent.Value, error) {
|
||||||
|
return _if.selectValues.Get(name)
|
||||||
|
}
|
||||||
|
|
||||||
// QueryItem queries the "item" edge of the ItemField entity.
|
// QueryItem queries the "item" edge of the ItemField entity.
|
||||||
func (_if *ItemField) QueryItem() *ItemQuery {
|
func (_if *ItemField) QueryItem() *ItemQuery {
|
||||||
return NewItemFieldClient(_if.config).QueryItem(_if)
|
return NewItemFieldClient(_if.config).QueryItem(_if)
|
||||||
|
|
|
@ -6,6 +6,8 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent/dialect/sql"
|
||||||
|
"entgo.io/ent/dialect/sql/sqlgraph"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -125,3 +127,70 @@ func TypeValidator(_type Type) error {
|
||||||
return fmt.Errorf("itemfield: invalid enum value for type field: %q", _type)
|
return fmt.Errorf("itemfield: invalid enum value for type field: %q", _type)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OrderOption defines the ordering options for the ItemField queries.
|
||||||
|
type OrderOption func(*sql.Selector)
|
||||||
|
|
||||||
|
// ByID orders the results by the id field.
|
||||||
|
func ByID(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldID, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByCreatedAt orders the results by the created_at field.
|
||||||
|
func ByCreatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldCreatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByUpdatedAt orders the results by the updated_at field.
|
||||||
|
func ByUpdatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldUpdatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByName orders the results by the name field.
|
||||||
|
func ByName(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldName, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByDescription orders the results by the description field.
|
||||||
|
func ByDescription(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldDescription, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByType orders the results by the type field.
|
||||||
|
func ByType(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldType, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByTextValue orders the results by the text_value field.
|
||||||
|
func ByTextValue(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldTextValue, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByNumberValue orders the results by the number_value field.
|
||||||
|
func ByNumberValue(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldNumberValue, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByBooleanValue orders the results by the boolean_value field.
|
||||||
|
func ByBooleanValue(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldBooleanValue, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByTimeValue orders the results by the time_value field.
|
||||||
|
func ByTimeValue(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldTimeValue, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByItemField orders the results by item field.
|
||||||
|
func ByItemField(field string, opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newItemStep(), sql.OrderByField(field, opts...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func newItemStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(ItemInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.M2O, true, ItemTable, ItemColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -525,11 +525,7 @@ func HasItem() predicate.ItemField {
|
||||||
// HasItemWith applies the HasEdge predicate on the "item" edge with a given conditions (other predicates).
|
// HasItemWith applies the HasEdge predicate on the "item" edge with a given conditions (other predicates).
|
||||||
func HasItemWith(preds ...predicate.Item) predicate.ItemField {
|
func HasItemWith(preds ...predicate.Item) predicate.ItemField {
|
||||||
return predicate.ItemField(func(s *sql.Selector) {
|
return predicate.ItemField(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newItemStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(ItemInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.M2O, true, ItemTable, ItemColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
|
|
@ -173,7 +173,7 @@ func (ifc *ItemFieldCreate) Mutation() *ItemFieldMutation {
|
||||||
// Save creates the ItemField in the database.
|
// Save creates the ItemField in the database.
|
||||||
func (ifc *ItemFieldCreate) Save(ctx context.Context) (*ItemField, error) {
|
func (ifc *ItemFieldCreate) Save(ctx context.Context) (*ItemField, error) {
|
||||||
ifc.defaults()
|
ifc.defaults()
|
||||||
return withHooks[*ItemField, ItemFieldMutation](ctx, ifc.sqlSave, ifc.mutation, ifc.hooks)
|
return withHooks(ctx, ifc.sqlSave, ifc.mutation, ifc.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX calls Save and panics if Save returns an error.
|
// SaveX calls Save and panics if Save returns an error.
|
||||||
|
@ -377,8 +377,8 @@ func (ifcb *ItemFieldCreateBulk) Save(ctx context.Context) ([]*ItemField, error)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
builder.mutation = mutation
|
builder.mutation = mutation
|
||||||
nodes[i], specs[i] = builder.createSpec()
|
|
||||||
var err error
|
var err error
|
||||||
|
nodes[i], specs[i] = builder.createSpec()
|
||||||
if i < len(mutators)-1 {
|
if i < len(mutators)-1 {
|
||||||
_, err = mutators[i+1].Mutate(root, ifcb.builders[i+1].mutation)
|
_, err = mutators[i+1].Mutate(root, ifcb.builders[i+1].mutation)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -27,7 +27,7 @@ func (ifd *ItemFieldDelete) Where(ps ...predicate.ItemField) *ItemFieldDelete {
|
||||||
|
|
||||||
// Exec executes the deletion query and returns how many vertices were deleted.
|
// Exec executes the deletion query and returns how many vertices were deleted.
|
||||||
func (ifd *ItemFieldDelete) Exec(ctx context.Context) (int, error) {
|
func (ifd *ItemFieldDelete) Exec(ctx context.Context) (int, error) {
|
||||||
return withHooks[int, ItemFieldMutation](ctx, ifd.sqlExec, ifd.mutation, ifd.hooks)
|
return withHooks(ctx, ifd.sqlExec, ifd.mutation, ifd.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExecX is like Exec, but panics if an error occurs.
|
// ExecX is like Exec, but panics if an error occurs.
|
||||||
|
|
|
@ -20,7 +20,7 @@ import (
|
||||||
type ItemFieldQuery struct {
|
type ItemFieldQuery struct {
|
||||||
config
|
config
|
||||||
ctx *QueryContext
|
ctx *QueryContext
|
||||||
order []OrderFunc
|
order []itemfield.OrderOption
|
||||||
inters []Interceptor
|
inters []Interceptor
|
||||||
predicates []predicate.ItemField
|
predicates []predicate.ItemField
|
||||||
withItem *ItemQuery
|
withItem *ItemQuery
|
||||||
|
@ -56,7 +56,7 @@ func (ifq *ItemFieldQuery) Unique(unique bool) *ItemFieldQuery {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Order specifies how the records should be ordered.
|
// Order specifies how the records should be ordered.
|
||||||
func (ifq *ItemFieldQuery) Order(o ...OrderFunc) *ItemFieldQuery {
|
func (ifq *ItemFieldQuery) Order(o ...itemfield.OrderOption) *ItemFieldQuery {
|
||||||
ifq.order = append(ifq.order, o...)
|
ifq.order = append(ifq.order, o...)
|
||||||
return ifq
|
return ifq
|
||||||
}
|
}
|
||||||
|
@ -272,7 +272,7 @@ func (ifq *ItemFieldQuery) Clone() *ItemFieldQuery {
|
||||||
return &ItemFieldQuery{
|
return &ItemFieldQuery{
|
||||||
config: ifq.config,
|
config: ifq.config,
|
||||||
ctx: ifq.ctx.Clone(),
|
ctx: ifq.ctx.Clone(),
|
||||||
order: append([]OrderFunc{}, ifq.order...),
|
order: append([]itemfield.OrderOption{}, ifq.order...),
|
||||||
inters: append([]Interceptor{}, ifq.inters...),
|
inters: append([]Interceptor{}, ifq.inters...),
|
||||||
predicates: append([]predicate.ItemField{}, ifq.predicates...),
|
predicates: append([]predicate.ItemField{}, ifq.predicates...),
|
||||||
withItem: ifq.withItem.Clone(),
|
withItem: ifq.withItem.Clone(),
|
||||||
|
|
|
@ -176,7 +176,7 @@ func (ifu *ItemFieldUpdate) ClearItem() *ItemFieldUpdate {
|
||||||
// Save executes the query and returns the number of nodes affected by the update operation.
|
// Save executes the query and returns the number of nodes affected by the update operation.
|
||||||
func (ifu *ItemFieldUpdate) Save(ctx context.Context) (int, error) {
|
func (ifu *ItemFieldUpdate) Save(ctx context.Context) (int, error) {
|
||||||
ifu.defaults()
|
ifu.defaults()
|
||||||
return withHooks[int, ItemFieldMutation](ctx, ifu.sqlSave, ifu.mutation, ifu.hooks)
|
return withHooks(ctx, ifu.sqlSave, ifu.mutation, ifu.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
@ -490,7 +490,7 @@ func (ifuo *ItemFieldUpdateOne) Select(field string, fields ...string) *ItemFiel
|
||||||
// Save executes the query and returns the updated ItemField entity.
|
// Save executes the query and returns the updated ItemField entity.
|
||||||
func (ifuo *ItemFieldUpdateOne) Save(ctx context.Context) (*ItemField, error) {
|
func (ifuo *ItemFieldUpdateOne) Save(ctx context.Context) (*ItemField, error) {
|
||||||
ifuo.defaults()
|
ifuo.defaults()
|
||||||
return withHooks[*ItemField, ItemFieldMutation](ctx, ifuo.sqlSave, ifuo.mutation, ifuo.hooks)
|
return withHooks(ctx, ifuo.sqlSave, ifuo.mutation, ifuo.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent"
|
||||||
"entgo.io/ent/dialect/sql"
|
"entgo.io/ent/dialect/sql"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/ent/group"
|
"github.com/hay-kot/homebox/backend/internal/data/ent/group"
|
||||||
|
@ -32,6 +33,7 @@ type Label struct {
|
||||||
// The values are being populated by the LabelQuery when eager-loading is set.
|
// The values are being populated by the LabelQuery when eager-loading is set.
|
||||||
Edges LabelEdges `json:"edges"`
|
Edges LabelEdges `json:"edges"`
|
||||||
group_labels *uuid.UUID
|
group_labels *uuid.UUID
|
||||||
|
selectValues sql.SelectValues
|
||||||
}
|
}
|
||||||
|
|
||||||
// LabelEdges holds the relations/edges for other nodes in the graph.
|
// LabelEdges holds the relations/edges for other nodes in the graph.
|
||||||
|
@ -81,7 +83,7 @@ func (*Label) scanValues(columns []string) ([]any, error) {
|
||||||
case label.ForeignKeys[0]: // group_labels
|
case label.ForeignKeys[0]: // group_labels
|
||||||
values[i] = &sql.NullScanner{S: new(uuid.UUID)}
|
values[i] = &sql.NullScanner{S: new(uuid.UUID)}
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unexpected column %q for type Label", columns[i])
|
values[i] = new(sql.UnknownType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return values, nil
|
return values, nil
|
||||||
|
@ -138,11 +140,19 @@ func (l *Label) assignValues(columns []string, values []any) error {
|
||||||
l.group_labels = new(uuid.UUID)
|
l.group_labels = new(uuid.UUID)
|
||||||
*l.group_labels = *value.S.(*uuid.UUID)
|
*l.group_labels = *value.S.(*uuid.UUID)
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
l.selectValues.Set(columns[i], values[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Value returns the ent.Value that was dynamically selected and assigned to the Label.
|
||||||
|
// This includes values selected through modifiers, order, etc.
|
||||||
|
func (l *Label) Value(name string) (ent.Value, error) {
|
||||||
|
return l.selectValues.Get(name)
|
||||||
|
}
|
||||||
|
|
||||||
// QueryGroup queries the "group" edge of the Label entity.
|
// QueryGroup queries the "group" edge of the Label entity.
|
||||||
func (l *Label) QueryGroup() *GroupQuery {
|
func (l *Label) QueryGroup() *GroupQuery {
|
||||||
return NewLabelClient(l.config).QueryGroup(l)
|
return NewLabelClient(l.config).QueryGroup(l)
|
||||||
|
|
|
@ -5,6 +5,8 @@ package label
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent/dialect/sql"
|
||||||
|
"entgo.io/ent/dialect/sql/sqlgraph"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -96,3 +98,71 @@ var (
|
||||||
// DefaultID holds the default value on creation for the "id" field.
|
// DefaultID holds the default value on creation for the "id" field.
|
||||||
DefaultID func() uuid.UUID
|
DefaultID func() uuid.UUID
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// OrderOption defines the ordering options for the Label queries.
|
||||||
|
type OrderOption func(*sql.Selector)
|
||||||
|
|
||||||
|
// ByID orders the results by the id field.
|
||||||
|
func ByID(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldID, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByCreatedAt orders the results by the created_at field.
|
||||||
|
func ByCreatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldCreatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByUpdatedAt orders the results by the updated_at field.
|
||||||
|
func ByUpdatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldUpdatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByName orders the results by the name field.
|
||||||
|
func ByName(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldName, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByDescription orders the results by the description field.
|
||||||
|
func ByDescription(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldDescription, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByColor orders the results by the color field.
|
||||||
|
func ByColor(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldColor, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByGroupField orders the results by group field.
|
||||||
|
func ByGroupField(field string, opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newGroupStep(), sql.OrderByField(field, opts...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByItemsCount orders the results by items count.
|
||||||
|
func ByItemsCount(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborsCount(s, newItemsStep(), opts...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByItems orders the results by items terms.
|
||||||
|
func ByItems(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newItemsStep(), append([]sql.OrderTerm{term}, terms...)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func newGroupStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(GroupInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.M2O, true, GroupTable, GroupColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newItemsStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(ItemsInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.M2M, false, ItemsTable, ItemsPrimaryKey...),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -390,11 +390,7 @@ func HasGroup() predicate.Label {
|
||||||
// HasGroupWith applies the HasEdge predicate on the "group" edge with a given conditions (other predicates).
|
// HasGroupWith applies the HasEdge predicate on the "group" edge with a given conditions (other predicates).
|
||||||
func HasGroupWith(preds ...predicate.Group) predicate.Label {
|
func HasGroupWith(preds ...predicate.Group) predicate.Label {
|
||||||
return predicate.Label(func(s *sql.Selector) {
|
return predicate.Label(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newGroupStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(GroupInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.M2O, true, GroupTable, GroupColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -417,11 +413,7 @@ func HasItems() predicate.Label {
|
||||||
// HasItemsWith applies the HasEdge predicate on the "items" edge with a given conditions (other predicates).
|
// HasItemsWith applies the HasEdge predicate on the "items" edge with a given conditions (other predicates).
|
||||||
func HasItemsWith(preds ...predicate.Item) predicate.Label {
|
func HasItemsWith(preds ...predicate.Item) predicate.Label {
|
||||||
return predicate.Label(func(s *sql.Selector) {
|
return predicate.Label(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newItemsStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(ItemsInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.M2M, false, ItemsTable, ItemsPrimaryKey...),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
|
|
@ -133,7 +133,7 @@ func (lc *LabelCreate) Mutation() *LabelMutation {
|
||||||
// Save creates the Label in the database.
|
// Save creates the Label in the database.
|
||||||
func (lc *LabelCreate) Save(ctx context.Context) (*Label, error) {
|
func (lc *LabelCreate) Save(ctx context.Context) (*Label, error) {
|
||||||
lc.defaults()
|
lc.defaults()
|
||||||
return withHooks[*Label, LabelMutation](ctx, lc.sqlSave, lc.mutation, lc.hooks)
|
return withHooks(ctx, lc.sqlSave, lc.mutation, lc.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX calls Save and panics if Save returns an error.
|
// SaveX calls Save and panics if Save returns an error.
|
||||||
|
@ -318,8 +318,8 @@ func (lcb *LabelCreateBulk) Save(ctx context.Context) ([]*Label, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
builder.mutation = mutation
|
builder.mutation = mutation
|
||||||
nodes[i], specs[i] = builder.createSpec()
|
|
||||||
var err error
|
var err error
|
||||||
|
nodes[i], specs[i] = builder.createSpec()
|
||||||
if i < len(mutators)-1 {
|
if i < len(mutators)-1 {
|
||||||
_, err = mutators[i+1].Mutate(root, lcb.builders[i+1].mutation)
|
_, err = mutators[i+1].Mutate(root, lcb.builders[i+1].mutation)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -27,7 +27,7 @@ func (ld *LabelDelete) Where(ps ...predicate.Label) *LabelDelete {
|
||||||
|
|
||||||
// Exec executes the deletion query and returns how many vertices were deleted.
|
// Exec executes the deletion query and returns how many vertices were deleted.
|
||||||
func (ld *LabelDelete) Exec(ctx context.Context) (int, error) {
|
func (ld *LabelDelete) Exec(ctx context.Context) (int, error) {
|
||||||
return withHooks[int, LabelMutation](ctx, ld.sqlExec, ld.mutation, ld.hooks)
|
return withHooks(ctx, ld.sqlExec, ld.mutation, ld.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExecX is like Exec, but panics if an error occurs.
|
// ExecX is like Exec, but panics if an error occurs.
|
||||||
|
|
|
@ -22,7 +22,7 @@ import (
|
||||||
type LabelQuery struct {
|
type LabelQuery struct {
|
||||||
config
|
config
|
||||||
ctx *QueryContext
|
ctx *QueryContext
|
||||||
order []OrderFunc
|
order []label.OrderOption
|
||||||
inters []Interceptor
|
inters []Interceptor
|
||||||
predicates []predicate.Label
|
predicates []predicate.Label
|
||||||
withGroup *GroupQuery
|
withGroup *GroupQuery
|
||||||
|
@ -59,7 +59,7 @@ func (lq *LabelQuery) Unique(unique bool) *LabelQuery {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Order specifies how the records should be ordered.
|
// Order specifies how the records should be ordered.
|
||||||
func (lq *LabelQuery) Order(o ...OrderFunc) *LabelQuery {
|
func (lq *LabelQuery) Order(o ...label.OrderOption) *LabelQuery {
|
||||||
lq.order = append(lq.order, o...)
|
lq.order = append(lq.order, o...)
|
||||||
return lq
|
return lq
|
||||||
}
|
}
|
||||||
|
@ -297,7 +297,7 @@ func (lq *LabelQuery) Clone() *LabelQuery {
|
||||||
return &LabelQuery{
|
return &LabelQuery{
|
||||||
config: lq.config,
|
config: lq.config,
|
||||||
ctx: lq.ctx.Clone(),
|
ctx: lq.ctx.Clone(),
|
||||||
order: append([]OrderFunc{}, lq.order...),
|
order: append([]label.OrderOption{}, lq.order...),
|
||||||
inters: append([]Interceptor{}, lq.inters...),
|
inters: append([]Interceptor{}, lq.inters...),
|
||||||
predicates: append([]predicate.Label{}, lq.predicates...),
|
predicates: append([]predicate.Label{}, lq.predicates...),
|
||||||
withGroup: lq.withGroup.Clone(),
|
withGroup: lq.withGroup.Clone(),
|
||||||
|
|
|
@ -144,7 +144,7 @@ func (lu *LabelUpdate) RemoveItems(i ...*Item) *LabelUpdate {
|
||||||
// Save executes the query and returns the number of nodes affected by the update operation.
|
// Save executes the query and returns the number of nodes affected by the update operation.
|
||||||
func (lu *LabelUpdate) Save(ctx context.Context) (int, error) {
|
func (lu *LabelUpdate) Save(ctx context.Context) (int, error) {
|
||||||
lu.defaults()
|
lu.defaults()
|
||||||
return withHooks[int, LabelMutation](ctx, lu.sqlSave, lu.mutation, lu.hooks)
|
return withHooks(ctx, lu.sqlSave, lu.mutation, lu.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
@ -450,7 +450,7 @@ func (luo *LabelUpdateOne) Select(field string, fields ...string) *LabelUpdateOn
|
||||||
// Save executes the query and returns the updated Label entity.
|
// Save executes the query and returns the updated Label entity.
|
||||||
func (luo *LabelUpdateOne) Save(ctx context.Context) (*Label, error) {
|
func (luo *LabelUpdateOne) Save(ctx context.Context) (*Label, error) {
|
||||||
luo.defaults()
|
luo.defaults()
|
||||||
return withHooks[*Label, LabelMutation](ctx, luo.sqlSave, luo.mutation, luo.hooks)
|
return withHooks(ctx, luo.sqlSave, luo.mutation, luo.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent"
|
||||||
"entgo.io/ent/dialect/sql"
|
"entgo.io/ent/dialect/sql"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/ent/group"
|
"github.com/hay-kot/homebox/backend/internal/data/ent/group"
|
||||||
|
@ -31,6 +32,7 @@ type Location struct {
|
||||||
Edges LocationEdges `json:"edges"`
|
Edges LocationEdges `json:"edges"`
|
||||||
group_locations *uuid.UUID
|
group_locations *uuid.UUID
|
||||||
location_children *uuid.UUID
|
location_children *uuid.UUID
|
||||||
|
selectValues sql.SelectValues
|
||||||
}
|
}
|
||||||
|
|
||||||
// LocationEdges holds the relations/edges for other nodes in the graph.
|
// LocationEdges holds the relations/edges for other nodes in the graph.
|
||||||
|
@ -108,7 +110,7 @@ func (*Location) scanValues(columns []string) ([]any, error) {
|
||||||
case location.ForeignKeys[1]: // location_children
|
case location.ForeignKeys[1]: // location_children
|
||||||
values[i] = &sql.NullScanner{S: new(uuid.UUID)}
|
values[i] = &sql.NullScanner{S: new(uuid.UUID)}
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unexpected column %q for type Location", columns[i])
|
values[i] = new(sql.UnknownType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return values, nil
|
return values, nil
|
||||||
|
@ -166,11 +168,19 @@ func (l *Location) assignValues(columns []string, values []any) error {
|
||||||
l.location_children = new(uuid.UUID)
|
l.location_children = new(uuid.UUID)
|
||||||
*l.location_children = *value.S.(*uuid.UUID)
|
*l.location_children = *value.S.(*uuid.UUID)
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
l.selectValues.Set(columns[i], values[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Value returns the ent.Value that was dynamically selected and assigned to the Location.
|
||||||
|
// This includes values selected through modifiers, order, etc.
|
||||||
|
func (l *Location) Value(name string) (ent.Value, error) {
|
||||||
|
return l.selectValues.Get(name)
|
||||||
|
}
|
||||||
|
|
||||||
// QueryGroup queries the "group" edge of the Location entity.
|
// QueryGroup queries the "group" edge of the Location entity.
|
||||||
func (l *Location) QueryGroup() *GroupQuery {
|
func (l *Location) QueryGroup() *GroupQuery {
|
||||||
return NewLocationClient(l.config).QueryGroup(l)
|
return NewLocationClient(l.config).QueryGroup(l)
|
||||||
|
|
|
@ -5,6 +5,8 @@ package location
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent/dialect/sql"
|
||||||
|
"entgo.io/ent/dialect/sql/sqlgraph"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -100,3 +102,101 @@ var (
|
||||||
// DefaultID holds the default value on creation for the "id" field.
|
// DefaultID holds the default value on creation for the "id" field.
|
||||||
DefaultID func() uuid.UUID
|
DefaultID func() uuid.UUID
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// OrderOption defines the ordering options for the Location queries.
|
||||||
|
type OrderOption func(*sql.Selector)
|
||||||
|
|
||||||
|
// ByID orders the results by the id field.
|
||||||
|
func ByID(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldID, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByCreatedAt orders the results by the created_at field.
|
||||||
|
func ByCreatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldCreatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByUpdatedAt orders the results by the updated_at field.
|
||||||
|
func ByUpdatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldUpdatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByName orders the results by the name field.
|
||||||
|
func ByName(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldName, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByDescription orders the results by the description field.
|
||||||
|
func ByDescription(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldDescription, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByGroupField orders the results by group field.
|
||||||
|
func ByGroupField(field string, opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newGroupStep(), sql.OrderByField(field, opts...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByParentField orders the results by parent field.
|
||||||
|
func ByParentField(field string, opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newParentStep(), sql.OrderByField(field, opts...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByChildrenCount orders the results by children count.
|
||||||
|
func ByChildrenCount(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborsCount(s, newChildrenStep(), opts...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByChildren orders the results by children terms.
|
||||||
|
func ByChildren(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newChildrenStep(), append([]sql.OrderTerm{term}, terms...)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByItemsCount orders the results by items count.
|
||||||
|
func ByItemsCount(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborsCount(s, newItemsStep(), opts...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByItems orders the results by items terms.
|
||||||
|
func ByItems(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newItemsStep(), append([]sql.OrderTerm{term}, terms...)...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func newGroupStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(GroupInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.M2O, true, GroupTable, GroupColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newParentStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(Table, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.M2O, true, ParentTable, ParentColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newChildrenStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(Table, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.O2M, false, ChildrenTable, ChildrenColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newItemsStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(ItemsInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.O2M, false, ItemsTable, ItemsColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -310,11 +310,7 @@ func HasGroup() predicate.Location {
|
||||||
// HasGroupWith applies the HasEdge predicate on the "group" edge with a given conditions (other predicates).
|
// HasGroupWith applies the HasEdge predicate on the "group" edge with a given conditions (other predicates).
|
||||||
func HasGroupWith(preds ...predicate.Group) predicate.Location {
|
func HasGroupWith(preds ...predicate.Group) predicate.Location {
|
||||||
return predicate.Location(func(s *sql.Selector) {
|
return predicate.Location(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newGroupStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(GroupInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.M2O, true, GroupTable, GroupColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -337,11 +333,7 @@ func HasParent() predicate.Location {
|
||||||
// HasParentWith applies the HasEdge predicate on the "parent" edge with a given conditions (other predicates).
|
// HasParentWith applies the HasEdge predicate on the "parent" edge with a given conditions (other predicates).
|
||||||
func HasParentWith(preds ...predicate.Location) predicate.Location {
|
func HasParentWith(preds ...predicate.Location) predicate.Location {
|
||||||
return predicate.Location(func(s *sql.Selector) {
|
return predicate.Location(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newParentStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(Table, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.M2O, true, ParentTable, ParentColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -364,11 +356,7 @@ func HasChildren() predicate.Location {
|
||||||
// HasChildrenWith applies the HasEdge predicate on the "children" edge with a given conditions (other predicates).
|
// HasChildrenWith applies the HasEdge predicate on the "children" edge with a given conditions (other predicates).
|
||||||
func HasChildrenWith(preds ...predicate.Location) predicate.Location {
|
func HasChildrenWith(preds ...predicate.Location) predicate.Location {
|
||||||
return predicate.Location(func(s *sql.Selector) {
|
return predicate.Location(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newChildrenStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(Table, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.O2M, false, ChildrenTable, ChildrenColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -391,11 +379,7 @@ func HasItems() predicate.Location {
|
||||||
// HasItemsWith applies the HasEdge predicate on the "items" edge with a given conditions (other predicates).
|
// HasItemsWith applies the HasEdge predicate on the "items" edge with a given conditions (other predicates).
|
||||||
func HasItemsWith(preds ...predicate.Item) predicate.Location {
|
func HasItemsWith(preds ...predicate.Item) predicate.Location {
|
||||||
return predicate.Location(func(s *sql.Selector) {
|
return predicate.Location(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newItemsStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(ItemsInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.O2M, false, ItemsTable, ItemsColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
|
|
@ -153,7 +153,7 @@ func (lc *LocationCreate) Mutation() *LocationMutation {
|
||||||
// Save creates the Location in the database.
|
// Save creates the Location in the database.
|
||||||
func (lc *LocationCreate) Save(ctx context.Context) (*Location, error) {
|
func (lc *LocationCreate) Save(ctx context.Context) (*Location, error) {
|
||||||
lc.defaults()
|
lc.defaults()
|
||||||
return withHooks[*Location, LocationMutation](ctx, lc.sqlSave, lc.mutation, lc.hooks)
|
return withHooks(ctx, lc.sqlSave, lc.mutation, lc.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX calls Save and panics if Save returns an error.
|
// SaveX calls Save and panics if Save returns an error.
|
||||||
|
@ -362,8 +362,8 @@ func (lcb *LocationCreateBulk) Save(ctx context.Context) ([]*Location, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
builder.mutation = mutation
|
builder.mutation = mutation
|
||||||
nodes[i], specs[i] = builder.createSpec()
|
|
||||||
var err error
|
var err error
|
||||||
|
nodes[i], specs[i] = builder.createSpec()
|
||||||
if i < len(mutators)-1 {
|
if i < len(mutators)-1 {
|
||||||
_, err = mutators[i+1].Mutate(root, lcb.builders[i+1].mutation)
|
_, err = mutators[i+1].Mutate(root, lcb.builders[i+1].mutation)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -27,7 +27,7 @@ func (ld *LocationDelete) Where(ps ...predicate.Location) *LocationDelete {
|
||||||
|
|
||||||
// Exec executes the deletion query and returns how many vertices were deleted.
|
// Exec executes the deletion query and returns how many vertices were deleted.
|
||||||
func (ld *LocationDelete) Exec(ctx context.Context) (int, error) {
|
func (ld *LocationDelete) Exec(ctx context.Context) (int, error) {
|
||||||
return withHooks[int, LocationMutation](ctx, ld.sqlExec, ld.mutation, ld.hooks)
|
return withHooks(ctx, ld.sqlExec, ld.mutation, ld.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExecX is like Exec, but panics if an error occurs.
|
// ExecX is like Exec, but panics if an error occurs.
|
||||||
|
|
|
@ -22,7 +22,7 @@ import (
|
||||||
type LocationQuery struct {
|
type LocationQuery struct {
|
||||||
config
|
config
|
||||||
ctx *QueryContext
|
ctx *QueryContext
|
||||||
order []OrderFunc
|
order []location.OrderOption
|
||||||
inters []Interceptor
|
inters []Interceptor
|
||||||
predicates []predicate.Location
|
predicates []predicate.Location
|
||||||
withGroup *GroupQuery
|
withGroup *GroupQuery
|
||||||
|
@ -61,7 +61,7 @@ func (lq *LocationQuery) Unique(unique bool) *LocationQuery {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Order specifies how the records should be ordered.
|
// Order specifies how the records should be ordered.
|
||||||
func (lq *LocationQuery) Order(o ...OrderFunc) *LocationQuery {
|
func (lq *LocationQuery) Order(o ...location.OrderOption) *LocationQuery {
|
||||||
lq.order = append(lq.order, o...)
|
lq.order = append(lq.order, o...)
|
||||||
return lq
|
return lq
|
||||||
}
|
}
|
||||||
|
@ -343,7 +343,7 @@ func (lq *LocationQuery) Clone() *LocationQuery {
|
||||||
return &LocationQuery{
|
return &LocationQuery{
|
||||||
config: lq.config,
|
config: lq.config,
|
||||||
ctx: lq.ctx.Clone(),
|
ctx: lq.ctx.Clone(),
|
||||||
order: append([]OrderFunc{}, lq.order...),
|
order: append([]location.OrderOption{}, lq.order...),
|
||||||
inters: append([]Interceptor{}, lq.inters...),
|
inters: append([]Interceptor{}, lq.inters...),
|
||||||
predicates: append([]predicate.Location{}, lq.predicates...),
|
predicates: append([]predicate.Location{}, lq.predicates...),
|
||||||
withGroup: lq.withGroup.Clone(),
|
withGroup: lq.withGroup.Clone(),
|
||||||
|
@ -615,7 +615,7 @@ func (lq *LocationQuery) loadChildren(ctx context.Context, query *LocationQuery,
|
||||||
}
|
}
|
||||||
query.withFKs = true
|
query.withFKs = true
|
||||||
query.Where(predicate.Location(func(s *sql.Selector) {
|
query.Where(predicate.Location(func(s *sql.Selector) {
|
||||||
s.Where(sql.InValues(location.ChildrenColumn, fks...))
|
s.Where(sql.InValues(s.C(location.ChildrenColumn), fks...))
|
||||||
}))
|
}))
|
||||||
neighbors, err := query.All(ctx)
|
neighbors, err := query.All(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -628,7 +628,7 @@ func (lq *LocationQuery) loadChildren(ctx context.Context, query *LocationQuery,
|
||||||
}
|
}
|
||||||
node, ok := nodeids[*fk]
|
node, ok := nodeids[*fk]
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf(`unexpected foreign-key "location_children" returned %v for node %v`, *fk, n.ID)
|
return fmt.Errorf(`unexpected referenced foreign-key "location_children" returned %v for node %v`, *fk, n.ID)
|
||||||
}
|
}
|
||||||
assign(node, n)
|
assign(node, n)
|
||||||
}
|
}
|
||||||
|
@ -646,7 +646,7 @@ func (lq *LocationQuery) loadItems(ctx context.Context, query *ItemQuery, nodes
|
||||||
}
|
}
|
||||||
query.withFKs = true
|
query.withFKs = true
|
||||||
query.Where(predicate.Item(func(s *sql.Selector) {
|
query.Where(predicate.Item(func(s *sql.Selector) {
|
||||||
s.Where(sql.InValues(location.ItemsColumn, fks...))
|
s.Where(sql.InValues(s.C(location.ItemsColumn), fks...))
|
||||||
}))
|
}))
|
||||||
neighbors, err := query.All(ctx)
|
neighbors, err := query.All(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -659,7 +659,7 @@ func (lq *LocationQuery) loadItems(ctx context.Context, query *ItemQuery, nodes
|
||||||
}
|
}
|
||||||
node, ok := nodeids[*fk]
|
node, ok := nodeids[*fk]
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf(`unexpected foreign-key "location_items" returned %v for node %v`, *fk, n.ID)
|
return fmt.Errorf(`unexpected referenced foreign-key "location_items" returned %v for node %v`, *fk, n.ID)
|
||||||
}
|
}
|
||||||
assign(node, n)
|
assign(node, n)
|
||||||
}
|
}
|
||||||
|
|
|
@ -185,7 +185,7 @@ func (lu *LocationUpdate) RemoveItems(i ...*Item) *LocationUpdate {
|
||||||
// Save executes the query and returns the number of nodes affected by the update operation.
|
// Save executes the query and returns the number of nodes affected by the update operation.
|
||||||
func (lu *LocationUpdate) Save(ctx context.Context) (int, error) {
|
func (lu *LocationUpdate) Save(ctx context.Context) (int, error) {
|
||||||
lu.defaults()
|
lu.defaults()
|
||||||
return withHooks[int, LocationMutation](ctx, lu.sqlSave, lu.mutation, lu.hooks)
|
return withHooks(ctx, lu.sqlSave, lu.mutation, lu.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
@ -595,7 +595,7 @@ func (luo *LocationUpdateOne) Select(field string, fields ...string) *LocationUp
|
||||||
// Save executes the query and returns the updated Location entity.
|
// Save executes the query and returns the updated Location entity.
|
||||||
func (luo *LocationUpdateOne) Save(ctx context.Context) (*Location, error) {
|
func (luo *LocationUpdateOne) Save(ctx context.Context) (*Location, error) {
|
||||||
luo.defaults()
|
luo.defaults()
|
||||||
return withHooks[*Location, LocationMutation](ctx, luo.sqlSave, luo.mutation, luo.hooks)
|
return withHooks(ctx, luo.sqlSave, luo.mutation, luo.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent"
|
||||||
"entgo.io/ent/dialect/sql"
|
"entgo.io/ent/dialect/sql"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/ent/item"
|
"github.com/hay-kot/homebox/backend/internal/data/ent/item"
|
||||||
|
@ -36,7 +37,8 @@ type MaintenanceEntry struct {
|
||||||
Cost float64 `json:"cost,omitempty"`
|
Cost float64 `json:"cost,omitempty"`
|
||||||
// Edges holds the relations/edges for other nodes in the graph.
|
// Edges holds the relations/edges for other nodes in the graph.
|
||||||
// The values are being populated by the MaintenanceEntryQuery when eager-loading is set.
|
// The values are being populated by the MaintenanceEntryQuery when eager-loading is set.
|
||||||
Edges MaintenanceEntryEdges `json:"edges"`
|
Edges MaintenanceEntryEdges `json:"edges"`
|
||||||
|
selectValues sql.SelectValues
|
||||||
}
|
}
|
||||||
|
|
||||||
// MaintenanceEntryEdges holds the relations/edges for other nodes in the graph.
|
// MaintenanceEntryEdges holds the relations/edges for other nodes in the graph.
|
||||||
|
@ -75,7 +77,7 @@ func (*MaintenanceEntry) scanValues(columns []string) ([]any, error) {
|
||||||
case maintenanceentry.FieldID, maintenanceentry.FieldItemID:
|
case maintenanceentry.FieldID, maintenanceentry.FieldItemID:
|
||||||
values[i] = new(uuid.UUID)
|
values[i] = new(uuid.UUID)
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unexpected column %q for type MaintenanceEntry", columns[i])
|
values[i] = new(sql.UnknownType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return values, nil
|
return values, nil
|
||||||
|
@ -143,11 +145,19 @@ func (me *MaintenanceEntry) assignValues(columns []string, values []any) error {
|
||||||
} else if value.Valid {
|
} else if value.Valid {
|
||||||
me.Cost = value.Float64
|
me.Cost = value.Float64
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
me.selectValues.Set(columns[i], values[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Value returns the ent.Value that was dynamically selected and assigned to the MaintenanceEntry.
|
||||||
|
// This includes values selected through modifiers, order, etc.
|
||||||
|
func (me *MaintenanceEntry) Value(name string) (ent.Value, error) {
|
||||||
|
return me.selectValues.Get(name)
|
||||||
|
}
|
||||||
|
|
||||||
// QueryItem queries the "item" edge of the MaintenanceEntry entity.
|
// QueryItem queries the "item" edge of the MaintenanceEntry entity.
|
||||||
func (me *MaintenanceEntry) QueryItem() *ItemQuery {
|
func (me *MaintenanceEntry) QueryItem() *ItemQuery {
|
||||||
return NewMaintenanceEntryClient(me.config).QueryItem(me)
|
return NewMaintenanceEntryClient(me.config).QueryItem(me)
|
||||||
|
|
|
@ -5,6 +5,8 @@ package maintenanceentry
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent/dialect/sql"
|
||||||
|
"entgo.io/ent/dialect/sql/sqlgraph"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -81,3 +83,65 @@ var (
|
||||||
// DefaultID holds the default value on creation for the "id" field.
|
// DefaultID holds the default value on creation for the "id" field.
|
||||||
DefaultID func() uuid.UUID
|
DefaultID func() uuid.UUID
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// OrderOption defines the ordering options for the MaintenanceEntry queries.
|
||||||
|
type OrderOption func(*sql.Selector)
|
||||||
|
|
||||||
|
// ByID orders the results by the id field.
|
||||||
|
func ByID(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldID, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByCreatedAt orders the results by the created_at field.
|
||||||
|
func ByCreatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldCreatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByUpdatedAt orders the results by the updated_at field.
|
||||||
|
func ByUpdatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldUpdatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByItemID orders the results by the item_id field.
|
||||||
|
func ByItemID(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldItemID, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByDate orders the results by the date field.
|
||||||
|
func ByDate(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldDate, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByScheduledDate orders the results by the scheduled_date field.
|
||||||
|
func ByScheduledDate(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldScheduledDate, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByName orders the results by the name field.
|
||||||
|
func ByName(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldName, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByDescription orders the results by the description field.
|
||||||
|
func ByDescription(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldDescription, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByCost orders the results by the cost field.
|
||||||
|
func ByCost(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldCost, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByItemField orders the results by item field.
|
||||||
|
func ByItemField(field string, opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newItemStep(), sql.OrderByField(field, opts...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func newItemStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(ItemInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.M2O, true, ItemTable, ItemColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -490,11 +490,7 @@ func HasItem() predicate.MaintenanceEntry {
|
||||||
// HasItemWith applies the HasEdge predicate on the "item" edge with a given conditions (other predicates).
|
// HasItemWith applies the HasEdge predicate on the "item" edge with a given conditions (other predicates).
|
||||||
func HasItemWith(preds ...predicate.Item) predicate.MaintenanceEntry {
|
func HasItemWith(preds ...predicate.Item) predicate.MaintenanceEntry {
|
||||||
return predicate.MaintenanceEntry(func(s *sql.Selector) {
|
return predicate.MaintenanceEntry(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newItemStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(ItemInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.M2O, true, ItemTable, ItemColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
|
|
@ -145,7 +145,7 @@ func (mec *MaintenanceEntryCreate) Mutation() *MaintenanceEntryMutation {
|
||||||
// Save creates the MaintenanceEntry in the database.
|
// Save creates the MaintenanceEntry in the database.
|
||||||
func (mec *MaintenanceEntryCreate) Save(ctx context.Context) (*MaintenanceEntry, error) {
|
func (mec *MaintenanceEntryCreate) Save(ctx context.Context) (*MaintenanceEntry, error) {
|
||||||
mec.defaults()
|
mec.defaults()
|
||||||
return withHooks[*MaintenanceEntry, MaintenanceEntryMutation](ctx, mec.sqlSave, mec.mutation, mec.hooks)
|
return withHooks(ctx, mec.sqlSave, mec.mutation, mec.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX calls Save and panics if Save returns an error.
|
// SaveX calls Save and panics if Save returns an error.
|
||||||
|
@ -327,8 +327,8 @@ func (mecb *MaintenanceEntryCreateBulk) Save(ctx context.Context) ([]*Maintenanc
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
builder.mutation = mutation
|
builder.mutation = mutation
|
||||||
nodes[i], specs[i] = builder.createSpec()
|
|
||||||
var err error
|
var err error
|
||||||
|
nodes[i], specs[i] = builder.createSpec()
|
||||||
if i < len(mutators)-1 {
|
if i < len(mutators)-1 {
|
||||||
_, err = mutators[i+1].Mutate(root, mecb.builders[i+1].mutation)
|
_, err = mutators[i+1].Mutate(root, mecb.builders[i+1].mutation)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -27,7 +27,7 @@ func (med *MaintenanceEntryDelete) Where(ps ...predicate.MaintenanceEntry) *Main
|
||||||
|
|
||||||
// Exec executes the deletion query and returns how many vertices were deleted.
|
// Exec executes the deletion query and returns how many vertices were deleted.
|
||||||
func (med *MaintenanceEntryDelete) Exec(ctx context.Context) (int, error) {
|
func (med *MaintenanceEntryDelete) Exec(ctx context.Context) (int, error) {
|
||||||
return withHooks[int, MaintenanceEntryMutation](ctx, med.sqlExec, med.mutation, med.hooks)
|
return withHooks(ctx, med.sqlExec, med.mutation, med.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExecX is like Exec, but panics if an error occurs.
|
// ExecX is like Exec, but panics if an error occurs.
|
||||||
|
|
|
@ -20,7 +20,7 @@ import (
|
||||||
type MaintenanceEntryQuery struct {
|
type MaintenanceEntryQuery struct {
|
||||||
config
|
config
|
||||||
ctx *QueryContext
|
ctx *QueryContext
|
||||||
order []OrderFunc
|
order []maintenanceentry.OrderOption
|
||||||
inters []Interceptor
|
inters []Interceptor
|
||||||
predicates []predicate.MaintenanceEntry
|
predicates []predicate.MaintenanceEntry
|
||||||
withItem *ItemQuery
|
withItem *ItemQuery
|
||||||
|
@ -55,7 +55,7 @@ func (meq *MaintenanceEntryQuery) Unique(unique bool) *MaintenanceEntryQuery {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Order specifies how the records should be ordered.
|
// Order specifies how the records should be ordered.
|
||||||
func (meq *MaintenanceEntryQuery) Order(o ...OrderFunc) *MaintenanceEntryQuery {
|
func (meq *MaintenanceEntryQuery) Order(o ...maintenanceentry.OrderOption) *MaintenanceEntryQuery {
|
||||||
meq.order = append(meq.order, o...)
|
meq.order = append(meq.order, o...)
|
||||||
return meq
|
return meq
|
||||||
}
|
}
|
||||||
|
@ -271,7 +271,7 @@ func (meq *MaintenanceEntryQuery) Clone() *MaintenanceEntryQuery {
|
||||||
return &MaintenanceEntryQuery{
|
return &MaintenanceEntryQuery{
|
||||||
config: meq.config,
|
config: meq.config,
|
||||||
ctx: meq.ctx.Clone(),
|
ctx: meq.ctx.Clone(),
|
||||||
order: append([]OrderFunc{}, meq.order...),
|
order: append([]maintenanceentry.OrderOption{}, meq.order...),
|
||||||
inters: append([]Interceptor{}, meq.inters...),
|
inters: append([]Interceptor{}, meq.inters...),
|
||||||
predicates: append([]predicate.MaintenanceEntry{}, meq.predicates...),
|
predicates: append([]predicate.MaintenanceEntry{}, meq.predicates...),
|
||||||
withItem: meq.withItem.Clone(),
|
withItem: meq.withItem.Clone(),
|
||||||
|
@ -456,6 +456,9 @@ func (meq *MaintenanceEntryQuery) querySpec() *sqlgraph.QuerySpec {
|
||||||
_spec.Node.Columns = append(_spec.Node.Columns, fields[i])
|
_spec.Node.Columns = append(_spec.Node.Columns, fields[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if meq.withItem != nil {
|
||||||
|
_spec.Node.AddColumnOnce(maintenanceentry.FieldItemID)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ps := meq.predicates; len(ps) > 0 {
|
if ps := meq.predicates; len(ps) > 0 {
|
||||||
_spec.Predicate = func(selector *sql.Selector) {
|
_spec.Predicate = func(selector *sql.Selector) {
|
||||||
|
|
|
@ -148,7 +148,7 @@ func (meu *MaintenanceEntryUpdate) ClearItem() *MaintenanceEntryUpdate {
|
||||||
// Save executes the query and returns the number of nodes affected by the update operation.
|
// Save executes the query and returns the number of nodes affected by the update operation.
|
||||||
func (meu *MaintenanceEntryUpdate) Save(ctx context.Context) (int, error) {
|
func (meu *MaintenanceEntryUpdate) Save(ctx context.Context) (int, error) {
|
||||||
meu.defaults()
|
meu.defaults()
|
||||||
return withHooks[int, MaintenanceEntryMutation](ctx, meu.sqlSave, meu.mutation, meu.hooks)
|
return withHooks(ctx, meu.sqlSave, meu.mutation, meu.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
@ -421,7 +421,7 @@ func (meuo *MaintenanceEntryUpdateOne) Select(field string, fields ...string) *M
|
||||||
// Save executes the query and returns the updated MaintenanceEntry entity.
|
// Save executes the query and returns the updated MaintenanceEntry entity.
|
||||||
func (meuo *MaintenanceEntryUpdateOne) Save(ctx context.Context) (*MaintenanceEntry, error) {
|
func (meuo *MaintenanceEntryUpdateOne) Save(ctx context.Context) (*MaintenanceEntry, error) {
|
||||||
meuo.defaults()
|
meuo.defaults()
|
||||||
return withHooks[*MaintenanceEntry, MaintenanceEntryMutation](ctx, meuo.sqlSave, meuo.mutation, meuo.hooks)
|
return withHooks(ctx, meuo.sqlSave, meuo.mutation, meuo.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX is like Save, but panics if an error occurs.
|
// SaveX is like Save, but panics if an error occurs.
|
||||||
|
|
|
@ -116,7 +116,7 @@ var (
|
||||||
{Name: "created_at", Type: field.TypeTime},
|
{Name: "created_at", Type: field.TypeTime},
|
||||||
{Name: "updated_at", Type: field.TypeTime},
|
{Name: "updated_at", Type: field.TypeTime},
|
||||||
{Name: "name", Type: field.TypeString, Size: 255},
|
{Name: "name", Type: field.TypeString, Size: 255},
|
||||||
{Name: "currency", Type: field.TypeEnum, Enums: []string{"usd", "eur", "gbp", "jpy", "zar", "aud", "nok", "nzd", "sek", "dkk", "inr", "rmb", "bgn", "chf", "pln", "try", "ron", "czk"}, Default: "usd"},
|
{Name: "currency", Type: field.TypeEnum, Enums: []string{"aed", "aud", "bgn", "brl", "cad", "chf", "cny", "czk", "dkk", "eur", "gbp", "hkd", "idr", "inr", "jpy", "krw", "mxn", "nok", "nzd", "pln", "rmb", "ron", "rub", "sar", "sek", "sgd", "thb", "try", "usd", "zar"}, Default: "usd"},
|
||||||
}
|
}
|
||||||
// GroupsTable holds the schema information for the "groups" table.
|
// GroupsTable holds the schema information for the "groups" table.
|
||||||
GroupsTable = &schema.Table{
|
GroupsTable = &schema.Table{
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent"
|
||||||
"entgo.io/ent/dialect/sql"
|
"entgo.io/ent/dialect/sql"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/hay-kot/homebox/backend/internal/data/ent/group"
|
"github.com/hay-kot/homebox/backend/internal/data/ent/group"
|
||||||
|
@ -35,7 +36,8 @@ type Notifier struct {
|
||||||
IsActive bool `json:"is_active,omitempty"`
|
IsActive bool `json:"is_active,omitempty"`
|
||||||
// Edges holds the relations/edges for other nodes in the graph.
|
// Edges holds the relations/edges for other nodes in the graph.
|
||||||
// The values are being populated by the NotifierQuery when eager-loading is set.
|
// The values are being populated by the NotifierQuery when eager-loading is set.
|
||||||
Edges NotifierEdges `json:"edges"`
|
Edges NotifierEdges `json:"edges"`
|
||||||
|
selectValues sql.SelectValues
|
||||||
}
|
}
|
||||||
|
|
||||||
// NotifierEdges holds the relations/edges for other nodes in the graph.
|
// NotifierEdges holds the relations/edges for other nodes in the graph.
|
||||||
|
@ -89,7 +91,7 @@ func (*Notifier) scanValues(columns []string) ([]any, error) {
|
||||||
case notifier.FieldID, notifier.FieldGroupID, notifier.FieldUserID:
|
case notifier.FieldID, notifier.FieldGroupID, notifier.FieldUserID:
|
||||||
values[i] = new(uuid.UUID)
|
values[i] = new(uuid.UUID)
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unexpected column %q for type Notifier", columns[i])
|
values[i] = new(sql.UnknownType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return values, nil
|
return values, nil
|
||||||
|
@ -151,11 +153,19 @@ func (n *Notifier) assignValues(columns []string, values []any) error {
|
||||||
} else if value.Valid {
|
} else if value.Valid {
|
||||||
n.IsActive = value.Bool
|
n.IsActive = value.Bool
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
n.selectValues.Set(columns[i], values[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Value returns the ent.Value that was dynamically selected and assigned to the Notifier.
|
||||||
|
// This includes values selected through modifiers, order, etc.
|
||||||
|
func (n *Notifier) Value(name string) (ent.Value, error) {
|
||||||
|
return n.selectValues.Get(name)
|
||||||
|
}
|
||||||
|
|
||||||
// QueryGroup queries the "group" edge of the Notifier entity.
|
// QueryGroup queries the "group" edge of the Notifier entity.
|
||||||
func (n *Notifier) QueryGroup() *GroupQuery {
|
func (n *Notifier) QueryGroup() *GroupQuery {
|
||||||
return NewNotifierClient(n.config).QueryGroup(n)
|
return NewNotifierClient(n.config).QueryGroup(n)
|
||||||
|
|
|
@ -5,6 +5,8 @@ package notifier
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"entgo.io/ent/dialect/sql"
|
||||||
|
"entgo.io/ent/dialect/sql/sqlgraph"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -87,3 +89,74 @@ var (
|
||||||
// DefaultID holds the default value on creation for the "id" field.
|
// DefaultID holds the default value on creation for the "id" field.
|
||||||
DefaultID func() uuid.UUID
|
DefaultID func() uuid.UUID
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// OrderOption defines the ordering options for the Notifier queries.
|
||||||
|
type OrderOption func(*sql.Selector)
|
||||||
|
|
||||||
|
// ByID orders the results by the id field.
|
||||||
|
func ByID(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldID, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByCreatedAt orders the results by the created_at field.
|
||||||
|
func ByCreatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldCreatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByUpdatedAt orders the results by the updated_at field.
|
||||||
|
func ByUpdatedAt(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldUpdatedAt, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByGroupID orders the results by the group_id field.
|
||||||
|
func ByGroupID(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldGroupID, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByUserID orders the results by the user_id field.
|
||||||
|
func ByUserID(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldUserID, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByName orders the results by the name field.
|
||||||
|
func ByName(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldName, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByURL orders the results by the url field.
|
||||||
|
func ByURL(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldURL, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByIsActive orders the results by the is_active field.
|
||||||
|
func ByIsActive(opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return sql.OrderByField(FieldIsActive, opts...).ToFunc()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByGroupField orders the results by group field.
|
||||||
|
func ByGroupField(field string, opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newGroupStep(), sql.OrderByField(field, opts...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByUserField orders the results by user field.
|
||||||
|
func ByUserField(field string, opts ...sql.OrderTermOption) OrderOption {
|
||||||
|
return func(s *sql.Selector) {
|
||||||
|
sqlgraph.OrderByNeighborTerms(s, newUserStep(), sql.OrderByField(field, opts...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func newGroupStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(GroupInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.M2O, true, GroupTable, GroupColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func newUserStep() *sqlgraph.Step {
|
||||||
|
return sqlgraph.NewStep(
|
||||||
|
sqlgraph.From(Table, FieldID),
|
||||||
|
sqlgraph.To(UserInverseTable, FieldID),
|
||||||
|
sqlgraph.Edge(sqlgraph.M2O, true, UserTable, UserColumn),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -365,11 +365,7 @@ func HasGroup() predicate.Notifier {
|
||||||
// HasGroupWith applies the HasEdge predicate on the "group" edge with a given conditions (other predicates).
|
// HasGroupWith applies the HasEdge predicate on the "group" edge with a given conditions (other predicates).
|
||||||
func HasGroupWith(preds ...predicate.Group) predicate.Notifier {
|
func HasGroupWith(preds ...predicate.Group) predicate.Notifier {
|
||||||
return predicate.Notifier(func(s *sql.Selector) {
|
return predicate.Notifier(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newGroupStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(GroupInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.M2O, true, GroupTable, GroupColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
@ -392,11 +388,7 @@ func HasUser() predicate.Notifier {
|
||||||
// HasUserWith applies the HasEdge predicate on the "user" edge with a given conditions (other predicates).
|
// HasUserWith applies the HasEdge predicate on the "user" edge with a given conditions (other predicates).
|
||||||
func HasUserWith(preds ...predicate.User) predicate.Notifier {
|
func HasUserWith(preds ...predicate.User) predicate.Notifier {
|
||||||
return predicate.Notifier(func(s *sql.Selector) {
|
return predicate.Notifier(func(s *sql.Selector) {
|
||||||
step := sqlgraph.NewStep(
|
step := newUserStep()
|
||||||
sqlgraph.From(Table, FieldID),
|
|
||||||
sqlgraph.To(UserInverseTable, FieldID),
|
|
||||||
sqlgraph.Edge(sqlgraph.M2O, true, UserTable, UserColumn),
|
|
||||||
)
|
|
||||||
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) {
|
||||||
for _, p := range preds {
|
for _, p := range preds {
|
||||||
p(s)
|
p(s)
|
||||||
|
|
|
@ -121,7 +121,7 @@ func (nc *NotifierCreate) Mutation() *NotifierMutation {
|
||||||
// Save creates the Notifier in the database.
|
// Save creates the Notifier in the database.
|
||||||
func (nc *NotifierCreate) Save(ctx context.Context) (*Notifier, error) {
|
func (nc *NotifierCreate) Save(ctx context.Context) (*Notifier, error) {
|
||||||
nc.defaults()
|
nc.defaults()
|
||||||
return withHooks[*Notifier, NotifierMutation](ctx, nc.sqlSave, nc.mutation, nc.hooks)
|
return withHooks(ctx, nc.sqlSave, nc.mutation, nc.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveX calls Save and panics if Save returns an error.
|
// SaveX calls Save and panics if Save returns an error.
|
||||||
|
@ -321,8 +321,8 @@ func (ncb *NotifierCreateBulk) Save(ctx context.Context) ([]*Notifier, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
builder.mutation = mutation
|
builder.mutation = mutation
|
||||||
nodes[i], specs[i] = builder.createSpec()
|
|
||||||
var err error
|
var err error
|
||||||
|
nodes[i], specs[i] = builder.createSpec()
|
||||||
if i < len(mutators)-1 {
|
if i < len(mutators)-1 {
|
||||||
_, err = mutators[i+1].Mutate(root, ncb.builders[i+1].mutation)
|
_, err = mutators[i+1].Mutate(root, ncb.builders[i+1].mutation)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -27,7 +27,7 @@ func (nd *NotifierDelete) Where(ps ...predicate.Notifier) *NotifierDelete {
|
||||||
|
|
||||||
// Exec executes the deletion query and returns how many vertices were deleted.
|
// Exec executes the deletion query and returns how many vertices were deleted.
|
||||||
func (nd *NotifierDelete) Exec(ctx context.Context) (int, error) {
|
func (nd *NotifierDelete) Exec(ctx context.Context) (int, error) {
|
||||||
return withHooks[int, NotifierMutation](ctx, nd.sqlExec, nd.mutation, nd.hooks)
|
return withHooks(ctx, nd.sqlExec, nd.mutation, nd.hooks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExecX is like Exec, but panics if an error occurs.
|
// ExecX is like Exec, but panics if an error occurs.
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue