implemented table creation
This commit is contained in:
@@ -9,8 +9,12 @@ import static de.srsoftware.umbrella.company.Constants.TABLE_COMPANIES;
|
|||||||
import static de.srsoftware.umbrella.company.Constants.TABLE_COMPANIES_USERS;
|
import static de.srsoftware.umbrella.company.Constants.TABLE_COMPANIES_USERS;
|
||||||
import static de.srsoftware.umbrella.core.Constants.*;
|
import static de.srsoftware.umbrella.core.Constants.*;
|
||||||
import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.databaseException;
|
import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.databaseException;
|
||||||
|
import static de.srsoftware.umbrella.core.model.Status.OPEN;
|
||||||
|
import static java.lang.System.Logger.Level.ERROR;
|
||||||
|
import static java.text.MessageFormat.format;
|
||||||
|
|
||||||
import de.srsoftware.umbrella.company.api.CompanyDb;
|
import de.srsoftware.umbrella.company.api.CompanyDb;
|
||||||
|
import de.srsoftware.umbrella.core.BaseDb;
|
||||||
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||||
import de.srsoftware.umbrella.core.model.Company;
|
import de.srsoftware.umbrella.core.model.Company;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
@@ -21,12 +25,61 @@ import java.util.HashSet;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
public class SqliteDb implements CompanyDb {
|
public class SqliteDb extends BaseDb implements CompanyDb {
|
||||||
|
|
||||||
private final Connection db;
|
|
||||||
|
|
||||||
public SqliteDb(Connection connection) {
|
public SqliteDb(Connection connection) {
|
||||||
db = connection;
|
super(connection);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected int createTables() {
|
||||||
|
int currentVersion = createSettingsTable();
|
||||||
|
switch (currentVersion){
|
||||||
|
case 0:
|
||||||
|
createCompanyTable();
|
||||||
|
createCompaniesUsersTable();
|
||||||
|
}
|
||||||
|
|
||||||
|
return setCurrentVersion(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createCompanyTable() {
|
||||||
|
var sql = """
|
||||||
|
CREATE TABLE IF NOT EXISTS "companies" (
|
||||||
|
id INTEGER PRIMARY KEY,
|
||||||
|
name VARCHAR(255) NOT NULL,
|
||||||
|
address TEXT,
|
||||||
|
email VARCHAR(255),
|
||||||
|
phone VARCHAR(255),
|
||||||
|
bank_account TEXT,
|
||||||
|
court TEXT,
|
||||||
|
currency VARCHAR(10) DEFAULT "€",
|
||||||
|
logo TEXT,
|
||||||
|
tax_number VARCHAR(255),
|
||||||
|
decimals INT NOT NULL DEFAULT "2",
|
||||||
|
decimal_separator VARCHAR(10) DEFAULT ",",
|
||||||
|
thousands_separator VARCHAR(10) DEFAULT ".",
|
||||||
|
last_customer_number INT DEFAULT NULL,
|
||||||
|
customer_number_prefix VARCHAR(255))""";
|
||||||
|
try {
|
||||||
|
var stmt = db.prepareStatement(sql);
|
||||||
|
stmt.execute();
|
||||||
|
stmt.close();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
LOG.log(ERROR, ERROR_FAILED_CREATE_TABLE, TABLE_COMPANIES, e);
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createCompaniesUsersTable() {
|
||||||
|
var sql = "CREATE TABLE IF NOT EXISTS companies_users (company_id INT NOT NULL, user_id INT NOT NULL)";
|
||||||
|
try {
|
||||||
|
var stmt = db.prepareStatement(sql);
|
||||||
|
stmt.execute();
|
||||||
|
stmt.close();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
LOG.log(ERROR, ERROR_FAILED_CREATE_TABLE, TABLE_COMPANIES_USERS, e);
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user