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, id string) error DeleteAccessTokensByUID(ctx context.Context, uid string) error DeleteAccessTokensByDeviceID(ctx context.Context, deviceID string) error DeleteAccessTokenByDeviceIDAndUID(ctx context.Context, deviceID, uid string) error DeleteUIDToken(ctx context.Context, uid string, ids []string) error } type DeviceToken struct { DeviceID string TokenID string }