Forked from
smradius / smradius
458 commits behind the upstream repository.
-
Robert Anderson authoredRobert Anderson authored
core.tsql 5.08 KiB
@PRELOAD@
/* Users */
CREATE TABLE @PREFIX@users (
ID @SERIAL_TYPE@,
Username VARCHAR(255) NOT NULL,
Disabled SMALLINT NOT NULL DEFAULT '0',
UNIQUE (Username)
) @CREATE_TABLE_SUFFIX@;
CREATE INDEX @PREFIX@users_idx1 ON @PREFIX@users (Username);
/* User attributes */
CREATE TABLE @PREFIX@user_attributes (
ID @SERIAL_TYPE@,
UserID @SERIAL_REF_TYPE@ NOT NULL,
Name VARCHAR(255) NOT NULL,
Operator VARCHAR(4) NOT NULL,
Value VARCHAR(255),
Disabled SMALLINT NOT NULL DEFAULT '0',
FOREIGN KEY (UserID) REFERENCES @PREFIX@users(ID)
) @CREATE_TABLE_SUFFIX@;
/* Groups */
CREATE TABLE @PREFIX@groups (
ID @SERIAL_TYPE@,
Name VARCHAR(255) NOT NULL,
Priority SMALLINT NOT NULL,
Disabled SMALLINT NOT NULL DEFAULT '0',
Comment VARCHAR(1024)
) @CREATE_TABLE_SUFFIX@;
CREATE INDEX @PREFIX@groups_idx1 ON @PREFIX@groups (Name);
/* Group attributes */
CREATE TABLE @PREFIX@group_attributes (
ID @SERIAL_TYPE@,
GroupID @SERIAL_REF_TYPE@ NOT NULL,
Name VARCHAR(255) NOT NULL,
Operator VARCHAR(4) NOT NULL,
Value VARCHAR(255),
Disabled SMALLINT NOT NULL DEFAULT '0',
FOREIGN KEY (GroupID) REFERENCES @PREFIX@groups(ID)
) @CREATE_TABLE_SUFFIX@;
/* User to group mapping */
CREATE TABLE @PREFIX@users_to_groups (
ID @SERIAL_TYPE@,
UserID @SERIAL_REF_TYPE@ NOT NULL,
GroupID @SERIAL_REF_TYPE@ NOT NULL,
Disabled SMALLINT NOT NULL DEFAULT '0',
Comment VARCHAR(1024),
UNIQUE (UserID,GroupID),
FOREIGN KEY (UserID) REFERENCES @PREFIX@users(ID),
FOREIGN KEY (GroupID) REFERENCES @PREFIX@groups(ID)
) @CREATE_TABLE_SUFFIX@;
CREATE INDEX @PREFIX@users_to_groups_idx1 ON @PREFIX@users_to_groups (UserID,GroupID);
/* Realms */
CREATE TABLE @PREFIX@realms (
ID @SERIAL_TYPE@,
Name VARCHAR(255) NOT NULL,
Disabled SMALLINT NOT NULL DEFAULT '0'
) @CREATE_TABLE_SUFFIX@;
CREATE INDEX @PREFIX@realms_idx1 ON @PREFIX@realms (Name);
/* Realm attributes */
CREATE TABLE @PREFIX@realm_attributes (
ID @SERIAL_TYPE@,
RealmID @SERIAL_REF_TYPE@ NOT NULL,
Name VARCHAR(255) NOT NULL,
Operator VARCHAR(4) NOT NULL,
Value VARCHAR(255),
Disabled SMALLINT NOT NULL DEFAULT '0',
FOREIGN KEY (RealmID) REFERENCES @PREFIX@realms(ID)
) @CREATE_TABLE_SUFFIX@;
/* Client to realm mapping */
CREATE TABLE @PREFIX@clients_to_realms (
ID @SERIAL_TYPE@,
ClientID @SERIAL_REF_TYPE@ NOT NULL,
RealmID @SERIAL_REF_TYPE@ NOT NULL,
Disabled SMALLINT NOT NULL DEFAULT '0',
Comment VARCHAR(1024),
UNIQUE (ClientID,RealmID),
FOREIGN KEY (ClientID) REFERENCES @PREFIX@clients(ID),
FOREIGN KEY (RealmID) REFERENCES @PREFIX@realms(ID)
) @CREATE_TABLE_SUFFIX@;
/* Clients */
CREATE TABLE @PREFIX@clients (
ID @SERIAL_TYPE@,
Name VARCHAR(255) NOT NULL,
AccessList VARCHAR(255),
Disabled SMALLINT NOT NULL DEFAULT '0',
UNIQUE (Name)
) @CREATE_TABLE_SUFFIX@;
/* Client attributes */
CREATE TABLE @PREFIX@client_attributes (
ID @SERIAL_TYPE@,
ClientID @SERIAL_REF_TYPE@ NOT NULL,
Name VARCHAR(255) NOT NULL,
Operator VARCHAR(4) NOT NULL,
Value VARCHAR(255),
Disabled SMALLINT NOT NULL DEFAULT '0',
FOREIGN KEY (ClientID) REFERENCES @PREFIX@clients(ID)
) @CREATE_TABLE_SUFFIX@;
/* Topups */
CREATE TABLE @PREFIX@topups (
ID @SERIAL_TYPE@,
UserID @SERIAL_REF_TYPE@ NOT NULL,
Timestamp DATETIME,
/* 1 = traffic topup, 2 = uptime topup */
Type @INT_UNSIGNED@,
ValidFrom DATETIME,
ValidTo DATETIME,
Value @INT_UNSIGNED@,
Depleted SMALLINT NOT NULL DEFAULT '0',
FOREIGN KEY (UserID) REFERENCES @PREFIX@users(ID)
) @CREATE_TABLE_SUFFIX@;
/* Topups Summary */
CREATE TABLE @PREFIX@topups_summary (
ID @SERIAL_TYPE@,
TopupID @SERIAL_REF_TYPE@ NOT NULL,
PeriodKey VARCHAR(255) NOT NULL,
Balance @INT_UNSIGNED@,
Depleted SMALLINT NOT NULL DEFAULT '0',
FOREIGN KEY (TopupID) REFERENCES @PREFIX@topups(ID)
) @CREATE_TABLE_SUFFIX@;
/* Accounting */
CREATE TABLE @PREFIX@accounting (
ID @SERIAL_TYPE@,
Username VARCHAR(255),
ServiceType @INT_UNSIGNED@,
FramedProtocol @INT_UNSIGNED@,
NASPort VARCHAR(255),
NASPortType @INT_UNSIGNED@,
CallingStationID VARCHAR(255),
CalledStationID VARCHAR(255),
NASPortID VARCHAR(255),
AcctSessionID VARCHAR(255),
FramedIPAddress VARCHAR(16),
AcctAuthentic @INT_UNSIGNED@,
EventTimestamp DATETIME,
NASIdentifier VARCHAR(255),
NASIPAddress VARCHAR(16),
AcctDelayTime @INT_UNSIGNED@,
AcctSessionTime @INT_UNSIGNED@,
AcctInputOctets @INT_UNSIGNED@,
AcctInputGigawords @INT_UNSIGNED@,
AcctInputPackets @INT_UNSIGNED@,
AcctOutputOctets @INT_UNSIGNED@,
AcctOutputGigawords @INT_UNSIGNED@,
AcctOutputPackets @INT_UNSIGNED@,
AcctStatusType @INT_UNSIGNED@,
AcctTerminateCause @INT_UNSIGNED@
) @CREATE_TABLE_SUFFIX@;
CREATE INDEX @PREFIX@accounting_idx1 ON @PREFIX@accounting (Username);
/* Accounting Summary */
CREATE TABLE @PREFIX@accounting_summary (
ID @SERIAL_TYPE@,
Username VARCHAR(255),
PeriodKey DATETIME,
AcctSessionTime @INT_UNSIGNED@,
AcctInputOctets @INT_UNSIGNED@,
AcctInputGigawords @INT_UNSIGNED@,
AcctOutputOctets @INT_UNSIGNED@,
AcctOutputGigawords @INT_UNSIGNED@
) @CREATE_TABLE_SUFFIX@;