Commit graph

64 commits

Author SHA1 Message Date
fcd95f1a25
Get back to compiling, but using new jet for publicreport
This was an epically long change, and a terrible idea, but it compiles.
This was essentially a cascade that came about because I can't blend jet
and bob in the same transaction. In for a penny, I guess...
2026-05-07 10:39:17 +00:00
bab3200b6c
Port all of the arcgis schema to using jet
Have not tested anything at this point, it just compiles.
2026-05-01 17:28:33 +00:00
a82b2b8cb8
Add new communication table
It allows us to track when communication tasks are complete, and
information about how they were completed, separate from the entries
that created the tasks in the first place (reports, emails, texts)
2026-05-01 15:13:05 +00:00
e5a84e09a8
Initial working version of using jet for SQL building 2026-05-01 05:11:28 +00:00
0ce3420792
Save all lob events to the database
They're pretty raw, but this will help us to understand what we can
collect
2026-04-21 22:24:12 +00:00
b6e1bffd79
Add support for satellite tiles, with caching 2026-04-17 17:47:38 +00:00
a6f9396760
Add first draft of mailer integration
This adds a bunch of stuff, including setting the organization's Lob
sender address ID, inserting mailer/compliance_report relationships,
adding external id from Lob (or maybe some other provider) and
attempting to load up the pool feature for a site.
2026-04-16 19:49:18 +00:00
730f40956f
Store addresses on every geocode 2026-04-10 22:32:40 +00:00
553b65556a
Begin work on saving compliance report 2026-04-10 00:56:51 +00:00
c393f6fd81
Add cache for all stadia requests 2026-04-06 22:36:25 +00:00
6042e7d337
Emit events on note creation 2026-03-19 21:29:55 +00:00
d287fa44df
Create a log for impersonation activities 2026-03-19 03:19:03 +00:00
1d2570c912
Add DB model for publicreport logs
It's just way easier to track that deriving the data every time an API
request is made.
2026-03-18 17:32:06 +00:00
1e071d5ce5
Overhaul publicreport storage layer, create unified tables
This is a huge change. I was getting really sick of the split between
nuisance/water tables when more than half of the data they store is
common. I finally bit off the big work of switching it all.

This creates a single unified table, publicreport.report and copies the
existing report data into it. It also ports existing data from the
original tables into the new table.

Along with all of this I also overhauled the system for handling
asynchronous work to use a LISTEN/NOTIFY connection from the database
and a single cache table to avoid ever losing work.
2026-03-18 15:36:20 +00:00
2538638c9d
Create generic backend process, fix background interdependencies
This refactor was born out of the inter-dependency cycles developing
between the "background" module and just about every other module which
was caused by the background module becoming a dependency of every
module that needed to background work and the fact that the background
module was also supposedly responsible for the logic for processing
those tasks.

Instead the "background" module is now very, very shallow and relies
entirely on the Postgres NOTIFY logic for triggering jobs. There's a new
table, `job` which holds just a type and single row ID.

All told, this means that jobs can be added to the queue as part of the
API-level or platform-level transaction, ensuring atomicity, and
processing coordination is handled by the platform module, which can
depend on anything.
2026-03-16 19:52:29 +00:00
32dcc50c94
Add new view for report counts and invalidated status
Also drop site.version from the primary key.
2026-03-12 15:27:36 +00:00
3ccc05d4c5
Save tiles to the database to make empty tile load faster 2026-03-11 17:01:47 +00:00
e932c2c473
Rework publicreport addressing
This adds the ability to link a proper address in the database to the
report and harmonizes the field names with the address table. It also
migrates away from mapbox entirely.

And I fixed the "pool" naming for the publicreports, which are supposed
to be the more generic 'water'.
2026-03-09 18:02:22 +00:00
1e80c62701
Migrate public report classes to point location
...and drop quick report tables
2026-03-08 02:43:00 +00:00
e1bcbf79b1
Add tile cache and relationship to organization map layer 2026-03-06 21:13:32 +00:00
527e82031e
Remove a bunch of generated bob, add feature and review tasks 2026-03-06 18:56:30 +00:00
60344e3c30
Relate compliance report requests through leads 2026-03-05 01:22:21 +00:00
daa8cb1748
Push geocoding down a layer
This makes it possible to always save address information from our
geocoder.
2026-03-04 18:29:52 +00:00
6959499d37
Add signal database schema 2026-03-04 14:58:43 +00:00
6a5a59f8b8
Merge aerial flyover and pool CSV row datatypes
They are extremely similar, having both was just extra work.
2026-03-04 14:52:34 +00:00
a0eee3a95f
Rework mailer database schema, add UUID to mailers
At this point, I sent out our first test mailers for Delta.
2026-03-02 23:27:55 +00:00
ff2ec0ad14
Split out ability to upload flyover data from pool uploads
Tons of changes here, all in the name of quickly getting to where I can
create test compliance letters.
2026-03-02 18:49:02 +00:00
b292f47d47
Clean up removed generated bob files 2026-02-28 23:21:14 +00:00
91fe244da8
Add data for handling parcel images 2026-02-28 22:54:39 +00:00
7b1ffbab12
Add new tables for storing parcel and address data 2026-02-26 18:18:33 +00:00
5a7c9fd090
Move data out of import.district and in to organization
Then get the organization settings page to work again.

Tons of other stuff is broken now.
2026-02-17 05:33:12 +00:00
a65f1e0776
Fix up attaching errors to rows 2026-02-16 17:59:18 +00:00
e40fe55eaf
Modify email subscription table to drop district ID
I don't have time to work out all the behavior, this is just to get to
where I can release
2026-02-10 05:12:42 +00:00
d93cdbef41
Drop district_id from subscriptions 2026-02-10 04:59:27 +00:00
b25daf12fa
Add table for holding subscriptions from users 2026-02-10 04:31:57 +00:00
d06b8f7949
Add mode data to pool upload rows, move to fileupload schema
This allows users to review the data before committing it to the
database
2026-02-09 19:03:27 +00:00
135ad2b73e
Do file upload, show list of uploads, do initial processing. 2026-02-09 18:25:44 +00:00
6716bc68c9
Make file uploads of CSV actually save to disk 2026-02-08 01:44:44 +00:00
57191fa222
Alter report submission page to request reporter name and consent
This also adds the new mechanism for handling notifications on reports
2026-02-06 15:39:49 +00:00
527f6a5628
Store images with nuisance reports 2026-01-31 22:14:46 +00:00
a9b0a55f20
Create report platform layer
Rework phone subscription at the database layer so that we have a
seprate phone status and subscriptions to district communications.
2026-01-31 20:08:08 +00:00
a68b8781e7
Add ability to make LLM agent forget the conversation history
This is extremely useful for testing.

In order to do this I needed to actually deploy the migration to a bob
fork so I could start to add support for behaviors I really want.
Specifically the ability to search for ids in a slice.
2026-01-27 18:44:02 +00:00
b8e7b9b7fd
Working LLM responses and Twilio status tracking
The responses aren't good, but they do exist.
2026-01-27 14:29:55 +00:00
e8e840ec44
Make username unique, make is_subscribed nullable 2026-01-26 21:11:31 +00:00
adc99e8871
Add ability to delay text message sending 2026-01-26 16:10:30 +00:00
c0b6398de2
Overhaul text messaging system to be like emails
It's a better system for organization and makes it so we can have better
logs about what gets sent.
2026-01-25 18:47:22 +00:00
196792810b
Overhaul email sending system
Add logging and saving templates to the database for historical
accuracy.
2026-01-23 20:36:16 +00:00
f4a88623af
Overhaul system for handling text messaging
Move away from "SMS" as the operative word - we're going RCS.
Move all comms processing to a separate goroutine
Rename the DB tables
2026-01-21 03:30:03 +00:00
842e6cff43
Move comms work to background goroutine
This is a sort of random checkpoint of work
 * add schema for tracking messages sent to DB
 * add terms of service and privacy policy for RCS compliance
 * standardize some things about background workers
 * update some missing stuff from generated DB code
2026-01-20 17:10:22 +00:00
079d20c086
Extract EXIF data from images
This required a schema change and actually dumps all existing photo data
from the public reports page. That's probably fine since it's not
deployed to any customers so all data is currently test data.
2026-01-16 20:16:58 +00:00