Some checks failed
		
		
	
	Build Test Deploy / build-test (push) Has been cancelled
				
			Build Test Deploy / authority-container (push) Has been cancelled
				
			Build Test Deploy / docs (push) Has been cancelled
				
			Build Test Deploy / deploy (push) Has been cancelled
				
			Docs CI / lint-and-preview (push) Has been cancelled
				
			
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.IO;
 | |
| using Microsoft.EntityFrameworkCore;
 | |
| using Microsoft.EntityFrameworkCore.Migrations.Internal;
 | |
| using Microsoft.Extensions.Configuration;
 | |
| using OpenIddict.EntityFrameworkCore.Models;
 | |
| 
 | |
| namespace Ablera.Serdica.DBModels.Oidc;
 | |
| 
 | |
|  public class OidcDbContext : DbContext
 | |
| {
 | |
|     public OidcDbContext(DbContextOptions<OidcDbContext> options)
 | |
|         : base(options)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     public virtual DbSet<OpenIddictEntityFrameworkCoreApplication> OpenIddictApplications { get; set; }
 | |
|     public virtual DbSet<OpenIddictEntityFrameworkCoreAuthorization> OpenIddictAuthorizations { get; set; }
 | |
|     public virtual DbSet<OpenIddictEntityFrameworkCoreScope> OpenIddictScopes { get; set; }
 | |
|     public virtual DbSet<OpenIddictEntityFrameworkCoreToken> OpenIddictTokens { get; set; }
 | |
| 
 | |
|     protected override void OnModelCreating(ModelBuilder builder)
 | |
|     {
 | |
|         builder.HasAnnotation("Relational:DefaultStringType", "NVARCHAR2(4000)");
 | |
|         base.OnModelCreating(builder);
 | |
| 
 | |
|         builder.UseOpenIddict();
 | |
| 
 | |
|         // Configure the OpenIddict Applications table.
 | |
|         builder.Entity<OpenIddictEntityFrameworkCoreApplication>(entity =>
 | |
|         {
 | |
|             // Map to table with prefix "OIDC_" in the "SRD_SYS" schema.
 | |
|             entity.ToTable("OIDC_APPLICATIONS", "SRD_SYS");
 | |
| 
 | |
|             // Ensure that ClientId is unique.
 | |
|             entity.HasIndex(e => e.ClientId)
 | |
|                   .IsUnique();
 | |
| 
 | |
|             // Optionally configure column size for ClientSecret (Oracle commonly uses VARCHAR2).
 | |
|             entity.Property(e => e.ClientSecret)
 | |
|                   .HasMaxLength(256);
 | |
| 
 | |
|             // Additional tuning: you might also constrain DisplayName or ConsentType here.
 | |
|         });
 | |
| 
 | |
|         // Configure the OpenIddict Authorizations table.
 | |
|         builder.Entity<OpenIddictEntityFrameworkCoreAuthorization>(entity =>
 | |
|         {
 | |
|             entity.ToTable("OIDC_AUTHORIZATIONS", "SRD_SYS");
 | |
|         });
 | |
| 
 | |
|         // Configure the OpenIddict Scopes table.
 | |
|         builder.Entity<OpenIddictEntityFrameworkCoreScope>(entity =>
 | |
|         {
 | |
|             entity.ToTable("OIDC_SCOPES", "SRD_SYS");
 | |
| 
 | |
|             // Typically, scopes have a unique name.
 | |
|             entity.HasIndex(e => e.Name)
 | |
|                   .IsUnique();
 | |
|         });
 | |
| 
 | |
|         // Configure the OpenIddict Tokens table.
 | |
|         builder.Entity<OpenIddictEntityFrameworkCoreToken>(entity =>
 | |
|         {
 | |
|             entity.ToTable("OIDC_TOKENS", "SRD_SYS");
 | |
| 
 | |
|             // Create an index on ReferenceId for quick lookups.
 | |
|             entity.HasIndex(e => e.ReferenceId)
 | |
|                   .IsUnique();
 | |
| 
 | |
|             // Optionally, you can configure the max length for certain token fields.
 | |
|             // For example, if ReferenceId should be a VARCHAR2(100):
 | |
|             entity.Property(e => e.ReferenceId)
 | |
|                   .HasMaxLength(100);
 | |
|         });
 | |
|     }
 | |
| } |