- Implement tests for the internet connections module, covering routes, IP range creation, and connection validation. - Add tests for the Invoice2DataService to validate extraction from GlobalConnect invoices. - Create tests for subscription network provisioning, ensuring proper handling of network items and IP allocations. - Include validation checks for subtotal mismatches and ensure error handling for missing IP selections.
69 lines
2.8 KiB
PL/PgSQL
69 lines
2.8 KiB
PL/PgSQL
CREATE TABLE IF NOT EXISTS internet_connections_customer_documents (
|
|
id SERIAL PRIMARY KEY,
|
|
customer_id INTEGER REFERENCES customers(id) ON DELETE SET NULL,
|
|
connection_id INTEGER REFERENCES internet_connections_connections(id) ON DELETE SET NULL,
|
|
filename VARCHAR(500) NOT NULL,
|
|
original_filename VARCHAR(500) NOT NULL,
|
|
file_path VARCHAR(1000) NOT NULL,
|
|
file_size INTEGER,
|
|
mime_type VARCHAR(120),
|
|
checksum VARCHAR(64) NOT NULL,
|
|
extracted_text TEXT,
|
|
notes TEXT,
|
|
uploaded_by INTEGER,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
deleted_at TIMESTAMP
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_internet_customer_documents_customer
|
|
ON internet_connections_customer_documents(customer_id)
|
|
WHERE deleted_at IS NULL;
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_internet_customer_documents_connection
|
|
ON internet_connections_customer_documents(connection_id)
|
|
WHERE deleted_at IS NULL;
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_internet_customer_documents_checksum
|
|
ON internet_connections_customer_documents(checksum);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_internet_customer_documents_created_at
|
|
ON internet_connections_customer_documents(created_at DESC)
|
|
WHERE deleted_at IS NULL;
|
|
|
|
CREATE OR REPLACE FUNCTION update_internet_customer_documents_updated_at()
|
|
RETURNS TRIGGER AS $$
|
|
BEGIN
|
|
NEW.updated_at = CURRENT_TIMESTAMP;
|
|
RETURN NEW;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
DROP TRIGGER IF EXISTS trigger_update_internet_customer_documents_updated_at
|
|
ON internet_connections_customer_documents;
|
|
|
|
CREATE TRIGGER trigger_update_internet_customer_documents_updated_at
|
|
BEFORE UPDATE ON internet_connections_customer_documents
|
|
FOR EACH ROW
|
|
EXECUTE FUNCTION update_internet_customer_documents_updated_at();
|
|
|
|
COMMENT ON TABLE internet_connections_customer_documents IS 'Kundeoplaeste tekstfiler til internetforbindelser og historisk research';
|
|
COMMENT ON COLUMN internet_connections_customer_documents.extracted_text IS 'Udtrukket/forsynlig tekst som wizard v2 og AI kan soege i';
|
|
|
|
CREATE TABLE IF NOT EXISTS internet_connections_customer_document_segments (
|
|
id SERIAL PRIMARY KEY,
|
|
document_id INTEGER NOT NULL REFERENCES internet_connections_customer_documents(id) ON DELETE CASCADE,
|
|
block_index INTEGER NOT NULL,
|
|
block_title VARCHAR(255),
|
|
content TEXT NOT NULL,
|
|
ip_addresses JSONB NOT NULL DEFAULT '[]'::jsonb,
|
|
cidr_blocks JSONB NOT NULL DEFAULT '[]'::jsonb,
|
|
references_json JSONB NOT NULL DEFAULT '[]'::jsonb,
|
|
socket_numbers JSONB NOT NULL DEFAULT '[]'::jsonb,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
UNIQUE(document_id, block_index)
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_internet_customer_document_segments_document
|
|
ON internet_connections_customer_document_segments(document_id);
|