faturas_4docs/Webhook 4docs/WebhookDbContext.cs
Giuliano Paschoalino df6810922b Adiciona campo JsonBody em ProcessedInvoices (jsonb)
Inclui suporte para armazenar dados JSON na tabela ProcessedInvoices usando o tipo jsonb do PostgreSQL. Implementa conversão entre JsonDocument e string JSON no modelo. Cria migração para adicionar/remover a coluna. Atualiza versão do EF Core para 9.0.0. Ajusta gravação de faturas para salvar o corpo JSON recebido.
2026-02-27 14:03:52 -03:00

25 lines
836 B
C#

using Microsoft.EntityFrameworkCore;
using System.Text.Json;
namespace Webhook_4docs
{
public class WebhookDbContext(DbContextOptions<WebhookDbContext> options) : DbContext(options)
{
public DbSet<ProcessedInvoices> ProcessedInvoices { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<ProcessedInvoices>()
.Property(p => p.JsonBody)
.HasColumnType("jsonb")
.HasConversion(
v => v == null ? null : v.RootElement.GetRawText(),
v => v == null ? null : ParseJsonDocument(v));
}
private static JsonDocument ParseJsonDocument(string json)
=> JsonDocument.Parse(json);
}
}