Files
chat/server/plugins/com.msgbyte.saleschat/models/stats.ts

48 lines
1.1 KiB
TypeScript
Raw Normal View History

2026-04-25 16:36:34 +08:00
/**
*
* TypeGoose Tailchat
*/
import { db } from 'tailchat-server-sdk';
const { getModelForClass, prop, modelOptions, TimeStamps, index } = db;
@modelOptions({ options: { customName: 'p_saleschat_stats' } })
@index({ salesId: 1, date: 1, period: 1 }, { unique: true })
export class Stats extends TimeStamps implements db.Base {
_id: db.Types.ObjectId;
id: string;
/** 销售 ID关联用户 */
@prop({ required: true, ref: 'User' })
salesId: db.Types.ObjectId;
/** 统计日期 */
@prop({ required: true })
date: Date;
/** 统计周期daily / weekly / monthly */
@prop({ required: true })
period: 'daily' | 'weekly' | 'monthly';
/** 创建的邀请数 */
@prop({ default: 0 })
invitesCreated: number;
/** 加入人数 */
@prop({ default: 0 })
joins: number;
/** 转化次数 */
@prop({ default: 0 })
conversions: number;
/** 收入 */
@prop({ default: 0 })
revenue: number;
}
export type StatsDocument = db.DocumentType<Stats>;
const model = getModelForClass(Stats);
export type StatsModel = typeof model;
export default model;