revision.ts 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import type { HasObjectId } from './has-object-id';
  2. import type { IUser } from './user';
  3. export const Origin = {
  4. View: 'view',
  5. Editor: 'editor',
  6. } as const;
  7. export type Origin = typeof Origin[keyof typeof Origin];
  8. export const allOrigin = Object.values(Origin);
  9. export type IRevision = {
  10. body: string,
  11. author: IUser,
  12. hasDiffToPrev: boolean;
  13. createdAt: Date,
  14. updatedAt: Date,
  15. origin?: Origin,
  16. }
  17. export type IRevisionHasId = IRevision & HasObjectId;
  18. type HasPageId = {
  19. pageId: string,
  20. };
  21. export type IRevisionHasPageId = IRevisionHasId & HasPageId;
  22. export type IRevisionsForPagination = {
  23. revisions: IRevisionHasPageId[], // revisions in one pagination
  24. totalCounts: number // total counts
  25. }
  26. export type IRevisionOnConflict = {
  27. revisionId: string,
  28. revisionBody: string,
  29. createdAt: Date,
  30. user: IUser
  31. }
  32. export type HasRevisionShortbody = {
  33. revisionShortBody?: string,
  34. }
  35. export type SWRInfinitePageRevisionsResponse = {
  36. revisions: IRevisionHasPageId[],
  37. totalCount: number,
  38. offset: number,
  39. }