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:
2026-01-21 15:07:20 +00:00
parent 28d7d41b25
commit 998e9a8ab8
134 changed files with 1182 additions and 702 deletions

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.DTOs;
namespace RealCV.Application.DTOs;
public sealed record CVCheckDto
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.DTOs;
namespace RealCV.Application.DTOs;
public sealed record CompanySearchResult
{

View File

@@ -1,6 +1,6 @@
using TrueCV.Domain.Enums;
using RealCV.Domain.Enums;
namespace TrueCV.Application.DTOs;
namespace RealCV.Application.DTOs;
public class SubscriptionInfoDto
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.Data;
namespace RealCV.Application.Data;
/// <summary>
/// Known diploma mills and fake educational institutions.

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.Data;
namespace RealCV.Application.Data;
/// <summary>
/// List of recognised UK higher education institutions.

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.Helpers;
namespace RealCV.Application.Helpers;
public static class DateHelpers
{

View File

@@ -1,6 +1,6 @@
using System.Text.Json;
namespace TrueCV.Application.Helpers;
namespace RealCV.Application.Helpers;
public static class JsonDefaults
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.Helpers;
namespace RealCV.Application.Helpers;
public static class ScoreThresholds
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.Interfaces;
namespace RealCV.Application.Interfaces;
public interface IAuditService
{

View File

@@ -1,7 +1,7 @@
using TrueCV.Application.DTOs;
using TrueCV.Application.Models;
using RealCV.Application.DTOs;
using RealCV.Application.Models;
namespace TrueCV.Application.Interfaces;
namespace RealCV.Application.Interfaces;
public interface ICVCheckService
{

View File

@@ -1,6 +1,6 @@
using TrueCV.Application.Models;
using RealCV.Application.Models;
namespace TrueCV.Application.Interfaces;
namespace RealCV.Application.Interfaces;
public interface ICVParserService
{

View File

@@ -1,6 +1,6 @@
using TrueCV.Application.Models;
using RealCV.Application.Models;
namespace TrueCV.Application.Interfaces;
namespace RealCV.Application.Interfaces;
public interface ICompanyNameMatcherService
{

View File

@@ -1,7 +1,7 @@
using TrueCV.Application.DTOs;
using TrueCV.Application.Models;
using RealCV.Application.DTOs;
using RealCV.Application.Models;
namespace TrueCV.Application.Interfaces;
namespace RealCV.Application.Interfaces;
public interface ICompanyVerifierService
{

View File

@@ -1,6 +1,6 @@
using TrueCV.Application.Models;
using RealCV.Application.Models;
namespace TrueCV.Application.Interfaces;
namespace RealCV.Application.Interfaces;
public interface IEducationVerifierService
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.Interfaces;
namespace RealCV.Application.Interfaces;
public interface IFileStorageService
{

View File

@@ -1,6 +1,6 @@
using TrueCV.Domain.Enums;
using RealCV.Domain.Enums;
namespace TrueCV.Application.Interfaces;
namespace RealCV.Application.Interfaces;
public interface IStripeService
{

View File

@@ -1,6 +1,6 @@
using TrueCV.Application.DTOs;
using RealCV.Application.DTOs;
namespace TrueCV.Application.Interfaces;
namespace RealCV.Application.Interfaces;
public interface ISubscriptionService
{

View File

@@ -1,6 +1,6 @@
using TrueCV.Application.Models;
using RealCV.Application.Models;
namespace TrueCV.Application.Interfaces;
namespace RealCV.Application.Interfaces;
public interface ITimelineAnalyserService
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.Interfaces;
namespace RealCV.Application.Interfaces;
public interface IUserContextService
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.Models;
namespace RealCV.Application.Models;
public sealed record CVData
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.Models;
namespace RealCV.Application.Models;
public sealed record CompanyVerificationResult
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.Models;
namespace RealCV.Application.Models;
public sealed record EducationEntry
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.Models;
namespace RealCV.Application.Models;
public sealed record EducationVerificationResult
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.Models;
namespace RealCV.Application.Models;
public sealed record EmploymentEntry
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.Models;
namespace RealCV.Application.Models;
public sealed record FlagResult
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.Models;
namespace RealCV.Application.Models;
public record SemanticMatchResult
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.Models;
namespace RealCV.Application.Models;
public sealed record TimelineAnalysisResult
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.Models;
namespace RealCV.Application.Models;
public sealed record TimelineGap
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.Models;
namespace RealCV.Application.Models;
public sealed record TimelineOverlap
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Application.Models;
namespace RealCV.Application.Models;
public sealed record VeracityReport
{

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<ProjectReference Include="..\TrueCV.Domain\TrueCV.Domain.csproj" />
<ProjectReference Include="..\RealCV.Domain\RealCV.Domain.csproj" />
</ItemGroup>
<PropertyGroup>

View File

@@ -1,6 +1,6 @@
using TrueCV.Domain.Enums;
using RealCV.Domain.Enums;
namespace TrueCV.Domain.Constants;
namespace RealCV.Domain.Constants;
public static class PlanLimits
{

View File

@@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations;
namespace TrueCV.Domain.Entities;
namespace RealCV.Domain.Entities;
public class AuditLog
{

View File

@@ -1,7 +1,7 @@
using System.ComponentModel.DataAnnotations;
using TrueCV.Domain.Enums;
using RealCV.Domain.Enums;
namespace TrueCV.Domain.Entities;
namespace RealCV.Domain.Entities;
public class CVCheck
{

View File

@@ -1,8 +1,8 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using TrueCV.Domain.Enums;
using RealCV.Domain.Enums;
namespace TrueCV.Domain.Entities;
namespace RealCV.Domain.Entities;
public class CVFlag
{

View File

@@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations;
namespace TrueCV.Domain.Entities;
namespace RealCV.Domain.Entities;
public class CompanyCache
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Domain.Enums;
namespace RealCV.Domain.Enums;
public enum CheckStatus
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Domain.Enums;
namespace RealCV.Domain.Enums;
public enum FlagCategory
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Domain.Enums;
namespace RealCV.Domain.Enums;
public enum FlagSeverity
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Domain.Enums;
namespace RealCV.Domain.Enums;
public enum UserPlan
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Domain.Exceptions;
namespace RealCV.Domain.Exceptions;
public class QuotaExceededException : Exception
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Infrastructure.Configuration;
namespace RealCV.Infrastructure.Configuration;
public sealed class AnthropicSettings
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Infrastructure.Configuration;
namespace RealCV.Infrastructure.Configuration;
public sealed class AzureBlobSettings
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Infrastructure.Configuration;
namespace RealCV.Infrastructure.Configuration;
public sealed class CompaniesHouseSettings
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Infrastructure.Configuration;
namespace RealCV.Infrastructure.Configuration;
public sealed class LocalStorageSettings
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Infrastructure.Configuration;
namespace RealCV.Infrastructure.Configuration;
public class StripeSettings
{

View File

@@ -1,10 +1,10 @@
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using TrueCV.Domain.Entities;
using TrueCV.Infrastructure.Identity;
using RealCV.Domain.Entities;
using RealCV.Infrastructure.Identity;
namespace TrueCV.Infrastructure.Data;
namespace RealCV.Infrastructure.Data;
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, IdentityRole<Guid>, Guid>
{

View File

@@ -5,11 +5,11 @@ using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using TrueCV.Infrastructure.Data;
using RealCV.Infrastructure.Data;
#nullable disable
namespace TrueCV.Infrastructure.Data.Migrations
namespace RealCV.Infrastructure.Data.Migrations
{
[DbContext(typeof(ApplicationDbContext))]
[Migration("20260118182916_InitialCreate")]
@@ -156,7 +156,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("AspNetUserTokens", (string)null);
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVCheck", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVCheck", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
@@ -211,7 +211,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("CVChecks");
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVFlag", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVFlag", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
@@ -251,7 +251,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("CVFlags");
});
modelBuilder.Entity("TrueCV.Domain.Entities.CompanyCache", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CompanyCache", b =>
{
b.Property<string>("CompanyNumber")
.HasMaxLength(32)
@@ -281,7 +281,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("CompanyCache");
});
modelBuilder.Entity("TrueCV.Domain.Entities.User", b =>
modelBuilder.Entity("RealCV.Domain.Entities.User", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
@@ -307,7 +307,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("User");
});
modelBuilder.Entity("TrueCV.Infrastructure.Identity.ApplicationUser", b =>
modelBuilder.Entity("RealCV.Infrastructure.Identity.ApplicationUser", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
@@ -396,7 +396,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<System.Guid>", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
@@ -405,7 +405,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<System.Guid>", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
@@ -420,7 +420,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
@@ -429,29 +429,29 @@ namespace TrueCV.Infrastructure.Data.Migrations
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<System.Guid>", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVCheck", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVCheck", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany("CVChecks")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("TrueCV.Domain.Entities.User", null)
b.HasOne("RealCV.Domain.Entities.User", null)
.WithMany("CVChecks")
.HasForeignKey("UserId1");
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVFlag", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVFlag", b =>
{
b.HasOne("TrueCV.Domain.Entities.CVCheck", "CVCheck")
b.HasOne("RealCV.Domain.Entities.CVCheck", "CVCheck")
.WithMany("Flags")
.HasForeignKey("CVCheckId")
.OnDelete(DeleteBehavior.Cascade)
@@ -460,17 +460,17 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.Navigation("CVCheck");
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVCheck", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVCheck", b =>
{
b.Navigation("Flags");
});
modelBuilder.Entity("TrueCV.Domain.Entities.User", b =>
modelBuilder.Entity("RealCV.Domain.Entities.User", b =>
{
b.Navigation("CVChecks");
});
modelBuilder.Entity("TrueCV.Infrastructure.Identity.ApplicationUser", b =>
modelBuilder.Entity("RealCV.Infrastructure.Identity.ApplicationUser", b =>
{
b.Navigation("CVChecks");
});

View File

@@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace TrueCV.Infrastructure.Data.Migrations
namespace RealCV.Infrastructure.Data.Migrations
{
/// <inheritdoc />
public partial class InitialCreate : Migration

View File

@@ -5,11 +5,11 @@ using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using TrueCV.Infrastructure.Data;
using RealCV.Infrastructure.Data;
#nullable disable
namespace TrueCV.Infrastructure.Data.Migrations
namespace RealCV.Infrastructure.Data.Migrations
{
[DbContext(typeof(ApplicationDbContext))]
[Migration("20260120191035_AddProcessingStageToCV")]
@@ -156,7 +156,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("AspNetUserTokens", (string)null);
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVCheck", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVCheck", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
@@ -210,7 +210,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("CVChecks");
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVFlag", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVFlag", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
@@ -250,7 +250,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("CVFlags");
});
modelBuilder.Entity("TrueCV.Domain.Entities.CompanyCache", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CompanyCache", b =>
{
b.Property<string>("CompanyNumber")
.HasMaxLength(32)
@@ -292,7 +292,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("CompanyCache");
});
modelBuilder.Entity("TrueCV.Infrastructure.Identity.ApplicationUser", b =>
modelBuilder.Entity("RealCV.Infrastructure.Identity.ApplicationUser", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
@@ -381,7 +381,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<System.Guid>", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
@@ -390,7 +390,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<System.Guid>", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
@@ -405,7 +405,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
@@ -414,25 +414,25 @@ namespace TrueCV.Infrastructure.Data.Migrations
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<System.Guid>", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVCheck", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVCheck", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany("CVChecks")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVFlag", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVFlag", b =>
{
b.HasOne("TrueCV.Domain.Entities.CVCheck", "CVCheck")
b.HasOne("RealCV.Domain.Entities.CVCheck", "CVCheck")
.WithMany("Flags")
.HasForeignKey("CVCheckId")
.OnDelete(DeleteBehavior.Cascade)
@@ -441,12 +441,12 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.Navigation("CVCheck");
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVCheck", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVCheck", b =>
{
b.Navigation("Flags");
});
modelBuilder.Entity("TrueCV.Infrastructure.Identity.ApplicationUser", b =>
modelBuilder.Entity("RealCV.Infrastructure.Identity.ApplicationUser", b =>
{
b.Navigation("CVChecks");
});

View File

@@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace TrueCV.Infrastructure.Data.Migrations
namespace RealCV.Infrastructure.Data.Migrations
{
/// <inheritdoc />
public partial class AddProcessingStageToCV : Migration

View File

@@ -5,11 +5,11 @@ using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using TrueCV.Infrastructure.Data;
using RealCV.Infrastructure.Data;
#nullable disable
namespace TrueCV.Infrastructure.Data.Migrations
namespace RealCV.Infrastructure.Data.Migrations
{
[DbContext(typeof(ApplicationDbContext))]
[Migration("20260120194532_AddAuditLogTable")]
@@ -156,7 +156,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("AspNetUserTokens", (string)null);
});
modelBuilder.Entity("TrueCV.Domain.Entities.AuditLog", b =>
modelBuilder.Entity("RealCV.Domain.Entities.AuditLog", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
@@ -202,7 +202,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("AuditLogs");
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVCheck", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVCheck", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
@@ -256,7 +256,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("CVChecks");
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVFlag", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVFlag", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
@@ -296,7 +296,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("CVFlags");
});
modelBuilder.Entity("TrueCV.Domain.Entities.CompanyCache", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CompanyCache", b =>
{
b.Property<string>("CompanyNumber")
.HasMaxLength(32)
@@ -338,7 +338,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("CompanyCache");
});
modelBuilder.Entity("TrueCV.Infrastructure.Identity.ApplicationUser", b =>
modelBuilder.Entity("RealCV.Infrastructure.Identity.ApplicationUser", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
@@ -427,7 +427,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<System.Guid>", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
@@ -436,7 +436,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<System.Guid>", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
@@ -451,7 +451,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
@@ -460,25 +460,25 @@ namespace TrueCV.Infrastructure.Data.Migrations
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<System.Guid>", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVCheck", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVCheck", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany("CVChecks")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVFlag", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVFlag", b =>
{
b.HasOne("TrueCV.Domain.Entities.CVCheck", "CVCheck")
b.HasOne("RealCV.Domain.Entities.CVCheck", "CVCheck")
.WithMany("Flags")
.HasForeignKey("CVCheckId")
.OnDelete(DeleteBehavior.Cascade)
@@ -487,12 +487,12 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.Navigation("CVCheck");
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVCheck", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVCheck", b =>
{
b.Navigation("Flags");
});
modelBuilder.Entity("TrueCV.Infrastructure.Identity.ApplicationUser", b =>
modelBuilder.Entity("RealCV.Infrastructure.Identity.ApplicationUser", b =>
{
b.Navigation("CVChecks");
});

View File

@@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace TrueCV.Infrastructure.Data.Migrations
namespace RealCV.Infrastructure.Data.Migrations
{
/// <inheritdoc />
public partial class AddAuditLogTable : Migration

View File

@@ -5,11 +5,11 @@ using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using TrueCV.Infrastructure.Data;
using RealCV.Infrastructure.Data;
#nullable disable
namespace TrueCV.Infrastructure.Data.Migrations
namespace RealCV.Infrastructure.Data.Migrations
{
[DbContext(typeof(ApplicationDbContext))]
[Migration("20260121115517_AddStripeSubscriptionFields")]
@@ -156,7 +156,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("AspNetUserTokens", (string)null);
});
modelBuilder.Entity("TrueCV.Domain.Entities.AuditLog", b =>
modelBuilder.Entity("RealCV.Domain.Entities.AuditLog", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
@@ -202,7 +202,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("AuditLogs");
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVCheck", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVCheck", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
@@ -256,7 +256,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("CVChecks");
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVFlag", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVFlag", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
@@ -296,7 +296,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("CVFlags");
});
modelBuilder.Entity("TrueCV.Domain.Entities.CompanyCache", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CompanyCache", b =>
{
b.Property<string>("CompanyNumber")
.HasMaxLength(32)
@@ -338,7 +338,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("CompanyCache");
});
modelBuilder.Entity("TrueCV.Infrastructure.Identity.ApplicationUser", b =>
modelBuilder.Entity("RealCV.Infrastructure.Identity.ApplicationUser", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
@@ -444,7 +444,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<System.Guid>", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
@@ -453,7 +453,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<System.Guid>", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
@@ -468,7 +468,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
@@ -477,25 +477,25 @@ namespace TrueCV.Infrastructure.Data.Migrations
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<System.Guid>", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVCheck", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVCheck", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany("CVChecks")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVFlag", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVFlag", b =>
{
b.HasOne("TrueCV.Domain.Entities.CVCheck", "CVCheck")
b.HasOne("RealCV.Domain.Entities.CVCheck", "CVCheck")
.WithMany("Flags")
.HasForeignKey("CVCheckId")
.OnDelete(DeleteBehavior.Cascade)
@@ -504,12 +504,12 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.Navigation("CVCheck");
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVCheck", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVCheck", b =>
{
b.Navigation("Flags");
});
modelBuilder.Entity("TrueCV.Infrastructure.Identity.ApplicationUser", b =>
modelBuilder.Entity("RealCV.Infrastructure.Identity.ApplicationUser", b =>
{
b.Navigation("CVChecks");
});

View File

@@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace TrueCV.Infrastructure.Data.Migrations
namespace RealCV.Infrastructure.Data.Migrations
{
/// <inheritdoc />
public partial class AddStripeSubscriptionFields : Migration

View File

@@ -4,11 +4,11 @@ using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using TrueCV.Infrastructure.Data;
using RealCV.Infrastructure.Data;
#nullable disable
namespace TrueCV.Infrastructure.Data.Migrations
namespace RealCV.Infrastructure.Data.Migrations
{
[DbContext(typeof(ApplicationDbContext))]
partial class ApplicationDbContextModelSnapshot : ModelSnapshot
@@ -153,7 +153,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("AspNetUserTokens", (string)null);
});
modelBuilder.Entity("TrueCV.Domain.Entities.AuditLog", b =>
modelBuilder.Entity("RealCV.Domain.Entities.AuditLog", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
@@ -199,7 +199,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("AuditLogs");
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVCheck", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVCheck", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
@@ -253,7 +253,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("CVChecks");
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVFlag", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVFlag", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
@@ -293,7 +293,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("CVFlags");
});
modelBuilder.Entity("TrueCV.Domain.Entities.CompanyCache", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CompanyCache", b =>
{
b.Property<string>("CompanyNumber")
.HasMaxLength(32)
@@ -335,7 +335,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.ToTable("CompanyCache");
});
modelBuilder.Entity("TrueCV.Infrastructure.Identity.ApplicationUser", b =>
modelBuilder.Entity("RealCV.Infrastructure.Identity.ApplicationUser", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
@@ -441,7 +441,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<System.Guid>", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
@@ -450,7 +450,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<System.Guid>", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
@@ -465,7 +465,7 @@ namespace TrueCV.Infrastructure.Data.Migrations
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
@@ -474,25 +474,25 @@ namespace TrueCV.Infrastructure.Data.Migrations
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<System.Guid>", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVCheck", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVCheck", b =>
{
b.HasOne("TrueCV.Infrastructure.Identity.ApplicationUser", null)
b.HasOne("RealCV.Infrastructure.Identity.ApplicationUser", null)
.WithMany("CVChecks")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVFlag", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVFlag", b =>
{
b.HasOne("TrueCV.Domain.Entities.CVCheck", "CVCheck")
b.HasOne("RealCV.Domain.Entities.CVCheck", "CVCheck")
.WithMany("Flags")
.HasForeignKey("CVCheckId")
.OnDelete(DeleteBehavior.Cascade)
@@ -501,12 +501,12 @@ namespace TrueCV.Infrastructure.Data.Migrations
b.Navigation("CVCheck");
});
modelBuilder.Entity("TrueCV.Domain.Entities.CVCheck", b =>
modelBuilder.Entity("RealCV.Domain.Entities.CVCheck", b =>
{
b.Navigation("Flags");
});
modelBuilder.Entity("TrueCV.Infrastructure.Identity.ApplicationUser", b =>
modelBuilder.Entity("RealCV.Infrastructure.Identity.ApplicationUser", b =>
{
b.Navigation("CVChecks");
});

View File

@@ -6,14 +6,14 @@ using Microsoft.Extensions.DependencyInjection;
using Polly;
using Polly.Extensions.Http;
using Stripe;
using TrueCV.Application.Interfaces;
using TrueCV.Infrastructure.Configuration;
using TrueCV.Infrastructure.Data;
using TrueCV.Infrastructure.ExternalApis;
using TrueCV.Infrastructure.Jobs;
using TrueCV.Infrastructure.Services;
using RealCV.Application.Interfaces;
using RealCV.Infrastructure.Configuration;
using RealCV.Infrastructure.Data;
using RealCV.Infrastructure.ExternalApis;
using RealCV.Infrastructure.Jobs;
using RealCV.Infrastructure.Services;
namespace TrueCV.Infrastructure;
namespace RealCV.Infrastructure;
public static class DependencyInjection
{

View File

@@ -6,10 +6,10 @@ using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using TrueCV.Application.DTOs;
using TrueCV.Infrastructure.Configuration;
using RealCV.Application.DTOs;
using RealCV.Infrastructure.Configuration;
namespace TrueCV.Infrastructure.ExternalApis;
namespace RealCV.Infrastructure.ExternalApis;
public sealed class CompaniesHouseClient
{

View File

@@ -1,4 +1,4 @@
namespace TrueCV.Infrastructure.Helpers;
namespace RealCV.Infrastructure.Helpers;
/// <summary>
/// Helper methods for processing AI/LLM JSON responses.

View File

@@ -1,8 +1,8 @@
using Microsoft.AspNetCore.Identity;
using TrueCV.Domain.Entities;
using TrueCV.Domain.Enums;
using RealCV.Domain.Entities;
using RealCV.Domain.Enums;
namespace TrueCV.Infrastructure.Identity;
namespace RealCV.Infrastructure.Identity;
public class ApplicationUser : IdentityUser<Guid>
{

View File

@@ -1,14 +1,14 @@
using System.Text.Json;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using TrueCV.Application.Helpers;
using TrueCV.Application.Interfaces;
using TrueCV.Application.Models;
using TrueCV.Domain.Entities;
using TrueCV.Domain.Enums;
using TrueCV.Infrastructure.Data;
using RealCV.Application.Helpers;
using RealCV.Application.Interfaces;
using RealCV.Application.Models;
using RealCV.Domain.Entities;
using RealCV.Domain.Enums;
using RealCV.Infrastructure.Data;
namespace TrueCV.Infrastructure.Jobs;
namespace RealCV.Infrastructure.Jobs;
public sealed class ProcessCVCheckJob
{

View File

@@ -1,9 +1,9 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using TrueCV.Domain.Enums;
using TrueCV.Infrastructure.Data;
using RealCV.Domain.Enums;
using RealCV.Infrastructure.Data;
namespace TrueCV.Infrastructure.Jobs;
namespace RealCV.Infrastructure.Jobs;
/// <summary>
/// Hangfire job that resets monthly CV check usage for users whose billing period has ended.

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<ProjectReference Include="..\TrueCV.Application\TrueCV.Application.csproj" />
<ProjectReference Include="..\RealCV.Application\RealCV.Application.csproj" />
</ItemGroup>
<ItemGroup>

View File

@@ -3,13 +3,13 @@ using Anthropic.SDK;
using Anthropic.SDK.Messaging;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using TrueCV.Application.Helpers;
using TrueCV.Application.Interfaces;
using TrueCV.Application.Models;
using TrueCV.Infrastructure.Configuration;
using TrueCV.Infrastructure.Helpers;
using RealCV.Application.Helpers;
using RealCV.Application.Interfaces;
using RealCV.Application.Models;
using RealCV.Infrastructure.Configuration;
using RealCV.Infrastructure.Helpers;
namespace TrueCV.Infrastructure.Services;
namespace RealCV.Infrastructure.Services;
public sealed class AICompanyNameMatcherService : ICompanyNameMatcherService
{

View File

@@ -1,9 +1,9 @@
using Microsoft.Extensions.Logging;
using TrueCV.Application.Interfaces;
using TrueCV.Domain.Entities;
using TrueCV.Infrastructure.Data;
using RealCV.Application.Interfaces;
using RealCV.Domain.Entities;
using RealCV.Infrastructure.Data;
namespace TrueCV.Infrastructure.Services;
namespace RealCV.Infrastructure.Services;
public sealed class AuditService : IAuditService
{

View File

@@ -2,17 +2,17 @@ using System.Text.Json;
using Hangfire;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using TrueCV.Application.DTOs;
using TrueCV.Application.Helpers;
using TrueCV.Application.Interfaces;
using TrueCV.Application.Models;
using TrueCV.Domain.Entities;
using TrueCV.Domain.Enums;
using TrueCV.Domain.Exceptions;
using TrueCV.Infrastructure.Data;
using TrueCV.Infrastructure.Jobs;
using RealCV.Application.DTOs;
using RealCV.Application.Helpers;
using RealCV.Application.Interfaces;
using RealCV.Application.Models;
using RealCV.Domain.Entities;
using RealCV.Domain.Enums;
using RealCV.Domain.Exceptions;
using RealCV.Infrastructure.Data;
using RealCV.Infrastructure.Jobs;
namespace TrueCV.Infrastructure.Services;
namespace RealCV.Infrastructure.Services;
public sealed class CVCheckService : ICVCheckService
{

View File

@@ -6,14 +6,14 @@ using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using TrueCV.Application.Helpers;
using TrueCV.Application.Interfaces;
using TrueCV.Application.Models;
using TrueCV.Infrastructure.Configuration;
using TrueCV.Infrastructure.Helpers;
using RealCV.Application.Helpers;
using RealCV.Application.Interfaces;
using RealCV.Application.Models;
using RealCV.Infrastructure.Configuration;
using RealCV.Infrastructure.Helpers;
using UglyToad.PdfPig;
namespace TrueCV.Infrastructure.Services;
namespace RealCV.Infrastructure.Services;
public sealed class CVParserService : ICVParserService
{

View File

@@ -2,15 +2,15 @@ using System.Text.Json;
using FuzzySharp;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using TrueCV.Application.DTOs;
using TrueCV.Application.Helpers;
using TrueCV.Application.Interfaces;
using TrueCV.Application.Models;
using TrueCV.Domain.Entities;
using TrueCV.Infrastructure.Data;
using TrueCV.Infrastructure.ExternalApis;
using RealCV.Application.DTOs;
using RealCV.Application.Helpers;
using RealCV.Application.Interfaces;
using RealCV.Application.Models;
using RealCV.Domain.Entities;
using RealCV.Infrastructure.Data;
using RealCV.Infrastructure.ExternalApis;
namespace TrueCV.Infrastructure.Services;
namespace RealCV.Infrastructure.Services;
public sealed class CompanyVerifierService : ICompanyVerifierService
{

View File

@@ -1,8 +1,8 @@
using TrueCV.Application.Data;
using TrueCV.Application.Interfaces;
using TrueCV.Application.Models;
using RealCV.Application.Data;
using RealCV.Application.Interfaces;
using RealCV.Application.Models;
namespace TrueCV.Infrastructure.Services;
namespace RealCV.Infrastructure.Services;
public sealed class EducationVerifierService : IEducationVerifierService
{

View File

@@ -2,10 +2,10 @@ using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using TrueCV.Application.Interfaces;
using TrueCV.Infrastructure.Configuration;
using RealCV.Application.Interfaces;
using RealCV.Infrastructure.Configuration;
namespace TrueCV.Infrastructure.Services;
namespace RealCV.Infrastructure.Services;
public sealed class FileStorageService : IFileStorageService
{

View File

@@ -1,9 +1,9 @@
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using TrueCV.Application.Interfaces;
using TrueCV.Infrastructure.Configuration;
using RealCV.Application.Interfaces;
using RealCV.Infrastructure.Configuration;
namespace TrueCV.Infrastructure.Services;
namespace RealCV.Infrastructure.Services;
public sealed class LocalFileStorageService : IFileStorageService
{

View File

@@ -3,12 +3,12 @@ using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Stripe;
using Stripe.Checkout;
using TrueCV.Application.Interfaces;
using TrueCV.Domain.Enums;
using TrueCV.Infrastructure.Configuration;
using TrueCV.Infrastructure.Data;
using RealCV.Application.Interfaces;
using RealCV.Domain.Enums;
using RealCV.Infrastructure.Configuration;
using RealCV.Infrastructure.Data;
namespace TrueCV.Infrastructure.Services;
namespace RealCV.Infrastructure.Services;
public sealed class StripeService : IStripeService
{

View File

@@ -1,12 +1,12 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using TrueCV.Application.DTOs;
using TrueCV.Application.Interfaces;
using TrueCV.Domain.Constants;
using TrueCV.Domain.Enums;
using TrueCV.Infrastructure.Data;
using RealCV.Application.DTOs;
using RealCV.Application.Interfaces;
using RealCV.Domain.Constants;
using RealCV.Domain.Enums;
using RealCV.Infrastructure.Data;
namespace TrueCV.Infrastructure.Services;
namespace RealCV.Infrastructure.Services;
public sealed class SubscriptionService : ISubscriptionService
{

View File

@@ -1,8 +1,8 @@
using Microsoft.Extensions.Logging;
using TrueCV.Application.Interfaces;
using TrueCV.Application.Models;
using RealCV.Application.Interfaces;
using RealCV.Application.Models;
namespace TrueCV.Infrastructure.Services;
namespace RealCV.Infrastructure.Services;
public sealed class TimelineAnalyserService : ITimelineAnalyserService
{

View File

@@ -1,8 +1,8 @@
using System.Security.Claims;
using Microsoft.AspNetCore.Components.Authorization;
using TrueCV.Application.Interfaces;
using RealCV.Application.Interfaces;
namespace TrueCV.Infrastructure.Services;
namespace RealCV.Infrastructure.Services;
public sealed class UserContextService : IUserContextService
{

View File

@@ -7,7 +7,7 @@
<base href="/" />
<link rel="stylesheet" href="bootstrap/bootstrap.min.css" />
<link rel="stylesheet" href="app.css" />
<link rel="stylesheet" href="TrueCV.Web.styles.css" />
<link rel="stylesheet" href="RealCV.Web.styles.css" />
<link rel="icon" type="image/png" href="favicon.png" />
<HeadOutlet @rendermode="InteractiveServer" />
</head>

View File

@@ -1,10 +1,10 @@
@inherits LayoutComponentBase
<div class="d-flex flex-column min-vh-100">
<nav class="navbar navbar-expand-lg navbar-light shadow-sm" style="background-color: var(--truecv-bg-surface);">
<nav class="navbar navbar-expand-lg navbar-light shadow-sm" style="background-color: var(--realcv-bg-surface);">
<div class="container">
<a class="navbar-brand fw-bold" href="/">
<img src="images/TrueCV_Logo.png" alt="TrueCV" style="height: 95px;" />
<img src="images/RealCV_Logo_Transparent.png" alt="RealCV" style="height: 95px;" />
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
@@ -77,9 +77,9 @@
@Body
</main>
<footer class="text-light py-4 mt-auto" style="background-color: var(--truecv-footer-bg);">
<footer class="text-light py-4 mt-auto" style="background-color: var(--realcv-footer-bg);">
<div class="container text-center">
<p class="mb-0">&copy; @DateTime.Now.Year TrueCV. All rights reserved.</p>
<p class="mb-0">&copy; @DateTime.Now.Year RealCV. All rights reserved.</p>
</div>
</footer>
</div>

View File

@@ -6,7 +6,7 @@
@inject AuthenticationStateProvider AuthenticationStateProvider
@inject NavigationManager NavigationManager
<PageTitle>Billing - TrueCV</PageTitle>
<PageTitle>Billing - RealCV</PageTitle>
<div class="container py-5">
<div class="row justify-content-center">
@@ -49,20 +49,20 @@
<div class="row g-4">
<div class="col-md-6">
<div class="p-3 rounded" style="background: var(--truecv-bg-muted);">
<div class="p-3 rounded" style="background: var(--realcv-bg-muted);">
<div class="small text-muted mb-1">Price</div>
<div class="fw-bold fs-4">@_subscription.DisplayPrice</div>
</div>
</div>
<div class="col-md-6">
<div class="p-3 rounded" style="background: var(--truecv-bg-muted);">
<div class="p-3 rounded" style="background: var(--realcv-bg-muted);">
<div class="small text-muted mb-1">Status</div>
<div class="fw-bold fs-4">
@if (_subscription.HasActiveSubscription)
{
<span class="text-success">Active</span>
}
else if (_subscription.Plan == TrueCV.Domain.Enums.UserPlan.Free)
else if (_subscription.Plan == RealCV.Domain.Enums.UserPlan.Free)
{
<span class="text-muted">Free Tier</span>
}
@@ -84,7 +84,7 @@
<div class="d-flex gap-2 mt-4">
<a href="/pricing" class="btn btn-primary">
@if (_subscription.Plan == TrueCV.Domain.Enums.UserPlan.Free)
@if (_subscription.Plan == RealCV.Domain.Enums.UserPlan.Free)
{
<span>Upgrade Plan</span>
}
@@ -144,7 +144,7 @@
</small>
</div>
}
else if (_subscription.ChecksRemaining <= 3 && _subscription.Plan != TrueCV.Domain.Enums.UserPlan.Free)
else if (_subscription.ChecksRemaining <= 3 && _subscription.Plan != RealCV.Domain.Enums.UserPlan.Free)
{
<div class="alert alert-info mt-3 mb-0 py-2">
<small>

View File

@@ -1,14 +1,14 @@
@page "/account/login"
@using TrueCV.Web.Components.Layout
@using RealCV.Web.Components.Layout
@layout MainLayout
@using Microsoft.AspNetCore.Identity
@using TrueCV.Infrastructure.Identity
@using RealCV.Infrastructure.Identity
@inject SignInManager<ApplicationUser> SignInManager
@inject NavigationManager NavigationManager
<PageTitle>Login - TrueCV</PageTitle>
<PageTitle>Login - RealCV</PageTitle>
<div class="auth-container">
<!-- Left side - Form -->
@@ -16,7 +16,7 @@
<div class="auth-form-wrapper">
<div class="text-center mb-4">
<a href="/">
<img src="images/TrueCV_Logo.png" alt="TrueCV" class="auth-logo" />
<img src="images/RealCV_Logo_Transparent.png" alt="RealCV" class="auth-logo" />
</a>
</div>
@@ -80,7 +80,7 @@
</form>
<div class="auth-divider">
<span>New to TrueCV?</span>
<span>New to RealCV?</span>
</div>
<div class="text-center">
@@ -123,7 +123,7 @@
<div class="auth-testimonial">
<blockquote>
"TrueCV has transformed our hiring process. We catch discrepancies we would have missed before."
"RealCV has transformed our hiring process. We catch discrepancies we would have missed before."
</blockquote>
<cite>- HR Director, Tech Company</cite>
</div>

View File

@@ -1,16 +1,16 @@
@page "/account/register"
@using TrueCV.Web.Components.Layout
@using RealCV.Web.Components.Layout
@layout MainLayout
@rendermode InteractiveServer
@using Microsoft.AspNetCore.Identity
@using TrueCV.Infrastructure.Identity
@using RealCV.Infrastructure.Identity
@inject UserManager<ApplicationUser> UserManager
@inject SignInManager<ApplicationUser> SignInManager
@inject NavigationManager NavigationManager
<PageTitle>Register - TrueCV</PageTitle>
<PageTitle>Register - RealCV</PageTitle>
<div class="auth-container">
<!-- Left side - Form -->
@@ -18,7 +18,7 @@
<div class="auth-form-wrapper">
<div class="text-center mb-4">
<a href="/">
<img src="images/TrueCV_Logo.png" alt="TrueCV" class="auth-logo" />
<img src="images/RealCV_Logo_Transparent.png" alt="RealCV" class="auth-logo" />
</a>
</div>
@@ -157,7 +157,7 @@
<div class="auth-testimonial">
<blockquote>
"We reduced bad hires by 40% in the first quarter using TrueCV."
"We reduced bad hires by 40% in the first quarter using RealCV."
</blockquote>
<cite>- Recruitment Manager, Financial Services</cite>
</div>

View File

@@ -3,7 +3,7 @@
@rendermode InteractiveServer
@using Microsoft.AspNetCore.Identity
@using TrueCV.Infrastructure.Identity
@using RealCV.Infrastructure.Identity
@inject UserManager<ApplicationUser> UserManager
@inject SignInManager<ApplicationUser> SignInManager
@@ -11,7 +11,7 @@
@inject NavigationManager NavigationManager
@inject ILogger<Settings> Logger
<PageTitle>Account Settings - TrueCV</PageTitle>
<PageTitle>Account Settings - RealCV</PageTitle>
<div class="container py-5">
<div class="row justify-content-center">

View File

@@ -8,7 +8,7 @@
@inject AuthenticationStateProvider AuthenticationStateProvider
@inject ILogger<Check> Logger
<PageTitle>Upload CVs - TrueCV</PageTitle>
<PageTitle>Upload CVs - RealCV</PageTitle>
<div class="container py-5">
<div class="row justify-content-center">
@@ -225,21 +225,21 @@
<style>
.upload-area {
border: 2px dashed var(--truecv-gray-300);
border: 2px dashed var(--realcv-gray-300);
border-radius: 16px;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
background: linear-gradient(180deg, var(--truecv-bg-surface) 0%, var(--truecv-bg-muted) 100%);
background: linear-gradient(180deg, var(--realcv-bg-surface) 0%, var(--realcv-bg-muted) 100%);
}
.upload-area:hover {
border-color: var(--truecv-primary);
border-color: var(--realcv-primary);
background: linear-gradient(180deg, #e8f1fa 0%, #d4e4f4 100%);
transform: translateY(-2px);
box-shadow: 0 10px 25px -5px rgba(59, 111, 212, 0.1);
}
.upload-area.dragging {
border-color: var(--truecv-primary);
border-color: var(--realcv-primary);
background: linear-gradient(180deg, #d4e4f4 0%, #c5d9ef 100%);
border-style: solid;
transform: scale(1.02);
@@ -248,7 +248,7 @@
.upload-icon {
width: 80px;
height: 80px;
background: linear-gradient(135deg, var(--truecv-primary) 0%, var(--truecv-primary-dark) 100%);
background: linear-gradient(135deg, var(--realcv-primary) 0%, var(--realcv-primary-dark) 100%);
border-radius: 20px;
display: flex;
align-items: center;
@@ -271,16 +271,16 @@
display: flex;
align-items: center;
justify-content: space-between;
border: 1px solid var(--truecv-gray-200);
border: 1px solid var(--realcv-gray-200);
border-radius: 12px;
padding: 1rem;
margin-bottom: 0.75rem;
background: var(--truecv-bg-surface);
background: var(--realcv-bg-surface);
transition: all 0.2s ease;
}
.file-list-item:hover {
border-color: var(--truecv-primary);
border-color: var(--realcv-primary);
box-shadow: 0 4px 12px rgba(59, 111, 212, 0.08);
}
@@ -300,7 +300,7 @@
.file-type-icon.docx {
background: linear-gradient(135deg, #e3ecf7 0%, #d4e4f4 100%);
color: var(--truecv-primary);
color: var(--realcv-primary);
}
.security-info {
@@ -312,14 +312,14 @@
align-items: center;
gap: 0.5rem;
padding: 0.625rem 1rem;
background: var(--truecv-bg-muted);
border-radius: var(--truecv-radius);
background: var(--realcv-bg-muted);
border-radius: var(--realcv-radius);
font-size: 0.875rem;
color: var(--truecv-gray-600);
color: var(--realcv-gray-600);
}
.security-badge svg {
color: var(--truecv-verified);
color: var(--realcv-verified);
}
@@media (max-width: 576px) {
@@ -526,7 +526,7 @@
await CVCheckService.CreateCheckAsync(userId, memoryStream, file.Name);
}
catch (TrueCV.Domain.Exceptions.QuotaExceededException)
catch (RealCV.Domain.Exceptions.QuotaExceededException)
{
_quotaExceeded = true;
_errorMessage = null;

View File

@@ -3,7 +3,7 @@
@inject NavigationManager NavigationManager
<PageTitle>Checkout Cancelled - TrueCV</PageTitle>
<PageTitle>Checkout Cancelled - RealCV</PageTitle>
<div class="container py-5">
<div class="row justify-content-center">

View File

@@ -4,7 +4,7 @@
@inject NavigationManager NavigationManager
<PageTitle>Payment Successful - TrueCV</PageTitle>
<PageTitle>Payment Successful - RealCV</PageTitle>
<div class="container py-5">
<div class="row justify-content-center">
@@ -17,7 +17,7 @@
</div>
<h1 class="fw-bold mb-3">Payment Successful!</h1>
<p class="text-muted lead mb-4">
Thank you for upgrading your TrueCV subscription. Your account has been updated and you now have access to your new plan features.
Thank you for upgrading your RealCV subscription. Your account has been updated and you now have access to your new plan features.
</p>
</div>

View File

@@ -9,10 +9,10 @@
@inject AuthenticationStateProvider AuthenticationStateProvider
@inject ILogger<Dashboard> Logger
@inject IJSRuntime JSRuntime
@inject TrueCV.Web.Services.IPdfReportService PdfReportService
@inject RealCV.Web.Services.IPdfReportService PdfReportService
@inject IAuditService AuditService
<PageTitle>Dashboard - TrueCV</PageTitle>
<PageTitle>Dashboard - RealCV</PageTitle>
<div class="container py-5">
<div class="d-flex justify-content-between align-items-center mb-4">
@@ -176,7 +176,7 @@
<!-- Checks List -->
<div class="card border-0 shadow-sm">
<div class="card-header py-3 border-bottom" style="background-color: var(--truecv-bg-surface);">
<div class="card-header py-3 border-bottom" style="background-color: var(--realcv-bg-surface);">
<div class="d-flex justify-content-between align-items-center">
<div class="d-flex align-items-center gap-3">
<h5 class="mb-0 fw-bold">Recent CV Checks</h5>
@@ -202,7 +202,7 @@
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead>
<tr style="background-color: var(--truecv-bg-muted);">
<tr style="background-color: var(--realcv-bg-muted);">
<th class="border-0 ps-3 py-3" style="width: 40px;">
<input type="checkbox" class="form-check-input"
checked="@IsAllSelected()"
@@ -420,7 +420,7 @@
align-items: center;
justify-content: center;
margin: 0 auto;
color: var(--truecv-primary);
color: var(--realcv-primary);
}
.file-icon-wrapper {
@@ -449,7 +449,7 @@
.score-ring-bg {
fill: none;
stroke: var(--truecv-gray-200);
stroke: var(--realcv-gray-200);
stroke-width: 3;
}
@@ -461,9 +461,9 @@
transform: rotate(-90deg);
}
.score-ring-progress.high { stroke: var(--truecv-verified); }
.score-ring-progress.medium { stroke: var(--truecv-warning); }
.score-ring-progress.low { stroke: var(--truecv-danger); }
.score-ring-progress.high { stroke: var(--realcv-verified); }
.score-ring-progress.medium { stroke: var(--realcv-warning); }
.score-ring-progress.low { stroke: var(--realcv-danger); }
.score-ring-value {
position: absolute;
@@ -472,9 +472,9 @@
font-family: 'JetBrains Mono', monospace;
}
.text-verified { color: var(--truecv-verified); }
.text-warning-dark { color: var(--truecv-warning-dark); }
.text-danger { color: var(--truecv-danger); }
.text-verified { color: var(--realcv-verified); }
.text-warning-dark { color: var(--realcv-warning-dark); }
.text-danger { color: var(--realcv-danger); }
@@media (max-width: 768px) {
.d-flex.justify-content-between.align-items-center.mb-4 {
@@ -660,7 +660,7 @@
try
{
var reportDataList = new List<TrueCV.Web.Services.PdfReportData>();
var reportDataList = new List<RealCV.Web.Services.PdfReportData>();
foreach (var check in _checks)
{
if (check.Status != "Completed") continue;
@@ -684,7 +684,7 @@
else if (f.Severity == "Warning") warningFlags++;
}
reportDataList.Add(new TrueCV.Web.Services.PdfReportData
reportDataList.Add(new RealCV.Web.Services.PdfReportData
{
CandidateName = Path.GetFileNameWithoutExtension(check.OriginalFileName) ?? "Unknown",
UploadDate = check.CreatedAt,
@@ -701,7 +701,7 @@
var pdfBytes = PdfReportService.GenerateReport(reportDataList);
var base64 = Convert.ToBase64String(pdfBytes);
var fileName = "TrueCV_Report_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".pdf";
var fileName = "RealCV_Report_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".pdf";
await JSRuntime.InvokeVoidAsync("downloadFile", fileName, base64, "application/pdf");
await AuditService.LogAsync(_userId, AuditActions.ReportExported, null, null, $"Exported {reportDataList.Count} reports to PDF");

View File

@@ -1,6 +1,6 @@
@page "/"
<PageTitle>TrueCV - Verify CVs with Confidence</PageTitle>
<PageTitle>RealCV - Verify CVs with Confidence</PageTitle>
<!-- Hero Section with Gradient -->
<section class="hero-section text-white py-5">
@@ -12,7 +12,7 @@
<span style="color: #60A5FA; text-shadow: 0 2px 8px rgba(0,0,0,0.4);">Confidence</span>
</h1>
<p class="lead mb-3 opacity-90" style="font-size: 1.25rem; line-height: 1.7;">
TrueCV uses AI-powered analysis and official company records to verify employment history,
RealCV uses AI-powered analysis and official company records to verify employment history,
detect timeline inconsistencies, and flag potential issues in candidate CVs.
</p>
<p class="mb-4 d-inline-flex align-items-center px-3 py-2 rounded-pill" style="font-size: 0.85rem; background: rgba(255,255,255,0.15); border: 1px solid rgba(255,255,255,0.25);">
@@ -63,10 +63,10 @@
</section>
<!-- Features Section -->
<section id="features" class="py-5" style="background-color: var(--truecv-bg-page);">
<section id="features" class="py-5" style="background-color: var(--realcv-bg-page);">
<div class="container">
<div class="text-center mb-5">
<h2 class="fw-bold mb-3" style="font-size: 2.25rem;">How TrueCV Works</h2>
<h2 class="fw-bold mb-3" style="font-size: 2.25rem;">How RealCV Works</h2>
<p class="text-muted" style="font-size: 1.125rem;">Comprehensive CV verification in three key areas</p>
</div>
@@ -183,7 +183,7 @@
</section>
<!-- Trust indicators -->
<section class="py-4" style="background-color: var(--truecv-bg-muted); border-top: 1px solid var(--truecv-gray-200);">
<section class="py-4" style="background-color: var(--realcv-bg-muted); border-top: 1px solid var(--realcv-gray-200);">
<div class="container">
<div class="row align-items-center justify-content-center text-center g-4">
<div class="col-6 col-md-3">

View File

@@ -5,7 +5,7 @@
@inject AuthenticationStateProvider AuthenticationStateProvider
@inject ISubscriptionService SubscriptionService
<PageTitle>Pricing - TrueCV</PageTitle>
<PageTitle>Pricing - RealCV</PageTitle>
<div class="container py-5">
<div class="text-center mb-5">

View File

@@ -11,7 +11,7 @@
@inject IAuditService AuditService
@inject IPdfReportService PdfReportService
<PageTitle>Verification Report - TrueCV</PageTitle>
<PageTitle>Verification Report - RealCV</PageTitle>
<div class="container py-5">
@if (_isLoading)
@@ -153,7 +153,7 @@
<span class="score-max">/100</span>
</div>
</div>
<div class="mt-2 text-white truecv-score-label">TrueCV Score</div>
<div class="mt-2 text-white realcv-score-label">RealCV Score</div>
</div>
<div class="col-md-8">
<div class="row g-4 text-center text-md-start">
@@ -202,7 +202,7 @@
<!-- Employment Verification -->
<div class="card border-0 shadow-sm mb-4">
<div class="card-header py-3" style="background-color: var(--truecv-bg-surface);">
<div class="card-header py-3" style="background-color: var(--realcv-bg-surface);">
<h5 class="mb-0 fw-bold">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" class="bi bi-building me-2" viewBox="0 0 16 16">
<path d="M4 2.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1Zm3 0a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1Zm3.5-.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1ZM4 5.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1ZM7.5 5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1Zm2.5.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1ZM4.5 8a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1Zm2.5.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1ZM10.5 8a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1Z"/>
@@ -286,7 +286,7 @@
<!-- Gaps -->
<div class="col-md-6">
<div class="card border-0 shadow-sm h-100">
<div class="card-header py-3" style="background-color: var(--truecv-bg-surface);">
<div class="card-header py-3" style="background-color: var(--realcv-bg-surface);">
<h5 class="mb-0 fw-bold">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" class="bi bi-clock-history me-2 text-warning" viewBox="0 0 16 16">
<path d="M8.515 1.019A7 7 0 0 0 8 1V0a8 8 0 0 1 .589.022l-.074.997zm2.004.45a7.003 7.003 0 0 0-.985-.299l.219-.976c.383.086.76.2 1.126.342l-.36.933zm1.37.71a7.01 7.01 0 0 0-.439-.27l.493-.87a8.025 8.025 0 0 1 .979.654l-.615.789a6.996 6.996 0 0 0-.418-.302zm1.834 1.79a6.99 6.99 0 0 0-.653-.796l.724-.69c.27.285.52.59.747.91l-.818.576zm.744 1.352a7.08 7.08 0 0 0-.214-.468l.893-.45a7.976 7.976 0 0 1 .45 1.088l-.95.313a7.023 7.023 0 0 0-.179-.483zm.53 2.507a6.991 6.991 0 0 0-.1-1.025l.985-.17c.067.386.106.778.116 1.17l-1 .025zm-.131 1.538c.033-.17.06-.339.081-.51l.993.123a7.957 7.957 0 0 1-.23 1.155l-.964-.267c.046-.165.086-.332.12-.501zm-.952 2.379c.184-.29.346-.594.486-.908l.914.405c-.16.36-.345.706-.555 1.038l-.845-.535zm-.964 1.205c.122-.122.239-.248.35-.378l.758.653a8.073 8.073 0 0 1-.401.432l-.707-.707z"/>
@@ -331,7 +331,7 @@
<!-- Overlaps -->
<div class="col-md-6">
<div class="card border-0 shadow-sm h-100">
<div class="card-header py-3" style="background-color: var(--truecv-bg-surface);">
<div class="card-header py-3" style="background-color: var(--realcv-bg-surface);">
<h5 class="mb-0 fw-bold">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" class="bi bi-intersect me-2 text-danger" viewBox="0 0 16 16">
<path d="M0 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v2h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-2H2a2 2 0 0 1-2-2V2zm5 10v2a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2v5a2 2 0 0 1-2 2H5zm6-8V2a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h2V6a2 2 0 0 1 2-2h5z"/>
@@ -382,7 +382,7 @@
@if (_report.Flags.Count > 0)
{
<div class="card border-0 shadow-sm mb-4">
<div class="card-header py-3" style="background-color: var(--truecv-bg-surface);">
<div class="card-header py-3" style="background-color: var(--realcv-bg-surface);">
<h5 class="mb-0 fw-bold">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" class="bi bi-flag me-2 text-danger" viewBox="0 0 16 16">
<path d="M14.778.085A.5.5 0 0 1 15 .5V8a.5.5 0 0 1-.314.464L14.5 8l.186.464-.003.001-.006.003-.023.009a12.435 12.435 0 0 1-.397.15c-.264.095-.631.223-1.047.35-.816.252-1.879.523-2.71.523-.847 0-1.548-.28-2.158-.525l-.028-.01C7.68 8.71 7.14 8.5 6.5 8.5c-.7 0-1.638.23-2.437.477A19.626 19.626 0 0 0 3 9.342V15.5a.5.5 0 0 1-1 0V.5a.5.5 0 0 1 1 0v.282c.226-.079.496-.17.79-.26C4.606.272 5.67 0 6.5 0c.84 0 1.524.277 2.121.519l.043.018C9.286.788 9.828 1 10.5 1c.7 0 1.638-.23 2.437-.477a19.587 19.587 0 0 0 1.349-.476l.019-.007.004-.002h.001"/>
@@ -567,7 +567,7 @@
color: white;
}
.truecv-score-label {
.realcv-score-label {
font-family: 'Inter', sans-serif;
font-weight: 700;
font-size: 0.875rem;
@@ -620,13 +620,13 @@
.flag-item.flag-info {
background-color: #f0f5fa;
border-left-color: var(--truecv-primary);
border-left-color: var(--realcv-primary);
}
.flag-title {
font-weight: 600;
margin-bottom: 0.25rem;
color: var(--truecv-gray-700);
color: var(--realcv-gray-700);
}
.flag-description {
@@ -920,7 +920,7 @@
var candidateName = Path.GetFileNameWithoutExtension(_check.OriginalFileName);
var pdfBytes = PdfReportService.GenerateSingleReport(candidateName, _report);
var fileName = $"TrueCV_Report_{candidateName}_{DateTime.Now:yyyyMMdd}.pdf";
var fileName = $"RealCV_Report_{candidateName}_{DateTime.Now:yyyyMMdd}.pdf";
await DownloadFileAsync(fileName, pdfBytes, "application/pdf");
}
catch (Exception ex)

View File

@@ -11,11 +11,11 @@
@using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.Extensions.Logging
@using Microsoft.JSInterop
@using TrueCV.Web
@using TrueCV.Web.Components
@using TrueCV.Web.Components.Shared
@using TrueCV.Web.Services
@using TrueCV.Application.Interfaces
@using TrueCV.Application.DTOs
@using TrueCV.Application.Models
@using TrueCV.Domain.Enums
@using RealCV.Web
@using RealCV.Web.Components
@using RealCV.Web.Components.Shared
@using RealCV.Web.Services
@using RealCV.Application.Interfaces
@using RealCV.Application.DTOs
@using RealCV.Application.Models
@using RealCV.Domain.Enums

View File

@@ -1,6 +1,6 @@
using Hangfire.Dashboard;
namespace TrueCV.Web;
namespace RealCV.Web;
public class HangfireAuthorizationFilter : IDashboardAuthorizationFilter
{

View File

@@ -5,14 +5,14 @@ using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.RateLimiting;
using Microsoft.EntityFrameworkCore;
using Serilog;
using TrueCV.Application.Interfaces;
using TrueCV.Domain.Enums;
using TrueCV.Infrastructure;
using TrueCV.Infrastructure.Data;
using TrueCV.Infrastructure.Identity;
using TrueCV.Web;
using TrueCV.Web.Components;
using TrueCV.Web.Services;
using RealCV.Application.Interfaces;
using RealCV.Domain.Enums;
using RealCV.Infrastructure;
using RealCV.Infrastructure.Data;
using RealCV.Infrastructure.Identity;
using RealCV.Web;
using RealCV.Web.Components;
using RealCV.Web.Services;
// Configure Serilog
Log.Logger = new LoggerConfiguration()
@@ -21,7 +21,7 @@ Log.Logger = new LoggerConfiguration()
try
{
Log.Information("Starting TrueCV web application");
Log.Information("Starting RealCV web application");
var builder = WebApplication.CreateBuilder(args);
@@ -170,7 +170,8 @@ try
}
// Schedule recurring job to reset monthly usage
RecurringJob.AddOrUpdate<TrueCV.Infrastructure.Jobs.ResetMonthlyUsageJob>(
var recurringJobManager = app.Services.GetRequiredService<IRecurringJobManager>();
recurringJobManager.AddOrUpdate<RealCV.Infrastructure.Jobs.ResetMonthlyUsageJob>(
"reset-monthly-usage",
job => job.ExecuteAsync(CancellationToken.None),
Cron.Daily(0, 5)); // Run at 00:05 UTC daily

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<ItemGroup>
<ProjectReference Include="..\TrueCV.Infrastructure\TrueCV.Infrastructure.csproj" />
<ProjectReference Include="..\RealCV.Infrastructure\RealCV.Infrastructure.csproj" />
</ItemGroup>
<ItemGroup>

View File

@@ -4,7 +4,7 @@ using Microsoft.AspNetCore.Components.Server;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Options;
namespace TrueCV.Web;
namespace RealCV.Web;
public class RevalidatingIdentityAuthenticationStateProvider<TUser>
: RevalidatingServerAuthenticationStateProvider where TUser : class

View File

@@ -1,6 +1,6 @@
using TrueCV.Application.Models;
using RealCV.Application.Models;
namespace TrueCV.Web.Services;
namespace RealCV.Web.Services;
public interface IPdfReportService
{

Some files were not shown because too many files have changed in this diff Show More