fix(pdf): fix storage volume permissions blocking PDF generation

Named volume mounted root-owned over the app user's chown, so every
PDF (orçamento, fatura, download) failed with 500. Entrypoint now
fixes ownership on container start and drops to the app user.

feat(dashboard): decouple pipeline state from period filter

Status counts and recent OTs no longer disappear when an open order
was created before the selected period window.

feat(workorders): add vehicle/total columns, deadline urgency colors,
on-time delivery saldo and efficiency metric, plate search

Expose completed_at from wo_status_log so the frontend can compare
actual completion date against the deadline. Add "Eficiência de
Entrega" metric to Dashboard and Reports.

feat(reports): add dedicated vehicle service history report

New page with per-vehicle summary (OT count, total spent, last visit)
and full itemized service history with print output.

chore: relabel OT status "Concluir OT" -> "Concluída" and
"Iniciar Trabalho" -> "Em Progresso" (action buttons unchanged)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Luciano Milani
2026-07-09 19:11:02 +01:00
parent 4994abf4e2
commit 76b50fec84
12 changed files with 614 additions and 51 deletions
+4 -3
View File
@@ -6,12 +6,13 @@ COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o server ./cmd/server
FROM alpine:3.19
RUN apk --no-cache add ca-certificates tzdata
RUN apk --no-cache add ca-certificates tzdata su-exec
RUN addgroup -S app && adduser -S app -G app
WORKDIR /app
COPY --from=builder /app/server .
COPY --from=builder /app/migrations ./migrations
RUN mkdir -p /app/storage && chown -R app:app /app
USER app
COPY docker-entrypoint.sh /docker-entrypoint.sh
RUN mkdir -p /app/storage && chown -R app:app /app && chmod +x /docker-entrypoint.sh
EXPOSE 8080
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["./server"]