Commit graph

48 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
3153e8bf13
Initial work marking communications
And a bunch of lint fixes
2026-05-04 19:07:29 +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
81e057b900
Add initial work for backgrounding mailer job 2026-04-16 17:15:20 +00:00
5db4c05544
Add proper compliance report type
Can't believe I missed this.
2026-04-13 16:42:29 +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
341c3ef6b9
Fix publicreport creation
The consistency is good, but I added some errors, like not using an enum
2026-03-18 18:45:18 +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
e2af49a323
Make lead creation and invalidation for public reports work
The only thing wrong at this point that I can tell is that address
aren't being correctly populated when I reverse geocode.
2026-03-14 01:14:30 +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
10b4bf929f
Add resolution for tracking review_task discards 2026-03-11 22:49:55 +00:00
99dc9a08c0
Add 'centroid' accuracy from the database
It's used by stadiamaps
2026-03-09 18:27:47 +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
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
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
f140222dbc
Rename pool status 'empty' to 'dry', add more file upload statuses 2026-02-24 17:05:20 +00:00
7ea66dc02e
Add user account roles 2026-02-18 07:03:32 +00:00
9fdadcc296
Add a new "empty" pool condition 2026-02-14 15:42:17 +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
5fc0f9fa3d
Update storage and display of nuisance report 2026-02-05 16:56:36 +00:00
00a75a556e
Fix email sending for report notification confirmation
The links in the email don't work, but it's a first step
2026-02-02 17:00:48 +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
981f444609
Add support for continuing background text jobs on subscription 2026-01-29 22:20:03 +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
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
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
948f967a16
Add aggregation map for traps
This also makes the first time I've done a Mapbox map within a web
component. It's not officially supported according to:

https://github.com/mapbox/mapbox-gl-js/issues/12796

but I found a codepen that had a working example:

https://codepen.io/keichan34/pen/ZEKqeEj?editors=1111
2026-01-15 20:25:00 +00:00
06140a9062
Remove bob submodule, add arcgis.user
I had to remove the submodule because of the go bug at
https://github.com/golang/go/issues/77196
I found the bug because of a bug in bob itself
https://github.com/stephenafamo/bob/issues/610
This was because I'm trying to save data about the Arcgis user for use
in determining if I can set up hooks to avoid the polling for data
changes.
2026-01-15 19:20:39 +00:00
00fd676adc
Add district table for california districts. 2026-01-13 19:47:19 +00:00
01ed2d6086
Finish green pool report submission
Also start the pattern of breaking out pool pages together in their own
file. I think its easier to read this way.
2026-01-09 19:43:19 +00:00
fc10e3e95d
Make it possible to submit nuisance reports 2026-01-08 17:48:43 +00:00
1aefca2f5d Make GlobalID required for all Fieldseeker tables
I'm pretty sure it has to be there, and it allows me to clean up my
code.
2026-01-05 02:28:28 +00:00
1395e3d3ac Remove old FieldSeeker tables, use v2 generated tables.
This requires a bunch of changes since the types on these tables are
much closer to the underlying types of the Fieldseeker data we are
getting back from the API.

I now need to use proper UUID types everywhere, which means I had to
modify the bob gen config to consistently use google UUID, my UUID
library of choice.

I also had to add the organization_id to all the fieldseeker tables
since we rely on them existing for some of our compound queries.

There were some changes to the API type signatures to get things to
build. I may yet regret those.
2025-12-24 17:58:08 -07:00
bd16f69e28
Initially made it through full update with new fieldseeker schema 2025-12-05 23:11:57 +00:00
7c4fb02908
Move to latest bobgen, add fieldseeker schema references
This is an intermediate step between shifting from the old fs_* prefixed
table names to an entire fieldseeker schema. At this point we have both,
and we aren't doing much with the new schema but compiling.
2025-12-02 00:28:14 +00:00
41587c3694
Move database logic into separate subdirectory
I'm trying to see if this speeds up builds a bit. May not without a
module boundary, but for now it's nice organization to have as the
program grows.
2025-11-24 18:08:31 +00:00