// 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 Organizations = Table[
	organizationColumns,
	organizationIndexes,
	organizationForeignKeys,
	organizationUniques,
	organizationChecks,
]{
	Schema: "",
	Name:   "organization",
	Columns: organizationColumns{
		ID: column{
			Name:      "id",
			DBType:    "integer",
			Default:   "nextval('organization_id_seq'::regclass)",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		Name: column{
			Name:      "name",
			DBType:    "text",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		ImportDistrictGid: column{
			Name:      "import_district_gid",
			DBType:    "integer",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Website: column{
			Name:      "website",
			DBType:    "text",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		LogoUUID: column{
			Name:      "logo_uuid",
			DBType:    "uuid",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		Slug: column{
			Name:      "slug",
			DBType:    "character varying",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		GeneralManagerName: column{
			Name:      "general_manager_name",
			DBType:    "text",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		MailingAddressCity: column{
			Name:      "mailing_address_city",
			DBType:    "text",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		MailingAddressPostalCode: column{
			Name:      "mailing_address_postal_code",
			DBType:    "text",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		MailingAddressStreet: column{
			Name:      "mailing_address_street",
			DBType:    "text",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		OfficeAddressCity: column{
			Name:      "office_address_city",
			DBType:    "text",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		OfficeAddressPostalCode: column{
			Name:      "office_address_postal_code",
			DBType:    "text",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		OfficeAddressStreet: column{
			Name:      "office_address_street",
			DBType:    "text",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		ServiceAreaGeometry: column{
			Name:      "service_area_geometry",
			DBType:    "geometry",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		ServiceAreaSquareMeters: column{
			Name:      "service_area_square_meters",
			DBType:    "numeric",
			Default:   "GENERATED",
			Comment:   "",
			Nullable:  true,
			Generated: true,
			AutoIncr:  false,
		},
		ServiceAreaCentroid: column{
			Name:      "service_area_centroid",
			DBType:    "geometry",
			Default:   "GENERATED",
			Comment:   "",
			Nullable:  true,
			Generated: true,
			AutoIncr:  false,
		},
		ServiceAreaExtent: column{
			Name:      "service_area_extent",
			DBType:    "geometry",
			Default:   "GENERATED",
			Comment:   "",
			Nullable:  true,
			Generated: true,
			AutoIncr:  false,
		},
		OfficeFax: column{
			Name:      "office_fax",
			DBType:    "text",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		OfficePhone: column{
			Name:      "office_phone",
			DBType:    "text",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		ServiceAreaXmin: column{
			Name:      "service_area_xmin",
			DBType:    "double precision",
			Default:   "GENERATED",
			Comment:   "",
			Nullable:  true,
			Generated: true,
			AutoIncr:  false,
		},
		ServiceAreaYmin: column{
			Name:      "service_area_ymin",
			DBType:    "double precision",
			Default:   "GENERATED",
			Comment:   "",
			Nullable:  true,
			Generated: true,
			AutoIncr:  false,
		},
		ServiceAreaXmax: column{
			Name:      "service_area_xmax",
			DBType:    "double precision",
			Default:   "GENERATED",
			Comment:   "",
			Nullable:  true,
			Generated: true,
			AutoIncr:  false,
		},
		ServiceAreaYmax: column{
			Name:      "service_area_ymax",
			DBType:    "double precision",
			Default:   "GENERATED",
			Comment:   "",
			Nullable:  true,
			Generated: true,
			AutoIncr:  false,
		},
		ServiceAreaCentroidGeojson: column{
			Name:      "service_area_centroid_geojson",
			DBType:    "text",
			Default:   "GENERATED",
			Comment:   "",
			Nullable:  true,
			Generated: true,
			AutoIncr:  false,
		},
		ServiceAreaCentroidX: column{
			Name:      "service_area_centroid_x",
			DBType:    "double precision",
			Default:   "GENERATED",
			Comment:   "",
			Nullable:  true,
			Generated: true,
			AutoIncr:  false,
		},
		ServiceAreaCentroidY: column{
			Name:      "service_area_centroid_y",
			DBType:    "double precision",
			Default:   "GENERATED",
			Comment:   "",
			Nullable:  true,
			Generated: true,
			AutoIncr:  false,
		},
		MailingAddressCountry: column{
			Name:      "mailing_address_country",
			DBType:    "text",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		MailingAddressState: column{
			Name:      "mailing_address_state",
			DBType:    "text",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		OfficeAddressCountry: column{
			Name:      "office_address_country",
			DBType:    "text",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		OfficeAddressState: column{
			Name:      "office_address_state",
			DBType:    "text",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		ArcgisAccountID: column{
			Name:      "arcgis_account_id",
			DBType:    "text",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		FieldseekerServiceFeatureItemID: column{
			Name:      "fieldseeker_service_feature_item_id",
			DBType:    "text",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		ArcgisMapServiceID: column{
			Name:      "arcgis_map_service_id",
			DBType:    "text",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		IsCatchall: column{
			Name:      "is_catchall",
			DBType:    "boolean",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		LobAddressID: column{
			Name:      "lob_address_id",
			DBType:    "text",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
	},
	Indexes: organizationIndexes{
		OrganizationPkey: index{
			Type: "btree",
			Name: "organization_pkey",
			Columns: []indexColumn{
				{
					Name:         "id",
					Desc:         null.FromCond(false, true),
					IsExpression: false,
				},
			},
			Unique:        true,
			Comment:       "",
			NullsFirst:    []bool{false},
			NullsDistinct: false,
			Where:         "",
			Include:       []string{},
		},
		OnlyOneCatchall: index{
			Type: "btree",
			Name: "only_one_catchall",
			Columns: []indexColumn{
				{
					Name:         "is_catchall",
					Desc:         null.FromCond(false, true),
					IsExpression: false,
				},
			},
			Unique:        true,
			Comment:       "",
			NullsFirst:    []bool{false},
			NullsDistinct: false,
			Where:         "(is_catchall = true)",
			Include:       []string{},
		},
		OrganizationImportDistrictGidKey: index{
			Type: "btree",
			Name: "organization_import_district_gid_key",
			Columns: []indexColumn{
				{
					Name:         "import_district_gid",
					Desc:         null.FromCond(false, true),
					IsExpression: false,
				},
			},
			Unique:        true,
			Comment:       "",
			NullsFirst:    []bool{false},
			NullsDistinct: false,
			Where:         "",
			Include:       []string{},
		},
		OrganizationSlugKey: index{
			Type: "btree",
			Name: "organization_slug_key",
			Columns: []indexColumn{
				{
					Name:         "slug",
					Desc:         null.FromCond(false, true),
					IsExpression: false,
				},
			},
			Unique:        true,
			Comment:       "",
			NullsFirst:    []bool{false},
			NullsDistinct: false,
			Where:         "",
			Include:       []string{},
		},
	},
	PrimaryKey: &constraint{
		Name:    "organization_pkey",
		Columns: []string{"id"},
		Comment: "",
	},
	ForeignKeys: organizationForeignKeys{
		OrganizationOrganizationArcgisAccountIDFkey: foreignKey{
			constraint: constraint{
				Name:    "organization.organization_arcgis_account_id_fkey",
				Columns: []string{"arcgis_account_id"},
				Comment: "",
			},
			ForeignTable:   "arcgis.account",
			ForeignColumns: []string{"id"},
		},
		OrganizationOrganizationArcgisMapServiceIDFkey: foreignKey{
			constraint: constraint{
				Name:    "organization.organization_arcgis_map_service_id_fkey",
				Columns: []string{"arcgis_map_service_id"},
				Comment: "",
			},
			ForeignTable:   "arcgis.service_map",
			ForeignColumns: []string{"arcgis_id"},
		},
		OrganizationOrganizationFieldseekerServiceFeatureItemIDFkey: foreignKey{
			constraint: constraint{
				Name:    "organization.organization_fieldseeker_service_feature_item_id_fkey",
				Columns: []string{"fieldseeker_service_feature_item_id"},
				Comment: "",
			},
			ForeignTable:   "arcgis.service_feature",
			ForeignColumns: []string{"item_id"},
		},
		OrganizationOrganizationImportDistrictGidFkey: foreignKey{
			constraint: constraint{
				Name:    "organization.organization_import_district_gid_fkey",
				Columns: []string{"import_district_gid"},
				Comment: "",
			},
			ForeignTable:   "import.district",
			ForeignColumns: []string{"gid"},
		},
	},
	Uniques: organizationUniques{
		OrganizationImportDistrictGidKey: constraint{
			Name:    "organization_import_district_gid_key",
			Columns: []string{"import_district_gid"},
			Comment: "",
		},
		OrganizationSlugKey: constraint{
			Name:    "organization_slug_key",
			Columns: []string{"slug"},
			Comment: "",
		},
	},

	Comment: "",
}

type organizationColumns struct {
	ID                              column
	Name                            column
	ImportDistrictGid               column
	Website                         column
	LogoUUID                        column
	Slug                            column
	GeneralManagerName              column
	MailingAddressCity              column
	MailingAddressPostalCode        column
	MailingAddressStreet            column
	OfficeAddressCity               column
	OfficeAddressPostalCode         column
	OfficeAddressStreet             column
	ServiceAreaGeometry             column
	ServiceAreaSquareMeters         column
	ServiceAreaCentroid             column
	ServiceAreaExtent               column
	OfficeFax                       column
	OfficePhone                     column
	ServiceAreaXmin                 column
	ServiceAreaYmin                 column
	ServiceAreaXmax                 column
	ServiceAreaYmax                 column
	ServiceAreaCentroidGeojson      column
	ServiceAreaCentroidX            column
	ServiceAreaCentroidY            column
	MailingAddressCountry           column
	MailingAddressState             column
	OfficeAddressCountry            column
	OfficeAddressState              column
	ArcgisAccountID                 column
	FieldseekerServiceFeatureItemID column
	ArcgisMapServiceID              column
	IsCatchall                      column
	LobAddressID                    column
}

func (c organizationColumns) AsSlice() []column {
	return []column{
		c.ID, c.Name, c.ImportDistrictGid, c.Website, c.LogoUUID, c.Slug, c.GeneralManagerName, c.MailingAddressCity, c.MailingAddressPostalCode, c.MailingAddressStreet, c.OfficeAddressCity, c.OfficeAddressPostalCode, c.OfficeAddressStreet, c.ServiceAreaGeometry, c.ServiceAreaSquareMeters, c.ServiceAreaCentroid, c.ServiceAreaExtent, c.OfficeFax, c.OfficePhone, c.ServiceAreaXmin, c.ServiceAreaYmin, c.ServiceAreaXmax, c.ServiceAreaYmax, c.ServiceAreaCentroidGeojson, c.ServiceAreaCentroidX, c.ServiceAreaCentroidY, c.MailingAddressCountry, c.MailingAddressState, c.OfficeAddressCountry, c.OfficeAddressState, c.ArcgisAccountID, c.FieldseekerServiceFeatureItemID, c.ArcgisMapServiceID, c.IsCatchall, c.LobAddressID,
	}
}

type organizationIndexes struct {
	OrganizationPkey                 index
	OnlyOneCatchall                  index
	OrganizationImportDistrictGidKey index
	OrganizationSlugKey              index
}

func (i organizationIndexes) AsSlice() []index {
	return []index{
		i.OrganizationPkey, i.OnlyOneCatchall, i.OrganizationImportDistrictGidKey, i.OrganizationSlugKey,
	}
}

type organizationForeignKeys struct {
	OrganizationOrganizationArcgisAccountIDFkey                 foreignKey
	OrganizationOrganizationArcgisMapServiceIDFkey              foreignKey
	OrganizationOrganizationFieldseekerServiceFeatureItemIDFkey foreignKey
	OrganizationOrganizationImportDistrictGidFkey               foreignKey
}

func (f organizationForeignKeys) AsSlice() []foreignKey {
	return []foreignKey{
		f.OrganizationOrganizationArcgisAccountIDFkey, f.OrganizationOrganizationArcgisMapServiceIDFkey, f.OrganizationOrganizationFieldseekerServiceFeatureItemIDFkey, f.OrganizationOrganizationImportDistrictGidFkey,
	}
}

type organizationUniques struct {
	OrganizationImportDistrictGidKey constraint
	OrganizationSlugKey              constraint
}

func (u organizationUniques) AsSlice() []constraint {
	return []constraint{
		u.OrganizationImportDistrictGidKey, u.OrganizationSlugKey,
	}
}

type organizationChecks struct{}

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