Push Notification 조건 정리 - team-yaza/mozi-client GitHub Wiki
사용자가 지정한 위치 안쪽으로 들어오는 경우
사용자가 해당 할 일을 마치지 않고(done 하지 않고) 위치 밖으로 나가는 경우
할 일이 done 이면
클라이언트에서 모든 투두를 돌면서 알림을 확인하는 것은 안좋은 것 같은데(장소 알림이 없는 투두도 검사하기 때문) 그렇다고 알림 테이블을 따로 만들면 장소를 바꿔줄 때마다 알림 테이블도 업데이트 해주고, todo 테이블도 업데이트 해주고 서버에 요청보내는것도 좋은 방법은 아닌듯...
생각해보면 서버 알림 테이블을 따로 저장해줘야하나? 애초에 visit을 서버에 알려줄 이유가 있을까? 그냥 다른 기기에서 처음 접속하면 모든 투두에서 장소 있는 것 만 가져와서 알림 테이블을 새로 만들어주면 되는거 아닐까? visit은 기본값 false로 ... 알림 장소 근처에서 새로 웹을 켜면 바로 알림이 와도 괜찮지 않을까?
- indexedDB와 서버의 todo 테이블이 다른것은 말이 안됨.
- 서버에는 visit이 들어갈 필요가 없음.
- 그렇다면 남은 방법은 클라이언트에만 알림 테이블을 만드는것.
- 다시 접속하면 무조건 모든 투두를 돌면서 알림테이블을 새로 만들어 줘야한다.
- 왜냐하면 다른 기기에서 새롭게 알림을 업데이트 해줬을 수도 있으니까.
그런데 생각을 해보면 지금은 inbox만 있으니까 inbox에 있는 todo가 모든 투두니까 상관이 없는데, 만약 project도 생기고 area도 생기면 inbox가 아닌 그곳에 있는 todo도 있을텐데 처음부터 그 데이터들을 다 가져온다는게 말이 안됨.
그렇다면 클라이언트에만 알림 정보가 있다는게 받아온 투두 정보를 바탕으로 알림 테이블을 indexedDB에 새롭게 써준다는건데 이게 가능했던 이유는 모든 투두를 받아온다는 전제가 있었기 때문.
결국 이렇게 되면 나중에는 inbox가 아닌 다른 area에 있는 todo에 대한 알림도 가져올 필요가 있어진다. (그 정보는 필요없지만 알림이 와야한다는건 알아야함 )
따라서 이걸 가능하게 하려면 서버에 알림 테이블이 있어야한다.
아직 확정은 아님.. RFC issue