(Feat): Initial Commit
Some checks failed
Build & Test / build-test (push) Has been cancelled
Build & Test / swagger-codegen-cli (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled

This commit is contained in:
2026-07-03 19:41:31 +05:30
commit 7e940c83a7
461 changed files with 45002 additions and 0 deletions

63
internal/util/db/join.go Normal file
View File

@@ -0,0 +1,63 @@
package db
import (
"fmt"
"github.com/aarondl/sqlboiler/v4/queries/qm"
)
// InnerJoinWithFilter returns an InnerJoin QueryMod formatted using the provided join tables and columns including an
// additional filter condition. Omitting the optional filter table will use the provided join table as a base for the filter.
func InnerJoinWithFilter(baseTable string, baseColumn string, joinTable string, joinColumn string, filterColumn string, filterValue interface{}, optFilterTable ...string) qm.QueryMod {
filterTable := joinTable
if len(optFilterTable) > 0 {
filterTable = optFilterTable[0]
}
return qm.InnerJoin(fmt.Sprintf("%s ON %s.%s=%s.%s AND %s.%s=?",
joinTable,
joinTable,
joinColumn,
baseTable,
baseColumn,
filterTable,
filterColumn), filterValue)
}
// InnerJoin returns an InnerJoin QueryMod formatted using the provided join tables and columns.
func InnerJoin(baseTable string, baseColumn string, joinTable string, joinColumn string) qm.QueryMod {
return qm.InnerJoin(fmt.Sprintf("%s ON %s.%s=%s.%s",
joinTable,
joinTable,
joinColumn,
baseTable,
baseColumn))
}
// LeftOuterJoin returns an LeftOuterJoin QueryMod formatted using the provided join tables and columns.
func LeftOuterJoin(baseTable string, baseColumn string, joinTable string, joinColumn string) qm.QueryMod {
return qm.LeftOuterJoin(fmt.Sprintf("%s ON %s.%s=%s.%s",
joinTable,
joinTable,
joinColumn,
baseTable,
baseColumn))
}
// LeftOuterJoinWithFilter returns an LeftOuterJoin QueryMod formatted using the provided join tables and columns including an
// additional filter condition. Omitting the optional filter table will use the provided join table as a base for the filter.
func LeftOuterJoinWithFilter(baseTable string, baseColumn string, joinTable string, joinColumn string, filterColumn string, filterValue interface{}, optFilterTable ...string) qm.QueryMod {
filterTable := joinTable
if len(optFilterTable) > 0 {
filterTable = optFilterTable[0]
}
return qm.LeftOuterJoin(fmt.Sprintf("%s ON %s.%s=%s.%s AND %s.%s=?",
joinTable,
joinTable,
joinColumn,
baseTable,
baseColumn,
filterTable,
filterColumn), filterValue)
}