418 lines
18 KiB
Transact-SQL
Raw Blame History

/*
FNDD_CHECK_USER_MODULE
#PM.CONV_IDENTIFICATION=Email
in Working Mode
*/
UPDATE TBIDB_CATALOG SET CAT_STRING = '1.0.3' where CAT_TITLE = 'DB_VERSION'
CREATE TABLE TBIDB_STATES
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
STATE_LTERM_ID BIGINT NOT NULL,
ADDED_WHO BIGINT,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CHANGED_WHO BIGINT,
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_STATES PRIMARY KEY (GUID),
CONSTRAINT FK_TBIDB_STATES_STATE_LTERM_ID FOREIGN KEY (STATE_LTERM_ID) REFERENCES TBIDB_TERM_LANGUAGE (GUID),
CONSTRAINT FK_TBIDB_STATES_ADDED_WHO_T_ID FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
CONSTRAINT FK_TBIDB_STATES_CHANGED_WHO_T_ID FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),)
GO
CREATE TRIGGER TBIDB_STATES_AFT_UPD ON TBIDB_STATES
FOR UPDATE
AS
UPDATE TBIDB_STATES SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_STATES.GUID = INSERTED.GUID
GO
ALTER PROCEDURE [dbo].[PRIDB_NEW_IDB_STATE] @pSTATE VARCHAR(512),@pWHO VARCHAR(100),@pLANG_CODE VARCHAR(5) = 'de-DE'
AS
BEGIN
DECLARE
@LANG_ID INTEGER
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE
DECLARE @STATE_TERM_ID BIGINT,@LANG_STATE_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pSTATE,@pWHO,@TERM_ID = @STATE_TERM_ID OUTPUT;
DECLARE @ADDED_WHO_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @ADDED_WHO_TERM_ID OUTPUT;
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_LANGUAGE WHERE LANGUAGE_ID = @LANG_ID AND TEXT_TERM_ID = @STATE_TERM_ID)
INSERT INTO TBIDB_TERM_LANGUAGE (LANGUAGE_ID,TEXT_TERM_ID,ADDED_WHO) VALUES (@LANG_ID,@STATE_TERM_ID,@pWHO)
SELECT @LANG_STATE_TERM_ID = MAX(GUID) FROM TBIDB_TERM_LANGUAGE WHERE LANGUAGE_ID = @LANG_ID AND TEXT_TERM_ID = @STATE_TERM_ID
IF NOT EXISTS(SELECT GUID FROM TBIDB_STATES WHERE STATE_LTERM_ID = @LANG_STATE_TERM_ID)
INSERT INTO TBIDB_STATES (STATE_LTERM_ID,ADDED_WHO) VALUES (@LANG_STATE_TERM_ID,@ADDED_WHO_TERM_ID)
IF NOT EXISTS (SELECT GUID FROM TBIDB_STATE_LANG_GROUP WHERE STATE_ID = (SELECT GUID FROM TBIDB_STATES WHERE STATE_LTERM_ID = @LANG_STATE_TERM_ID))
INSERT INTO TBIDB_STATE_LANG_GROUP (STATE_ID,LANG_TERM_ID,ADDED_WHO) VALUES (
(SELECT GUID FROM TBIDB_STATES WHERE STATE_LTERM_ID = @LANG_STATE_TERM_ID)
,@LANG_STATE_TERM_ID
,@ADDED_WHO_TERM_ID)
SELECT * FROM TBIDB_STATES WHERE STATE_LTERM_ID = @LANG_STATE_TERM_ID
END
GO
CREATE TABLE TBIDB_STATE_LANG_GROUP
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
STATE_ID BIGINT NOT NULL,
LANG_TERM_ID BIGINT NOT NULL,
ADDED_WHO BIGINT,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CHANGED_WHO BIGINT,
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_STATE_LANG_GROUP PRIMARY KEY (GUID),
CONSTRAINT FK_TBIDB_STATE_LANG_GROUP_STATE_ID FOREIGN KEY (STATE_ID) REFERENCES TBIDB_STATES (GUID),
CONSTRAINT FK_TBIDB_STATE_LANG_GROUP_ADDED_WHO_T_ID FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
CONSTRAINT FK_TTBIDB_STATE_LANG_GROUP_CHANGED_WHO_T_ID FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),)
GO
CREATE TRIGGER TBIDB_STATE_LANG_GROUP_AFT_UPD ON TBIDB_STATE_LANG_GROUP
FOR UPDATE
AS
UPDATE TBIDB_STATE_LANG_GROUP SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_STATE_LANG_GROUP.GUID = INSERTED.GUID
GO
EXEC PRIDB_NEW_IDB_STATE 'Started', 'Digital Data','de-DE'
EXEC PRIDB_NEW_IDB_STATE 'Ended', 'Digital Data','de-DE'
--select * from TBIDB_STATE_LANG_GROUP
--DROP TABLE TBIDB_CONVERSATION_OBJECT
CREATE TABLE TBIDB_CONVERSATION_OBJECT
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
TITLE_TERM_ID BIGINT NOT NULL,
IDB_OBJ_ID BIGINT NOT NULL,
ADDED_WHO BIGINT,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CHANGED_WHO BIGINT,
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_CONVERSATION_OBJECT PRIMARY KEY (GUID),
CONSTRAINT FK_TITLE_TERM_ID FOREIGN KEY (TITLE_TERM_ID) REFERENCES TBIDB_TERM_LANGUAGE (GUID),
CONSTRAINT FK_TBIDB_CONVERSATION_OBJECT_IDB_OBJ_ID FOREIGN KEY (IDB_OBJ_ID) REFERENCES TBIDB_OBJECT (IDB_OBJ_ID),
CONSTRAINT FK_TBIDB_CONVERSATION_OBJECT_ADDED_WHO_T_ID FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
CONSTRAINT FK_TBIDB_CONVERSATION_OBJECT_CHANGED_WHO_T_ID FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),)
GO
CREATE TRIGGER TBIDB_CONVERSATION_OBJECT_AFT_UPD ON TBIDB_CONVERSATION_OBJECT
FOR UPDATE
AS
UPDATE TBIDB_CONVERSATION_OBJECT SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_CONVERSATION_OBJECT.GUID = INSERTED.GUID
GO
CREATE FUNCTION [dbo].[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (@LANG_TERM_ID BIGINT)
RETURNS VARCHAR(900)
AS
BEGIN
DECLARE @TERM_ID BIGINT, @RESULT VARCHAR(900)
SELECT @RESULT = T1.TERM_VALUE FROM TBIDB_TERM_LANGUAGE T INNER JOIN TBIDB_TERM_VALUE_VARCHAR T1 ON T.TEXT_TERM_ID = T1.GUID WHERE T.GUID = @LANG_TERM_ID
RETURN @RESULT
END
GO
-------------------------------------------------------------------
CREATE FUNCTION [dbo].[FNIDB_GET_STATE_FOR_OBJECT_ID] (@OBJ_ID BIGINT)
RETURNS VARCHAR(900)
AS
BEGIN
DECLARE @MAX_STATE_GUID BIGINT,@STATE_ID INTEGER,@RESULT VARCHAR(900)
SELECT @STATE_ID = STATE_ID FROM TBIDB_MYOBJECT_STATES WHERE GUID = (
SELECT MAX(GUID) FROM TBIDB_MYOBJECT_STATES WHERE MY_OBJECT_ID = @OBJ_ID)
SELECT @RESULT = [dbo].[FNIDB_GET_TERM_FOR_LANG_TERM_ID] ((SELECT STATE_LTERM_ID FROM TBIDB_STATES
WHERE GUID = @STATE_ID))
RETURN @RESULT
END
GO
--delete from TBIDB_CONVERSATION_OBJECT
CREATE PROCEDURE [dbo].[PRIDB_NEW_CONVERSATION] @pIDB_OBJ_ID BIGINT, @pTITLE VARCHAR(512),@pWHO VARCHAR(100),@pLANG_CODE VARCHAR(5) = 'de-DE'
AS
BEGIN
DECLARE
@LANG_ID INTEGER
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE
DECLARE @TITLE_TERM_ID BIGINT,@LANG_TITLE_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pTITLE,@pWHO,@TERM_ID = @TITLE_TERM_ID OUTPUT;
DECLARE @ADDED_WHO_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @ADDED_WHO_TERM_ID OUTPUT;
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_LANGUAGE WHERE LANGUAGE_ID = @LANG_ID AND TEXT_TERM_ID = @TITLE_TERM_ID)
INSERT INTO TBIDB_TERM_LANGUAGE (LANGUAGE_ID,TEXT_TERM_ID,ADDED_WHO) VALUES (@LANG_ID,@TITLE_TERM_ID,@pWHO)
SELECT @LANG_TITLE_TERM_ID = MAX(GUID) FROM TBIDB_TERM_LANGUAGE WHERE LANGUAGE_ID = @LANG_ID AND TEXT_TERM_ID = @TITLE_TERM_ID
--IF EXISTS(SELECT CONVERSATION_ID FROM VWIDB_CONVERSATION WHERE IDB_OBJ_ID = @pIDB_OBJ_ID AND CONVERSATION_STATE = 'Started')
-- BEGIN
-- DECLARE @ENDED_STATE BIGINT
-- SELECT @ENDED_STATE = GUID FROM TBIDB_STATES T WHERE dbo.[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (STATE_LTERM_ID) = 'Ended'
-- INSERT INTO TBIDB_MYOBJECT_STATES (
-- MY_OBJECT_ID
-- ,STATE_ID
-- ,ADDED_WHO) VALUES (
-- (SELECT CONVERSATION_ID FROM VWIDB_CONVERSATION WHERE IDB_OBJ_ID = @pIDB_OBJ_ID AND CONVERSATION_STATE = 'Started')
-- ,@ENDED_STATE
-- ,@ADDED_WHO_TERM_ID)
-- END
IF NOT EXISTS(SELECT GUID FROM TBIDB_CONVERSATION_OBJECT WHERE IDB_OBJ_ID = @pIDB_OBJ_ID AND TITLE_TERM_ID = @LANG_TITLE_TERM_ID)
INSERT INTO TBIDB_CONVERSATION_OBJECT (TITLE_TERM_ID,IDB_OBJ_ID,ADDED_WHO) VALUES (@LANG_TITLE_TERM_ID,@pIDB_OBJ_ID,@ADDED_WHO_TERM_ID)
DECLARE @STARTED_STATE BIGINT
SELECT @STARTED_STATE = GUID FROM TBIDB_STATES T WHERE dbo.[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (STATE_LTERM_ID) = 'Started'
DECLARE @CONVERSATION_ID BIGINT
SELECT @CONVERSATION_ID = GUID FROM TBIDB_CONVERSATION_OBJECT WHERE TITLE_TERM_ID = @LANG_TITLE_TERM_ID AND IDB_OBJ_ID = @pIDB_OBJ_ID
IF NOT EXISTS(SELECT GUID FROM TBIDB_MYOBJECT_STATES WHERE MY_OBJECT_ID = @CONVERSATION_ID AND STATE_ID = @STARTED_STATE)
INSERT INTO TBIDB_MYOBJECT_STATES (MY_OBJECT_ID,STATE_ID,ADDED_WHO) VALUES (@CONVERSATION_ID,@STARTED_STATE,@ADDED_WHO_TERM_ID)
END
GO
CREATE PROCEDURE dbo.PRIDB_OBJECT_SET_STATE @pIDB_OBJ_ID BIGINT, @pSTATE VARCHAR(512),@pWHO VARCHAR(100),@pLANG_CODE VARCHAR(5) = 'de-DE'
AS
BEGIN
DECLARE
@LANG_ID INTEGER
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE
DECLARE @STATE_TERM_ID BIGINT,@LANG_TITLE_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pSTATE,@pWHO,@TERM_ID = @STATE_TERM_ID OUTPUT;
DECLARE @ADDED_WHO_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @ADDED_WHO_TERM_ID OUTPUT;
IF NOT EXISTS(SELECT GUID FROM TBIDB_MYOBJECT_STATES WHERE MY_OBJECT_ID = @pIDB_OBJ_ID AND STATE_ID = @STATE_TERM_ID)
INSERT INTO TBIDB_MYOBJECT_STATES (MY_OBJECT_ID,STATE_ID,ADDED_WHO) VALUES (@pIDB_OBJ_ID,@STATE_TERM_ID,@ADDED_WHO_TERM_ID)
END
GO
CREATE PROCEDURE [dbo].[PRIDB_END_CONVERSATION] @pCONVID BIGINT, @pWHO VARCHAR(100), @pLANG_CODE VARCHAR(5) = 'de-DE'
AS
BEGIN
DECLARE
@LANG_ID INTEGER
,@ENDED_STATE BIGINT
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE
SELECT @ENDED_STATE = GUID FROM TBIDB_STATES T WHERE dbo.[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (STATE_LTERM_ID) = 'Ended'
DECLARE @WHO_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @WHO_TERM_ID OUTPUT;
IF NOT EXISTS(SELECT MY_OBJECT_ID FROM TBIDB_MYOBJECT_STATES WHERE MY_OBJECT_ID = @pCONVID AND STATE_ID = @ENDED_STATE)
INSERT INTO TBIDB_MYOBJECT_STATES (
MY_OBJECT_ID
,STATE_ID
,ADDED_WHO) VALUES (
@pCONVID
,@ENDED_STATE
,@WHO_TERM_ID)
END
GO
--delete from TBIDB_MYOBJECT_STATES
CREATE TABLE TBIDB_MYOBJECT_STATES
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
MY_OBJECT_ID BIGINT NOT NULL,
STATE_ID BIGINT NOT NULL,
COMMENT_ID BIGINT ,
ADDED_WHO BIGINT,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CHANGED_WHO BIGINT,
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_MYOBJECT_STATES PRIMARY KEY (GUID),
CONSTRAINT FK_TBIDB_MYOBJECT_STATES_STATE_ID FOREIGN KEY (STATE_ID) REFERENCES TBIDB_STATES (GUID),
CONSTRAINT FK_TBIDB_MYOBJECT_STATES_COMMENT_ID_T_ID FOREIGN KEY (COMMENT_ID) REFERENCES TBIDB_TERM_LANGUAGE (GUID),
CONSTRAINT FK_TBIDB_MYOBJECT_STATES_ADDED_WHO_T_ID FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
CONSTRAINT FK_TBIDB_MYOBJECT_STATES_CHANGED_WHO_T_ID FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),)
GO
CREATE TRIGGER TBIDB_MYOBJECT_STATES_AFT_UPD ON TBIDB_MYOBJECT_STATES
FOR UPDATE
AS
UPDATE TBIDB_MYOBJECT_STATES SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_MYOBJECT_STATES.GUID = INSERTED.GUID
GO
CREATE FUNCTION [dbo].[FNIDB_GET_TERM_VALUE_VARCHAR] (@TERM_ID BIGINT)
RETURNS VARCHAR(900)
AS
BEGIN
DECLARE @RESULT VARCHAR(900)
SELECT @RESULT = TERM_VALUE FROM TBIDB_TERM_VALUE_VARCHAR WHERE GUID = @TERM_ID
RETURN @RESULT
END
CREATE TABLE TBIDB_CONVERSATION_USER
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
CONV_ID BIGINT NOT NULL,
USER_OR_GROUP_ID INTEGER NOT NULL,
IS_USER BIT NOT NULL,
ADDED_WHO BIGINT,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CONSTRAINT PK_TBIDB_CONVERSATION_USER PRIMARY KEY (GUID),
CONSTRAINT FK_TBIDB_CONVERSATION_USER_CONV_ID FOREIGN KEY (CONV_ID) REFERENCES TBIDB_CONVERSATION_OBJECT (GUID),
CONSTRAINT FK_TBIDB_CONVERSATION_USER_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),)
GO
CREATE PROCEDURE [dbo].[PRIDB_ADD_USER_2_CONVERSATION] @pCONV_ID BIGINT, @pUSERID INTEGER,@pWHO VARCHAR(100)
AS
BEGIN
DECLARE @ADDED_WHO_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @ADDED_WHO_TERM_ID OUTPUT;
IF NOT EXISTS(SELECT GUID FROM TBIDB_CONVERSATION_USER WHERE CONV_ID = @pCONV_ID AND USER_OR_GROUP_ID = @pUSERID AND IS_USER = 1)
INSERT INTO TBIDB_CONVERSATION_USER (CONV_ID,USER_OR_GROUP_ID,IS_USER,ADDED_WHO) VALUES (@pCONV_ID,@pUSERID,1,@ADDED_WHO_TERM_ID)
END
GO
CREATE TABLE TBIDB_CONVERSATION_MESSAGE
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
CONV_ID BIGINT NOT NULL,
TO_USER BIGINT NOT NULL DEFAULT 0,
FROM_USER BIGINT NOT NULL,
MESSAGE_TERM_ID BIGINT NOT NULL,
ADDED_WHO BIGINT,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CONSTRAINT PK_TBIDB_CONVERSATION_MESSAGE PRIMARY KEY (GUID),
CONSTRAINT FK_TBIDB_CONVERSATION_MESSAGE_CONV_ID FOREIGN KEY (CONV_ID) REFERENCES TBIDB_CONVERSATION_OBJECT (GUID),
CONSTRAINT FK_TBIDB_CONVERSATION_MESSAGE_MESSAGE_FROM_USER FOREIGN KEY (FROM_USER) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
CONSTRAINT FK_TBIDB_CONVERSATION_MESSAGE_MESSAGE_TERM_ID FOREIGN KEY (MESSAGE_TERM_ID) REFERENCES TBIDB_TERM_LANGUAGE (GUID),
CONSTRAINT FK_TBIDB_CONVERSATION_MESSAGE_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),)
GO
CREATE PROCEDURE [dbo].[PRIDB_NEW_CONVERSATION_MESSAGE] @pCONV_ID BIGINT, @pMESSAGE VARCHAR(100), @pWHO VARCHAR(100),@pTO_USER INTEGER = 0, @pLANG_CODE VARCHAR(5) = 'de-DE'
AS
BEGIN
DECLARE
@LANG_ID INTEGER
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE
DECLARE @MESSAGE_TERM_ID BIGINT,@LANG_MESSAGE_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pMESSAGE,@pWHO,@TERM_ID = @MESSAGE_TERM_ID OUTPUT;
DECLARE @ADDED_WHO_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @ADDED_WHO_TERM_ID OUTPUT;
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_LANGUAGE WHERE LANGUAGE_ID = @LANG_ID AND TEXT_TERM_ID = @MESSAGE_TERM_ID)
INSERT INTO TBIDB_TERM_LANGUAGE (LANGUAGE_ID,TEXT_TERM_ID,ADDED_WHO) VALUES (@LANG_ID,@MESSAGE_TERM_ID,@pWHO)
SELECT @LANG_MESSAGE_TERM_ID = MAX(GUID) FROM TBIDB_TERM_LANGUAGE WHERE LANGUAGE_ID = @LANG_ID AND TEXT_TERM_ID = @MESSAGE_TERM_ID
--IF NOT EXISTS(SELECT GUID FROM TBIDB_CONVERSATION_MESSAGE WHERE CONV_ID = @pCONV_ID AND FROM_USER = FROM_USER AND MESSAGE_TERM_ID = @LANG_MESSAGE_TERM_ID)
INSERT INTO TBIDB_CONVERSATION_MESSAGE (CONV_ID,FROM_USER,TO_USER, MESSAGE_TERM_ID, ADDED_WHO) VALUES (@pCONV_ID,@ADDED_WHO_TERM_ID,@pTO_USER, @LANG_MESSAGE_TERM_ID,@ADDED_WHO_TERM_ID)
END
GO
--EXEC PRIDB_NEW_CONVERSATION 10070, 'My First Conversation', 'SchreiberM'
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 1,'Hallo JJ', 'SchreiberM'
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 1,'Hallo Marlon', 'JenneJ'
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 1,'Na was machst Du so?', 'JenneJ'
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 1,'Ei ich programmiere an der IDB...', 'SchreiberM'
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 1,'Und Du wartest auf mich?', 'SchreiberM'
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 1,'Jenau ;)', 'JenneJ'
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 9,'Hallo Herr Schreiber, oh sorry habe ich das wirklich? ', 'j.jenne@digitaldata.works'
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 9,'..warten sie ich pr<70>fe das nochmal! ', 'j.jenne@digitaldata.works'
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 9,'Tats<74>chlich. Ich korrigiere das!', 'j.jenne@digitaldata.works'
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 9,'Was''nu schon wieder?', 'JenneJ'
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 9,'2. conversation ist da..', 'SchreiberM'
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 10,'Hallo JJ, da bin ich wieder', 'SchreiberM'
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 10,'Hallo Marlon nicht schon wieder', 'JenneJ'
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 10,'Was''nu schon wieder?', 'JenneJ'
--EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] 10,'3. conversation ist da..', 'SchreiberM'
CREATE VIEW VWIDB_CONVERSATION AS
SELECT
GUID As CONVERSATION_ID
,IDB_OBJ_ID
,[dbo].[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (TITLE_TERM_ID) as TITLE
,[dbo].[FNIDB_GET_STATE_FOR_OBJECT_ID] (GUID) AS CONVERSATION_STATE
,[dbo].[FNIDB_GET_TERM_VALUE_VARCHAR] (ADDED_WHO) as ADDED_WHO
,ADDED_WHEN
,[dbo].[FNIDB_GET_TERM_VALUE_VARCHAR] (CHANGED_WHO) as CHANGED_WHO
,CHANGED_WHEN
FROM TBIDB_CONVERSATION_OBJECT
GO
CREATE VIEW VWIDB_CONV_MESSAGES AS
select
T.GUID,
T.CONV_ID,
(SELECT EMAIL FROM DD_ECM_TEST.dbo.TBDD_USER WHERE GUID = T.TO_USER) TO_USER,
[dbo].[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (T1.TITLE_TERM_ID) AS CONV_TITLE
,[dbo].[FNIDB_GET_TERM_VALUE_VARCHAR] (T.FROM_USER) as USER_FROM
,[dbo].[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (T.MESSAGE_TERM_ID) as MESSAGE_TEXT
,[dbo].[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (T.ADDED_WHO) as ADDED_WHO
,T.ADDED_WHEN
from TBIDB_CONVERSATION_MESSAGE T INNER JOIN TBIDB_CONVERSATION_OBJECT T1 ON T.CONV_ID = T1.GUID
GO
CREATE VIEW VWIDB_CONVERSATION_USER AS
SELECT
T.CONV_ID
,T1.GUID As USER_ID
,T1.USERNAME
,T1.EMAIL
,T1.NAME + ', ' + T1.PRENAME as NAME
FROM
[IDB_TEST].[dbo].[TBIDB_CONVERSATION_USER] T
INNER JOIN DD_ECM_TEST.dbo.TBDD_USER T1 ON T.USER_OR_GROUP_ID = T1.GUID
WHERE IS_USER = 1
GO
CREATE FUNCTION [dbo].[FNIDB_OBJECT_DYNAMIC_CONFIG] (@pIDB_OBJ_ID as INTEGER, @pUSERID as INTEGER)
RETURNS
@Table TABLE
(CONF_TITLE VARCHAR(900),CONF_VALUE VARCHAR(900))
AS
BEGIN
DECLARE @CONVID BIGINT
SELECT @CONVID = CONVERSATION_ID FROM VWIDB_CONVERSATION WHERE IDB_OBJ_ID = @pIDB_OBJ_ID AND CONVERSATION_STATE = 'Started'
IF @CONVID > 0
BEGIN
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_ID',@CONVID);
END
IF EXISTS(SELECT CONV_ID FROM VWIDB_CONVERSATION_USER WHERE CONV_ID = @CONVID AND USER_ID = @pUSERID)
BEGIN
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_USER_ACTIVE','True');
END
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','Admin');
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','Start');
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','Stop');
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','AddMessage');
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','AddUser');
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('NEW_CONVERSATION_USER_SELECT','SELECT GUID as UserID, NAME, USERNAME, EMAIL from TBDD_USER');
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_ADD_USER_SELECT','SELECT GUID as UserID, NAME, USERNAME, EMAIL from DD_ECM_TEST.dbo.TBDD_USER WHERE GUID NOT IN (SELECT USER_OR_GROUP_ID FROM
TBIDB_CONVERSATION_USER WHERE CONV_ID = @CONVID AND IS_USER = 1)');
RETURN
END
GO
CREATE NONCLUSTERED INDEX IDX_CHANGED_WHEN_IN_GUID
ON [dbo].[TBIDB_OBJECT_METADATA_CHANGE] ([CHANGED_WHEN])
INCLUDE ([GUID])
GO
CREATE NONCLUSTERED INDEX IDX_IDBOBJID_CW
ON [dbo].[TBIDB_OBJECT_METADATA_CHANGE] ([IDB_OBJ_ID])
INCLUDE ([CHANGED_WHEN])
GO