|
-
-
- CREATE TABLE address (
- id INT AUTO_INCREMENT,
- full VARCHAR(200) UNIQUE NOT NULL,
- street VARCHAR(40) UNIQUE NOT NULL,
- city VARCHAR(40) UNIQUE NOT NULL,
- region VARCHAR(40) UNIQUE NOT NULL,
- country VARCHAR(40) UNIQUE NOT NULL,
- zip VARCHAR(40) UNIQUE NOT NULL,
- PRIMARY KEY (`id`)
- );
-
- CREATE TABLE branch (
- id INT AUTO_INCREMENT,
- type ENUM('NMLS', 'FSRA') NOT NULL,
- letterhead BLOB(102400) NOT NULL DEFAULT 0,
- num VARCHAR(40) NOT NULL,
- phone VARCHAR(20) NOT NULL,
- address INT NOT NULL,
- PRIMARY KEY (id),
- FOREIGN KEY (address) REFERENCES address(id)
- );
-
- CREATE TABLE user (
- id INT AUTO_INCREMENT,
- email VARCHAR(40) UNIQUE NOT NULL,
- first_name VARCHAR(30) NOT NULL,
- last_name VARCHAR(30) NOT NULL,
- phone VARCHAR(20) NOT NULL,
- address INT NOT NULL,
- password CHAR(64) NOT NULL,
- verified BOOLEAN,
- branch_id INT NULL,
- avatar BLOB(102400) NOT NULL DEFAULT 0,
- letterhead BLOB(102400) NOT NULL DEFAULT 0,
-
-
- country ENUM('Canada', 'USA'),
- title ENUM('Loan Officer',
- 'Branch Manager',
- 'Mortgage Broker',
- 'Other'),
- status ENUM('Trial',
- 'Free',
- 'Subscribed',
- 'Branch',
- 'Admin'),
- role ENUM('User', 'Manager', 'Admin') NOT NULL,
- PRIMARY KEY (`id`),
- FOREIGN KEY (branch_id) REFERENCES branch(id),
- FOREIGN KEY (address) REFERENCES address(id)
- );
-
- CREATE TABLE license (
- id INT AUTO_INCREMENT,
- user_id INT NOT NULL,
- type ENUM('NMLS', 'FSRA'),
- num VARCHAR(40) NOT NULL,
- PRIMARY KEY (`id`),
- FOREIGN KEY (user_id) REFERENCES user(id)
- ON DELETE CASCADE
- ON UPDATE RESTRICT
- );
-
-
- CREATE TABLE loan_type (
- id INT AUTO_INCREMENT,
- branch_id INT NOT NULL,
- user_id INT NOT NULL,
- name VARCHAR(30) UNIQUE NOT NULL,
-
-
- PRIMARY KEY (`id`)
- );
-
- CREATE TABLE borrower (
- id INT AUTO_INCREMENT,
- credit_score SMALLINT NOT NULL,
- monthly_income INT NOT NULL,
- num TINYINT NOT NULL,
- PRIMARY KEY (`id`)
- );
-
- CREATE TABLE estimate (
- id INT AUTO_INCREMENT,
- user_id INT NOT NULL,
- borrower_id INT NOT NULL,
- transaction ENUM('Purchase', 'Refinance'),
- price INT NOT NULL,
- property ENUM('Single Detached',
- 'Single Attached',
- 'Condo Lo-rise',
- 'Condo Hi-rise'),
- occupancy ENUM('Primary', 'Secondary', 'Investment'),
- zip VARCHAR(10),
- pud BOOLEAN,
- PRIMARY KEY (`id`),
- FOREIGN KEY (borrower_id) REFERENCES borrower(id)
- );
-
- CREATE TABLE loan (
- id INT AUTO_INCREMENT,
- estimate_id INT NOT NULL,
- type_id INT NOT NULL,
- amount INT NOT NULL,
- term INT,
- interest FLOAT(5, 2) DEFAULT 0,
- ltv FLOAT(5, 2) DEFAULT 0,
- dti FLOAT(5, 2) DEFAULT 1,
- hoi INT DEFAULT 0,
- hazard INT DEFAULT 0,
- tax INT DEFAULT 0,
- name VARCHAR(30) DEFAULT '',
- PRIMARY KEY (`id`),
- FOREIGN KEY (estimate_id) REFERENCES estimate(id),
- FOREIGN KEY (type_id) REFERENCES loan_type(id)
- ON UPDATE RESTRICT
- );
-
- CREATE TABLE mi (
- id INT AUTO_INCREMENT,
- loan_id INT,
- type VARCHAR(10) NOT NULL DEFAULT "",
- label VARCHAR(30) NOT NULL DEFAULT "",
- lender VARCHAR(20) NOT NULL DEFAULT "",
- rate INT DEFAULT 0,
- premium INT DEFAULT 0,
- upfront INT DEFAULT 0,
- five_year_total INT DEFAULT 0,
- initial_premium INT DEFAULT 0,
- initial_rate INT DEFAULT 0,
- initial_amount INT DEFAULT 0,
- PRIMARY KEY (`id`),
- FOREIGN KEY (loan_id) REFERENCES loan(id)
- );
-
-
- CREATE TABLE fee (
- id INT AUTO_INCREMENT NOT NULL,
- loan_id INT,
- amount INT NOT NULL,
- perc SMALLINT,
- type ENUM('Government', 'Title', 'Required', 'Lender', 'Other'),
- notes VARCHAR(255),
- name VARCHAR(30),
-
- category VARCHAR(60),
- PRIMARY KEY (`id`),
- FOREIGN KEY (loan_id) REFERENCES loan(id)
- );
-
-
- CREATE TABLE fee_template (
- id INT AUTO_INCREMENT,
- user_id INT NOT NULL,
- branch_id INT,
- amount INT NOT NULL,
- perc SMALLINT NOT NULL,
-
- type ENUM('Government', 'Title', 'Required', 'Lender', 'Other'),
- notes VARCHAR(255) NOT NULL,
- name VARCHAR(30) NOT NULL,
-
- category VARCHAR(60) NOT NULL DEFAULT "",
- auto BOOLEAN NOT NULL,
-
- PRIMARY KEY (`id`),
- FOREIGN KEY (user_id) REFERENCES user(id),
- FOREIGN KEY (branch_id) REFERENCES branch(id)
- );
-
- CREATE TABLE estimate_result (
- id INT AUTO_INCREMENT,
- loan_id INT UNIQUE NOT NULL,
- loan_payment INT NOT NULL,
- total_monthly INT NOT NULL,
- total_fees INT NOT NULL,
- total_credits INT NOT NULL,
- cash_to_close INT NOT NULL,
- PRIMARY KEY (`id`),
- FOREIGN KEY (loan_id) REFERENCES loan(id)
- );
|