// ================================================================================
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
// You can delete these comments if you wish manually maintain this interface file.
// ================================================================================

package service

import (
	"context"
	"kami/internal/model"
	"kami/internal/model/entity"
)

type (
	ISysAuth interface {
		// LoginWithIFrameAndLogin Iframe和账号可以同时登陆
		LoginWithIFrameAndLogin(ctx context.Context) (userInfo *entity.V1SysUser, err error)
		LoginWithEverything(ctx context.Context) (output *model.SysAuthLoginWithEverythingOutput, err error)
		// LoginOnlyIFrame 只能IFrame登录
		LoginOnlyIFrame(ctx context.Context) (userInfo *entity.V1SysUser, err error)
		// LoginOnlyLogin 只能登录
		LoginOnlyLogin(ctx context.Context) (userInfo *entity.V1SysUser, err error)
	}
)

var (
	localSysAuth ISysAuth
)

func SysAuth() ISysAuth {
	if localSysAuth == nil {
		panic("implement not found for interface ISysAuth, forgot register?")
	}
	return localSysAuth
}

func RegisterSysAuth(i ISysAuth) {
	localSysAuth = i
}
