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"` } )