1package store
 2
 3import (
 4	"context"
 5	"time"
 6
 7	"github.com/charmbracelet/soft-serve/server/db"
 8	"github.com/charmbracelet/soft-serve/server/db/models"
 9)
10
11// AccessTokenStore is an interface for managing access tokens.
12type AccessTokenStore interface {
13	GetAccessToken(ctx context.Context, h db.Handler, id int64) (models.AccessToken, error)
14	GetAccessTokenByToken(ctx context.Context, h db.Handler, token string) (models.AccessToken, error)
15	GetAccessTokensByUserID(ctx context.Context, h db.Handler, userID int64) ([]models.AccessToken, error)
16	CreateAccessToken(ctx context.Context, h db.Handler, name string, userID int64, token string, expiresAt time.Time) (models.AccessToken, error)
17	DeleteAccessToken(ctx context.Context, h db.Handler, id int64) error
18	DeleteAccessTokenForUser(ctx context.Context, h db.Handler, userID int64, id int64) error
19}