syntax = "v1"

info (
	title: // TODO: add title
	desc: // TODO: add description
	author: ""
	email: ""
)

import "basic.api"

service auth {
	@handler UserLoginHandler
	post /api/auth/login(RequestUserLogin) returns (response);
	
	@handler AcceptCookieHandler
	post /api/auth/accept-cookie(request) returns (response);
	
	@handler UserGoogleLoginHandler
	get /api/auth/oauth2/login/google(RequestGoogleLogin) returns (response);
	
	@handler UserEmailRegisterHandler
	get /api/auth/oauth2/register(RequestEmailRegister) returns (response);
}

// UserAddAddressHandler 用户登录请求结构
type RequestUserLogin {
	Email    string `json:"email"`
	Password string `json:"password"`
}

type RequestGoogleLogin {
	Code     string `form:"code"`
	Scope    string `form:"scope"`
	AuthUser string `form:"authuser"`
	Prompt   string `form:"prompt"`
	Email    string `form:"email,optional"`
}

type RequestEmailRegister {
	Email         string `json:"email"`
	RegisterToken string `json:"register_token"`
}

// UserLoginHandler 用户登录请求结构
type DataUserLogin {
	Token string `json:"token"` // 登录jwt token
}

// DataGuest 游客获取toekn请求结构
type DataGuest {
	Token string `json:"token"` // 登录jwt token
}