import * as plugins from '../plugins.js';
import { BillingPlanManager } from './classes.billingplanmanager.js';
import { User } from './classes.user.js';

/**
 * a billing plan belongs to a user which can then attribute the billing plan to a organization
 */
@plugins.smartdata.Manager()
export class BillingPlan extends plugins.smartdata.SmartDataDbDoc<
  BillingPlan,
  plugins.idpInterfaces.data.IBillingPlan,
  BillingPlanManager
> {
  // STATIC
  public static syncForUser(userArg: User) {
    // TODO sync this for user
  }

  @plugins.smartdata.svDb()
  public id: string;

  @plugins.smartdata.svDb()
  public data: plugins.idpInterfaces.data.IBillingPlan['data'] = {
    type: null,
    organizationId: null,
    lastProcessed: null,
    seats: null,
    status: null,
    billingEvents: [],
    communications: [],
    nextBilling: null,
    proEnabled: false,
    alternativePaymentData: null,
    paddleData: null,
  };
}
