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.
409 lines
9.4 KiB
Go
409 lines
9.4 KiB
Go
// Code generated by BobGen psql v0.42.5. DO NOT EDIT.
|
|
// This file is meant to be re-generated in place and/or deleted at any time.
|
|
|
|
package dbinfo
|
|
|
|
import "github.com/aarondl/opt/null"
|
|
|
|
var PublicreportReports = Table[
|
|
publicreportReportColumns,
|
|
publicreportReportIndexes,
|
|
publicreportReportForeignKeys,
|
|
publicreportReportUniques,
|
|
publicreportReportChecks,
|
|
]{
|
|
Schema: "publicreport",
|
|
Name: "report",
|
|
Columns: publicreportReportColumns{
|
|
AddressRaw: column{
|
|
Name: "address_raw",
|
|
DBType: "text",
|
|
Default: "",
|
|
Comment: "",
|
|
Nullable: false,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
AddressNumber: column{
|
|
Name: "address_number",
|
|
DBType: "text",
|
|
Default: "",
|
|
Comment: "",
|
|
Nullable: false,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
AddressStreet: column{
|
|
Name: "address_street",
|
|
DBType: "text",
|
|
Default: "",
|
|
Comment: "",
|
|
Nullable: false,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
AddressLocality: column{
|
|
Name: "address_locality",
|
|
DBType: "text",
|
|
Default: "",
|
|
Comment: "",
|
|
Nullable: false,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
AddressRegion: column{
|
|
Name: "address_region",
|
|
DBType: "text",
|
|
Default: "",
|
|
Comment: "",
|
|
Nullable: false,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
AddressPostalCode: column{
|
|
Name: "address_postal_code",
|
|
DBType: "text",
|
|
Default: "",
|
|
Comment: "",
|
|
Nullable: false,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
AddressCountry: column{
|
|
Name: "address_country",
|
|
DBType: "text",
|
|
Default: "",
|
|
Comment: "",
|
|
Nullable: false,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
AddressID: column{
|
|
Name: "address_id",
|
|
DBType: "integer",
|
|
Default: "NULL",
|
|
Comment: "",
|
|
Nullable: true,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
Created: column{
|
|
Name: "created",
|
|
DBType: "timestamp without time zone",
|
|
Default: "",
|
|
Comment: "",
|
|
Nullable: false,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
Location: column{
|
|
Name: "location",
|
|
DBType: "geometry",
|
|
Default: "NULL",
|
|
Comment: "",
|
|
Nullable: true,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
H3cell: column{
|
|
Name: "h3cell",
|
|
DBType: "h3index",
|
|
Default: "NULL",
|
|
Comment: "",
|
|
Nullable: true,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
ID: column{
|
|
Name: "id",
|
|
DBType: "integer",
|
|
Default: "nextval('publicreport.report_id_seq'::regclass)",
|
|
Comment: "",
|
|
Nullable: false,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
LatlngAccuracyType: column{
|
|
Name: "latlng_accuracy_type",
|
|
DBType: "publicreport.accuracytype",
|
|
Default: "",
|
|
Comment: "",
|
|
Nullable: false,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
LatlngAccuracyValue: column{
|
|
Name: "latlng_accuracy_value",
|
|
DBType: "real",
|
|
Default: "",
|
|
Comment: "",
|
|
Nullable: false,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
MapZoom: column{
|
|
Name: "map_zoom",
|
|
DBType: "real",
|
|
Default: "",
|
|
Comment: "",
|
|
Nullable: false,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
OrganizationID: column{
|
|
Name: "organization_id",
|
|
DBType: "integer",
|
|
Default: "",
|
|
Comment: "",
|
|
Nullable: false,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
PublicID: column{
|
|
Name: "public_id",
|
|
DBType: "text",
|
|
Default: "",
|
|
Comment: "",
|
|
Nullable: false,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
ReporterName: column{
|
|
Name: "reporter_name",
|
|
DBType: "text",
|
|
Default: "",
|
|
Comment: "",
|
|
Nullable: false,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
ReporterEmail: column{
|
|
Name: "reporter_email",
|
|
DBType: "text",
|
|
Default: "",
|
|
Comment: "",
|
|
Nullable: false,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
ReporterPhone: column{
|
|
Name: "reporter_phone",
|
|
DBType: "text",
|
|
Default: "",
|
|
Comment: "",
|
|
Nullable: false,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
ReporterContactConsent: column{
|
|
Name: "reporter_contact_consent",
|
|
DBType: "boolean",
|
|
Default: "NULL",
|
|
Comment: "",
|
|
Nullable: true,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
ReportType: column{
|
|
Name: "report_type",
|
|
DBType: "text",
|
|
Default: "",
|
|
Comment: "",
|
|
Nullable: false,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
Reviewed: column{
|
|
Name: "reviewed",
|
|
DBType: "timestamp without time zone",
|
|
Default: "NULL",
|
|
Comment: "",
|
|
Nullable: true,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
ReviewerID: column{
|
|
Name: "reviewer_id",
|
|
DBType: "integer",
|
|
Default: "NULL",
|
|
Comment: "",
|
|
Nullable: true,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
Status: column{
|
|
Name: "status",
|
|
DBType: "publicreport.reportstatustype",
|
|
Default: "",
|
|
Comment: "",
|
|
Nullable: false,
|
|
Generated: false,
|
|
AutoIncr: false,
|
|
},
|
|
},
|
|
Indexes: publicreportReportIndexes{
|
|
ReportPkey: index{
|
|
Type: "btree",
|
|
Name: "report_pkey",
|
|
Columns: []indexColumn{
|
|
{
|
|
Name: "id",
|
|
Desc: null.FromCond(false, true),
|
|
IsExpression: false,
|
|
},
|
|
},
|
|
Unique: true,
|
|
Comment: "",
|
|
NullsFirst: []bool{false},
|
|
NullsDistinct: false,
|
|
Where: "",
|
|
Include: []string{},
|
|
},
|
|
ReportPublicIDKey: index{
|
|
Type: "btree",
|
|
Name: "report_public_id_key",
|
|
Columns: []indexColumn{
|
|
{
|
|
Name: "public_id",
|
|
Desc: null.FromCond(false, true),
|
|
IsExpression: false,
|
|
},
|
|
},
|
|
Unique: true,
|
|
Comment: "",
|
|
NullsFirst: []bool{false},
|
|
NullsDistinct: false,
|
|
Where: "",
|
|
Include: []string{},
|
|
},
|
|
},
|
|
PrimaryKey: &constraint{
|
|
Name: "report_pkey",
|
|
Columns: []string{"id"},
|
|
Comment: "",
|
|
},
|
|
ForeignKeys: publicreportReportForeignKeys{
|
|
PublicreportReportReportAddressIDFkey: foreignKey{
|
|
constraint: constraint{
|
|
Name: "publicreport.report.report_address_id_fkey",
|
|
Columns: []string{"address_id"},
|
|
Comment: "",
|
|
},
|
|
ForeignTable: "address",
|
|
ForeignColumns: []string{"id"},
|
|
},
|
|
PublicreportReportReportOrganizationIDFkey: foreignKey{
|
|
constraint: constraint{
|
|
Name: "publicreport.report.report_organization_id_fkey",
|
|
Columns: []string{"organization_id"},
|
|
Comment: "",
|
|
},
|
|
ForeignTable: "organization",
|
|
ForeignColumns: []string{"id"},
|
|
},
|
|
PublicreportReportReportReviewerIDFkey: foreignKey{
|
|
constraint: constraint{
|
|
Name: "publicreport.report.report_reviewer_id_fkey",
|
|
Columns: []string{"reviewer_id"},
|
|
Comment: "",
|
|
},
|
|
ForeignTable: "user_",
|
|
ForeignColumns: []string{"id"},
|
|
},
|
|
},
|
|
Uniques: publicreportReportUniques{
|
|
ReportPublicIDKey: constraint{
|
|
Name: "report_public_id_key",
|
|
Columns: []string{"public_id"},
|
|
Comment: "",
|
|
},
|
|
},
|
|
Checks: publicreportReportChecks{
|
|
ReportReportTypeCheck: check{
|
|
constraint: constraint{
|
|
Name: "report_report_type_check",
|
|
Columns: []string{"report_type"},
|
|
Comment: "",
|
|
},
|
|
Expression: "(report_type = ANY (ARRAY['nuisance'::text, 'water'::text]))",
|
|
},
|
|
},
|
|
Comment: "",
|
|
}
|
|
|
|
type publicreportReportColumns struct {
|
|
AddressRaw column
|
|
AddressNumber column
|
|
AddressStreet column
|
|
AddressLocality column
|
|
AddressRegion column
|
|
AddressPostalCode column
|
|
AddressCountry column
|
|
AddressID column
|
|
Created column
|
|
Location column
|
|
H3cell column
|
|
ID column
|
|
LatlngAccuracyType column
|
|
LatlngAccuracyValue column
|
|
MapZoom column
|
|
OrganizationID column
|
|
PublicID column
|
|
ReporterName column
|
|
ReporterEmail column
|
|
ReporterPhone column
|
|
ReporterContactConsent column
|
|
ReportType column
|
|
Reviewed column
|
|
ReviewerID column
|
|
Status column
|
|
}
|
|
|
|
func (c publicreportReportColumns) AsSlice() []column {
|
|
return []column{
|
|
c.AddressRaw, c.AddressNumber, c.AddressStreet, c.AddressLocality, c.AddressRegion, c.AddressPostalCode, c.AddressCountry, c.AddressID, c.Created, c.Location, c.H3cell, c.ID, c.LatlngAccuracyType, c.LatlngAccuracyValue, c.MapZoom, c.OrganizationID, c.PublicID, c.ReporterName, c.ReporterEmail, c.ReporterPhone, c.ReporterContactConsent, c.ReportType, c.Reviewed, c.ReviewerID, c.Status,
|
|
}
|
|
}
|
|
|
|
type publicreportReportIndexes struct {
|
|
ReportPkey index
|
|
ReportPublicIDKey index
|
|
}
|
|
|
|
func (i publicreportReportIndexes) AsSlice() []index {
|
|
return []index{
|
|
i.ReportPkey, i.ReportPublicIDKey,
|
|
}
|
|
}
|
|
|
|
type publicreportReportForeignKeys struct {
|
|
PublicreportReportReportAddressIDFkey foreignKey
|
|
PublicreportReportReportOrganizationIDFkey foreignKey
|
|
PublicreportReportReportReviewerIDFkey foreignKey
|
|
}
|
|
|
|
func (f publicreportReportForeignKeys) AsSlice() []foreignKey {
|
|
return []foreignKey{
|
|
f.PublicreportReportReportAddressIDFkey, f.PublicreportReportReportOrganizationIDFkey, f.PublicreportReportReportReviewerIDFkey,
|
|
}
|
|
}
|
|
|
|
type publicreportReportUniques struct {
|
|
ReportPublicIDKey constraint
|
|
}
|
|
|
|
func (u publicreportReportUniques) AsSlice() []constraint {
|
|
return []constraint{
|
|
u.ReportPublicIDKey,
|
|
}
|
|
}
|
|
|
|
type publicreportReportChecks struct {
|
|
ReportReportTypeCheck check
|
|
}
|
|
|
|
func (c publicreportReportChecks) AsSlice() []check {
|
|
return []check{
|
|
c.ReportReportTypeCheck,
|
|
}
|
|
}
|