activity.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import { HasObjectId } from './has-object-id';
  2. import { IUser } from './user';
  3. // Model
  4. const MODEL_PAGE = 'Page';
  5. const MODEL_COMMENT = 'Comment';
  6. // Action
  7. const ACTION_PAGE_LIKE = 'PAGE_LIKE';
  8. const ACTION_PAGE_BOOKMARK = 'PAGE_BOOKMARK';
  9. const ACTION_PAGE_CREATE = 'PAGE_CREATE';
  10. const ACTION_PAGE_UPDATE = 'PAGE_UPDATE';
  11. const ACTION_PAGE_RENAME = 'PAGE_RENAME';
  12. const ACTION_PAGE_DUPLICATE = 'PAGE_DUPLICATE';
  13. const ACTION_PAGE_DELETE = 'PAGE_DELETE';
  14. const ACTION_PAGE_DELETE_COMPLETELY = 'PAGE_DELETE_COMPLETELY';
  15. const ACTION_PAGE_REVERT = 'PAGE_REVERT';
  16. const ACTION_COMMENT_CREATE = 'COMMENT_CREATE';
  17. const ACTION_COMMENT_UPDATE = 'COMMENT_UPDATE';
  18. export const SUPPORTED_TARGET_MODEL_TYPE = {
  19. MODEL_PAGE,
  20. } as const;
  21. export const SUPPORTED_EVENT_MODEL_TYPE = {
  22. MODEL_COMMENT,
  23. } as const;
  24. export const SUPPORTED_ACTION_TYPE = {
  25. ACTION_PAGE_LIKE,
  26. ACTION_PAGE_BOOKMARK,
  27. ACTION_PAGE_CREATE,
  28. ACTION_PAGE_UPDATE,
  29. ACTION_PAGE_RENAME,
  30. ACTION_PAGE_DUPLICATE,
  31. ACTION_PAGE_DELETE,
  32. ACTION_PAGE_DELETE_COMPLETELY,
  33. ACTION_PAGE_REVERT,
  34. ACTION_COMMENT_CREATE,
  35. ACTION_COMMENT_UPDATE,
  36. } as const;
  37. export const AllSupportedTargetModelType = Object.values(SUPPORTED_TARGET_MODEL_TYPE);
  38. export const AllSupportedEventModelType = Object.values(SUPPORTED_EVENT_MODEL_TYPE);
  39. export const AllSupportedActionType = Object.values(SUPPORTED_ACTION_TYPE);
  40. type supportedTargetModelType = typeof SUPPORTED_TARGET_MODEL_TYPE[keyof typeof SUPPORTED_TARGET_MODEL_TYPE];
  41. // type supportedEventModelType = typeof SUPPORTED_EVENT_MODEL_TYPE[keyof typeof SUPPORTED_EVENT_MODEL_TYPE];
  42. type supportedActionType = typeof SUPPORTED_ACTION_TYPE[keyof typeof SUPPORTED_ACTION_TYPE];
  43. export type IActivity = {
  44. user?: IUser
  45. targetModel: supportedTargetModelType
  46. targe: string
  47. action: supportedActionType
  48. createdAt: Date
  49. }
  50. export type IActivityHasId = IActivity & HasObjectId;