crminmobiliario/db-init/01-create-crm.sql

100 lines
2.7 KiB
SQL

CREATE DATABASE IF NOT EXISTS crm CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE crm;
CREATE TABLE IF NOT EXISTS direcciones (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
calle VARCHAR(255),
numero VARCHAR(50),
piso VARCHAR(50),
ciudad VARCHAR(100),
provincia VARCHAR(100),
codigo_postal VARCHAR(20)
);
CREATE TABLE IF NOT EXISTS propietarios (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
nombre VARCHAR(255) NOT NULL,
telefono VARCHAR(50),
email VARCHAR(255),
direccion_id BIGINT,
FOREIGN KEY (direccion_id) REFERENCES direcciones(id)
);
CREATE TABLE IF NOT EXISTS proveedores (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
nombre VARCHAR(255) NOT NULL,
telefono VARCHAR(50),
email VARCHAR(255),
direccion_id BIGINT,
FOREIGN KEY (direccion_id) REFERENCES direcciones(id)
);
CREATE TABLE IF NOT EXISTS contacto_proveedor (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
proveedor_id BIGINT NOT NULL,
nombre VARCHAR(255) NOT NULL,
telefono VARCHAR(50),
email VARCHAR(255),
FOREIGN KEY (proveedor_id) REFERENCES proveedores(id)
);
CREATE TABLE IF NOT EXISTS servicios (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
nombre VARCHAR(255) NOT NULL,
descripcion TEXT,
proveedor_id BIGINT,
FOREIGN KEY (proveedor_id) REFERENCES proveedores(id)
);
CREATE TABLE IF NOT EXISTS inmuebles (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
referencia_catastral VARCHAR(255) UNIQUE,
descripcion TEXT,
precio DECIMAL(15,2),
estado VARCHAR(100),
direccion_id BIGINT,
propietario_id BIGINT,
FOREIGN KEY (direccion_id) REFERENCES direcciones(id),
FOREIGN KEY (propietario_id) REFERENCES propietarios(id)
);
CREATE TABLE IF NOT EXISTS contratos (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
inmueble_id BIGINT NOT NULL,
propietario_id BIGINT NOT NULL,
tipo VARCHAR(50),
fecha_inicio DATE,
fecha_fin DATE,
importe DECIMAL(15,2),
estado VARCHAR(50),
cliente_nombre VARCHAR(255),
FOREIGN KEY (inmueble_id) REFERENCES inmuebles(id),
FOREIGN KEY (propietario_id) REFERENCES propietarios(id)
);
CREATE TABLE IF NOT EXISTS compran (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
inmueble_id BIGINT NOT NULL,
comprador_nombre VARCHAR(255),
fecha_compra DATE,
precio_compra DECIMAL(15,2),
FOREIGN KEY (inmueble_id) REFERENCES inmuebles(id)
);
CREATE TABLE IF NOT EXISTS alquilados (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
inmueble_id BIGINT NOT NULL,
inquilino_nombre VARCHAR(255),
fecha_inicio DATE,
fecha_fin DATE,
renta_mensual DECIMAL(15,2),
FOREIGN KEY (inmueble_id) REFERENCES inmuebles(id)
);
CREATE TABLE IF NOT EXISTS users (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(255) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
role VARCHAR(50) NOT NULL,
enabled BOOLEAN NOT NULL DEFAULT TRUE
);