| | | 1 | | using System.Text.Json; |
| | | 2 | | |
| | | 3 | | namespace Syki.Back.Domain.Activities; |
| | | 4 | | |
| | | 5 | | public class UserActivity |
| | | 6 | | { |
| | 0 | 7 | | public int Id { get; set; } |
| | 8 | 8 | | public int? UserId { get; set; } |
| | 8 | 9 | | public int? InstitutionId { get; set; } |
| | 8 | 10 | | public FeatureGroup FeatureGroup { get; set; } |
| | 8 | 11 | | public UserActivitySeverity Severity { get; set; } |
| | 8 | 12 | | public UserActivityType ActivityType { get; set; } |
| | 8 | 13 | | public JsonDocument? Metadata { get; set; } |
| | 8 | 14 | | public DateTime CreatedAt { get; set; } |
| | | 15 | | |
| | 0 | 16 | | public UserActivity() {} |
| | | 17 | | |
| | 8 | 18 | | public UserActivity( |
| | 8 | 19 | | UserActivitySeverity severity, |
| | 8 | 20 | | UserActivityType type, |
| | 8 | 21 | | int? userId = null, |
| | 8 | 22 | | int? institutionId = null, |
| | 8 | 23 | | object? metadata = null) |
| | | 24 | | { |
| | 8 | 25 | | ActivityType = type; |
| | 8 | 26 | | UserId = userId; |
| | 8 | 27 | | InstitutionId = institutionId; |
| | 8 | 28 | | CreatedAt = DateTime.UtcNow; |
| | 8 | 29 | | Severity = severity; |
| | 8 | 30 | | FeatureGroup = (type.ToInt() / 10_000).IntToEnum<FeatureGroup>(); |
| | 8 | 31 | | Metadata = metadata != null ? JsonDocument.Parse(metadata.Serialize()) : null; |
| | 8 | 32 | | } |
| | | 33 | | } |