import MariaDBQuoteGen from "./mariadb-quote-gen"; export function defaultForeignKeyName(tableName, fieldName) { return `fk_${tableName}_${fieldName}`; } export function resolveForeignKeyName(field, tableName) { const fieldName = field.fieldName || "column"; return field.foreignKey?.foreignKeyName || defaultForeignKeyName(tableName, fieldName); } export default function buildForeignKeyConstraint(field, tableName) { const fk = field.foreignKey; const constraintName = resolveForeignKeyName(field, tableName); let constraint = `CONSTRAINT ${MariaDBQuoteGen(constraintName)} FOREIGN KEY (${MariaDBQuoteGen(field.fieldName)}) REFERENCES ${MariaDBQuoteGen(fk.destinationTableName)}(${MariaDBQuoteGen(fk.destinationTableColumnName)})`; if (fk.cascadeDelete) { constraint += " ON DELETE CASCADE"; } if (fk.cascadeUpdate) { constraint += " ON UPDATE CASCADE"; } return constraint; }