chore: add referral module

This commit is contained in:
mahyargdz
2025-04-14 16:26:37 +03:30
parent 99ca2461f1
commit bec73658d5
21 changed files with 378 additions and 8 deletions
+15 -4
View File
@@ -18,6 +18,9 @@ import { Invoice } from "../../invoices/entities/invoice.entity";
import { LearningProgress } from "../../learnings/entities/learning-progress.entity";
import { Notification } from "../../notifications/entities/notification.entity";
import { Payment } from "../../payments/entities/payment.entity";
import { ReferralCode } from "../../referrals/entities/referral-code.entity";
import { ReferralReward } from "../../referrals/entities/referral-reward.entity";
import { Referral } from "../../referrals/entities/referral.entity";
import { UserSetting } from "../../settings/entities/user-setting.entity";
import { UserQuickAccess } from "../../subscriptions/entities/user-quick-access.entity";
import { UserSubscription } from "../../subscriptions/entities/user-subscription.entity";
@@ -132,8 +135,16 @@ export class User extends BaseEntity {
@OneToMany(() => RefreshToken, (refreshToken) => refreshToken.user, { cascade: true })
refreshTokens: RefreshToken[];
}
// @ManyToMany(() => DanakService, (danakService) => danakService.users)
// @JoinTable()
// danakServices: DanakService[];
@OneToOne(() => ReferralCode, (code) => code.user)
referralCode: ReferralCode;
@OneToMany(() => Referral, (referral) => referral.referrer)
referrals: Referral[];
@OneToMany(() => Referral, (referral) => referral.referredUser)
referredBy: Referral[];
@OneToMany(() => ReferralReward, (reward) => reward.user)
referralRewards: ReferralReward[];
}
+3 -2
View File
@@ -11,6 +11,7 @@ import { AddressService } from "../../address/providers/address.service";
import { CompleteRegistrationDto } from "../../auth/DTO/complete-register.dto";
import { RequestOtpDto } from "../../auth/DTO/request-otp.dto";
import { VerifyOtpDto } from "../../auth/DTO/verify-otp.dto";
import { ReferralsService } from "../../referrals/providers/referrals.service";
import { UserSettingsService } from "../../settings/providers/user-settings.service";
import { CacheService } from "../../utils/providers/cache.service";
import { EmailService } from "../../utils/providers/email.service";
@@ -30,7 +31,6 @@ import { LegalUserRepository } from "../repositories/legal-user.repository";
import { RealUserRepository } from "../repositories/real-user.repository";
import { UserGroupRepository } from "../repositories/user-group.repository";
import { UserRepository } from "../repositories/users.repository";
@Injectable()
export class UsersService {
private readonly logger = new Logger(UsersService.name);
@@ -47,6 +47,7 @@ export class UsersService {
private readonly otpService: OTPService,
private readonly smsService: SmsService,
private readonly cacheService: CacheService,
private readonly referralsService: ReferralsService,
) {}
/************************************************************ */
@@ -254,8 +255,8 @@ export class UsersService {
await queryRunner.manager.save(user);
await this.userSettingsService.createUserSettings(user.id, queryRunner);
await this.walletsService.createUserWallet(user.id, queryRunner);
await this.referralsService.generateReferralCode(user.id, queryRunner);
return user;
}
+2
View File
@@ -26,6 +26,7 @@ import { UtilsModule } from "../utils/utils.module";
import { AdminsService } from "./providers/admins.service";
import { CustomersService } from "./providers/customers.service";
import { RefreshTokensRepository } from "./repositories/refresh-token.repository";
import { ReferralsModule } from "../referrals/referrals.module";
@Module({
imports: [
@@ -33,6 +34,7 @@ import { RefreshTokensRepository } from "./repositories/refresh-token.repository
WalletsModule,
UtilsModule,
AddressModule,
ReferralsModule,
],
providers: [
UsersService,