Files
telecom-platform/migrations/00005_init_sessions.sql
T
nutcas3 e6450f15ad feat: Add comprehensive database schema migrations for all platform tables
- Add subscribers table with IMSI, MSISDN, authentication keys, and eSIM profile fields
- Add service_plans table for data/voice/SMS limits and QoS parameters (ARPA, AMBR)
- Add sessions table for tracking PDU sessions with QoS and usage metrics
- Add usage_records table for billing and charging data
- Add users table with role-based access control fields
- Add roles, permissions, and role_permissions junction table for RBAC
- Add auth
2026-04-29 03:25:28 +03:00

38 lines
1.3 KiB
SQL

-- +goose Up
-- Create sessions table
CREATE TABLE IF NOT EXISTS sessions (
id SERIAL PRIMARY KEY,
subscriber_id INTEGER NOT NULL,
session_id TEXT NOT NULL UNIQUE,
pdu_address TEXT,
dnn TEXT,
snssai_sst SMALLINT,
snssai_sd INTEGER,
qos_qci SMALLINT,
qos_arpa INTEGER,
qos_mbr_uplink INTEGER,
qos_mbr_downlink INTEGER,
qos_gbr_uplink INTEGER,
qos_gbr_downlink INTEGER,
qos_priority SMALLINT,
status TEXT NOT NULL DEFAULT 'active',
start_time TIMESTAMPTZ NOT NULL DEFAULT NOW(),
end_time TIMESTAMPTZ,
data_used BIGINT NOT NULL DEFAULT 0,
voice_used INTEGER NOT NULL DEFAULT 0,
sms_used INTEGER NOT NULL DEFAULT 0,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
deleted_at TIMESTAMPTZ
);
-- Create indexes
CREATE INDEX IF NOT EXISTS idx_sessions_subscriber_id ON sessions(subscriber_id);
CREATE INDEX IF NOT EXISTS idx_sessions_session_id ON sessions(session_id);
CREATE INDEX IF NOT EXISTS idx_sessions_status ON sessions(status);
CREATE INDEX IF NOT EXISTS idx_sessions_deleted_at ON sessions(deleted_at);
-- +goose Down
-- Drop sessions table
DROP TABLE IF EXISTS sessions CASCADE;