async createSubscription({customer, price, ...overrides}, options = {sendWebhook: true}) {
        const subscriptionId = `sub_${this.#generateRandomId()}`;

        const subscription = {
            id: subscriptionId,
            object: 'subscription',
            cancel_at_period_end: false,
            canceled_at: null,
            current_period_end: (Date.now() + 1000 * 60 * 60 * 24 * 31) / 1000,
            start_date: Math.floor(Date.now() / 1000),

            status: 'active',
            items: {
                type: 'list',
                data: [
                    {
                        price
                    }
                ]
            },
            customer: customer.id,
            ...overrides
        };
        this.subscriptions.push(subscription);
        customer.subscriptions.data.push(subscription);

        // Announce
        if (options.sendWebhook) {
            await this.sendWebhook({
                type: 'checkout.session.completed',
                data: {
                    object: {
                        mode: 'subscription',
                        customer: customer.id,
                        metadata: {
                            checkoutType: 'signup'
                        }
                    }
                }
            });
        }

        return subscription;
    }
Creates a subscription for a customer.

@param {object} data - The data for creating the subscription.
@param {object} data.customer - The customer object.
@param {object} data.price - The price object.
@param {object} [data.overrides] - Optional overrides for the subscription object.
@param {object} options - The options for creating the subscription.
@param {object} [options.sendWebhook=true] - Whether to send a webhook or not.
@returns {Promise<Object>} The created subscription object.