refactor: Move course dates from registracie to kurzy table

- Add datumOd and datumDo columns to kurzy table
- Remove datumOd, datumDo, pocetUcastnikov from registracie table
- Update schema, validators, and services accordingly
- Certificate generation now uses course dates
- Migration preserves existing data by copying most recent dates

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
richardtekula
2026-01-29 12:52:56 +01:00
parent 2fee1f39bc
commit 12acd68156
6 changed files with 49 additions and 36 deletions

View File

@@ -151,8 +151,6 @@ export const generateCertificate = async (registraciaId, templateName = 'AIcerti
const [registration] = await db
.select({
id: registracie.id,
datumOd: registracie.datumOd,
datumDo: registracie.datumDo,
ucastnikId: registracie.ucastnikId,
kurzId: registracie.kurzId,
})
@@ -184,6 +182,8 @@ export const generateCertificate = async (registraciaId, templateName = 'AIcerti
.select({
nazov: kurzy.nazov,
popis: kurzy.popis,
datumOd: kurzy.datumOd,
datumDo: kurzy.datumDo,
})
.from(kurzy)
.where(eq(kurzy.id, registration.kurzId))
@@ -205,16 +205,16 @@ export const generateCertificate = async (registraciaId, templateName = 'AIcerti
.filter(Boolean)
.join(' ');
const issueDate = registration.datumDo || registration.datumOd || new Date();
const issueDate = course.datumDo || course.datumOd || new Date();
// Format date range
let dateRange = '';
if (registration.datumOd && registration.datumDo) {
dateRange = `${formatDate(registration.datumOd)} - ${formatDate(registration.datumDo)}`;
} else if (registration.datumDo) {
dateRange = formatDate(registration.datumDo);
} else if (registration.datumOd) {
dateRange = formatDate(registration.datumOd);
if (course.datumOd && course.datumDo) {
dateRange = `${formatDate(course.datumOd)} - ${formatDate(course.datumDo)}`;
} else if (course.datumDo) {
dateRange = formatDate(course.datumDo);
} else if (course.datumOd) {
dateRange = formatDate(course.datumOd);
}
// Prepare template data