feat(infra): IUsuarioRepository.UpdatePermisosJsonAsync + impl Dapper [UDT-009]

This commit is contained in:
2026-04-15 21:33:39 -03:00
parent bf64ffb35e
commit 5fd88b5a9d
3 changed files with 155 additions and 0 deletions

View File

@@ -17,4 +17,7 @@ public interface IUsuarioRepository
Task UpdateAsync(int id, UpdateUsuarioFields fields, DateTime fechaModificacion, CancellationToken ct = default);
Task UpdatePasswordAsync(int id, string passwordHash, bool mustChangePassword, CancellationToken ct = default);
Task<int> CountActiveAdminsAsync(CancellationToken ct = default);
// UDT-009
Task UpdatePermisosJsonAsync(int id, string permisosJson, DateTime fechaModificacion, CancellationToken ct = default);
}

View File

@@ -226,6 +226,27 @@ public sealed class UsuarioRepository : IUsuarioRepository
return await connection.ExecuteScalarAsync<int>(sql);
}
// UDT-009 ─────────────────────────────────────────────────────────────────
public async Task UpdatePermisosJsonAsync(int id, string permisosJson, DateTime fechaModificacion, CancellationToken ct = default)
{
const string sql = """
UPDATE dbo.Usuario
SET PermisosJson = @PermisosJson,
FechaModificacion = @FechaModificacion
WHERE Id = @Id
""";
await using var connection = _connectionFactory.CreateConnection();
await connection.OpenAsync(ct);
await connection.ExecuteAsync(sql, new
{
PermisosJson = permisosJson,
FechaModificacion = fechaModificacion,
Id = id
});
}
// ── mapping ───────────────────────────────────────────────────────────────
private static Usuario MapRow(UsuarioRow row)