import mongoose, { Schema, Document, Types } from 'mongoose'; // @ts-ignore export interface ITransaction extends Document { user: Types.ObjectId; conversationId?: string; tokenType: 'prompt' | 'completion' | 'credits'; model?: string; context?: string; valueKey?: string; rate?: number; rawAmount?: number; tokenValue?: number; inputTokens?: number; writeTokens?: number; readTokens?: number; createdAt?: Date; updatedAt?: Date; } const transactionSchema: Schema = new Schema( { user: { type: mongoose.Schema.Types.ObjectId, ref: 'User', index: true, required: true, }, conversationId: { type: String, ref: 'Conversation', index: true, }, tokenType: { type: String, enum: ['prompt', 'completion', 'credits'], required: true, }, model: { type: String, }, context: { type: String, }, valueKey: { type: String, }, rate: Number, rawAmount: Number, tokenValue: Number, inputTokens: { type: Number }, writeTokens: { type: Number }, readTokens: { type: Number }, }, { timestamps: true, }, ); export default transactionSchema;