This commit is contained in:
sebseb7
2025-08-01 10:03:12 +02:00
parent 1ec1e1e5f6
commit fa6690135a
2 changed files with 37 additions and 35 deletions

10
.env
View File

@@ -1,10 +0,0 @@
GOOGLE_CLIENT_ID=928121624463-jbgfdlgem22scs1k9c87ucg4ffvaik6o.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=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
REACT_APP_GOOGLE_CLIENT_ID=928121624463-jbgfdlgem22scs1k9c87ucg4ffvaik6o.apps.googleusercontent.com
AUTHORIZED_EMAILS=sebgreenbus@gmail.com,growsdd@gmail.com
JWT_SECRET=7vK2gQp9zX1wR4eT6sB8uN0cLmY5aV3j
DB_SERVER=192.168.56.1
DB_DATABASE=eazybusiness
DB_USERNAME=app
DB_PASSWORD=readonly
DB_PORT=1497

View File

@@ -1,6 +1,14 @@
-- Create fibdash schema
IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'fibdash')
BEGIN
EXEC('CREATE SCHEMA fibdash')
END
GO
-- Create Kreditor table -- Create Kreditor table
CREATE TABLE Kreditor ( CREATE TABLE fibdash.Kreditor (
id INT IDENTITY(1,1) PRIMARY KEY, id INT IDENTITY(1,1) PRIMARY KEY,
iban NVARCHAR(34) NOT NULL, iban NVARCHAR(34) NOT NULL,
name NVARCHAR(255) NOT NULL, name NVARCHAR(255) NOT NULL,
@@ -8,12 +16,12 @@ CREATE TABLE Kreditor (
); );
-- Ensure kreditorId is unique to support FK references -- Ensure kreditorId is unique to support FK references
ALTER TABLE Kreditor ALTER TABLE fibdash.Kreditor
ADD CONSTRAINT UQ_Kreditor_kreditorId UNIQUE (kreditorId); ADD CONSTRAINT UQ_Kreditor_kreditorId UNIQUE (kreditorId);
-- Create AccountingItems table -- Create AccountingItems table
-- Based on CSV structure: umsatz brutto, soll/haben kz, konto, gegenkonto, bu, buchungsdatum, rechnungsnummer, buchungstext, beleglink -- Based on CSV structure: umsatz brutto, soll/haben kz, konto, gegenkonto, bu, buchungsdatum, rechnungsnummer, buchungstext, beleglink
CREATE TABLE AccountingItems ( CREATE TABLE fibdash.AccountingItems (
id INT IDENTITY(1,1) PRIMARY KEY, id INT IDENTITY(1,1) PRIMARY KEY,
umsatz_brutto DECIMAL(15,2) NOT NULL, -- gross turnover amount umsatz_brutto DECIMAL(15,2) NOT NULL, -- gross turnover amount
soll_haben_kz CHAR(1) NOT NULL CHECK (soll_haben_kz IN ('S', 'H')), -- S = eingang (debit), H = ausgang (credit) soll_haben_kz CHAR(1) NOT NULL CHECK (soll_haben_kz IN ('S', 'H')), -- S = eingang (debit), H = ausgang (credit)
@@ -27,19 +35,27 @@ CREATE TABLE AccountingItems (
); );
-- Create Konto table -- Create Konto table
CREATE TABLE Konto ( CREATE TABLE fibdash.Konto (
id INT IDENTITY(1,1) PRIMARY KEY, id INT IDENTITY(1,1) PRIMARY KEY,
konto NVARCHAR(10) NOT NULL, konto NVARCHAR(10) NOT NULL,
name NVARCHAR(255) NOT NULL name NVARCHAR(255) NOT NULL
); );
-- Ensure Konto.konto is unique to support FK references
ALTER TABLE fibdash.Konto
ADD CONSTRAINT UQ_Konto_konto UNIQUE (konto);
-- Create BU table -- Create BU table
CREATE TABLE BU ( CREATE TABLE fibdash.BU (
id INT IDENTITY(1,1) PRIMARY KEY, id INT IDENTITY(1,1) PRIMARY KEY,
bu NVARCHAR(10) NOT NULL bu NVARCHAR(10) NOT NULL,
name NVARCHAR(255) NOT NULL name NVARCHAR(255) NOT NULL
); );
-- Ensure BU.bu is unique to support FK references
ALTER TABLE fibdash.BU
ADD CONSTRAINT UQ_BU_bu UNIQUE (bu);
/* /*
CSV CSV
umsatz brutto , umsatz brutto ,
@@ -65,32 +81,28 @@ CSV
*/ */
-- Create indexes for better performance -- Create indexes for better performance
CREATE INDEX IX_Users_Email ON Users(email); CREATE INDEX IX_Kreditor_IBAN ON fibdash.Kreditor(iban);
CREATE INDEX IX_Users_GoogleId ON Users(google_id); CREATE INDEX IX_Kreditor_KreditorId ON fibdash.Kreditor(kreditorId);
CREATE INDEX IX_UserPreferences_UserId ON UserPreferences(user_id); CREATE INDEX IX_AccountingItems_Buchungsdatum ON fibdash.AccountingItems(buchungsdatum);
CREATE INDEX IX_Kreditor_IBAN ON Kreditor(iban); CREATE INDEX IX_AccountingItems_Konto ON fibdash.AccountingItems(konto);
CREATE INDEX IX_Kreditor_KreditorId ON Kreditor(kreditorId); CREATE INDEX IX_AccountingItems_Rechnungsnummer ON fibdash.AccountingItems(rechnungsnummer);
CREATE INDEX IX_AccountingItems_Buchungsdatum ON AccountingItems(buchungsdatum); CREATE INDEX IX_AccountingItems_SollHabenKz ON fibdash.AccountingItems(soll_haben_kz);
CREATE INDEX IX_AccountingItems_Konto ON AccountingItems(konto);
CREATE INDEX IX_AccountingItems_Rechnungsnummer ON AccountingItems(rechnungsnummer);
CREATE INDEX IX_AccountingItems_SollHabenKz ON AccountingItems(soll_haben_kz);
-- Add FK from AccountingItems.bu -> BU(bu) -- Add FK from AccountingItems.bu -> BU(bu)
ALTER TABLE AccountingItems ALTER TABLE fibdash.AccountingItems
ADD CONSTRAINT FK_AccountingItems_BU_BU ADD CONSTRAINT FK_AccountingItems_BU_BU
FOREIGN KEY (bu) REFERENCES BU(bu); FOREIGN KEY (bu) REFERENCES fibdash.BU(bu);
-- Add FK from AccountingItems.gegenkonto -> Kreditor(kreditorId) -- Add FK from AccountingItems.gegenkonto -> Kreditor(kreditorId)
ALTER TABLE AccountingItems ALTER TABLE fibdash.AccountingItems
ADD CONSTRAINT FK_AccountingItems_Gegenkonto_Kreditor ADD CONSTRAINT FK_AccountingItems_Gegenkonto_Kreditor
FOREIGN KEY (gegenkonto) REFERENCES Kreditor(kreditorId); FOREIGN KEY (gegenkonto) REFERENCES fibdash.Kreditor(kreditorId);
-- Add FK from AccountingItems.konto -> Konto(konto) -- Add FK from AccountingItems.konto -> Konto(konto)
ALTER TABLE AccountingItems ALTER TABLE fibdash.AccountingItems
ADD CONSTRAINT FK_AccountingItems_Konto_Konto ADD CONSTRAINT FK_AccountingItems_Konto_Konto
FOREIGN KEY (konto) REFERENCES Konto(konto); FOREIGN KEY (konto) REFERENCES fibdash.Konto(konto);
-- Insert sample data (optional) -- Insert sample data (optional)
-- Note: This will only work after you have real Google user data -- INSERT INTO fibdash.Kreditor (iban, name, kreditorId)
-- INSERT INTO Users (google_id, email, name, picture) -- VALUES ('DE89370400440532013000', 'Sample Kreditor', '70001');
-- VALUES ('sample_google_id', 'user@example.com', 'Lorem Ipsum User', 'https://example.com/picture.jpg');