rwadurian/backend/services/referral-service/src/domain/repositories/referral-relationship.repos...

44 lines
1.0 KiB
TypeScript

import { ReferralRelationship } from '../aggregates';
/**
* 推荐关系仓储接口
*/
export interface IReferralRelationshipRepository {
/**
* 保存推荐关系
*/
save(relationship: ReferralRelationship): Promise<ReferralRelationship>;
/**
* 根据用户ID查找
*/
findByUserId(userId: bigint): Promise<ReferralRelationship | null>;
/**
* 根据推荐码查找
*/
findByReferralCode(code: string): Promise<ReferralRelationship | null>;
/**
* 查找用户的直推列表
*/
findDirectReferrals(userId: bigint): Promise<ReferralRelationship[]>;
/**
* 检查推荐码是否存在
*/
existsByReferralCode(code: string): Promise<boolean>;
/**
* 检查用户是否已有推荐关系
*/
existsByUserId(userId: bigint): Promise<boolean>;
/**
* 获取推荐链 (用于创建新用户时)
*/
getReferralChain(userId: bigint): Promise<bigint[]>;
}
export const REFERRAL_RELATIONSHIP_REPOSITORY = Symbol('IReferralRelationshipRepository');