> **ARCHIVED — HISTORICAL RECORD ONLY (archived 2026-07-18).** Retained for reference; do not treat as current design guidance.

## Dynamic Fields For Planning/Spatial Elements In Project Edtior

### Overview

GeoLynx's modules (Projects, Accounts, Stocklists, Wayleave) have a dynamic form system to allow users to configure the forms to collect the data that is important to them.

This is managed via the admin section of GeoLynx where fields are added/edited, organised and enabled/disabled. `sql/geolynx_ddl.sql` has the full database schema for how the other modules are built.

The planner/prospector function (which is a sub-module of the Projects module) currently has hardcoded attribute fields which is currently built around fibre network deployment, this makes GeoLynx's future goals of expaning into other markets (EV, Utilities, etc.) far more difficult and adds siginificant development time for each new market.

The goal is to create dynamic attributes for the planning module and an accompanying admin section that aligns to other modules for a seemless user experience. Code should also align to the projects module for ease of maintainance.

### Required Features

`*** All code & features design should follow existing patterns set out in the Projects Module ***`

- Database design to allow for storage of data types and an accompanying history tables

```boolean
date
integers
numeric
text
```

- Input types (input, textarea, date, dropdown) as defined in the fields table
- Field sections and categories with FK to allow for organisation on the front end
- Dynamically generated form elements
- Loading and Saving of fields/data to be done dynamically when saved by users (e.g. an empty value doesn't automatically create a blank row in the table, but a modification from a non blank value to a blank does.)
- Admin area to allow for creation, modification and organisiation of fields.
- Code patterns for loading/saving that exists in the project form data should be followed in the new patterns.

### 

prospector.network_cables
prospector.network_duct
prospector.network_points
prospector.network_structures
prospector.network_subduct

#### Fields To Migrate to Dynamic

*** Some fields have been hard coded into the app, these should be configured in the new dynamic attributes structure and migrated over from being defined manually in the database ***

network_cables.fibre_allocation
network_cables.customer_cable_id
network_cables.pianoi_ref

network_duct.customer_duct_id

network_points.point_fibre_allocation_details
network_points.customer_point_id
network_points.pianoi_ref

network_structures.customer_structure_id

network_subduct.pianoi_ref
network_subduct.customer_subduct_id