feat(domain): add domain entities and enums
This commit is contained in:
19
src/IncidentOps.Domain/Entities/Incident.cs
Normal file
19
src/IncidentOps.Domain/Entities/Incident.cs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
using IncidentOps.Domain.Enums;
|
||||||
|
|
||||||
|
namespace IncidentOps.Domain.Entities;
|
||||||
|
|
||||||
|
public class Incident
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
public Guid OrgId { get; set; }
|
||||||
|
public Guid ServiceId { get; set; }
|
||||||
|
public required string Title { get; set; }
|
||||||
|
public string? Description { get; set; }
|
||||||
|
public IncidentStatus Status { get; set; }
|
||||||
|
public int Version { get; set; }
|
||||||
|
public Guid? AssignedToUserId { get; set; }
|
||||||
|
public DateTime CreatedAt { get; set; }
|
||||||
|
public DateTime? AcknowledgedAt { get; set; }
|
||||||
|
public DateTime? MitigatedAt { get; set; }
|
||||||
|
public DateTime? ResolvedAt { get; set; }
|
||||||
|
}
|
||||||
13
src/IncidentOps.Domain/Entities/IncidentEvent.cs
Normal file
13
src/IncidentOps.Domain/Entities/IncidentEvent.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
using IncidentOps.Domain.Enums;
|
||||||
|
|
||||||
|
namespace IncidentOps.Domain.Entities;
|
||||||
|
|
||||||
|
public class IncidentEvent
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
public Guid IncidentId { get; set; }
|
||||||
|
public IncidentEventType EventType { get; set; }
|
||||||
|
public Guid? ActorUserId { get; set; }
|
||||||
|
public string? Payload { get; set; }
|
||||||
|
public DateTime CreatedAt { get; set; }
|
||||||
|
}
|
||||||
12
src/IncidentOps.Domain/Entities/NotificationAttempt.cs
Normal file
12
src/IncidentOps.Domain/Entities/NotificationAttempt.cs
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
namespace IncidentOps.Domain.Entities;
|
||||||
|
|
||||||
|
public class NotificationAttempt
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
public Guid IncidentId { get; set; }
|
||||||
|
public Guid TargetId { get; set; }
|
||||||
|
public bool Success { get; set; }
|
||||||
|
public string? ErrorMessage { get; set; }
|
||||||
|
public int AttemptNumber { get; set; }
|
||||||
|
public DateTime CreatedAt { get; set; }
|
||||||
|
}
|
||||||
15
src/IncidentOps.Domain/Entities/NotificationTarget.cs
Normal file
15
src/IncidentOps.Domain/Entities/NotificationTarget.cs
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
using IncidentOps.Domain.Enums;
|
||||||
|
|
||||||
|
namespace IncidentOps.Domain.Entities;
|
||||||
|
|
||||||
|
public class NotificationTarget
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
public Guid OrgId { get; set; }
|
||||||
|
public required string Name { get; set; }
|
||||||
|
public NotificationTargetType TargetType { get; set; }
|
||||||
|
public required string Configuration { get; set; }
|
||||||
|
public bool IsEnabled { get; set; }
|
||||||
|
public DateTime CreatedAt { get; set; }
|
||||||
|
public DateTime? UpdatedAt { get; set; }
|
||||||
|
}
|
||||||
10
src/IncidentOps.Domain/Entities/Org.cs
Normal file
10
src/IncidentOps.Domain/Entities/Org.cs
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
namespace IncidentOps.Domain.Entities;
|
||||||
|
|
||||||
|
public class Org
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
public required string Name { get; set; }
|
||||||
|
public required string Slug { get; set; }
|
||||||
|
public DateTime CreatedAt { get; set; }
|
||||||
|
public DateTime? UpdatedAt { get; set; }
|
||||||
|
}
|
||||||
13
src/IncidentOps.Domain/Entities/OrgMember.cs
Normal file
13
src/IncidentOps.Domain/Entities/OrgMember.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
using IncidentOps.Domain.Enums;
|
||||||
|
|
||||||
|
namespace IncidentOps.Domain.Entities;
|
||||||
|
|
||||||
|
public class OrgMember
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
public Guid OrgId { get; set; }
|
||||||
|
public Guid UserId { get; set; }
|
||||||
|
public OrgRole Role { get; set; }
|
||||||
|
public DateTime CreatedAt { get; set; }
|
||||||
|
public DateTime? UpdatedAt { get; set; }
|
||||||
|
}
|
||||||
12
src/IncidentOps.Domain/Entities/RefreshToken.cs
Normal file
12
src/IncidentOps.Domain/Entities/RefreshToken.cs
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
namespace IncidentOps.Domain.Entities;
|
||||||
|
|
||||||
|
public class RefreshToken
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
public Guid UserId { get; set; }
|
||||||
|
public required string TokenHash { get; set; }
|
||||||
|
public Guid ActiveOrgId { get; set; }
|
||||||
|
public DateTime ExpiresAt { get; set; }
|
||||||
|
public DateTime? RevokedAt { get; set; }
|
||||||
|
public DateTime CreatedAt { get; set; }
|
||||||
|
}
|
||||||
12
src/IncidentOps.Domain/Entities/Service.cs
Normal file
12
src/IncidentOps.Domain/Entities/Service.cs
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
namespace IncidentOps.Domain.Entities;
|
||||||
|
|
||||||
|
public class Service
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
public Guid OrgId { get; set; }
|
||||||
|
public required string Name { get; set; }
|
||||||
|
public required string Slug { get; set; }
|
||||||
|
public string? Description { get; set; }
|
||||||
|
public DateTime CreatedAt { get; set; }
|
||||||
|
public DateTime? UpdatedAt { get; set; }
|
||||||
|
}
|
||||||
11
src/IncidentOps.Domain/Entities/User.cs
Normal file
11
src/IncidentOps.Domain/Entities/User.cs
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
namespace IncidentOps.Domain.Entities;
|
||||||
|
|
||||||
|
public class User
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
public required string Email { get; set; }
|
||||||
|
public required string PasswordHash { get; set; }
|
||||||
|
public required string DisplayName { get; set; }
|
||||||
|
public DateTime CreatedAt { get; set; }
|
||||||
|
public DateTime? UpdatedAt { get; set; }
|
||||||
|
}
|
||||||
13
src/IncidentOps.Domain/Enums/IncidentEventType.cs
Normal file
13
src/IncidentOps.Domain/Enums/IncidentEventType.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
namespace IncidentOps.Domain.Enums;
|
||||||
|
|
||||||
|
public enum IncidentEventType
|
||||||
|
{
|
||||||
|
Created,
|
||||||
|
Acknowledged,
|
||||||
|
Mitigated,
|
||||||
|
Resolved,
|
||||||
|
Comment,
|
||||||
|
NotificationSent,
|
||||||
|
NotificationFailed,
|
||||||
|
EscalationTriggered
|
||||||
|
}
|
||||||
9
src/IncidentOps.Domain/Enums/IncidentStatus.cs
Normal file
9
src/IncidentOps.Domain/Enums/IncidentStatus.cs
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
namespace IncidentOps.Domain.Enums;
|
||||||
|
|
||||||
|
public enum IncidentStatus
|
||||||
|
{
|
||||||
|
Triggered,
|
||||||
|
Acknowledged,
|
||||||
|
Mitigated,
|
||||||
|
Resolved
|
||||||
|
}
|
||||||
8
src/IncidentOps.Domain/Enums/NotificationTargetType.cs
Normal file
8
src/IncidentOps.Domain/Enums/NotificationTargetType.cs
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
namespace IncidentOps.Domain.Enums;
|
||||||
|
|
||||||
|
public enum NotificationTargetType
|
||||||
|
{
|
||||||
|
Webhook,
|
||||||
|
Email,
|
||||||
|
Slack
|
||||||
|
}
|
||||||
8
src/IncidentOps.Domain/Enums/OrgRole.cs
Normal file
8
src/IncidentOps.Domain/Enums/OrgRole.cs
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
namespace IncidentOps.Domain.Enums;
|
||||||
|
|
||||||
|
public enum OrgRole
|
||||||
|
{
|
||||||
|
Viewer,
|
||||||
|
Member,
|
||||||
|
Admin
|
||||||
|
}
|
||||||
13
src/IncidentOps.Domain/IncidentOps.Domain.csproj
Normal file
13
src/IncidentOps.Domain/IncidentOps.Domain.csproj
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\IncidentOps.Contracts\IncidentOps.Contracts.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net10.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
Reference in New Issue
Block a user