external-user-group-relation.ts 1.3 KB

12345678910111213141516171819202122232425262728293031
  1. import { Schema, Model, Document } from 'mongoose';
  2. import UserGroupRelation from '~/server/models/user-group-relation';
  3. import { getOrCreateModel } from '../../../../server/util/mongoose-utils';
  4. import { IExternalUserGroupRelation } from '../../interfaces/external-user-group';
  5. import { ExternalUserGroupDocument } from './external-user-group';
  6. export interface ExternalUserGroupRelationDocument extends IExternalUserGroupRelation, Document {}
  7. export interface ExternalUserGroupRelationModel extends Model<ExternalUserGroupRelationDocument> {
  8. [x:string]: any, // for old methods
  9. PAGE_ITEMS: 50,
  10. removeAllByUserGroups: (groupsToDelete: ExternalUserGroupDocument[]) => Promise<any>,
  11. }
  12. const schema = new Schema<ExternalUserGroupRelationDocument, ExternalUserGroupRelationModel>({
  13. relatedGroup: { type: Schema.Types.ObjectId, ref: 'ExternalUserGroup', required: true },
  14. relatedUser: { type: Schema.Types.ObjectId, ref: 'User', required: true },
  15. }, {
  16. timestamps: { createdAt: true, updatedAt: false },
  17. });
  18. schema.statics.createRelations = UserGroupRelation.createRelations;
  19. schema.statics.removeAllByUserGroups = UserGroupRelation.removeAllByUserGroups;
  20. export default getOrCreateModel<ExternalUserGroupRelationDocument, ExternalUserGroupRelationModel>('ExternalUserGroupRelation', schema);