donat-widget/internal/model/interfaces.go

114 lines
5.2 KiB
Go

package model
import (
"context"
"donat-widget/internal/model/api"
"github.com/jackc/pgx/v5"
"github.com/labstack/echo/v4"
)
type WidgetService interface {
CheckToken(request echo.Context) (api.CheckTokenResponse, error)
CreateWidget(ctx context.Context, streamerID StreamerID, templateId TemplateID, duration Duration, minAmount DonatAmount) (WidgetID, error)
GetWidgetByID(ctx context.Context, widgetID WidgetID) ([]*Widget, error)
GetWidgetHTML(ctx context.Context, streamerID StreamerID) (WidgetHTML, error)
GetMediaFile(ctx context.Context, widgetID WidgetID, mediaType MediaType) (DownloadFile, error)
SetMediaFile(ctx context.Context, mediaType MediaType, widgetID WidgetID, file UploadFile, filename string, size int64, collection string) error
SetMediaUrl(ctx context.Context, mediaType MediaType, widgetID WidgetID, mediaURL MediaUrl) error
}
type WidgetRepo interface {
CreateWidget(ctx context.Context, streamerID StreamerID, templateId TemplateID, duration Duration, minAmount DonatAmount) (WidgetID, error)
GetWidgetByStreamerID(ctx context.Context, streamerID StreamerID) ([]*Widget, error)
GetWidgetByID(ctx context.Context, widgetID WidgetID) ([]*Widget, error)
GetAllWidget(ctx context.Context, streamerID StreamerID) ([]*Widget, error)
GetMediaFile(fileID FileID) (DownloadFile, error)
GetMediaUrl(ctx context.Context, widgetID WidgetID, mediaType MediaType) (MediaUrl, error)
SetMediaFile(file UploadFile, filename string, size int64, collection string) (FileID, error)
SetMediaUrl(ctx context.Context, widgetID WidgetID, mediaUrl MediaUrl, mediaType MediaType) error
}
type DonatService interface {
CheckToken(request echo.Context) (api.CheckTokenResponse, error)
CreateDonat(ctx context.Context, streamerID StreamerID, orderID OrderID, targetID TargetID, amount DonatAmount, text string, donatUser string) (api.CreatePaymentResponse, error)
GetDonatByStreamerID(ctx context.Context, streamerID StreamerID) ([]*Donat, error)
GetDonatByOrderID(ctx context.Context, orderID OrderID) (*Donat, error)
MarkDonatPaid(ctx context.Context, orderID OrderID) error
MarkDonatView(ctx context.Context, DonatID DonatID) error
GetInnerDonatPage(ctx context.Context, streamerID StreamerID) (InnerDonatePageResponse, error)
GetOuterDonatPage(ctx context.Context, streamerID StreamerID) (OuterDonatePageResponse, error)
UpdateDonatePage(ctx context.Context, streamerID StreamerID, updateModel UpdateDonatPage) error
GetVoiceSettings(ctx context.Context, streamerID StreamerID) (VoiceSettingsResponse, error)
UpdateVoiceSettings(ctx context.Context, streamerID StreamerID, updateModel UpdateVoiceSettings) error
GetFiltersSettings(ctx context.Context, streamerID StreamerID) (FilterSettingResponse, error)
UpdateFiltersSettings(ctx context.Context, streamerID StreamerID, updateModel UpdateFilterSettings) error
GetModerationSettings(ctx context.Context, streamerID StreamerID) (ModerationResponse, error)
UpdateModerationSettings(ctx context.Context, streamerID StreamerID, updateModel UpdateModeration) error
}
type DonatRepo interface {
CreateDonat(ctx context.Context, streamerID StreamerID, widgetID WidgetID, orderID OrderID, targetID TargetID, amount DonatAmount, text string, donatUser string) error
GetDonatByStreamerID(ctx context.Context, streamerID StreamerID) ([]*Donat, error)
GetDonatByOrderID(ctx context.Context, orderID OrderID) (*Donat, error)
MarkDonatPaid(ctx context.Context, orderID OrderID) error
MarkDonatView(ctx context.Context, DonatID DonatID) error
GetDonatPage(ctx context.Context, streamerID StreamerID) (DonatePage, error)
}
type TargetService interface {
CheckToken(request echo.Context) (api.CheckTokenResponse, error)
CreateTarget(ctx context.Context, streamerID StreamerID, amount DonatAmount, text string) (TargetID, error)
GetAllTarget(ctx context.Context, streamerID StreamerID) ([]*Target, error)
AddAmountToTarget(ctx context.Context, targetID TargetID, amount DonatAmount) error
}
type TargetRepo interface {
CreateTarget(ctx context.Context, streamerID StreamerID, amount DonatAmount, text string) (TargetID, error)
GetAllTarget(ctx context.Context, streamerID StreamerID) ([]*Target, error)
AddAmountToTarget(ctx context.Context, targetID TargetID, amount DonatAmount) error
}
type Error interface {
Error() string
}
type Storage interface {
Upload(file UploadFile, filename string, size int64, collection string) (FileID, error)
Download(FileID FileID) (DownloadFile, error)
Update(file UploadFile, fileID FileID, filename string, size int64, collection string) error
}
type PaymentClient interface {
CreatePayment(streamerID StreamerID, amount DonatAmount, orderID OrderID) (api.CreatePaymentResponse, error)
}
type Db interface {
Insert(ctx context.Context, query string, args ...interface{}) (int64, error)
Select(ctx context.Context, query string, args ...interface{}) (pgx.Rows, error)
Delete(ctx context.Context, query string, args ...interface{}) error
Update(ctx context.Context, query string, args ...interface{}) error
CreateTable(ctx context.Context, query string) error
DropTable(ctx context.Context, query string) error
}
type AuthClient interface {
CheckToken(token Token) (api.CheckTokenResponse, error)
VerifyTwoFa(twoFaCode string, streamerID StreamerID) (bool, error)
}