You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

252 lines
7.2 KiB
Plaintext

syntax = "v1"
info(
title: "Model"
desc: "API basic"
author: "NorthLan"
email: "lan6995@gmail.com"
version: "v1.0"
)
import "../base.api"
type (
UserInfo {
BaseID
TimeInfo
// Status | 状态
Status string `json:"status,optional"`
// Username | 用户名
Username string `json:"username,optional"`
// Phone number | 手机号码
PhoneNumber *string `json:"phoneNumber,optional"`
// Email | 邮箱
Email *string `json:"email,optional"`
// Password | 密码
Password string `json:"password,optional,omitempty"`
// Nickname | 昵称
Nickname *string `json:"nickname,optional"`
// Roles | 角色代码列表
Roles []string `json:"roles,optional"`
// LoginRecord | 用户登录记录
LoginRecord *UserLoginRecordInfo `json:"loginRecord,optional"`
// Meta | 元数据
Metas map[string]string `json:"metadata"`
}
// 用户登录记录
UserLoginRecordInfo {
BaseID
TimeInfo
// 用户ID
UserId int64 `json:"userId,string,optional"`
// 最近一次登录时间
LastLoginAt string `json:"lastLoginAt,optional"`
// 最近一次登录IPv4
LastLoginIpv4 string `json:"lastLoginIpv4,optional"`
// 最近一次登录设备
LastLoginDevice string `json:"lastLoginDevice,optional"`
// 最近一次登录浏览器Ua
LastLoginUa string `json:"lastLoginUa,optional"`
// 总登录次数
LoginCount uint64 `json:"loginCount,optional"`
}
// Token信息
TokenInfo {
BaseID
TimeInfo
// Status | 状态
Status string `json:"status,optional"`
// User's Id | 用户ID
UserId int64 `json:"userId,string,optional"`
// AccessToken | AccessToken 字符串
AccessToken string `json:"accessToken,optional"`
// RefreshToken | RefreshToken 字符串
RefreshToken string `json:"refreshYoken,optional"`
// Source | Token来源PCWeb/WechatMini/AlipayMini
Source string `json:"source,optional"`
// Expire Time | 过期时间
ExpiredAt int64 `json:"expiredAt,optional"`
}
// 用户社交平台信息
UserSocialInfo {
BaseID
TimeInfo
// 系统用户ID
UserId int64 `json:"userId,string,optional"`
// OAuth Provider | 服务提供商
Provider string `json:"provider,optional"`
// Access Token | 用户在提供商最近一次登录的访问凭证
AccessToken string `json:"accessToken,optional"`
// Refresh Token | 用户在提供商最近一次登录的刷新凭证
RefreshToken string `json:"refreshToken,optional"`
// User's ID | 提供商用户ID不一定存在
Uid string `json:"uid,optional"`
// OpenId | 用户在提供商的OpenID
OpenId string `json:"openId,optional"`
// UnionId | 用户在提供商的UnionID
UnionId string `json:"unionId,optional"`
// Key | 用户在提供商的用于解密的key
Key string `json:"key,optional"`
// Expires in | 访问凭证过期时长,单位:秒
ExpiresIn uint64 `json:"expiresIn,optional"`
// User Profile | 提供商用户信息,不一定存在
UserProfile string `json:"userProfile,optional"`
}
)
type (
// 角色信息
RoleInfo {
BaseID
TimeInfo
// Status | 状态
Status string `json:"status,optional"`
// Role Code | 角色编码,可用于权限控制
Code string `json:"code,optional"`
// Role Name | 角色名
Name string `json:"name,optional"`
// Description | 角色描述
Description string `json:"description,optional"`
}
)
type (
DepartmentInfo {
BaseID
TimeInfo
// Status | 状态
Status string `json:"status,optional"`
// Department name | 部门名称
Name string `json:"name,optional"`
// Department leader | 部门负责人
LeaderId int64 `json:"leaderId,string,optional"`
// Remark | 备注
Remark string `json:"remark,optional"`
// Parent ID | 直接父级ID
ParentId int64 `json:"parentId,string,optional"`
// Leader | 部门负责人信息
Leader *UserInfo `json:"leader,optional"`
// Parent | 直接父级
Parent *DepartmentInfo `json:"parent,optional"`
// Children | 孩子列表
Children []*DepartmentInfo `json:"children,optional"`
}
)
type (
OauthProviderInfo {
BaseID
TimeInfo
// The provider's name | 提供商名称
Name string `json:"name,optional"`
// The client id | 客户端 id
ClientId string `json:"clientId,optional"`
// The client secret | 客户端密钥
ClientSecret string `json:"clientSecret,optional"`
// The redirect url | 跳转地址
RedirectUrl string `json:"redirectUrl,optional"`
// The scopes | 权限范围
Scopes string `json:"scopes,optional"`
// The auth url of the provider | 认证地址
AuthUrl string `json:"authUrl,optional"`
// The token url of the provider | 获取 Token 地址
TokenUrl string `json:"tokenUrl,optional"`
// The URL to request user information by token | 用户信息请求地址
InfoUrl string `json:"infoUrl,optional"`
// The description of the provider | 提供商描述
Description string `json:"description,optional"`
// The system internal oauth provider | 系统内置提供商
System bool `json:"system,optional"`
// The oauth provider init status | 提供商初始化状态
Init bool `json:"init,optional"`
}
)
type (
// District info | 地址信息
DistrictInfo {
BaseID
TimeInfo
// Name | 地区名称
Name string `json:"name"`
// Short name | 地区缩写,省级
ShortName string `json:"shortName"`
// Code | 地址编码
Code string `json:"code"`
// Province code | 省级行政编号,表示该地区归属
Province string `json:"province"`
// City | 地级行政编号,表示该地区归属
City string `json:"city"`
// Area | 县级行政编号,表示该地区归属
Area string `json:"area"`
// Street or Town | 乡级行政编号,表示该地区归属
Street string `json:"street"`
// Level | 地区级别 1-省、自治区、直辖市 2-地级市、地区、自治州、盟 3-市辖区、县级市、县 4-乡镇
Level uint32 `json:"level"`
// Latitude | 纬度
Latitude float64 `json:"latitude"`
// Longitude | 经度
Longitude float64 `json:"longitude"`
// Children | 子级
Children []*DistrictInfo `json:"children,optional"`
}
// CaptchaInfo | 验证码信息
CaptchaInfo {
// CaptchaId | 验证码ID
CaptchaId string `json:"captchaId"`
// Base64 | 验证码图片 Base64
Base64 string `json:"base64"`
}
// 字典信息
DictionaryInfo {
BaseID
TimeInfo
// Status | 状态
Status string `json:"status,optional"`
// The title shown in the ui | 展示名称 建议配合i18n
Title string `json:"title,optional"`
// The name of dictionary for search | 字典搜索名称
Name string `json:"name,optional"`
// The description of dictionary | 字典的描述
Description string `json:"description,optional"`
// Details | 字典项
Details []*DictionaryDetailInfo `json:"details,optional"`
}
// 字典项信息
DictionaryDetailInfo {
BaseID
TimeInfo
// Status | 状态
Status string `json:"status,optional"`
// Sort number | 排序号
Sort uint32 `json:"sort,optional"`
// The title shown in the ui | 展示名称 建议配合i18n
Title string `json:"title,optional"`
// key | 键
Key string `json:"key,optional"`
// value | 值
Value string `json:"value,optional"`
// Dictionary Id | 字典ID
DictionaryId int64 `json:"dictionaryId,string,optional"`
// Dictionary | 字典信息
Dictionary *DictionaryInfo `json:"dictionary,optional"`
}
)