1import * as SqlClient from "effect/sql/SqlClient";
2import * as Effect from "effect/Effect";
3
4export default Effect.gen(function* () {
5 const sql = yield* SqlClient.SqlClient;
6
7 yield* sql`
8 CREATE TABLE IF NOT EXISTS orchestration_command_receipts (
9 command_id TEXT PRIMARY KEY,
10 aggregate_kind TEXT NOT NULL,
11 aggregate_id TEXT NOT NULL,
12 accepted_at TEXT NOT NULL,
13 result_sequence INTEGER NOT NULL,
14 status TEXT NOT NULL,
15 error TEXT
16 )
17 `;
18
19 yield* sql`
20 CREATE INDEX IF NOT EXISTS idx_orch_command_receipts_aggregate
21 ON orchestration_command_receipts(aggregate_kind, aggregate_id)
22 `;
23
24 yield* sql`
25 CREATE INDEX IF NOT EXISTS idx_orch_command_receipts_sequence
26 ON orchestration_command_receipts(result_sequence)
27 `;
28});