huhuih
hzgjuigik
This commit is contained in:
@@ -200,6 +200,58 @@ async function setupCollections() {
|
||||
db.createStringAttribute(DB_ID, 'user_preferences', 'userId', 64, true));
|
||||
await ensureAttribute('user_preferences', 'preferencesJson', () =>
|
||||
db.createStringAttribute(DB_ID, 'user_preferences', 'preferencesJson', 16384, false));
|
||||
|
||||
// ==================== Onboarding State ====================
|
||||
await ensureCollection('onboarding_state', 'Onboarding State', PERM_AUTHENTICATED);
|
||||
await ensureAttribute('onboarding_state', 'userId', () =>
|
||||
db.createStringAttribute(DB_ID, 'onboarding_state', 'userId', 64, true));
|
||||
await ensureAttribute('onboarding_state', 'onboarding_step', () =>
|
||||
db.createStringAttribute(DB_ID, 'onboarding_state', 'onboarding_step', 32, true));
|
||||
await ensureAttribute('onboarding_state', 'completed_steps_json', () =>
|
||||
db.createStringAttribute(DB_ID, 'onboarding_state', 'completed_steps_json', 1024, false));
|
||||
await ensureAttribute('onboarding_state', 'first_value_seen_at', () =>
|
||||
db.createDatetimeAttribute(DB_ID, 'onboarding_state', 'first_value_seen_at', false));
|
||||
await ensureAttribute('onboarding_state', 'skipped_at', () =>
|
||||
db.createDatetimeAttribute(DB_ID, 'onboarding_state', 'skipped_at', false));
|
||||
await ensureAttribute('onboarding_state', 'last_updated', () =>
|
||||
db.createDatetimeAttribute(DB_ID, 'onboarding_state', 'last_updated', false));
|
||||
|
||||
// ==================== Email Usage ====================
|
||||
await ensureCollection('email_usage', 'Email Usage', PERM_AUTHENTICATED);
|
||||
await ensureAttribute('email_usage', 'userId', () =>
|
||||
db.createStringAttribute(DB_ID, 'email_usage', 'userId', 64, true));
|
||||
await ensureAttribute('email_usage', 'month', () =>
|
||||
db.createStringAttribute(DB_ID, 'email_usage', 'month', 16, true)); // "2026-01"
|
||||
await ensureAttribute('email_usage', 'emailsProcessed', () =>
|
||||
db.createIntegerAttribute(DB_ID, 'email_usage', 'emailsProcessed', true, 0));
|
||||
await ensureAttribute('email_usage', 'lastReset', () =>
|
||||
db.createDatetimeAttribute(DB_ID, 'email_usage', 'lastReset', false));
|
||||
|
||||
// ==================== Referrals ====================
|
||||
await ensureCollection('referrals', 'Referrals', PERM_AUTHENTICATED);
|
||||
await ensureAttribute('referrals', 'userId', () =>
|
||||
db.createStringAttribute(DB_ID, 'referrals', 'userId', 64, true));
|
||||
await ensureAttribute('referrals', 'referralCode', () =>
|
||||
db.createStringAttribute(DB_ID, 'referrals', 'referralCode', 32, true));
|
||||
await ensureAttribute('referrals', 'referredBy', () =>
|
||||
db.createStringAttribute(DB_ID, 'referrals', 'referredBy', 64, false));
|
||||
await ensureAttribute('referrals', 'referralCount', () =>
|
||||
db.createIntegerAttribute(DB_ID, 'referrals', 'referralCount', true, 0));
|
||||
await ensureAttribute('referrals', 'createdAt', () =>
|
||||
db.createDatetimeAttribute(DB_ID, 'referrals', 'createdAt', false));
|
||||
|
||||
// ==================== Analytics Events ====================
|
||||
await ensureCollection('analytics_events', 'Analytics Events', PERM_PUBLIC_READ);
|
||||
await ensureAttribute('analytics_events', 'userId', () =>
|
||||
db.createStringAttribute(DB_ID, 'analytics_events', 'userId', 64, false));
|
||||
await ensureAttribute('analytics_events', 'eventType', () =>
|
||||
db.createStringAttribute(DB_ID, 'analytics_events', 'eventType', 64, true));
|
||||
await ensureAttribute('analytics_events', 'metadataJson', () =>
|
||||
db.createStringAttribute(DB_ID, 'analytics_events', 'metadataJson', 4096, false));
|
||||
await ensureAttribute('analytics_events', 'timestamp', () =>
|
||||
db.createDatetimeAttribute(DB_ID, 'analytics_events', 'timestamp', false));
|
||||
await ensureAttribute('analytics_events', 'sessionId', () =>
|
||||
db.createStringAttribute(DB_ID, 'analytics_events', 'sessionId', 64, false));
|
||||
}
|
||||
|
||||
async function main() {
|
||||
|
||||
Reference in New Issue
Block a user