user-group-response.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import type {
  2. HasObjectId,
  3. IPageHasId,
  4. IUserGroup,
  5. IUserGroupHasId,
  6. IUserGroupRelationHasId,
  7. IUserHasId,
  8. Ref,
  9. } from '@growi/core';
  10. export type UserGroupResult = {
  11. userGroup: IUserGroupHasId;
  12. };
  13. export type UserGroupListResult<
  14. TUSERGROUP extends IUserGroupHasId = IUserGroupHasId,
  15. > = {
  16. userGroups: TUSERGROUP[];
  17. };
  18. export type ChildUserGroupListResult<
  19. TUSERGROUP extends IUserGroupHasId = IUserGroupHasId,
  20. > = {
  21. childUserGroups: TUSERGROUP[];
  22. grandChildUserGroups: TUSERGROUP[];
  23. };
  24. export type UserGroupRelationListResult<
  25. TUSERGROUPRELATION extends IUserGroupRelationHasId = IUserGroupRelationHasId,
  26. > = {
  27. userGroupRelations: TUSERGROUPRELATION[];
  28. };
  29. export type IUserGroupRelationHasIdPopulatedUser<
  30. TUSERGROUP extends IUserGroup = IUserGroup,
  31. > = {
  32. relatedGroup: Ref<TUSERGROUP>;
  33. relatedUser: IUserHasId;
  34. createdAt: Date;
  35. } & HasObjectId;
  36. export type UserGroupRelationsResult = {
  37. userGroupRelations: IUserGroupRelationHasIdPopulatedUser[];
  38. };
  39. export type UserGroupPagesResult = {
  40. pages: IPageHasId[];
  41. };
  42. export type SelectableParentUserGroupsResult = {
  43. selectableParentGroups: IUserGroupHasId[];
  44. };
  45. export type SelectableUserChildGroupsResult = {
  46. selectableChildGroups: IUserGroupHasId[];
  47. };
  48. export type AncestorUserGroupsResult = {
  49. ancestorUserGroups: IUserGroupHasId[];
  50. };