Rename project to RealCV with new logo and font updates
- Rename all TrueCV references to RealCV across the codebase - Add new transparent RealCV logo - Switch from JetBrains Mono to Inter font for better number clarity - Update solution, project files, and namespaces 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
31
src/RealCV.Domain/Constants/PlanLimits.cs
Normal file
31
src/RealCV.Domain/Constants/PlanLimits.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using RealCV.Domain.Enums;
|
||||
|
||||
namespace RealCV.Domain.Constants;
|
||||
|
||||
public static class PlanLimits
|
||||
{
|
||||
public static int GetMonthlyLimit(UserPlan plan) => plan switch
|
||||
{
|
||||
UserPlan.Free => 3,
|
||||
UserPlan.Professional => 30,
|
||||
UserPlan.Enterprise => int.MaxValue,
|
||||
_ => 0
|
||||
};
|
||||
|
||||
public static int GetPricePence(UserPlan plan) => plan switch
|
||||
{
|
||||
UserPlan.Professional => 4900,
|
||||
UserPlan.Enterprise => 19900,
|
||||
_ => 0
|
||||
};
|
||||
|
||||
public static string GetDisplayPrice(UserPlan plan) => plan switch
|
||||
{
|
||||
UserPlan.Free => "Free",
|
||||
UserPlan.Professional => "£49/month",
|
||||
UserPlan.Enterprise => "£199/month",
|
||||
_ => "Unknown"
|
||||
};
|
||||
|
||||
public static bool IsUnlimited(UserPlan plan) => plan == UserPlan.Enterprise;
|
||||
}
|
||||
28
src/RealCV.Domain/Entities/AuditLog.cs
Normal file
28
src/RealCV.Domain/Entities/AuditLog.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace RealCV.Domain.Entities;
|
||||
|
||||
public class AuditLog
|
||||
{
|
||||
[Key]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
public Guid UserId { get; set; }
|
||||
|
||||
[Required]
|
||||
[MaxLength(64)]
|
||||
public string Action { get; set; } = string.Empty;
|
||||
|
||||
[MaxLength(128)]
|
||||
public string? EntityType { get; set; }
|
||||
|
||||
public Guid? EntityId { get; set; }
|
||||
|
||||
[MaxLength(1024)]
|
||||
public string? Details { get; set; }
|
||||
|
||||
[MaxLength(64)]
|
||||
public string? IpAddress { get; set; }
|
||||
|
||||
public DateTime CreatedAt { get; set; }
|
||||
}
|
||||
37
src/RealCV.Domain/Entities/CVCheck.cs
Normal file
37
src/RealCV.Domain/Entities/CVCheck.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using RealCV.Domain.Enums;
|
||||
|
||||
namespace RealCV.Domain.Entities;
|
||||
|
||||
public class CVCheck
|
||||
{
|
||||
[Key]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
public Guid UserId { get; set; }
|
||||
|
||||
[Required]
|
||||
[MaxLength(512)]
|
||||
public string OriginalFileName { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
[MaxLength(2048)]
|
||||
public string BlobUrl { get; set; } = string.Empty;
|
||||
|
||||
public CheckStatus Status { get; set; }
|
||||
|
||||
public string? ExtractedDataJson { get; set; }
|
||||
|
||||
public int? VeracityScore { get; set; }
|
||||
|
||||
[MaxLength(64)]
|
||||
public string? ProcessingStage { get; set; }
|
||||
|
||||
public string? ReportJson { get; set; }
|
||||
|
||||
public DateTime CreatedAt { get; set; }
|
||||
|
||||
public DateTime? CompletedAt { get; set; }
|
||||
|
||||
public ICollection<CVFlag> Flags { get; set; } = new List<CVFlag>();
|
||||
}
|
||||
31
src/RealCV.Domain/Entities/CVFlag.cs
Normal file
31
src/RealCV.Domain/Entities/CVFlag.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using RealCV.Domain.Enums;
|
||||
|
||||
namespace RealCV.Domain.Entities;
|
||||
|
||||
public class CVFlag
|
||||
{
|
||||
[Key]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
public Guid CVCheckId { get; set; }
|
||||
|
||||
public FlagCategory Category { get; set; }
|
||||
|
||||
public FlagSeverity Severity { get; set; }
|
||||
|
||||
[Required]
|
||||
[MaxLength(256)]
|
||||
public string Title { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
[MaxLength(2048)]
|
||||
public string Description { get; set; } = string.Empty;
|
||||
|
||||
public int ScoreImpact { get; set; }
|
||||
|
||||
// Navigation property
|
||||
[ForeignKey(nameof(CVCheckId))]
|
||||
public CVCheck CVCheck { get; set; } = null!;
|
||||
}
|
||||
33
src/RealCV.Domain/Entities/CompanyCache.cs
Normal file
33
src/RealCV.Domain/Entities/CompanyCache.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace RealCV.Domain.Entities;
|
||||
|
||||
public class CompanyCache
|
||||
{
|
||||
[Key]
|
||||
[MaxLength(32)]
|
||||
public string CompanyNumber { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
[MaxLength(512)]
|
||||
public string CompanyName { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
[MaxLength(64)]
|
||||
public string Status { get; set; } = string.Empty;
|
||||
|
||||
[MaxLength(64)]
|
||||
public string? CompanyType { get; set; }
|
||||
|
||||
public DateOnly? IncorporationDate { get; set; }
|
||||
|
||||
public DateOnly? DissolutionDate { get; set; }
|
||||
|
||||
[MaxLength(64)]
|
||||
public string? AccountsCategory { get; set; }
|
||||
|
||||
[MaxLength(256)]
|
||||
public string? SicCodesJson { get; set; }
|
||||
|
||||
public DateTime CachedAt { get; set; }
|
||||
}
|
||||
9
src/RealCV.Domain/Enums/CheckStatus.cs
Normal file
9
src/RealCV.Domain/Enums/CheckStatus.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace RealCV.Domain.Enums;
|
||||
|
||||
public enum CheckStatus
|
||||
{
|
||||
Pending,
|
||||
Processing,
|
||||
Completed,
|
||||
Failed
|
||||
}
|
||||
9
src/RealCV.Domain/Enums/FlagCategory.cs
Normal file
9
src/RealCV.Domain/Enums/FlagCategory.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace RealCV.Domain.Enums;
|
||||
|
||||
public enum FlagCategory
|
||||
{
|
||||
Employment,
|
||||
Education,
|
||||
Timeline,
|
||||
Plausibility
|
||||
}
|
||||
8
src/RealCV.Domain/Enums/FlagSeverity.cs
Normal file
8
src/RealCV.Domain/Enums/FlagSeverity.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace RealCV.Domain.Enums;
|
||||
|
||||
public enum FlagSeverity
|
||||
{
|
||||
Info,
|
||||
Warning,
|
||||
Critical
|
||||
}
|
||||
8
src/RealCV.Domain/Enums/UserPlan.cs
Normal file
8
src/RealCV.Domain/Enums/UserPlan.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace RealCV.Domain.Enums;
|
||||
|
||||
public enum UserPlan
|
||||
{
|
||||
Free,
|
||||
Professional,
|
||||
Enterprise
|
||||
}
|
||||
19
src/RealCV.Domain/Exceptions/QuotaExceededException.cs
Normal file
19
src/RealCV.Domain/Exceptions/QuotaExceededException.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
namespace RealCV.Domain.Exceptions;
|
||||
|
||||
public class QuotaExceededException : Exception
|
||||
{
|
||||
public QuotaExceededException()
|
||||
: base("Monthly CV check quota exceeded. Please upgrade your plan.")
|
||||
{
|
||||
}
|
||||
|
||||
public QuotaExceededException(string message)
|
||||
: base(message)
|
||||
{
|
||||
}
|
||||
|
||||
public QuotaExceededException(string message, Exception innerException)
|
||||
: base(message, innerException)
|
||||
{
|
||||
}
|
||||
}
|
||||
13
src/RealCV.Domain/RealCV.Domain.csproj
Normal file
13
src/RealCV.Domain/RealCV.Domain.csproj
Normal file
@@ -0,0 +1,13 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
Reference in New Issue
Block a user