feat: resolve drawing revisions on PDF upload
When a PDF hash is set on an export record, resolve or create the associated Drawing and bump its revision if the content hash changed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -212,11 +212,50 @@ namespace FabWorks.Api.Controllers
|
||||
if (record == null) return NotFound();
|
||||
|
||||
record.PdfContentHash = request.PdfContentHash;
|
||||
|
||||
if (!string.IsNullOrEmpty(record.DrawingNumber) && !string.IsNullOrEmpty(request.PdfContentHash))
|
||||
{
|
||||
var drawing = await ResolveDrawingAsync(record.DrawingNumber, record.Title, request.PdfContentHash);
|
||||
record.DrawingId = drawing.Id;
|
||||
}
|
||||
|
||||
await _db.SaveChangesAsync();
|
||||
|
||||
return NoContent();
|
||||
}
|
||||
|
||||
private async Task<Drawing> ResolveDrawingAsync(string drawingNumber, string title, string pdfContentHash)
|
||||
{
|
||||
var drawing = await _db.Drawings
|
||||
.FirstOrDefaultAsync(d => d.DrawingNumber == drawingNumber);
|
||||
|
||||
if (drawing == null)
|
||||
{
|
||||
drawing = new Drawing
|
||||
{
|
||||
DrawingNumber = drawingNumber,
|
||||
Title = title,
|
||||
PdfContentHash = pdfContentHash,
|
||||
Revision = 1
|
||||
};
|
||||
_db.Drawings.Add(drawing);
|
||||
}
|
||||
else if (drawing.PdfContentHash != pdfContentHash)
|
||||
{
|
||||
drawing.PdfContentHash = pdfContentHash;
|
||||
drawing.Revision++;
|
||||
if (!string.IsNullOrEmpty(title))
|
||||
drawing.Title = title;
|
||||
}
|
||||
// If hash matches, keep same revision (just update title if needed)
|
||||
else if (!string.IsNullOrEmpty(title))
|
||||
{
|
||||
drawing.Title = title;
|
||||
}
|
||||
|
||||
return drawing;
|
||||
}
|
||||
|
||||
[HttpGet("previous-cut-template")]
|
||||
public async Task<ActionResult<CutTemplateDto>> GetPreviousCutTemplate(
|
||||
[FromQuery] string drawingNumber,
|
||||
|
||||
Reference in New Issue
Block a user