//
// 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 NuisanceOld = newNuisanceOldTable("publicreport", "nuisance_old", "")

type nuisanceOldTable struct {
	postgres.Table

	// Columns
	ID                     postgres.ColumnInteger
	AdditionalInfo         postgres.ColumnString
	Created                postgres.ColumnTimestamp
	Duration               postgres.ColumnString
	SourceContainer        postgres.ColumnBool
	SourceDescription      postgres.ColumnString
	SourceStagnant         postgres.ColumnBool
	PublicID               postgres.ColumnString
	ReporterEmail          postgres.ColumnString
	ReporterName           postgres.ColumnString
	ReporterPhone          postgres.ColumnString
	AddressRaw             postgres.ColumnString
	Status                 postgres.ColumnString
	OrganizationID         postgres.ColumnInteger
	SourceGutter           postgres.ColumnBool
	H3cell                 postgres.ColumnString
	AddressCountry         postgres.ColumnString
	AddressLocality        postgres.ColumnString
	AddressPostalCode      postgres.ColumnString
	AddressRegion          postgres.ColumnString
	AddressStreet          postgres.ColumnString
	IsLocationBackyard     postgres.ColumnBool
	IsLocationFrontyard    postgres.ColumnBool
	IsLocationGarden       postgres.ColumnBool
	IsLocationOther        postgres.ColumnBool
	IsLocationPool         postgres.ColumnBool
	MapZoom                postgres.ColumnFloat
	TodEarly               postgres.ColumnBool
	TodDay                 postgres.ColumnBool
	TodEvening             postgres.ColumnBool
	TodNight               postgres.ColumnBool
	LatlngAccuracyType     postgres.ColumnString
	LatlngAccuracyValue    postgres.ColumnFloat
	ReporterContactConsent postgres.ColumnBool
	Location               postgres.ColumnGeometry
	AddressNumber          postgres.ColumnString
	AddressID              postgres.ColumnInteger
	Reviewed               postgres.ColumnTimestamp
	ReviewerID             postgres.ColumnInteger

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

type NuisanceOldTable struct {
	nuisanceOldTable

	EXCLUDED nuisanceOldTable
}

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

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

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

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

func newNuisanceOldTable(schemaName, tableName, alias string) *NuisanceOldTable {
	return &NuisanceOldTable{
		nuisanceOldTable: newNuisanceOldTableImpl(schemaName, tableName, alias),
		EXCLUDED:         newNuisanceOldTableImpl("", "excluded", ""),
	}
}

func newNuisanceOldTableImpl(schemaName, tableName, alias string) nuisanceOldTable {
	var (
		IDColumn                     = postgres.IntegerColumn("id")
		AdditionalInfoColumn         = postgres.StringColumn("additional_info")
		CreatedColumn                = postgres.TimestampColumn("created")
		DurationColumn               = postgres.StringColumn("duration")
		SourceContainerColumn        = postgres.BoolColumn("source_container")
		SourceDescriptionColumn      = postgres.StringColumn("source_description")
		SourceStagnantColumn         = postgres.BoolColumn("source_stagnant")
		PublicIDColumn               = postgres.StringColumn("public_id")
		ReporterEmailColumn          = postgres.StringColumn("reporter_email")
		ReporterNameColumn           = postgres.StringColumn("reporter_name")
		ReporterPhoneColumn          = postgres.StringColumn("reporter_phone")
		AddressRawColumn             = postgres.StringColumn("address_raw")
		StatusColumn                 = postgres.StringColumn("status")
		OrganizationIDColumn         = postgres.IntegerColumn("organization_id")
		SourceGutterColumn           = postgres.BoolColumn("source_gutter")
		H3cellColumn                 = postgres.StringColumn("h3cell")
		AddressCountryColumn         = postgres.StringColumn("address_country")
		AddressLocalityColumn        = postgres.StringColumn("address_locality")
		AddressPostalCodeColumn      = postgres.StringColumn("address_postal_code")
		AddressRegionColumn          = postgres.StringColumn("address_region")
		AddressStreetColumn          = postgres.StringColumn("address_street")
		IsLocationBackyardColumn     = postgres.BoolColumn("is_location_backyard")
		IsLocationFrontyardColumn    = postgres.BoolColumn("is_location_frontyard")
		IsLocationGardenColumn       = postgres.BoolColumn("is_location_garden")
		IsLocationOtherColumn        = postgres.BoolColumn("is_location_other")
		IsLocationPoolColumn         = postgres.BoolColumn("is_location_pool")
		MapZoomColumn                = postgres.FloatColumn("map_zoom")
		TodEarlyColumn               = postgres.BoolColumn("tod_early")
		TodDayColumn                 = postgres.BoolColumn("tod_day")
		TodEveningColumn             = postgres.BoolColumn("tod_evening")
		TodNightColumn               = postgres.BoolColumn("tod_night")
		LatlngAccuracyTypeColumn     = postgres.StringColumn("latlng_accuracy_type")
		LatlngAccuracyValueColumn    = postgres.FloatColumn("latlng_accuracy_value")
		ReporterContactConsentColumn = postgres.BoolColumn("reporter_contact_consent")
		LocationColumn               = postgres.GeometryColumn("location")
		AddressNumberColumn          = postgres.StringColumn("address_number")
		AddressIDColumn              = postgres.IntegerColumn("address_id")
		ReviewedColumn               = postgres.TimestampColumn("reviewed")
		ReviewerIDColumn             = postgres.IntegerColumn("reviewer_id")
		allColumns                   = postgres.ColumnList{IDColumn, AdditionalInfoColumn, CreatedColumn, DurationColumn, SourceContainerColumn, SourceDescriptionColumn, SourceStagnantColumn, PublicIDColumn, ReporterEmailColumn, ReporterNameColumn, ReporterPhoneColumn, AddressRawColumn, StatusColumn, OrganizationIDColumn, SourceGutterColumn, H3cellColumn, AddressCountryColumn, AddressLocalityColumn, AddressPostalCodeColumn, AddressRegionColumn, AddressStreetColumn, IsLocationBackyardColumn, IsLocationFrontyardColumn, IsLocationGardenColumn, IsLocationOtherColumn, IsLocationPoolColumn, MapZoomColumn, TodEarlyColumn, TodDayColumn, TodEveningColumn, TodNightColumn, LatlngAccuracyTypeColumn, LatlngAccuracyValueColumn, ReporterContactConsentColumn, LocationColumn, AddressNumberColumn, AddressIDColumn, ReviewedColumn, ReviewerIDColumn}
		mutableColumns               = postgres.ColumnList{AdditionalInfoColumn, CreatedColumn, DurationColumn, SourceContainerColumn, SourceDescriptionColumn, SourceStagnantColumn, PublicIDColumn, ReporterEmailColumn, ReporterNameColumn, ReporterPhoneColumn, AddressRawColumn, StatusColumn, OrganizationIDColumn, SourceGutterColumn, H3cellColumn, AddressCountryColumn, AddressLocalityColumn, AddressPostalCodeColumn, AddressRegionColumn, AddressStreetColumn, IsLocationBackyardColumn, IsLocationFrontyardColumn, IsLocationGardenColumn, IsLocationOtherColumn, IsLocationPoolColumn, MapZoomColumn, TodEarlyColumn, TodDayColumn, TodEveningColumn, TodNightColumn, LatlngAccuracyTypeColumn, LatlngAccuracyValueColumn, ReporterContactConsentColumn, LocationColumn, AddressNumberColumn, AddressIDColumn, ReviewedColumn, ReviewerIDColumn}
		defaultColumns               = postgres.ColumnList{IDColumn}
	)

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

		//Columns
		ID:                     IDColumn,
		AdditionalInfo:         AdditionalInfoColumn,
		Created:                CreatedColumn,
		Duration:               DurationColumn,
		SourceContainer:        SourceContainerColumn,
		SourceDescription:      SourceDescriptionColumn,
		SourceStagnant:         SourceStagnantColumn,
		PublicID:               PublicIDColumn,
		ReporterEmail:          ReporterEmailColumn,
		ReporterName:           ReporterNameColumn,
		ReporterPhone:          ReporterPhoneColumn,
		AddressRaw:             AddressRawColumn,
		Status:                 StatusColumn,
		OrganizationID:         OrganizationIDColumn,
		SourceGutter:           SourceGutterColumn,
		H3cell:                 H3cellColumn,
		AddressCountry:         AddressCountryColumn,
		AddressLocality:        AddressLocalityColumn,
		AddressPostalCode:      AddressPostalCodeColumn,
		AddressRegion:          AddressRegionColumn,
		AddressStreet:          AddressStreetColumn,
		IsLocationBackyard:     IsLocationBackyardColumn,
		IsLocationFrontyard:    IsLocationFrontyardColumn,
		IsLocationGarden:       IsLocationGardenColumn,
		IsLocationOther:        IsLocationOtherColumn,
		IsLocationPool:         IsLocationPoolColumn,
		MapZoom:                MapZoomColumn,
		TodEarly:               TodEarlyColumn,
		TodDay:                 TodDayColumn,
		TodEvening:             TodEveningColumn,
		TodNight:               TodNightColumn,
		LatlngAccuracyType:     LatlngAccuracyTypeColumn,
		LatlngAccuracyValue:    LatlngAccuracyValueColumn,
		ReporterContactConsent: ReporterContactConsentColumn,
		Location:               LocationColumn,
		AddressNumber:          AddressNumberColumn,
		AddressID:              AddressIDColumn,
		Reviewed:               ReviewedColumn,
		ReviewerID:             ReviewerIDColumn,

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