76 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
CREATE TABLE users
 | 
						|
(
 | 
						|
    id          SERIAL PRIMARY KEY,
 | 
						|
    mail        VARCHAR(255) NOT NULL,
 | 
						|
    name        VARCHAR(150) NOT NULL,
 | 
						|
    time_create BIGINT       NOT NULL,
 | 
						|
    time_update BIGINT       NOT NULL
 | 
						|
);
 | 
						|
 | 
						|
CREATE TABLE tokens
 | 
						|
(
 | 
						|
    id             SERIAL PRIMARY KEY,
 | 
						|
    name           VARCHAR(150) NOT NULL,
 | 
						|
    time_create    BIGINT       NOT NULL,
 | 
						|
    user_id        INTEGER      NOT NULL REFERENCES users ON DELETE CASCADE,
 | 
						|
    token_value    VARCHAR(150) NOT NULL,
 | 
						|
    time_used      BIGINT       NOT NULL,
 | 
						|
    max_inactivity INTEGER      NOT NULL,
 | 
						|
    ip_net         VARCHAR(50),
 | 
						|
    read_only      BOOLEAN      NOT NULL DEFAULT true,
 | 
						|
    right_account  BOOLEAN      NOT NULL DEFAULT false,
 | 
						|
    right_movement BOOLEAN      NOT NULL DEFAULT false,
 | 
						|
    right_inbox    BOOLEAN      NOT NULL DEFAULT false,
 | 
						|
    right_file     BOOLEAN      NOT NULL DEFAULT false,
 | 
						|
    right_auth     BOOLEAN      NOT NULL DEFAULT false,
 | 
						|
    right_stats    BOOLEAN      NOT NULL DEFAULT false,
 | 
						|
    right_backup   BOOLEAN      NOT NULL DEFAULT false
 | 
						|
);
 | 
						|
 | 
						|
CREATE TABLE files
 | 
						|
(
 | 
						|
    id          SERIAL PRIMARY KEY,
 | 
						|
    time_create BIGINT       NOT NULL,
 | 
						|
    mime_type   VARCHAR(150) NOT NULL,
 | 
						|
    sha512      VARCHAR(130) NOT NULL,
 | 
						|
    file_size   INTEGER      NOT NULL,
 | 
						|
    file_name   VARCHAR(150) NOT NULL,
 | 
						|
    user_id     INTEGER      NOT NULL REFERENCES users ON DELETE SET NULL
 | 
						|
);
 | 
						|
 | 
						|
CREATE TABLE accounts
 | 
						|
(
 | 
						|
    id              SERIAL PRIMARY KEY,
 | 
						|
    name            VARCHAR(50) NOT NULL,
 | 
						|
    user_id         INTEGER     NOT NULL REFERENCES users ON DELETE CASCADE,
 | 
						|
    time_create     BIGINT      NOT NULL,
 | 
						|
    time_update     BIGINT      NOT NULL,
 | 
						|
    type            VARCHAR(1)  NOT NULL DEFAULT 'C',
 | 
						|
    default_account BOOLEAN     NOT NULL DEFAULT false
 | 
						|
);
 | 
						|
 | 
						|
CREATE TABLE movements
 | 
						|
(
 | 
						|
    id          SERIAL PRIMARY KEY,
 | 
						|
    account_id  INTEGER      NOT NULL REFERENCES accounts ON DELETE CASCADE,
 | 
						|
    time        BIGINT       NOT NULL,
 | 
						|
    label       VARCHAR(200) NOT NULL,
 | 
						|
    file_id     INT REFERENCES files ON DELETE RESTRICT,
 | 
						|
    amount      REAL         NOT NULL,
 | 
						|
    checked     BOOLEAN      NOT NULL DEFAULT false,
 | 
						|
    time_create BIGINT       NOT NULL,
 | 
						|
    time_update BIGINT       NOT NULL
 | 
						|
);
 | 
						|
 | 
						|
CREATE TABLE inbox
 | 
						|
(
 | 
						|
    id          SERIAL PRIMARY KEY,
 | 
						|
    file_id     INTEGER NOT NULL REFERENCES files ON DELETE RESTRICT,
 | 
						|
    user_id     INTEGER NOT NULL REFERENCES users ON DELETE CASCADE,
 | 
						|
    movement_id INTEGER NULL REFERENCES movements ON DELETE CASCADE,
 | 
						|
    time        BIGINT  NOT NULL,
 | 
						|
    label       VARCHAR(200) NULL,
 | 
						|
    amount      REAL NULL,
 | 
						|
    time_create BIGINT  NOT NULL,
 | 
						|
    time_update BIGINT  NOT NULL
 | 
						|
); |