//
// Code generated by go-jet DO NOT EDIT.
//
// WARNING: Changes to this file may cause incorrect behavior
// and will be lost if the code is regenerated
//

package table

import (
	"github.com/Gleipnir-Technology/jet/postgres"
)

var Organization = newOrganizationTable("public", "organization", "")

type organizationTable struct {
	postgres.Table

	// Columns
	ID                              postgres.ColumnInteger
	Name                            postgres.ColumnString
	ImportDistrictGid               postgres.ColumnInteger
	Website                         postgres.ColumnString
	LogoUUID                        postgres.ColumnString
	Slug                            postgres.ColumnString
	GeneralManagerName              postgres.ColumnString
	MailingAddressCity              postgres.ColumnString
	MailingAddressPostalCode        postgres.ColumnString
	MailingAddressStreet            postgres.ColumnString
	OfficeAddressCity               postgres.ColumnString
	OfficeAddressPostalCode         postgres.ColumnString
	OfficeAddressStreet             postgres.ColumnString
	ServiceAreaGeometry             postgres.ColumnGeometry
	ServiceAreaSquareMeters         postgres.ColumnFloat
	ServiceAreaCentroid             postgres.ColumnGeometry
	ServiceAreaExtent               postgres.ColumnGeometry
	OfficeFax                       postgres.ColumnString
	OfficePhone                     postgres.ColumnString
	ServiceAreaXmin                 postgres.ColumnFloat
	ServiceAreaYmin                 postgres.ColumnFloat
	ServiceAreaXmax                 postgres.ColumnFloat
	ServiceAreaYmax                 postgres.ColumnFloat
	ServiceAreaCentroidGeojson      postgres.ColumnString
	ServiceAreaCentroidX            postgres.ColumnFloat
	ServiceAreaCentroidY            postgres.ColumnFloat
	MailingAddressCountry           postgres.ColumnString
	MailingAddressState             postgres.ColumnString
	OfficeAddressCountry            postgres.ColumnString
	OfficeAddressState              postgres.ColumnString
	ArcgisAccountID                 postgres.ColumnString
	FieldseekerServiceFeatureItemID postgres.ColumnString
	ArcgisMapServiceID              postgres.ColumnString
	IsCatchall                      postgres.ColumnBool
	LobAddressID                    postgres.ColumnString

	AllColumns     postgres.ColumnList
	MutableColumns postgres.ColumnList
	DefaultColumns postgres.ColumnList
}

type OrganizationTable struct {
	organizationTable

	EXCLUDED organizationTable
}

// AS creates new OrganizationTable with assigned alias
func (a OrganizationTable) AS(alias string) *OrganizationTable {
	return newOrganizationTable(a.SchemaName(), a.TableName(), alias)
}

// Schema creates new OrganizationTable with assigned schema name
func (a OrganizationTable) FromSchema(schemaName string) *OrganizationTable {
	return newOrganizationTable(schemaName, a.TableName(), a.Alias())
}

// WithPrefix creates new OrganizationTable with assigned table prefix
func (a OrganizationTable) WithPrefix(prefix string) *OrganizationTable {
	return newOrganizationTable(a.SchemaName(), prefix+a.TableName(), a.TableName())
}

// WithSuffix creates new OrganizationTable with assigned table suffix
func (a OrganizationTable) WithSuffix(suffix string) *OrganizationTable {
	return newOrganizationTable(a.SchemaName(), a.TableName()+suffix, a.TableName())
}

func newOrganizationTable(schemaName, tableName, alias string) *OrganizationTable {
	return &OrganizationTable{
		organizationTable: newOrganizationTableImpl(schemaName, tableName, alias),
		EXCLUDED:          newOrganizationTableImpl("", "excluded", ""),
	}
}

func newOrganizationTableImpl(schemaName, tableName, alias string) organizationTable {
	var (
		IDColumn                              = postgres.IntegerColumn("id")
		NameColumn                            = postgres.StringColumn("name")
		ImportDistrictGidColumn               = postgres.IntegerColumn("import_district_gid")
		WebsiteColumn                         = postgres.StringColumn("website")
		LogoUUIDColumn                        = postgres.StringColumn("logo_uuid")
		SlugColumn                            = postgres.StringColumn("slug")
		GeneralManagerNameColumn              = postgres.StringColumn("general_manager_name")
		MailingAddressCityColumn              = postgres.StringColumn("mailing_address_city")
		MailingAddressPostalCodeColumn        = postgres.StringColumn("mailing_address_postal_code")
		MailingAddressStreetColumn            = postgres.StringColumn("mailing_address_street")
		OfficeAddressCityColumn               = postgres.StringColumn("office_address_city")
		OfficeAddressPostalCodeColumn         = postgres.StringColumn("office_address_postal_code")
		OfficeAddressStreetColumn             = postgres.StringColumn("office_address_street")
		ServiceAreaGeometryColumn             = postgres.GeometryColumn("service_area_geometry")
		ServiceAreaSquareMetersColumn         = postgres.FloatColumn("service_area_square_meters")
		ServiceAreaCentroidColumn             = postgres.GeometryColumn("service_area_centroid")
		ServiceAreaExtentColumn               = postgres.GeometryColumn("service_area_extent")
		OfficeFaxColumn                       = postgres.StringColumn("office_fax")
		OfficePhoneColumn                     = postgres.StringColumn("office_phone")
		ServiceAreaXminColumn                 = postgres.FloatColumn("service_area_xmin")
		ServiceAreaYminColumn                 = postgres.FloatColumn("service_area_ymin")
		ServiceAreaXmaxColumn                 = postgres.FloatColumn("service_area_xmax")
		ServiceAreaYmaxColumn                 = postgres.FloatColumn("service_area_ymax")
		ServiceAreaCentroidGeojsonColumn      = postgres.StringColumn("service_area_centroid_geojson")
		ServiceAreaCentroidXColumn            = postgres.FloatColumn("service_area_centroid_x")
		ServiceAreaCentroidYColumn            = postgres.FloatColumn("service_area_centroid_y")
		MailingAddressCountryColumn           = postgres.StringColumn("mailing_address_country")
		MailingAddressStateColumn             = postgres.StringColumn("mailing_address_state")
		OfficeAddressCountryColumn            = postgres.StringColumn("office_address_country")
		OfficeAddressStateColumn              = postgres.StringColumn("office_address_state")
		ArcgisAccountIDColumn                 = postgres.StringColumn("arcgis_account_id")
		FieldseekerServiceFeatureItemIDColumn = postgres.StringColumn("fieldseeker_service_feature_item_id")
		ArcgisMapServiceIDColumn              = postgres.StringColumn("arcgis_map_service_id")
		IsCatchallColumn                      = postgres.BoolColumn("is_catchall")
		LobAddressIDColumn                    = postgres.StringColumn("lob_address_id")
		allColumns                            = postgres.ColumnList{IDColumn, NameColumn, ImportDistrictGidColumn, WebsiteColumn, LogoUUIDColumn, SlugColumn, GeneralManagerNameColumn, MailingAddressCityColumn, MailingAddressPostalCodeColumn, MailingAddressStreetColumn, OfficeAddressCityColumn, OfficeAddressPostalCodeColumn, OfficeAddressStreetColumn, ServiceAreaGeometryColumn, ServiceAreaSquareMetersColumn, ServiceAreaCentroidColumn, ServiceAreaExtentColumn, OfficeFaxColumn, OfficePhoneColumn, ServiceAreaXminColumn, ServiceAreaYminColumn, ServiceAreaXmaxColumn, ServiceAreaYmaxColumn, ServiceAreaCentroidGeojsonColumn, ServiceAreaCentroidXColumn, ServiceAreaCentroidYColumn, MailingAddressCountryColumn, MailingAddressStateColumn, OfficeAddressCountryColumn, OfficeAddressStateColumn, ArcgisAccountIDColumn, FieldseekerServiceFeatureItemIDColumn, ArcgisMapServiceIDColumn, IsCatchallColumn, LobAddressIDColumn}
		mutableColumns                        = postgres.ColumnList{NameColumn, ImportDistrictGidColumn, WebsiteColumn, LogoUUIDColumn, SlugColumn, GeneralManagerNameColumn, MailingAddressCityColumn, MailingAddressPostalCodeColumn, MailingAddressStreetColumn, OfficeAddressCityColumn, OfficeAddressPostalCodeColumn, OfficeAddressStreetColumn, ServiceAreaGeometryColumn, OfficeFaxColumn, OfficePhoneColumn, MailingAddressCountryColumn, MailingAddressStateColumn, OfficeAddressCountryColumn, OfficeAddressStateColumn, ArcgisAccountIDColumn, FieldseekerServiceFeatureItemIDColumn, ArcgisMapServiceIDColumn, IsCatchallColumn, LobAddressIDColumn}
		defaultColumns                        = postgres.ColumnList{IDColumn, ServiceAreaSquareMetersColumn, ServiceAreaCentroidColumn, ServiceAreaExtentColumn, ServiceAreaXminColumn, ServiceAreaYminColumn, ServiceAreaXmaxColumn, ServiceAreaYmaxColumn, ServiceAreaCentroidGeojsonColumn, ServiceAreaCentroidXColumn, ServiceAreaCentroidYColumn}
	)

	return organizationTable{
		Table: postgres.NewTable(schemaName, tableName, alias, allColumns...),

		//Columns
		ID:                              IDColumn,
		Name:                            NameColumn,
		ImportDistrictGid:               ImportDistrictGidColumn,
		Website:                         WebsiteColumn,
		LogoUUID:                        LogoUUIDColumn,
		Slug:                            SlugColumn,
		GeneralManagerName:              GeneralManagerNameColumn,
		MailingAddressCity:              MailingAddressCityColumn,
		MailingAddressPostalCode:        MailingAddressPostalCodeColumn,
		MailingAddressStreet:            MailingAddressStreetColumn,
		OfficeAddressCity:               OfficeAddressCityColumn,
		OfficeAddressPostalCode:         OfficeAddressPostalCodeColumn,
		OfficeAddressStreet:             OfficeAddressStreetColumn,
		ServiceAreaGeometry:             ServiceAreaGeometryColumn,
		ServiceAreaSquareMeters:         ServiceAreaSquareMetersColumn,
		ServiceAreaCentroid:             ServiceAreaCentroidColumn,
		ServiceAreaExtent:               ServiceAreaExtentColumn,
		OfficeFax:                       OfficeFaxColumn,
		OfficePhone:                     OfficePhoneColumn,
		ServiceAreaXmin:                 ServiceAreaXminColumn,
		ServiceAreaYmin:                 ServiceAreaYminColumn,
		ServiceAreaXmax:                 ServiceAreaXmaxColumn,
		ServiceAreaYmax:                 ServiceAreaYmaxColumn,
		ServiceAreaCentroidGeojson:      ServiceAreaCentroidGeojsonColumn,
		ServiceAreaCentroidX:            ServiceAreaCentroidXColumn,
		ServiceAreaCentroidY:            ServiceAreaCentroidYColumn,
		MailingAddressCountry:           MailingAddressCountryColumn,
		MailingAddressState:             MailingAddressStateColumn,
		OfficeAddressCountry:            OfficeAddressCountryColumn,
		OfficeAddressState:              OfficeAddressStateColumn,
		ArcgisAccountID:                 ArcgisAccountIDColumn,
		FieldseekerServiceFeatureItemID: FieldseekerServiceFeatureItemIDColumn,
		ArcgisMapServiceID:              ArcgisMapServiceIDColumn,
		IsCatchall:                      IsCatchallColumn,
		LobAddressID:                    LobAddressIDColumn,

		AllColumns:     allColumns,
		MutableColumns: mutableColumns,
		DefaultColumns: defaultColumns,
	}
}
