Your IP : 216.73.216.220


Current Path : /home/deltalab/PMS/partner-manager-backend/graphql/schema/
Upload File :
Current File : //home/deltalab/PMS/partner-manager-backend/graphql/schema/subscription-plan.schema.js

const { subscriptionPlanTC } = require('../types/subscription-plan.type');
const { indacoModuleTC } = require('../types/indaco-module.type');
const auth = require('../../services/auth');

// RELATIONS =========================================
subscriptionPlanTC.addRelation(
  'indacoModules',
  {
    resolver: () => indacoModuleTC.mongooseResolvers.findByIds(),
    prepareArgs: {
      _ids: (source) => source.indacoModulesIds,
    },
    projection: { indacoModulesIds: true },
  },
);

// QUERIES ===========================================
const subscriptionPlanQuery = {
  ...auth.authenticationRequired({
    subscriptionPlanOne: subscriptionPlanTC.mongooseResolvers.findOne(),
    subscriptionPlanById: subscriptionPlanTC.mongooseResolvers.findById(),
    subscriptionPlanByIds: subscriptionPlanTC.mongooseResolvers.findByIds(),
    subscriptionPlanMany: subscriptionPlanTC.mongooseResolvers.findMany(),
    subscriptionPlanCount: subscriptionPlanTC.mongooseResolvers.count(),
  }),
};

// MUTATIONS ===========================================
const subscriptionPlanMutation = {
  ...auth.authenticationRequired(auth.superAdminRequired({
    subscriptionPlanCreateOne: subscriptionPlanTC.mongooseResolvers.createOne(),
    subscriptionPlanUpdateById: subscriptionPlanTC.mongooseResolvers.updateById(),
    subscriptionPlanUpdateOne: subscriptionPlanTC.mongooseResolvers.updateOne(),
  })),
};

// EXPORTS ===========================================
module.exports = { subscriptionPlanQuery, subscriptionPlanMutation };