29 lines
1.0 KiB
Go
29 lines
1.0 KiB
Go
package ports
|
|
|
|
import (
|
|
"context"
|
|
|
|
"sub2api/internal/model"
|
|
"sub2api/internal/pkg/pagination"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type GroupRepository interface {
|
|
Create(ctx context.Context, group *model.Group) error
|
|
GetByID(ctx context.Context, id int64) (*model.Group, error)
|
|
Update(ctx context.Context, group *model.Group) error
|
|
Delete(ctx context.Context, id int64) error
|
|
|
|
List(ctx context.Context, params pagination.PaginationParams) ([]model.Group, *pagination.PaginationResult, error)
|
|
ListWithFilters(ctx context.Context, params pagination.PaginationParams, platform, status string, isExclusive *bool) ([]model.Group, *pagination.PaginationResult, error)
|
|
ListActive(ctx context.Context) ([]model.Group, error)
|
|
ListActiveByPlatform(ctx context.Context, platform string) ([]model.Group, error)
|
|
|
|
ExistsByName(ctx context.Context, name string) (bool, error)
|
|
GetAccountCount(ctx context.Context, groupID int64) (int64, error)
|
|
DeleteAccountGroupsByGroupID(ctx context.Context, groupID int64) (int64, error)
|
|
|
|
DB() *gorm.DB
|
|
}
|