Spiel erweitert
This commit is contained in:
@@ -180,6 +180,67 @@ export async function createTriggers() {
|
||||
$function$;
|
||||
`;
|
||||
|
||||
const createChildRelationNameFunction = `
|
||||
CREATE OR REPLACE FUNCTION falukant_data.populate_child_relation_names()
|
||||
RETURNS TRIGGER AS $$
|
||||
DECLARE
|
||||
v_first_name TEXT;
|
||||
v_last_name TEXT;
|
||||
v_full_father TEXT;
|
||||
v_full_mother TEXT;
|
||||
BEGIN
|
||||
-- Vaternamen holen
|
||||
SELECT pf.name, pl.name
|
||||
INTO v_first_name, v_last_name
|
||||
FROM falukant_data.character c
|
||||
JOIN falukant_predefine.firstname pf ON pf.id = c.first_name
|
||||
JOIN falukant_predefine.lastname pl ON pl.id = c.last_name
|
||||
WHERE c.id = NEW.father_character_id;
|
||||
|
||||
v_full_father := v_first_name || ' ' || v_last_name;
|
||||
|
||||
-- Mutternamen holen
|
||||
SELECT pf.name, pl.name
|
||||
INTO v_first_name, v_last_name
|
||||
FROM falukant_data.character c
|
||||
JOIN falukant_predefine.firstname pf ON pf.id = c.first_name
|
||||
JOIN falukant_predefine.lastname pl ON pl.id = c.last_name
|
||||
WHERE c.id = NEW.mother_character_id;
|
||||
|
||||
v_full_mother := v_first_name || ' ' || v_last_name;
|
||||
|
||||
-- Felder füllen
|
||||
NEW.father_name := v_full_father;
|
||||
NEW.mother_name := v_full_mother;
|
||||
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
`;
|
||||
|
||||
const createChildRelationNameTrigger = `
|
||||
DROP TRIGGER IF EXISTS trg_child_relation_populate_names
|
||||
ON falukant_data.child_relation;
|
||||
CREATE TRIGGER trg_child_relation_populate_names
|
||||
BEFORE INSERT ON falukant_data.child_relation
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION falukant_data.populate_child_relation_names();
|
||||
`;
|
||||
|
||||
const createRandomMoodUpdateMethod = `
|
||||
CREATE OR REPLACE FUNCTION falukant_data.get_random_mood_id()
|
||||
RETURNS INTEGER AS $$
|
||||
BEGIN
|
||||
RETURN (
|
||||
SELECT id
|
||||
FROM falukant_type.mood
|
||||
ORDER BY random()
|
||||
LIMIT 1
|
||||
);
|
||||
END;
|
||||
$$ LANGUAGE plpgsql VOLATILE;
|
||||
`;
|
||||
|
||||
try {
|
||||
await sequelize.query(createTriggerFunction);
|
||||
await sequelize.query(createInsertTrigger);
|
||||
@@ -193,7 +254,10 @@ export async function createTriggers() {
|
||||
await sequelize.query(createKnowledgeTriggerMethod);
|
||||
await sequelize.query(createKnowledgeTrigger);
|
||||
await sequelize.query(updateMoney);
|
||||
await initializeCharacterTraitTrigger();
|
||||
await sequelize.query(createChildRelationNameFunction);
|
||||
await sequelize.query(createChildRelationNameTrigger);
|
||||
await sequelize.query(createRandomMoodUpdateMethod);
|
||||
await initializeCharacterTraitTrigger();
|
||||
|
||||
console.log('Triggers created successfully');
|
||||
} catch (error) {
|
||||
@@ -250,4 +314,3 @@ export const initializeCharacterTraitTrigger = async () => {
|
||||
console.error('❌ Fehler beim Erstellen des Triggers:', error);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user