40 lines
1.5 KiB
Go
40 lines
1.5 KiB
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
|
|
"git.techease.ru/Smart-search/smart-search-back/internal/model"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
type AuthService interface {
|
|
Register(ctx context.Context, email, password, name, phone string, inviteCode int64, ip, userAgent string) (accessToken, refreshToken string, err error)
|
|
Login(ctx context.Context, email, password, ip, userAgent string) (accessToken, refreshToken string, err error)
|
|
Refresh(ctx context.Context, refreshToken string) (string, error)
|
|
Validate(ctx context.Context, accessToken string) (int, error)
|
|
Logout(ctx context.Context, accessToken string) error
|
|
}
|
|
|
|
type UserService interface {
|
|
GetInfo(ctx context.Context, userID int) (*UserInfo, error)
|
|
GetBalance(ctx context.Context, userID int) (float64, error)
|
|
GetStatistics(ctx context.Context, userID int) (*Statistics, error)
|
|
}
|
|
|
|
type InviteService interface {
|
|
Generate(ctx context.Context, userID, maxUses, ttlDays int) (*model.InviteCode, error)
|
|
GetInfo(ctx context.Context, code int64) (*model.InviteCode, error)
|
|
}
|
|
|
|
type RequestService interface {
|
|
CreateTZ(ctx context.Context, userID int, requestTxt string) (uuid.UUID, string, error)
|
|
ApproveTZ(ctx context.Context, requestID uuid.UUID, tzText string, userID int) ([]*model.Supplier, error)
|
|
GetMailingList(ctx context.Context, userID int) ([]*model.Request, error)
|
|
GetMailingListByID(ctx context.Context, requestID uuid.UUID, userID int) (*model.RequestDetail, error)
|
|
}
|
|
|
|
type SupplierService interface {
|
|
ExportExcel(ctx context.Context, requestID uuid.UUID, userID int) ([]byte, error)
|
|
}
|