import { forwardRef, Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Plan } from 'src/entities/plan.entity';
import { PlanPermission } from 'src/entities/plan-permission.entity';
import { StripeServices } from './stripe.service';
import { Users } from 'src/entities/users.entity';
import { Subscription } from 'src/entities/subscription.entity';
import { SubscriptionHistory } from 'src/entities/subscription-history.entity';
import { CampaignPayment } from 'src/entities/campaign_payment.entity';
import { CampaignPaymentHistory } from 'src/entities/campaign_payment_history.entity';
import { EncryptionModule } from '../../encryption/encryption.module';
import { SendMailService } from 'src/common/config/send-mail.service';
import { PaymentModule } from 'src/modules/payment/payment.module';
import { Card } from 'src/entities/card.entity';

@Module({
    imports: [
        TypeOrmModule.forFeature([Plan, Subscription, SubscriptionHistory, Users, CampaignPayment, CampaignPaymentHistory, Card]),
        EncryptionModule,
        forwardRef(() => PaymentModule)
    ],
    providers: [StripeServices, SendMailService],  // Provide the service
    exports: [StripeServices],    // Export the service to make it available in other modules
})
export class StripeModule { }