- 新增字节跳动和微信平台适配器实现 - 完善平台适配器基础架构和接口定义 - 添加平台用户管理和数据同步功能 - 实现完整的平台模块和控制器 - 更新所有实体类支持多平台数据结构 - 优化模板系统支持平台特定功能
106 lines
3.2 KiB
TypeScript
106 lines
3.2 KiB
TypeScript
import {
|
|
Entity,
|
|
PrimaryGeneratedColumn,
|
|
Column,
|
|
CreateDateColumn,
|
|
UpdateDateColumn,
|
|
ManyToOne,
|
|
JoinColumn,
|
|
} from 'typeorm';
|
|
import { UserEntity } from './user.entity';
|
|
import { PlatformType } from './platform-user.entity';
|
|
|
|
/**
|
|
* 积分变动类型枚举
|
|
* 定义用户积分账户的不同变动操作类型
|
|
*/
|
|
export enum CreditType {
|
|
REWARD = 'reward', // 奖励获得 - 用户通过完成任务获得积分
|
|
CONSUME = 'consume', // 消费扣除 - 用户使用功能消耗积分
|
|
PURCHASE = 'purchase', // 购买获得 - 用户付费购买积分
|
|
REFUND = 'refund', // 退款返还 - 服务异常或用户申请退款
|
|
}
|
|
|
|
/**
|
|
* 积分来源枚举
|
|
* 标识积分变动的具体业务来源
|
|
* 用于积分流水分析和运营统计
|
|
*/
|
|
export enum CreditSource {
|
|
AD_WATCH = 'ad_watch', // 看广告 - 用户观看激励广告获得积分
|
|
SUBSCRIPTION = 'subscription', // 订阅赠送 - 订阅会员获得的积分奖励
|
|
AI_GENERATION = 'ai_generation', // AI生成消费 - 使用AI功能消耗积分
|
|
MANUAL = 'manual', // 手动调整 - 管理员手动调整用户积分
|
|
}
|
|
|
|
/**
|
|
* 用户积分记录实体类
|
|
* 记录用户积分账户的所有变动明细
|
|
* 提供完整的积分流水追踪和余额管理
|
|
* 支持多平台积分系统和业务关联
|
|
*/
|
|
@Entity('user_credits')
|
|
export class UserCreditEntity {
|
|
/** 主键 - 积分记录的唯一标识符 */
|
|
@PrimaryGeneratedColumn('uuid')
|
|
id: string;
|
|
|
|
/** 用户ID - 关联到用户实体 */
|
|
@Column()
|
|
userId: string;
|
|
|
|
/** 平台类型 - 标识积分变动发生的平台,支持多平台积分管理 */
|
|
@Column({
|
|
type: 'enum',
|
|
enum: PlatformType,
|
|
})
|
|
platform: PlatformType;
|
|
|
|
/** 变动类型 - 积分的操作类型(奖励、消费、购买、退款) */
|
|
@Column({
|
|
type: 'enum',
|
|
enum: CreditType,
|
|
})
|
|
type: CreditType;
|
|
|
|
/** 积分来源 - 标识积分变动的具体业务来源,用于数据分析和运营决策 */
|
|
@Column({
|
|
type: 'enum',
|
|
enum: CreditSource,
|
|
})
|
|
source: CreditSource;
|
|
|
|
/** 变动金额 - 积分变动数量,正数为增加,负数为扣除 */
|
|
@Column({ type: 'integer' })
|
|
amount: number;
|
|
|
|
/** 操作后余额 - 本次操作完成后的用户积分余额,用于余额校验和历史查询 */
|
|
@Column({ type: 'integer' })
|
|
balance: number;
|
|
|
|
/** 变动描述 - 积分变动的文字说明,便于用户理解和客服处理 */
|
|
@Column({ length: 200, nullable: true })
|
|
description: string;
|
|
|
|
/** 关联业务ID - 关联的业务记录ID(如广告观看ID、模板执行ID、订单ID等) */
|
|
@Column({ length: 100, nullable: true })
|
|
referenceId: string;
|
|
|
|
/** 扩展元数据 - 存储积分操作的附加信息,如优惠规则、活动信息等 */
|
|
@Column({ type: 'json', nullable: true })
|
|
metadata: any;
|
|
|
|
/** 创建时间 - 积分变动记录的创建时间戳 */
|
|
@CreateDateColumn()
|
|
createdAt: Date;
|
|
|
|
/** 更新时间 - 记录最后修改时间,用于数据审计 */
|
|
@UpdateDateColumn()
|
|
updatedAt: Date;
|
|
|
|
/** 用户关系 - 与用户实体的多对一关系,级联删除 */
|
|
@ManyToOne(() => UserEntity, (user) => user.credits, { onDelete: 'CASCADE' })
|
|
@JoinColumn({ name: 'userId' })
|
|
user: UserEntity;
|
|
}
|