package botService import ( "context" "database/sql" "database/sql/driver" "io" "time" pbVC "gitea.cybertalant.ru/VisionCareerMiniapp/DataManagement/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) }