import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose' import { Document } from 'mongoose' export type GravityTransactionDocument = GravityTransaction & Document export type GravityTransactionType = | 'registration' // 注册赠送 | 'interview_deduct' // AI 面试消耗 | 'optimize_deduct' // 简历优化消耗 | 'download_deduct' // 简历下载消耗 | 'purchase' // 充值购买 | 'monthly_topup' // 月度补给 | 'migration' // 旧额度迁移 | 'plan_set' // 套餐设置 | 'share' // 分享所得 | 'contribution' // 面经贡献奖励 | 'share_credits_fallback' // 分享币后备抵扣 | 'admin_adjust' // 管理员调整 @Schema({ timestamps: true }) export class GravityTransaction { @Prop({ required: true, index: true }) userId: string @Prop({ required: true }) amount: number // 变动数量(正=增加,负=减少) @Prop({ required: true }) balance: number // 变动后余额 @Prop({ required: true }) type: GravityTransactionType @Prop({ default: '' }) description: string // 描述(如 "AI 模拟面试消耗") @Prop() refId?: string // 关联 ID(订单号、面试ID 等) } export const GravityTransactionSchema = SchemaFactory.createForClass(GravityTransaction) GravityTransactionSchema.index({ userId: 1, createdAt: -1 })