umc-managed-store
Version:
extend umc store with structure-ensure and auto-clear to make store safety
91 lines (85 loc) • 3.62 kB
JavaScript
'use strict'
const ManagedStore = require('..');
const Types = ManagedStore.Types;
let options = {
structure: {
members: Types.mapOf('member', {
}),//所有的会员
feeds: Types.mapOf('feed', {
feedId: Types.idOf('feed'),
memberId: Types.idOf('member'),
}),//所有的动态
teams: Types.mapOf('team', {
memberId: Types.idOf('member'),
}),//所有的小组
activityOrders: Types.mapOf('activityOrder', {
memberId: Types.idOf('member'),
activityId: Types.idOf('feed'),
}),//所有的活动订单, 里面存储的是订单数据
feedRelations: {//所有的feed关系数据(详情里的)
[Types.idOf('feed')]: {
reply: {rows: Types.idArrayOf('feed')},
hotReply: {rows: Types.idArrayOf('feed')},
liked: {rows: Types.idArrayOf('member')},
activityOrder: {rows: Types.idArrayOf('activityOrder')},
}
},
teamRelations: {//所有team关系数据(详情里的)
[Types.idOf('team')]: {
thread: {rows: Types.idArrayOf('feed')},
member: {rows: Types.idArrayOf('member')},
}
},
auth: {id: Types.idOf('member')},//登陆者信息, id/token等
portal: {//会员自身的一些数据, 结构均一致
feed: {rows: Types.idArrayOf('feed'), count: 0},
activity: {rows: Types.idArrayOf('feed'), count: 0},
work: {rows: Types.idArrayOf('feed'), count: 0},
friend: {rows: Types.idArrayOf('member'), count: 0},
followed: {rows: Types.idArrayOf('member'), count: 0},
follower: {rows: Types.idArrayOf('member'), count: 0},
team: {rows: Types.idArrayOf('team'), count: 0},
activityOrder: {rows: Types.idArrayOf('activityOrder'), count: 0},
},
recommend: {//推荐
member: {rows: Types.idArrayOf('feed')},
activity: {rows: Types.idArrayOf('feed')},
work: {rows: Types.idArrayOf('feed')},
team: {rows: Types.idArrayOf('team')},
},
pull: {//拉取数据通知
feed: {rows: Types.idArrayOf('feed'), newlyCount: 0},
liked: {rows: Types.idArrayOf('feed'), newlyCount: 0},
at: {rows: Types.idArrayOf('feed'), newlyCount: 0},
reply: {rows: Types.idArrayOf('feed'), newlyCount: 0},
},
ranklist: {//各排行榜数据
'member-forever': {rows: Types.idArrayOf('feed')},
'member-month': {rows: Types.idArrayOf('feed')},
'member-day': {rows: Types.idArrayOf('feed')},
'work-forever': {rows: Types.idArrayOf('feed')},
'work-month': {rows: Types.idArrayOf('feed')},
'work-day': {rows: Types.idArrayOf('feed')},
'work-forever-茶艺': {rows: Types.idArrayOf('feed')},
'work-forever-香道': {rows: Types.idArrayOf('feed')},
},
rooms: {},//房间, 会引用到member和team的数据(名称与头像)
chats: {},//各房间的即时聊天消息, 只跟rooms相关
exchange: {},//社交面板, 只跟rooms和chats有关
search: {//搜索结果
feed: {rows: Types.idArrayOf('feed'), term: ''},
activity: {rows: Types.idArrayOf('feed'), term: ''},
work: {rows: Types.idArrayOf('feed'), term: ''},
member: {rows: Types.idArrayOf('member'), term: ''},
friend: {rows: Types.idArrayOf('member'), term: ''},
followed: {rows: Types.idArrayOf('member'), term: ''},
follower: {rows: Types.idArrayOf('member'), term: ''},
team: {rows: Types.idArrayOf('team'), term: ''},
thread: {rows: Types.idArrayOf('feed'), term: ''},
},
update: {},//自动更新相关
ui: {},//界面相关
}
}
const store = ManagedStore.create(options)
console.log(store.state);