PortBlog.API/PortBlog.API/DbContexts/CvBlogContext.cs
Bangara Raju Kottedi 3a7edb23c7 Add JWT, OTP, and caching features
Upgraded projects to .NET 9.0 and added new projects `KBR.Cache`, `KBR.Shared`, and `KBR.Shared.Lite` to the solution. Introduced JWT authentication and OTP handling with new models, services, and configuration options. Updated database schema with new entities `Users` and `RefreshTokens`, and added migrations for schema changes. Implemented caching strategies using `AppDistributedCache` with support for in-memory, SQL Server, and Redis. Enhanced email handling with `MailHelpers` for domain replacement. Updated controllers, repositories, and configuration files to support new features.
2025-11-22 06:52:59 +05:30

67 lines
2.5 KiB
C#

using Microsoft.EntityFrameworkCore;
using PortBlog.API.DbContexts.Seed;
using PortBlog.API.Entities;
using PortBlog.API.Entities.Mapping;
namespace PortBlog.API.DbContexts
{
public class CvBlogContext : DbContext
{
public CvBlogContext(DbContextOptions<CvBlogContext> dbContextOptions) : base(dbContextOptions) { }
public DbSet<Candidate> Candidates { get; set; }
public DbSet<Resume> Resumes { get; set; }
public DbSet<Hobby> Hobbies { get; set; }
public DbSet<SocialLinks> SocialLinks { get; set; }
public DbSet<Academic> Academics { get; set; }
public DbSet<Experience> Experiences { get; set; }
public DbSet<ExperienceDetails> ExperienceDetails { get; set; }
public DbSet<Skill> Skills { get; set; }
public DbSet<Certification> Certifications { get; set; }
public DbSet<Message> Messages { get; set; }
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
public DbSet<Project> Projects { get; set; }
public DbSet<ResumeFile> Files { get; set; }
public DbSet<ClientLog> ClientLogs { get; set; }
public DbSet<Cache> Cache { get; set; }
public DbSet<RefreshToken> RefreshTokens { get; set; }
public DbSet<User> Users { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Candidate>().HasData(InitialData.GetCandidateData());
modelBuilder.Entity<Resume>().HasData(InitialData.GetResumeData());
modelBuilder.Entity<SocialLinks>().HasData(InitialData.GetSocialLinksData());
modelBuilder.Entity<Hobby>().HasData(InitialData.GetHobbyData());
modelBuilder.Entity<Academic>().HasData(InitialData.GetAcademicData());
modelBuilder.Entity<Skill>().HasData(InitialData.GetSkillData());
modelBuilder.Entity<Project>().HasData(InitialData.GetProjectData());
modelBuilder.Entity<Blog>().HasData(InitialData.GetBlogData());
modelBuilder.Entity<Post>().HasData(InitialData.GetPostsData());
modelBuilder.Entity<Experience>().HasData(InitialData.GetExperiencesData());
modelBuilder.Entity<ExperienceDetails>().HasData(InitialData.GetExperienceDetailsData());
modelBuilder.Entity<User>().HasData(InitialData.GetUsers());
modelBuilder.ApplyConfiguration(new CacheMapping());
base.OnModelCreating(modelBuilder);
}
}
}