import { forwardRef, Module } from '@nestjs/common';
import { UsersServices } from './users.service';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Users } from 'src/entities/users.entity';
import { Subscription } from 'src/entities/subscription.entity';
import { SubscriptionHistory } from 'src/entities/subscription-history.entity';
import { Card } from 'src/entities/card.entity';
import { SocialMedias } from 'src/entities/social-medias.entity';
import { SocialMediaPosts } from 'src/entities/social-media-posts.entity';
import { FacebookPages } from 'src/entities/facebook-pages.entity';
import { FacebookModule } from '../facebook/facebook.module';
import { InstagramModule } from '../instagram/instagram.module';
import { TiktokModule } from '../tiktok/tiktok.module';
import { YoutubesModule } from '../youtube/youtube.module';
import { StripeModule } from '../payment-gateway/stripe/stripe.module';
import { UserPermissions } from 'src/entities/user-permissions.entity';
import { Campaign } from 'src/entities/campaign.entity';
import { CanpaignModule } from 'src/modules/campaign/campaign.module';
import { InfluencerCategory } from 'src/entities/influencer-caregories.entity';
import { BrandIndustries } from 'src/entities/brand-industries.entity';
import { PaymentModule } from 'src/modules/payment/payment.module';

@Module({
    imports: [
        TypeOrmModule.forFeature([Users, Subscription, SubscriptionHistory, Card, SocialMedias, SocialMediaPosts, UserPermissions, Campaign, InfluencerCategory, BrandIndustries]),
        FacebookModule,
        InstagramModule,
        TiktokModule,
        YoutubesModule,
        StripeModule,
        PaymentModule,
        forwardRef(() => CanpaignModule),
    ],
    providers: [UsersServices],  // Provide the service
    exports: [UsersServices],    // Export the service to make it available in other modules
})
export class UsersModule { }