mirror of https://github.com/ghostfolio/ghostfolio
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
5.6 KiB
108 lines
5.6 KiB
DO $$
|
|
DECLARE
|
|
v_user_id TEXT;
|
|
v_core_account_id TEXT;
|
|
v_income_account_id TEXT;
|
|
BEGIN
|
|
SELECT "id" INTO v_user_id
|
|
FROM "User"
|
|
ORDER BY "createdAt" ASC
|
|
LIMIT 1;
|
|
|
|
IF v_user_id IS NULL THEN
|
|
RAISE EXCEPTION 'No users found in User table';
|
|
END IF;
|
|
|
|
INSERT INTO "Account" ("id", "userId", "name", "currency", "balance", "isExcluded", "createdAt", "updatedAt")
|
|
SELECT
|
|
'7bd6d9ad-f711-4db5-8905-98674f79a201',
|
|
v_user_id,
|
|
'MVP Portfolio',
|
|
'USD',
|
|
0,
|
|
false,
|
|
NOW(),
|
|
NOW()
|
|
WHERE NOT EXISTS (
|
|
SELECT 1 FROM "Account" WHERE "userId" = v_user_id AND "name" = 'MVP Portfolio'
|
|
);
|
|
|
|
INSERT INTO "Account" ("id", "userId", "name", "currency", "balance", "isExcluded", "createdAt", "updatedAt")
|
|
SELECT
|
|
'b4f0ce39-ec8b-4db4-9bc1-e0a21198fe02',
|
|
v_user_id,
|
|
'Income Portfolio',
|
|
'USD',
|
|
0,
|
|
false,
|
|
NOW(),
|
|
NOW()
|
|
WHERE NOT EXISTS (
|
|
SELECT 1 FROM "Account" WHERE "userId" = v_user_id AND "name" = 'Income Portfolio'
|
|
);
|
|
|
|
SELECT "id" INTO v_core_account_id
|
|
FROM "Account"
|
|
WHERE "userId" = v_user_id AND "name" = 'MVP Portfolio'
|
|
ORDER BY "createdAt" ASC
|
|
LIMIT 1;
|
|
|
|
SELECT "id" INTO v_income_account_id
|
|
FROM "Account"
|
|
WHERE "userId" = v_user_id AND "name" = 'Income Portfolio'
|
|
ORDER BY "createdAt" ASC
|
|
LIMIT 1;
|
|
|
|
INSERT INTO "SymbolProfile" (
|
|
"id", "symbol", "dataSource", "currency", "isActive", "name", "assetClass", "assetSubClass", "createdAt", "updatedAt"
|
|
)
|
|
VALUES
|
|
('d0e56e53-d6f0-4cbc-ad49-979252abf001', 'AAPL', 'YAHOO', 'USD', true, 'Apple Inc.', 'EQUITY', 'STOCK', NOW(), NOW()),
|
|
('d0e56e53-d6f0-4cbc-ad49-979252abf002', 'MSFT', 'YAHOO', 'USD', true, 'Microsoft Corporation', 'EQUITY', 'STOCK', NOW(), NOW()),
|
|
('d0e56e53-d6f0-4cbc-ad49-979252abf003', 'VTI', 'YAHOO', 'USD', true, 'Vanguard Total Stock Market ETF', 'EQUITY', 'ETF', NOW(), NOW()),
|
|
('d0e56e53-d6f0-4cbc-ad49-979252abf004', 'SCHD', 'YAHOO', 'USD', true, 'Schwab U.S. Dividend Equity ETF', 'EQUITY', 'ETF', NOW(), NOW())
|
|
ON CONFLICT ("dataSource", "symbol")
|
|
DO UPDATE SET
|
|
"name" = EXCLUDED."name",
|
|
"currency" = 'USD',
|
|
"isActive" = true,
|
|
"assetClass" = EXCLUDED."assetClass",
|
|
"assetSubClass" = EXCLUDED."assetSubClass",
|
|
"updatedAt" = NOW();
|
|
|
|
INSERT INTO "Order" ("id", "userId", "accountId", "accountUserId", "symbolProfileId", "currency", "date", "fee", "quantity", "type", "unitPrice", "comment", "isDraft", "createdAt", "updatedAt")
|
|
SELECT '60035d49-f388-49e5-9f10-67e5d7e4a001', v_user_id, v_core_account_id, v_user_id, s."id", 'USD', '2024-01-15T00:00:00.000Z'::timestamptz, 1, 8, 'BUY'::"Type", 186.2, 'railway-seed:mvp-aapl-buy-20240115', false, NOW(), NOW()
|
|
FROM "SymbolProfile" s
|
|
WHERE s."dataSource" = 'YAHOO'::"DataSource" AND s."symbol" = 'AAPL'
|
|
AND NOT EXISTS (SELECT 1 FROM "Order" o WHERE o."userId" = v_user_id AND o."comment" = 'railway-seed:mvp-aapl-buy-20240115');
|
|
|
|
INSERT INTO "Order" ("id", "userId", "accountId", "accountUserId", "symbolProfileId", "currency", "date", "fee", "quantity", "type", "unitPrice", "comment", "isDraft", "createdAt", "updatedAt")
|
|
SELECT '60035d49-f388-49e5-9f10-67e5d7e4a002', v_user_id, v_core_account_id, v_user_id, s."id", 'USD', '2024-03-01T00:00:00.000Z'::timestamptz, 1, 5, 'BUY'::"Type", 410.5, 'railway-seed:mvp-msft-buy-20240301', false, NOW(), NOW()
|
|
FROM "SymbolProfile" s
|
|
WHERE s."dataSource" = 'YAHOO'::"DataSource" AND s."symbol" = 'MSFT'
|
|
AND NOT EXISTS (SELECT 1 FROM "Order" o WHERE o."userId" = v_user_id AND o."comment" = 'railway-seed:mvp-msft-buy-20240301');
|
|
|
|
INSERT INTO "Order" ("id", "userId", "accountId", "accountUserId", "symbolProfileId", "currency", "date", "fee", "quantity", "type", "unitPrice", "comment", "isDraft", "createdAt", "updatedAt")
|
|
SELECT '60035d49-f388-49e5-9f10-67e5d7e4a003', v_user_id, v_income_account_id, v_user_id, s."id", 'USD', '2024-02-01T00:00:00.000Z'::timestamptz, 1, 12, 'BUY'::"Type", 242.3, 'railway-seed:income-vti-buy-20240201', false, NOW(), NOW()
|
|
FROM "SymbolProfile" s
|
|
WHERE s."dataSource" = 'YAHOO'::"DataSource" AND s."symbol" = 'VTI'
|
|
AND NOT EXISTS (SELECT 1 FROM "Order" o WHERE o."userId" = v_user_id AND o."comment" = 'railway-seed:income-vti-buy-20240201');
|
|
|
|
INSERT INTO "Order" ("id", "userId", "accountId", "accountUserId", "symbolProfileId", "currency", "date", "fee", "quantity", "type", "unitPrice", "comment", "isDraft", "createdAt", "updatedAt")
|
|
SELECT '60035d49-f388-49e5-9f10-67e5d7e4a004', v_user_id, v_income_account_id, v_user_id, s."id", 'USD', '2024-03-18T00:00:00.000Z'::timestamptz, 1, 16, 'BUY'::"Type", 77.85, 'railway-seed:income-schd-buy-20240318', false, NOW(), NOW()
|
|
FROM "SymbolProfile" s
|
|
WHERE s."dataSource" = 'YAHOO'::"DataSource" AND s."symbol" = 'SCHD'
|
|
AND NOT EXISTS (SELECT 1 FROM "Order" o WHERE o."userId" = v_user_id AND o."comment" = 'railway-seed:income-schd-buy-20240318');
|
|
|
|
INSERT INTO "Order" ("id", "userId", "accountId", "accountUserId", "symbolProfileId", "currency", "date", "fee", "quantity", "type", "unitPrice", "comment", "isDraft", "createdAt", "updatedAt")
|
|
SELECT '60035d49-f388-49e5-9f10-67e5d7e4a005', v_user_id, v_income_account_id, v_user_id, s."id", 'USD', '2024-12-04T00:00:00.000Z'::timestamptz, 1, 4, 'SELL'::"Type", 80.95, 'railway-seed:income-schd-sell-20241204', false, NOW(), NOW()
|
|
FROM "SymbolProfile" s
|
|
WHERE s."dataSource" = 'YAHOO'::"DataSource" AND s."symbol" = 'SCHD'
|
|
AND NOT EXISTS (SELECT 1 FROM "Order" o WHERE o."userId" = v_user_id AND o."comment" = 'railway-seed:income-schd-sell-20241204');
|
|
END
|
|
$$;
|
|
|
|
SELECT count(*) AS users FROM "User";
|
|
SELECT count(*) AS accounts FROM "Account";
|
|
SELECT count(*) AS orders FROM "Order";
|
|
SELECT count(*) AS railway_seed_orders FROM "Order" WHERE "comment" LIKE 'railway-seed:%';
|
|
|