// 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 FieldseekerTrapdata = Table[
	fieldseekerTrapdatumColumns,
	fieldseekerTrapdatumIndexes,
	fieldseekerTrapdatumForeignKeys,
	fieldseekerTrapdatumUniques,
	fieldseekerTrapdatumChecks,
]{
	Schema: "fieldseeker",
	Name:   "trapdata",
	Columns: fieldseekerTrapdatumColumns{
		Objectid: column{
			Name:      "objectid",
			DBType:    "bigint",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		Traptype: column{
			Name:      "traptype",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is TRAPTYPE",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Trapactivitytype: column{
			Name:      "trapactivitytype",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is TRAPACTIVITYTYPE",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Startdatetime: column{
			Name:      "startdatetime",
			DBType:    "timestamp without time zone",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is STARTDATETIME",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Enddatetime: column{
			Name:      "enddatetime",
			DBType:    "timestamp without time zone",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is ENDDATETIME",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Comments: column{
			Name:      "comments",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is COMMENTS",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Idbytech: column{
			Name:      "idbytech",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is IDBYTECH",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Sortbytech: column{
			Name:      "sortbytech",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is SORTBYTECH",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Processed: column{
			Name:      "processed",
			DBType:    "smallint",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is PROCESSED",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Sitecond: column{
			Name:      "sitecond",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is SITECOND",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Locationname: column{
			Name:      "locationname",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is LOCATIONNAME",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Recordstatus: column{
			Name:      "recordstatus",
			DBType:    "smallint",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is RECORDSTATUS",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Reviewed: column{
			Name:      "reviewed",
			DBType:    "smallint",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is REVIEWED",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Reviewedby: column{
			Name:      "reviewedby",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is REVIEWEDBY",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Revieweddate: column{
			Name:      "revieweddate",
			DBType:    "timestamp without time zone",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is REVIEWEDDATE",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Trapcondition: column{
			Name:      "trapcondition",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is TRAPCONDITION",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Trapnights: column{
			Name:      "trapnights",
			DBType:    "smallint",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is TRAPNIGHTS",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Zone: column{
			Name:      "zone",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is ZONE",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Zone2: column{
			Name:      "zone2",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is ZONE2",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Globalid: column{
			Name:      "globalid",
			DBType:    "uuid",
			Default:   "",
			Comment:   "Original attribute from ArcGIS API is GlobalID",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		CreatedUser: column{
			Name:      "created_user",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is created_user",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		CreatedDate: column{
			Name:      "created_date",
			DBType:    "timestamp without time zone",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is created_date",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		LastEditedUser: column{
			Name:      "last_edited_user",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is last_edited_user",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		LastEditedDate: column{
			Name:      "last_edited_date",
			DBType:    "timestamp without time zone",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is last_edited_date",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Srid: column{
			Name:      "srid",
			DBType:    "uuid",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is SRID",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Fieldtech: column{
			Name:      "fieldtech",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is FIELDTECH",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Gatewaysync: column{
			Name:      "gatewaysync",
			DBType:    "smallint",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is GATEWAYSYNC",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		LocID: column{
			Name:      "loc_id",
			DBType:    "uuid",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is LOC_ID",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Voltage: column{
			Name:      "voltage",
			DBType:    "double precision",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is VOLTAGE",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Winddir: column{
			Name:      "winddir",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is WINDDIR",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Windspeed: column{
			Name:      "windspeed",
			DBType:    "double precision",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is WINDSPEED",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Avetemp: column{
			Name:      "avetemp",
			DBType:    "double precision",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is AVETEMP",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Raingauge: column{
			Name:      "raingauge",
			DBType:    "double precision",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is RAINGAUGE",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		LR: column{
			Name:      "lr",
			DBType:    "smallint",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is LR",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Field: column{
			Name:      "field",
			DBType:    "integer",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is Field",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Vectorsurvtrapdataid: column{
			Name:      "vectorsurvtrapdataid",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is VECTORSURVTRAPDATAID",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Vectorsurvtraplocationid: column{
			Name:      "vectorsurvtraplocationid",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is VECTORSURVTRAPLOCATIONID",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Creationdate: column{
			Name:      "creationdate",
			DBType:    "timestamp without time zone",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is CreationDate",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Creator: column{
			Name:      "creator",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is Creator",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Editdate: column{
			Name:      "editdate",
			DBType:    "timestamp without time zone",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is EditDate",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Editor: column{
			Name:      "editor",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is Editor",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Lure: column{
			Name:      "lure",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "Original attribute from ArcGIS API is Lure",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Geometry: column{
			Name:      "geometry",
			DBType:    "jsonb",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		Geospatial: column{
			Name:      "geospatial",
			DBType:    "geometry",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Version: column{
			Name:      "version",
			DBType:    "integer",
			Default:   "1",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		OrganizationID: column{
			Name:      "organization_id",
			DBType:    "integer",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		H3cell: column{
			Name:      "h3cell",
			DBType:    "h3index",
			Default:   "GENERATED",
			Comment:   "",
			Nullable:  true,
			Generated: true,
			AutoIncr:  false,
		},
	},
	Indexes: fieldseekerTrapdatumIndexes{
		TrapdataPkey: index{
			Type: "btree",
			Name: "trapdata_pkey",
			Columns: []indexColumn{
				{
					Name:         "globalid",
					Desc:         null.FromCond(false, true),
					IsExpression: false,
				},
				{
					Name:         "version",
					Desc:         null.FromCond(false, true),
					IsExpression: false,
				},
			},
			Unique:        true,
			Comment:       "",
			NullsFirst:    []bool{false, false},
			NullsDistinct: false,
			Where:         "",
			Include:       []string{},
		},
	},
	PrimaryKey: &constraint{
		Name:    "trapdata_pkey",
		Columns: []string{"globalid", "version"},
		Comment: "",
	},
	ForeignKeys: fieldseekerTrapdatumForeignKeys{
		FieldseekerTrapdataTrapdataOrganizationIDFkey: foreignKey{
			constraint: constraint{
				Name:    "fieldseeker.trapdata.trapdata_organization_id_fkey",
				Columns: []string{"organization_id"},
				Comment: "",
			},
			ForeignTable:   "organization",
			ForeignColumns: []string{"id"},
		},
	},

	Comment: "",
}

type fieldseekerTrapdatumColumns struct {
	Objectid                 column
	Traptype                 column
	Trapactivitytype         column
	Startdatetime            column
	Enddatetime              column
	Comments                 column
	Idbytech                 column
	Sortbytech               column
	Processed                column
	Sitecond                 column
	Locationname             column
	Recordstatus             column
	Reviewed                 column
	Reviewedby               column
	Revieweddate             column
	Trapcondition            column
	Trapnights               column
	Zone                     column
	Zone2                    column
	Globalid                 column
	CreatedUser              column
	CreatedDate              column
	LastEditedUser           column
	LastEditedDate           column
	Srid                     column
	Fieldtech                column
	Gatewaysync              column
	LocID                    column
	Voltage                  column
	Winddir                  column
	Windspeed                column
	Avetemp                  column
	Raingauge                column
	LR                       column
	Field                    column
	Vectorsurvtrapdataid     column
	Vectorsurvtraplocationid column
	Creationdate             column
	Creator                  column
	Editdate                 column
	Editor                   column
	Lure                     column
	Geometry                 column
	Geospatial               column
	Version                  column
	OrganizationID           column
	H3cell                   column
}

func (c fieldseekerTrapdatumColumns) AsSlice() []column {
	return []column{
		c.Objectid, c.Traptype, c.Trapactivitytype, c.Startdatetime, c.Enddatetime, c.Comments, c.Idbytech, c.Sortbytech, c.Processed, c.Sitecond, c.Locationname, c.Recordstatus, c.Reviewed, c.Reviewedby, c.Revieweddate, c.Trapcondition, c.Trapnights, c.Zone, c.Zone2, c.Globalid, c.CreatedUser, c.CreatedDate, c.LastEditedUser, c.LastEditedDate, c.Srid, c.Fieldtech, c.Gatewaysync, c.LocID, c.Voltage, c.Winddir, c.Windspeed, c.Avetemp, c.Raingauge, c.LR, c.Field, c.Vectorsurvtrapdataid, c.Vectorsurvtraplocationid, c.Creationdate, c.Creator, c.Editdate, c.Editor, c.Lure, c.Geometry, c.Geospatial, c.Version, c.OrganizationID, c.H3cell,
	}
}

type fieldseekerTrapdatumIndexes struct {
	TrapdataPkey index
}

func (i fieldseekerTrapdatumIndexes) AsSlice() []index {
	return []index{
		i.TrapdataPkey,
	}
}

type fieldseekerTrapdatumForeignKeys struct {
	FieldseekerTrapdataTrapdataOrganizationIDFkey foreignKey
}

func (f fieldseekerTrapdatumForeignKeys) AsSlice() []foreignKey {
	return []foreignKey{
		f.FieldseekerTrapdataTrapdataOrganizationIDFkey,
	}
}

type fieldseekerTrapdatumUniques struct{}

func (u fieldseekerTrapdatumUniques) AsSlice() []constraint {
	return []constraint{}
}

type fieldseekerTrapdatumChecks struct{}

func (c fieldseekerTrapdatumChecks) AsSlice() []check {
	return []check{}
}
