new selfhosted version

This commit is contained in:
antonio
2025-11-28 14:11:51 +01:00
parent afda29997d
commit 951860f67e
1046 changed files with 72586 additions and 574750 deletions

View File

@@ -0,0 +1,20 @@
import { model, Schema } from 'mongoose';
export type TAggBouncing = {
project_id: Schema.Types.ObjectId,
domain: string,
from: Date,
to: Date,
data: { _id: { date: Date }, count: number, timestamp: number }[]
}
const AggBouncingSchema = new Schema<TAggBouncing>({
project_id: { type: Schema.Types.ObjectId, index: true },
domain: { type: String, required: true },
from: { type: Date, required: true },
to: { type: Date, required: true },
data: [{ type: Schema.Types.Mixed }]
});
export const AggBouncingModel = model<TAggBouncing>('agg_bouncings', AggBouncingSchema);

View File

@@ -0,0 +1,20 @@
import { model, Schema } from 'mongoose';
export type TAggDuration = {
project_id: Schema.Types.ObjectId,
domain: string,
from: Date,
to: Date,
data: { _id: { date: Date }, count: number, timestamp: number }[]
}
const AggDurationSchema = new Schema<TAggDuration>({
project_id: { type: Schema.Types.ObjectId, index: true },
domain: { type: String, required: true },
from: { type: Date, required: true },
to: { type: Date, required: true },
data: [{ type: Schema.Types.Mixed }]
});
export const AggDurationModel = model<TAggDuration>('agg_durations', AggDurationSchema);

View File

@@ -0,0 +1,25 @@
import { model, Schema } from 'mongoose';
export type TAgg = {
project_id: Schema.Types.ObjectId,
domain: string,
data_type: string,
date: Date,
data: number
}
const AggSchema = new Schema<TAgg>({
project_id: { type: Schema.Types.ObjectId, index: true },
data_type: { type: String, index: true, required: true },
domain: { type: String, required: true },
date: { type: Date, required: true },
data: { type: Number, required: true }
});
AggSchema.index(
{ project_id: 1, date: 1, domain: 1, data_type: 1 },
{ unique: true }
);
export const AggModel = model<TAgg>('aggregations', AggSchema);

View File

@@ -0,0 +1,20 @@
import { model, Schema } from 'mongoose';
export type TAggSession = {
project_id: Schema.Types.ObjectId,
domain: string,
from: Date,
to: Date,
data: { _id: { date: Date }, count: number, timestamp: number }[]
}
const AggSessionSchema = new Schema<TAggSession>({
project_id: { type: Schema.Types.ObjectId, index: true },
domain: { type: String, required: true },
from: { type: Date, required: true },
to: { type: Date, required: true },
data: [{ type: Schema.Types.Mixed }]
});
export const AggSessionModel = model<TAggSession>('agg_sessions', AggSessionSchema);

View File

@@ -0,0 +1,20 @@
import { model, Schema } from 'mongoose';
export type TAggVisit = {
project_id: Schema.Types.ObjectId,
domain: string,
from: Date,
to: Date,
data: { _id: { date: Date }, count: number, timestamp: number }[]
}
const AggVisitSchema = new Schema<TAggVisit>({
project_id: { type: Schema.Types.ObjectId, index: true },
domain: { type: String, required: true },
from: { type: Date, required: true },
to: { type: Date, required: true },
data: [{ type: Schema.Types.Mixed }]
});
export const AggVisitModel = model<TAggVisit>('agg_visits', AggVisitSchema);