package repository import ( "database/sql" models "vibeStonk/server/models/v1" ) type SessionRepo interface { Create(user *models.User) (*models.Session, error) Get(token string) (*models.Session, error) Revoke(session *models.Session) error DeleteExpired() error } func NewSessionRepo(config *Config, db *sql.DB) (SessionRepo, error) { switch config.DBEngine { case Sqlite: return newSqliteSessionRepo(db), nil default: return nil, ErrBadEngine } }