export interface IProject { id: number projectId: string projectName: string description: string stage: string studio: string iconUrl: string createTime: string createUser: string gameType: string[] active: boolean [key: string]: any } export interface App { id: number appName: string appNickname: string shareRole: boolean shareMember: boolean selfMap: boolean description: boolean iconUrl: string larkAppId: string larkAppSecret: string createTime: string createUser: string } export interface IUser { id?: number name: string email: string userid: string openid: string avatar: string } export interface IProjectMember extends IUser { roles: IRole[] leaver: boolean remark: string } export interface IRole { id: number roleName: string appId: number description: string onlyApp: boolean preDefined: boolean level: string [key: string]: any } export interface IPermission { id: number permissionName: string appId: number description: string preDefined: boolean } export interface IFeishuAuth { signature: string timestamp: number url: string nonceStr: string appId: string locale: string openId?: string jsApiList?: string } export interface ILarkWebComponentAuthentication { appId: string jsapi_ticket: string nonceStr: string openId: string signature: string timestamp: number url: string user_access_token: string } export interface IAppToken { appId: string nonceStr: string openId: string signature: string timestamp: number }