Add customer communication system
This commit is contained in:
54
LittleShop/DTOs/BotSessionDto.cs
Normal file
54
LittleShop/DTOs/BotSessionDto.cs
Normal file
@@ -0,0 +1,54 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace LittleShop.DTOs;
|
||||
|
||||
public class BotSessionDto
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
public Guid BotId { get; set; }
|
||||
public string SessionIdentifier { get; set; } = string.Empty;
|
||||
public string Platform { get; set; } = string.Empty;
|
||||
public DateTime StartedAt { get; set; }
|
||||
public DateTime LastActivityAt { get; set; }
|
||||
public DateTime? EndedAt { get; set; }
|
||||
public int OrderCount { get; set; }
|
||||
public int MessageCount { get; set; }
|
||||
public decimal TotalSpent { get; set; }
|
||||
public string Language { get; set; } = string.Empty;
|
||||
public string Country { get; set; } = string.Empty;
|
||||
public bool IsAnonymous { get; set; }
|
||||
public Dictionary<string, object> Metadata { get; set; } = new();
|
||||
}
|
||||
|
||||
public class CreateBotSessionDto
|
||||
{
|
||||
public string SessionIdentifier { get; set; } = string.Empty;
|
||||
public string Platform { get; set; } = string.Empty;
|
||||
public string Language { get; set; } = "en";
|
||||
public string Country { get; set; } = string.Empty;
|
||||
public bool IsAnonymous { get; set; } = true;
|
||||
public Dictionary<string, object> Metadata { get; set; } = new();
|
||||
}
|
||||
|
||||
public class UpdateBotSessionDto
|
||||
{
|
||||
public int? OrderCount { get; set; }
|
||||
public int? MessageCount { get; set; }
|
||||
public decimal? TotalSpent { get; set; }
|
||||
public bool? EndSession { get; set; }
|
||||
public Dictionary<string, object>? Metadata { get; set; }
|
||||
}
|
||||
|
||||
public class BotSessionSummaryDto
|
||||
{
|
||||
public int TotalSessions { get; set; }
|
||||
public int ActiveSessions { get; set; }
|
||||
public int CompletedSessions { get; set; }
|
||||
public decimal AverageSessionDuration { get; set; } // in minutes
|
||||
public decimal AverageOrdersPerSession { get; set; }
|
||||
public decimal AverageSpendPerSession { get; set; }
|
||||
public Dictionary<string, int> SessionsByPlatform { get; set; } = new();
|
||||
public Dictionary<string, int> SessionsByCountry { get; set; } = new();
|
||||
public Dictionary<string, int> SessionsByLanguage { get; set; } = new();
|
||||
}
|
||||
Reference in New Issue
Block a user