// 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 PublicreportWaters = Table[
	publicreportWaterColumns,
	publicreportWaterIndexes,
	publicreportWaterForeignKeys,
	publicreportWaterUniques,
	publicreportWaterChecks,
]{
	Schema: "publicreport",
	Name:   "water",
	Columns: publicreportWaterColumns{
		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,
		},
		Comments: column{
			Name:      "comments",
			DBType:    "text",
			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,
		},
		HasAdult: column{
			Name:      "has_adult",
			DBType:    "boolean",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		HasBackyardPermission: column{
			Name:      "has_backyard_permission",
			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,
		},
		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,
		},
		ReportID: column{
			Name:      "report_id",
			DBType:    "integer",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		Duration: column{
			Name:      "duration",
			DBType:    "publicreport.nuisancedurationtype",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
	},
	Indexes: publicreportWaterIndexes{
		WaterPkey: index{
			Type: "btree",
			Name: "water_pkey",
			Columns: []indexColumn{
				{
					Name:         "report_id",
					Desc:         null.FromCond(false, true),
					IsExpression: false,
				},
			},
			Unique:        true,
			Comment:       "",
			NullsFirst:    []bool{false},
			NullsDistinct: false,
			Where:         "",
			Include:       []string{},
		},
	},
	PrimaryKey: &constraint{
		Name:    "water_pkey",
		Columns: []string{"report_id"},
		Comment: "",
	},
	ForeignKeys: publicreportWaterForeignKeys{
		PublicreportWaterWaterReportIDFkey: foreignKey{
			constraint: constraint{
				Name:    "publicreport.water.water_report_id_fkey",
				Columns: []string{"report_id"},
				Comment: "",
			},
			ForeignTable:   "publicreport.report",
			ForeignColumns: []string{"id"},
		},
	},

	Comment: "",
}

type publicreportWaterColumns struct {
	AccessComments         column
	AccessGate             column
	AccessFence            column
	AccessLocked           column
	AccessDog              column
	AccessOther            column
	Comments               column
	IsReporterConfidential column
	IsReporterOwner        column
	HasAdult               column
	HasBackyardPermission  column
	HasLarvae              column
	HasPupae               column
	OwnerEmail             column
	OwnerName              column
	OwnerPhone             column
	ReportID               column
	Duration               column
}

func (c publicreportWaterColumns) AsSlice() []column {
	return []column{
		c.AccessComments, c.AccessGate, c.AccessFence, c.AccessLocked, c.AccessDog, c.AccessOther, c.Comments, c.IsReporterConfidential, c.IsReporterOwner, c.HasAdult, c.HasBackyardPermission, c.HasLarvae, c.HasPupae, c.OwnerEmail, c.OwnerName, c.OwnerPhone, c.ReportID, c.Duration,
	}
}

type publicreportWaterIndexes struct {
	WaterPkey index
}

func (i publicreportWaterIndexes) AsSlice() []index {
	return []index{
		i.WaterPkey,
	}
}

type publicreportWaterForeignKeys struct {
	PublicreportWaterWaterReportIDFkey foreignKey
}

func (f publicreportWaterForeignKeys) AsSlice() []foreignKey {
	return []foreignKey{
		f.PublicreportWaterWaterReportIDFkey,
	}
}

type publicreportWaterUniques struct{}

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

type publicreportWaterChecks struct{}

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