From ba350f124bab36766af6c71ba5e3dc17f33fb5ab Mon Sep 17 00:00:00 2001
From: polwex <polwex@sortug.com>
Date: Fri, 27 Jun 2025 03:28:54 +0700
Subject: init

---
 init.sql | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)
 create mode 100644 init.sql

(limited to 'init.sql')

diff --git a/init.sql b/init.sql
new file mode 100644
index 0000000..a02895a
--- /dev/null
+++ b/init.sql
@@ -0,0 +1,40 @@
+CREATE TABLE clients (
+  id SERIAL PRIMARY KEY,
+  name VARCHAR(50) NOT NULL,
+  mov_limit INTEGER NOT NULL
+);
+
+CREATE TYPE transaction_type AS ENUM ('credit', 'debit');
+
+CREATE TABLE transactions (
+  id SERIAL PRIMARY KEY,
+  client_id INTEGER REFERENCES clients,
+  value INTEGER NOT NULL,
+  type transaction_type NOT NULL,
+  description VARCHAR(10) NOT NULL,
+  created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
+);
+
+CREATE INDEX idx_client_id_transactions ON transactions (client_id);
+
+CREATE TABLE balances (
+  id SERIAL PRIMARY KEY,
+  client_id INTEGER REFERENCES clients,
+  value INTEGER NOT NULL
+);
+
+CREATE INDEX idx_client_id_balances ON balances (client_id);
+
+DO $$
+BEGIN
+  INSERT INTO clients (name, mov_limit)
+  VALUES
+      ('naruto', 100000),
+      ('mob', 80000),
+      ('jojo', 1000000),
+      ('hellboy', 10000000),
+      ('ultramega', 500000);
+  INSERT INTO balances (client_id, value)
+      SELECT id, 0 FROM clients;
+END;
+$$
-- 
cgit v1.2.3

