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.

244 lines
7.1 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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"`
}
// 用户登录记录
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"`
// Token type | 凭证类型 [Bearer]
TokenType string `json:"tokenType,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 string `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"`
}
// 字典信息
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"`
}
)