package repository import ( "ark-permission/internal/entity" "context" "time" ) type TokenRepository interface { Create(ctx context.Context, token entity.Token) error DeleteOneTimeToken(ctx context.Context, ids []string, tokens []entity.Token) error CreateOneTimeToken(ctx context.Context, key string, ticket entity.Ticket, dt time.Duration) error GetByRefresh(ctx context.Context, refreshToken string) (entity.Token, error) GetAccessTokenByID(ctx context.Context, id string) (entity.Token, error) GetAccessTokensByUID(ctx context.Context, uid string) ([]entity.Token, error) GetAccessTokenCountByUID(uid string) (int, error) GetAccessTokensByDeviceID(ctx context.Context, deviceID string) ([]entity.Token, error) GetAccessTokenCountByDeviceID(deviceID string) (int, error) Delete(ctx context.Context, token entity.Token) error DeleteAccessTokenByID(ctx context.Context, ids []string) error DeleteAccessTokensByUID(ctx context.Context, uid string) error DeleteAccessTokensByDeviceID(ctx context.Context, deviceID string) error } type DeviceToken struct { DeviceID string TokenID string }