import * as plugins from '../loint-reception.plugins.js';
import * as data from '../data/index.js';

export interface IReq_UpdatePaymentMethod
  extends plugins.typedRequestInterfaces.implementsTR<
    plugins.typedRequestInterfaces.ITypedRequest,
    IReq_UpdatePaymentMethod
  > {
  method: 'updatePaymentMethod';
  request: {
    jwtString: string;
    orgId: string;
    paddle?: {
      checkoutId: string;
    };
  };
  response: {
    billingPlan: plugins.tsclass.typeFest.PartialDeep<data.IBillingPlan>;
  };
}

/**
 * allows getting the billing plan for a user
 */
export interface IReq_GetBillingPlan
  extends plugins.typedRequestInterfaces.implementsTR<
    plugins.typedRequestInterfaces.ITypedRequest,
    IReq_GetBillingPlan
  > {
  method: 'getBillingPlan';
  request: {
    jwtString: string;
    orgId: string;
    billingPlanId: string;
  };
  response: {
    billingPlan: data.IBillingPlan;
  };
}
