signature/database/oracle/schema_install.sql (101 lines of code) (raw):
-- User
CREATE TABLESPACE Indigo_Signature_Service_Data datafile 'Indigo_Signature_Service_Data.ora' SIZE 5M REUSE AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL ;
CREATE USER signature_service IDENTIFIED BY sigpass DEFAULT TABLESPACE Indigo_Signature_Service_Data ;
GRANT CONNECT,RESOURCE TO signature_service ;
-- Tables
-- table: UserAccount
CREATE TABLE signature_service.UserAccount
(
UserId VARCHAR(36) NOT NULL,
Active VARCHAR(5) NOT NULL,
Admin VARCHAR(5) NOT NULL,
CreationDate TIMESTAMP,
CreatedBy VARCHAR(100),
Username VARCHAR(100),
Password VARCHAR(100),
FirstName VARCHAR(1024),
LastName VARCHAR(1024),
Email VARCHAR(1024),
CONSTRAINT User_Id_Pk PRIMARY KEY (UserId),
CONSTRAINT Username_Unique UNIQUE (Username)
) ;
-- table: Reason
CREATE TABLE signature_service.Reason
(
ReasonId SMALLINT NOT NULL,
Text VARCHAR(100),
CONSTRAINT Reason_Id_Pk PRIMARY KEY (ReasonId)
);
-- table: Status
CREATE TABLE signature_service.Status
(
StatusId SMALLINT NOT NULL,
Name VARCHAR(100),
CONSTRAINT Status_Id_Pk PRIMARY KEY (StatusId)
) ;
-- table: SignatureTemplate
CREATE TABLE signature_service.SignatureTemplate
(
TemplateId VARCHAR(36) NOT NULL,
TemplateName VARCHAR(100),
UserId VARCHAR(36),
CONSTRAINT Signature_Template_Id_Pk PRIMARY KEY (TemplateId),
CONSTRAINT Signature_Template_User_Id_Fk FOREIGN KEY (UserId) REFERENCES signature_service.UserAccount (UserId) ON DELETE CASCADE
) ;
-- table: Document
CREATE TABLE signature_service.Document
(
DocumentId VARCHAR(36) NOT NULL,
Name VARCHAR(1024),
Status SMALLINT,
CreationDate TIMESTAMP,
LastUpdateDate TIMESTAMP,
UserId VARCHAR(36),
DocumentFile BLOB,
CONSTRAINT Document_Id_Pk PRIMARY KEY (DocumentId),
CONSTRAINT Document_User_Id_Fk FOREIGN KEY (UserId) REFERENCES signature_service.UserAccount (UserId) ON DELETE CASCADE,
CONSTRAINT Document_Status_Fk FOREIGN KEY (Status) REFERENCES signature_service.Status (StatusId) ON DELETE CASCADE
) ;
-- table: DocumentSignatureBlock
CREATE TABLE signature_service.DocumentSignatureBlock
(
DocumentSignatureBlockId VARCHAR(36) NOT NULL,
DocumentId VARCHAR(36),
DocumentSignatureBlockIndex SMALLINT,
UserId VARCHAR(36),
ReasonId SMALLINT,
ActionDate TIMESTAMP,
Status SMALLINT,
Comments CLOB,
Inspected VARCHAR(5),
CONSTRAINT Doc_Sig_Block_Id_Pk PRIMARY KEY (DocumentSignatureBlockId),
CONSTRAINT Doc_Sig_Block_Document_Id_Fk FOREIGN KEY (DocumentId) REFERENCES signature_service.Document (DocumentId) ON DELETE CASCADE,
CONSTRAINT Doc_Sig_Block_User_Id_Fk FOREIGN KEY (UserId) REFERENCES signature_service.UserAccount (UserId) ON DELETE CASCADE,
CONSTRAINT Doc_Sig_Block_Reason_Id_Fk FOREIGN KEY (ReasonId) REFERENCES signature_service.Reason (ReasonId) ON DELETE CASCADE,
CONSTRAINT Doc_Sig_Block_Status_Fk FOREIGN KEY (Status) REFERENCES signature_service.Status (StatusId) ON DELETE CASCADE
) ;
-- table: TemplateSignatureBlock
CREATE TABLE signature_service.TemplateSignatureBlock
(
TemplateSignatureBlockId VARCHAR(36) NOT NULL,
UserId VARCHAR(36),
ReasonId SMALLINT,
TemplateSignatureBlockIndex SMALLINT,
TemplateId VARCHAR(36),
CONSTRAINT Tem_Sig_Block_Id_Pk PRIMARY KEY (TemplateSignatureBlockId),
CONSTRAINT Tem_Sig_Block_User_Id_Fk FOREIGN KEY (UserId) REFERENCES signature_service.UserAccount (UserId) ON DELETE CASCADE,
CONSTRAINT Tem_Sig_Block_Reason_Id_Fk FOREIGN KEY (ReasonId) REFERENCES signature_service.Reason (ReasonId) ON DELETE CASCADE,
CONSTRAINT Tem_Sig_Block_Template_Id_Fk FOREIGN KEY (TemplateId) REFERENCES signature_service.SignatureTemplate (TemplateId) ON DELETE CASCADE
) ;
-- table: FtpQueue
CREATE TABLE signature_service.FtpQueue
(
Id VARCHAR(36) NOT NULL,
DocumentId VARCHAR(36) NOT NULL,
FtpStatus VARCHAR(100),
CONSTRAINT FtpQueue_Pk PRIMARY KEY (Id),
CONSTRAINT FtpQueue_DocumentId_Fk FOREIGN KEY (DocumentId) REFERENCES signature_service.Document (DocumentId) ON DELETE CASCADE
) ;
-- insert initial data into tables
-- Reason
INSERT INTO signature_service.Reason (ReasonId, Text) VALUES (1, 'I am the author') ;
INSERT INTO signature_service.Reason (ReasonId, Text) VALUES (2, 'I am the Witness') ;
-- Status
INSERT INTO signature_service.Status (StatusId, Name) VALUES (1, 'SUBMITTED') ;
INSERT INTO signature_service.Status (StatusId, Name) VALUES (2, 'SIGNING') ;
INSERT INTO signature_service.Status (StatusId, Name) VALUES (3, 'SIGNED') ;
INSERT INTO signature_service.Status (StatusId, Name) VALUES (4, 'REJECTED') ;
INSERT INTO signature_service.Status (StatusId, Name) VALUES (5, 'WAITING') ;
INSERT INTO signature_service.Status (StatusId, Name) VALUES (6, 'CANCELLED') ;
INSERT INTO signature_service.Status (StatusId, Name) VALUES (7, 'ARCHIVING') ;
INSERT INTO signature_service.Status (StatusId, Name) VALUES (8, 'ARCHIVED') ;
-- Admin user with username 'admin' and temporary password '1234'
INSERT INTO signature_service.UserAccount (UserId, Active, Admin, Username, Password, FirstName, LastName, Email)
VALUES('d8fd0f74-33ac-4c84-b8ec-af5863dea126', 'TRUE', 'TRUE', 'admin', '81dc9bdb52d04dc20036dbd8313ed055', 'System', 'Administrator', 'admin@e.mail') ;
-- commit changes
COMMIT ;