// 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 PublicreportPools = Table[
	publicreportPoolColumns,
	publicreportPoolIndexes,
	publicreportPoolForeignKeys,
	publicreportPoolUniques,
	publicreportPoolChecks,
]{
	Schema: "publicreport",
	Name:   "pool",
	Columns: publicreportPoolColumns{
		ID: column{
			Name:      "id",
			DBType:    "integer",
			Default:   "nextval('publicreport.pool_id_seq'::regclass)",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		AccessComments: column{
			Name:      "access_comments",
			DBType:    "text",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		AccessGate: column{
			Name:      "access_gate",
			DBType:    "boolean",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		AccessFence: column{
			Name:      "access_fence",
			DBType:    "boolean",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		AccessLocked: column{
			Name:      "access_locked",
			DBType:    "boolean",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		AccessDog: column{
			Name:      "access_dog",
			DBType:    "boolean",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		AccessOther: column{
			Name:      "access_other",
			DBType:    "boolean",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		Address: column{
			Name:      "address",
			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,
		},
		AddressPostCode: column{
			Name:      "address_post_code",
			DBType:    "text",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		AddressPlace: column{
			Name:      "address_place",
			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,
		},
		AddressRegion: column{
			Name:      "address_region",
			DBType:    "text",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		Comments: column{
			Name:      "comments",
			DBType:    "text",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		Created: column{
			Name:      "created",
			DBType:    "timestamp without time zone",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		H3cell: column{
			Name:      "h3cell",
			DBType:    "h3index",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		HasAdult: column{
			Name:      "has_adult",
			DBType:    "boolean",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		HasLarvae: column{
			Name:      "has_larvae",
			DBType:    "boolean",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		HasPupae: column{
			Name:      "has_pupae",
			DBType:    "boolean",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		Location: column{
			Name:      "location",
			DBType:    "geography",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		MapZoom: column{
			Name:      "map_zoom",
			DBType:    "real",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		OwnerEmail: column{
			Name:      "owner_email",
			DBType:    "text",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		OwnerName: column{
			Name:      "owner_name",
			DBType:    "text",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		OwnerPhone: column{
			Name:      "owner_phone",
			DBType:    "text",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		PublicID: column{
			Name:      "public_id",
			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,
		},
		ReporterName: column{
			Name:      "reporter_name",
			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,
		},
		Status: column{
			Name:      "status",
			DBType:    "publicreport.reportstatustype",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		OrganizationID: column{
			Name:      "organization_id",
			DBType:    "integer",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		HasBackyardPermission: column{
			Name:      "has_backyard_permission",
			DBType:    "boolean",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		IsReporterConfidential: column{
			Name:      "is_reporter_confidential",
			DBType:    "boolean",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		IsReporterOwner: column{
			Name:      "is_reporter_owner",
			DBType:    "boolean",
			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,
		},
	},
	Indexes: publicreportPoolIndexes{
		PoolPkey: index{
			Type: "btree",
			Name: "pool_pkey",
			Columns: []indexColumn{
				{
					Name:         "id",
					Desc:         null.FromCond(false, true),
					IsExpression: false,
				},
			},
			Unique:        true,
			Comment:       "",
			NullsFirst:    []bool{false},
			NullsDistinct: false,
			Where:         "",
			Include:       []string{},
		},
		PoolPublicIDKey: index{
			Type: "btree",
			Name: "pool_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:    "pool_pkey",
		Columns: []string{"id"},
		Comment: "",
	},
	ForeignKeys: publicreportPoolForeignKeys{
		PublicreportPoolPoolOrganizationIDFkey: foreignKey{
			constraint: constraint{
				Name:    "publicreport.pool.pool_organization_id_fkey",
				Columns: []string{"organization_id"},
				Comment: "",
			},
			ForeignTable:   "organization",
			ForeignColumns: []string{"id"},
		},
	},
	Uniques: publicreportPoolUniques{
		PoolPublicIDKey: constraint{
			Name:    "pool_public_id_key",
			Columns: []string{"public_id"},
			Comment: "",
		},
	},

	Comment: "",
}

type publicreportPoolColumns struct {
	ID                     column
	AccessComments         column
	AccessGate             column
	AccessFence            column
	AccessLocked           column
	AccessDog              column
	AccessOther            column
	Address                column
	AddressCountry         column
	AddressPostCode        column
	AddressPlace           column
	AddressStreet          column
	AddressRegion          column
	Comments               column
	Created                column
	H3cell                 column
	HasAdult               column
	HasLarvae              column
	HasPupae               column
	Location               column
	MapZoom                column
	OwnerEmail             column
	OwnerName              column
	OwnerPhone             column
	PublicID               column
	ReporterEmail          column
	ReporterName           column
	ReporterPhone          column
	Status                 column
	OrganizationID         column
	HasBackyardPermission  column
	IsReporterConfidential column
	IsReporterOwner        column
	ReporterContactConsent column
}

func (c publicreportPoolColumns) AsSlice() []column {
	return []column{
		c.ID, c.AccessComments, c.AccessGate, c.AccessFence, c.AccessLocked, c.AccessDog, c.AccessOther, c.Address, c.AddressCountry, c.AddressPostCode, c.AddressPlace, c.AddressStreet, c.AddressRegion, c.Comments, c.Created, c.H3cell, c.HasAdult, c.HasLarvae, c.HasPupae, c.Location, c.MapZoom, c.OwnerEmail, c.OwnerName, c.OwnerPhone, c.PublicID, c.ReporterEmail, c.ReporterName, c.ReporterPhone, c.Status, c.OrganizationID, c.HasBackyardPermission, c.IsReporterConfidential, c.IsReporterOwner, c.ReporterContactConsent,
	}
}

type publicreportPoolIndexes struct {
	PoolPkey        index
	PoolPublicIDKey index
}

func (i publicreportPoolIndexes) AsSlice() []index {
	return []index{
		i.PoolPkey, i.PoolPublicIDKey,
	}
}

type publicreportPoolForeignKeys struct {
	PublicreportPoolPoolOrganizationIDFkey foreignKey
}

func (f publicreportPoolForeignKeys) AsSlice() []foreignKey {
	return []foreignKey{
		f.PublicreportPoolPoolOrganizationIDFkey,
	}
}

type publicreportPoolUniques struct {
	PoolPublicIDKey constraint
}

func (u publicreportPoolUniques) AsSlice() []constraint {
	return []constraint{
		u.PoolPublicIDKey,
	}
}

type publicreportPoolChecks struct{}

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