Index: backend/connectionModel.js
===================================================================
--- backend/connectionModel.js	(revision fc040e5bac85c12c8c762fbc148457f7b8e97d42)
+++ backend/connectionModel.js	(revision c0a2ec2323d5af8120379111b5a59c45393d105e)
@@ -3,17 +3,17 @@
     // Connect to local postgre server
 
-    /* user: "postgres",
+    user: "postgres",
     host: "localhost",
     database: "postgres",
     password: "3533",
-    port: 5432, */
+    port: 5432,
 
     //Connect to live finki postgre server
 
-    user: "db_202324z_va_prj_carzone_owner",
+    /* user: "db_202324z_va_prj_carzone_owner",
     host: "localhost",
     database: "db_202324z_va_prj_carzone",
     password: "673f77a552e6",
-    port: 9999,
+    port: 9999, */
 });
 
@@ -141,18 +141,188 @@
         const { tax_nr, d_name, brands, email, pass, director, telephones, addres } = body;
 
-        pool.query(
-            "INSERT INTO dealership (Tax_Nr, D_Name, Brands, Email, Pass, Director, Telephones, Addres) values ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING *",
-            [tax_nr, d_name, brands, email, pass, director, telephones, addres],
-            (error, results) => {
-                if (error) {
-                    throw(error);
-                }
-                if (results && results.rows) {
-                    resolve(`Dealership account was created.`);
-                } else {
-                    throw(new Error("Not able to make new dealership account."));
-                }
+        console.log('Registering dealership with data:', { tax_nr, d_name, brands, telephones });
+
+        // Use a client for transaction
+        pool.connect((err, client, done) => {
+            if (err) {
+                console.error('Error getting client from pool:', err);
+                reject(err);
+                return;
             }
-        );
+
+            client.query('BEGIN', (beginError) => {
+                if (beginError) {
+                    console.error('Begin transaction error:', beginError);
+                    done();
+                    reject(beginError);
+                    return;
+                }
+
+                // Insert dealership without brands and telephones
+                client.query(
+                    "INSERT INTO dealership (Tax_Nr, D_Name, Email, Pass, Director, Addres) values ($1, $2, $3, $4, $5, $6) RETURNING *",
+                    [tax_nr, d_name, email, pass, director, addres],
+                    (error, results) => {
+                        if (error) {
+                            console.error('Dealership insert error:', error);
+                            client.query('ROLLBACK', () => {
+                                done();
+                            });
+                            reject(error);
+                            return;
+                        }
+                        
+                        if (results && results.rows) {
+                            console.log('Dealership inserted successfully');
+                            
+                            // Insert brands if provided
+                            if (brands && brands.length > 0) {
+                                console.log('Inserting brands:', brands);
+                                const brandInserts = brands.map(brand => {
+                                    return new Promise((resolveBrand, rejectBrand) => {
+                                        client.query(
+                                            "INSERT INTO dealership_brands (dealership_tax_nr, brand_name) VALUES ($1, $2)",
+                                            [tax_nr, brand.trim()],
+                                            (brandError) => {
+                                                if (brandError) {
+                                                    console.error('Brand insert error:', brandError);
+                                                    rejectBrand(brandError);
+                                                } else {
+                                                    resolveBrand();
+                                                }
+                                            }
+                                        );
+                                    });
+                                });
+                                
+                                Promise.all(brandInserts)
+                                    .then(() => {
+                                        console.log('All brands inserted successfully');
+                                        // Insert telephones if provided
+                                        if (telephones && telephones.length > 0) {
+                                            console.log('Inserting telephones:', telephones);
+                                            const phoneInserts = telephones.map(phone => {
+                                                return new Promise((resolvePhone, rejectPhone) => {
+                                                    client.query(
+                                                        "INSERT INTO dealership_telephones (dealership_tax_nr, phone_number) VALUES ($1, $2)",
+                                                        [tax_nr, phone.trim()],
+                                                        (phoneError) => {
+                                                            if (phoneError) {
+                                                                console.error('Phone insert error:', phoneError);
+                                                                rejectPhone(phoneError);
+                                                            } else {
+                                                                resolvePhone();
+                                                            }
+                                                        }
+                                                    );
+                                                });
+                                            });
+                                            
+                                            Promise.all(phoneInserts)
+                                                .then(() => {
+                                                    console.log('All telephones inserted successfully');
+                                                    client.query('COMMIT', (commitError) => {
+                                                        done();
+                                                        if (commitError) {
+                                                            console.error('Commit error:', commitError);
+                                                            reject(commitError);
+                                                        } else {
+                                                            console.log('Transaction committed successfully');
+                                                            resolve(`Dealership account was created.`);
+                                                        }
+                                                    });
+                                                })
+                                                .catch((phoneError) => {
+                                                    console.error('Phone insertion failed:', phoneError);
+                                                    client.query('ROLLBACK', () => {
+                                                        done();
+                                                    });
+                                                    reject(phoneError);
+                                                });
+                                        } else {
+                                            client.query('COMMIT', (commitError) => {
+                                                done();
+                                                if (commitError) {
+                                                    console.error('Commit error:', commitError);
+                                                    reject(commitError);
+                                                } else {
+                                                    console.log('Transaction committed successfully (no phones)');
+                                                    resolve(`Dealership account was created.`);
+                                                }
+                                            });
+                                        }
+                                    })
+                                    .catch((brandError) => {
+                                        console.error('Brand insertion failed:', brandError);
+                                        client.query('ROLLBACK', () => {
+                                            done();
+                                        });
+                                        reject(brandError);
+                                    });
+                            } else {
+                                // No brands, just insert telephones if provided
+                                if (telephones && telephones.length > 0) {
+                                    console.log('Inserting telephones (no brands):', telephones);
+                                    const phoneInserts = telephones.map(phone => {
+                                        return new Promise((resolvePhone, rejectPhone) => {
+                                            client.query(
+                                                "INSERT INTO dealership_telephones (dealership_tax_nr, phone_number) VALUES ($1, $2)",
+                                                [tax_nr, phone.trim()],
+                                                (phoneError) => {
+                                                    if (phoneError) {
+                                                        console.error('Phone insert error:', phoneError);
+                                                        rejectPhone(phoneError);
+                                                    } else {
+                                                        resolvePhone();
+                                                    }
+                                                }
+                                            );
+                                        });
+                                    });
+                                    
+                                    Promise.all(phoneInserts)
+                                        .then(() => {
+                                            console.log('All telephones inserted successfully (no brands)');
+                                            client.query('COMMIT', (commitError) => {
+                                                done();
+                                                if (commitError) {
+                                                    console.error('Commit error:', commitError);
+                                                    reject(commitError);
+                                                } else {
+                                                    console.log('Transaction committed successfully (no brands)');
+                                                    resolve(`Dealership account was created.`);
+                                                }
+                                            });
+                                        })
+                                        .catch((phoneError) => {
+                                            console.error('Phone insertion failed (no brands):', phoneError);
+                                            client.query('ROLLBACK', () => {
+                                                done();
+                                            });
+                                            reject(phoneError);
+                                        });
+                                } else {
+                                    client.query('COMMIT', (commitError) => {
+                                        done();
+                                        if (commitError) {
+                                            console.error('Commit error:', commitError);
+                                            reject(commitError);
+                                        } else {
+                                            console.log('Transaction committed successfully (no brands or phones)');
+                                            resolve(`Dealership account was created.`);
+                                        }
+                                    });
+                                }
+                            }
+                        } else {
+                            client.query('ROLLBACK', () => {
+                                done();
+                            });
+                            reject(new Error("Not able to make new dealership account."));
+                        }
+                    }
+                );
+            });
+        });
     });
 };
@@ -309,10 +479,22 @@
                 "SELECT * FROM dealership WHERE email = $1 AND pass = $2",
                 [email, password],
-                (error, results) => {
-                    if (error) {
-                        reject(error);
+                async (error, results) => {
+                    if (error) {
+                        reject(error);
+                        return;
                     }
                     if (results && results.rows && results.rows.length > 0) {
-                        resolve(results.rows[0]);
+                        const dealership = results.rows[0];
+                        try {
+                            const brands = await getDealershipBrands(dealership.tax_nr);
+                            const telephones = await getDealershipTelephones(dealership.tax_nr);
+                            resolve({
+                                ...dealership,
+                                brands: brands,
+                                telephones: telephones
+                            });
+                        } catch (detailError) {
+                            reject(detailError);
+                        }
                     } else {
                         resolve(null);
@@ -600,4 +782,91 @@
                     } else {
                         reject(new Error("No results found"));
+                    }
+                }
+            );
+        });
+    } catch (error_1) {
+        console.error(error_1);
+        throw new Error("Internal server error");
+    }
+};
+
+// Get dealership brands
+const getDealershipBrands = async (taxNr) => {
+    try {
+        return await new Promise(function (resolve, reject) {
+            pool.query(
+                "SELECT brand_name FROM dealership_brands WHERE dealership_tax_nr = $1",
+                [taxNr],
+                (error, results) => {
+                    if (error) {
+                        reject(error);
+                    }
+                    if (results && results.rows) {
+                        resolve(results.rows.map(row => row.brand_name));
+                    } else {
+                        resolve([]);
+                    }
+                }
+            );
+        });
+    } catch (error_1) {
+        console.error(error_1);
+        throw new Error("Internal server error");
+    }
+};
+
+// Get dealership telephones
+const getDealershipTelephones = async (taxNr) => {
+    try {
+        return await new Promise(function (resolve, reject) {
+            pool.query(
+                "SELECT phone_number FROM dealership_telephones WHERE dealership_tax_nr = $1",
+                [taxNr],
+                (error, results) => {
+                    if (error) {
+                        reject(error);
+                    }
+                    if (results && results.rows) {
+                        resolve(results.rows.map(row => row.phone_number));
+                    } else {
+                        resolve([]);
+                    }
+                }
+            );
+        });
+    } catch (error_1) {
+        console.error(error_1);
+        throw new Error("Internal server error");
+    }
+};
+
+// Get dealership with brands and telephones
+const getDealershipWithDetails = async (taxNr) => {
+    try {
+        return await new Promise(function (resolve, reject) {
+            pool.query(
+                "SELECT * FROM dealership WHERE tax_nr = $1",
+                [taxNr],
+                async (error, results) => {
+                    if (error) {
+                        reject(error);
+                        return;
+                    }
+                    if (results && results.rows && results.rows.length > 0) {
+                        const dealership = results.rows[0];
+                        try {
+                            const brands = await getDealershipBrands(taxNr);
+                            const telephones = await getDealershipTelephones(taxNr);
+                            resolve({
+                                ...dealership,
+                                brands: brands,
+                                telephones: telephones
+                            });
+                        } catch (detailError) {
+                            reject(detailError);
+                        }
+                    } else {
+                        resolve(null);
                     }
                 }
@@ -655,3 +924,6 @@
     getDealershipAgreements,
     getAllDealerships,
-};
+    getDealershipBrands,
+    getDealershipTelephones,
+    getDealershipWithDetails,
+};
Index: backend/index.js
===================================================================
--- backend/index.js	(revision fc040e5bac85c12c8c762fbc148457f7b8e97d42)
+++ backend/index.js	(revision c0a2ec2323d5af8120379111b5a59c45393d105e)
@@ -374,4 +374,44 @@
 });
 
+// Get dealership brands
+app.get("/dealership/brands", requireDealership, (req, res) => {
+    connection_model
+        .getDealershipBrands(req.user.userId)
+        .then((response) => {
+            res.status(200).json(response);
+        })
+        .catch((error) => {
+            res.status(500).json({ error: error.message });
+        });
+});
+
+// Get dealership telephones
+app.get("/dealership/telephones", requireDealership, (req, res) => {
+    connection_model
+        .getDealershipTelephones(req.user.userId)
+        .then((response) => {
+            res.status(200).json(response);
+        })
+        .catch((error) => {
+            res.status(500).json({ error: error.message });
+        });
+});
+
+// Get dealership with complete details (brands and telephones)
+app.get("/dealership/details", requireDealership, (req, res) => {
+    connection_model
+        .getDealershipWithDetails(req.user.userId)
+        .then((response) => {
+            if (response) {
+                res.status(200).json(response);
+            } else {
+                res.status(404).json({ error: 'Dealership not found' });
+            }
+        })
+        .catch((error) => {
+            res.status(500).json({ error: error.message });
+        });
+});
+
 app.listen(port, () => {
     console.log(`App running on port ${port}.`);
