package repository

import (
	"go-nkode/internal/entities"
	"go-nkode/internal/models"
)

type CustomerUserRepository interface {
	GetCustomer(models.CustomerID) (*entities.Customer, error)
	GetUser(models.UserEmail, models.CustomerID) (*entities.User, error)
	CreateCustomer(entities.Customer) error
	WriteNewUser(entities.User) error
	UpdateUserNKode(entities.User) error
	UpdateUserInterface(models.UserId, entities.UserInterface) error
	UpdateUserRefreshToken(models.UserId, string) error
	Renew(models.CustomerID) error
	RefreshUserPasscode(entities.User, []int, entities.CustomerAttributes) error
	RandomSvgInterface(entities.KeypadDimension) ([]string, error)
	RandomSvgIdxInterface(entities.KeypadDimension) (models.SvgIdInterface, error)
	GetSvgStringInterface(models.SvgIdInterface) ([]string, error)
	AddSVGIcon(svgStr string) (int64, error)
}
