MiniappGoService/internal/infrastructure/botService/entities.go

91 lines
3.7 KiB
Go

package botService
import (
"context"
"database/sql"
"database/sql/driver"
"io"
"time"
pbVC "gitea.cybertalant.ru/VisionCareerMiniapp/DataManagemet/pb/golang"
"github.com/jmoiron/sqlx"
"github.com/minio/minio-go/v7"
"google.golang.org/grpc"
)
// ----------------------------------------
// COMMON
// ----------------------------------------
type loggerInstance interface {
Error(string, ...any)
Debug(string, ...any)
Info(string, ...any)
}
type pgDBInstance interface {
Begin() (*sql.Tx, error)
BeginTx(ctx context.Context, opts *sql.TxOptions) (*sql.Tx, error)
BeginTxx(ctx context.Context, opts *sql.TxOptions) (*sqlx.Tx, error)
Beginx() (*sqlx.Tx, error)
BindNamed(query string, arg interface{}) (string, []interface{}, error)
Close() error
Conn(ctx context.Context) (*sql.Conn, error)
Connx(ctx context.Context) (*sqlx.Conn, error)
Driver() driver.Driver
DriverName() string
Exec(query string, args ...any) (sql.Result, error)
ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error)
Get(dest interface{}, query string, args ...interface{}) error
GetContext(ctx context.Context, dest interface{}, query string, args ...interface{}) error
MapperFunc(mf func(string) string)
MustBegin() *sqlx.Tx
MustBeginTx(ctx context.Context, opts *sql.TxOptions) *sqlx.Tx
MustExec(query string, args ...interface{}) sql.Result
MustExecContext(ctx context.Context, query string, args ...interface{}) sql.Result
NamedExec(query string, arg interface{}) (sql.Result, error)
NamedExecContext(ctx context.Context, query string, arg interface{}) (sql.Result, error)
NamedQuery(query string, arg interface{}) (*sqlx.Rows, error)
NamedQueryContext(ctx context.Context, query string, arg interface{}) (*sqlx.Rows, error)
Ping() error
PingContext(ctx context.Context) error
Prepare(query string) (*sql.Stmt, error)
PrepareContext(ctx context.Context, query string) (*sql.Stmt, error)
PrepareNamed(query string) (*sqlx.NamedStmt, error)
PrepareNamedContext(ctx context.Context, query string) (*sqlx.NamedStmt, error)
Preparex(query string) (*sqlx.Stmt, error)
PreparexContext(ctx context.Context, query string) (*sqlx.Stmt, error)
Query(query string, args ...any) (*sql.Rows, error)
QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error)
QueryRow(query string, args ...any) *sql.Row
QueryRowContext(ctx context.Context, query string, args ...any) *sql.Row
QueryRowx(query string, args ...interface{}) *sqlx.Row
QueryRowxContext(ctx context.Context, query string, args ...interface{}) *sqlx.Row
Queryx(query string, args ...interface{}) (*sqlx.Rows, error)
QueryxContext(ctx context.Context, query string, args ...interface{}) (*sqlx.Rows, error)
Rebind(query string) string
Select(dest interface{}, query string, args ...interface{}) error
SelectContext(ctx context.Context, dest interface{}, query string, args ...interface{}) error
SetConnMaxIdleTime(d time.Duration)
SetConnMaxLifetime(d time.Duration)
SetMaxIdleConns(n int)
SetMaxOpenConns(n int)
Stats() sql.DBStats
Unsafe() *sqlx.DB
}
type minioDBInstance interface {
Get(bucketName string, fileName string) (*minio.Object, error)
Remove(fileName string, bucketName string) error
UploadFile(
ctx context.Context, bucketName, objectName string,
reader io.Reader, size int64, opts minio.PutObjectOptions,
) (string, error)
ListBuckets(ctx context.Context) ([]minio.BucketInfo, error)
}
type supportAPIInstance interface {
GetUserVacancies(ctx context.Context, in *pbVC.GetUserVacanciesRequest, opts ...grpc.CallOption) (*pbVC.GetUserVacanciesResponse, error)
UpsertUserData(ctx context.Context, in *pbVC.UpsertUserDataRequest, opts ...grpc.CallOption) (*pbVC.UpsertUserDataResponse, error)
}