//
// 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 WaterOld = newWaterOldTable("publicreport", "water_old", "")

type waterOldTable struct {
	postgres.Table

	// Columns
	ID                     postgres.ColumnInteger
	AccessComments         postgres.ColumnString
	AccessGate             postgres.ColumnBool
	AccessFence            postgres.ColumnBool
	AccessLocked           postgres.ColumnBool
	AccessDog              postgres.ColumnBool
	AccessOther            postgres.ColumnBool
	AddressRaw             postgres.ColumnString
	AddressCountry         postgres.ColumnString
	AddressPostalCode      postgres.ColumnString
	AddressLocality        postgres.ColumnString
	AddressStreet          postgres.ColumnString
	AddressRegion          postgres.ColumnString
	Comments               postgres.ColumnString
	Created                postgres.ColumnTimestamp
	H3cell                 postgres.ColumnString
	HasAdult               postgres.ColumnBool
	HasLarvae              postgres.ColumnBool
	HasPupae               postgres.ColumnBool
	MapZoom                postgres.ColumnFloat
	OwnerEmail             postgres.ColumnString
	OwnerName              postgres.ColumnString
	OwnerPhone             postgres.ColumnString
	PublicID               postgres.ColumnString
	ReporterEmail          postgres.ColumnString
	ReporterName           postgres.ColumnString
	ReporterPhone          postgres.ColumnString
	Status                 postgres.ColumnString
	OrganizationID         postgres.ColumnInteger
	HasBackyardPermission  postgres.ColumnBool
	IsReporterConfidential postgres.ColumnBool
	IsReporterOwner        postgres.ColumnBool
	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 WaterOldTable struct {
	waterOldTable

	EXCLUDED waterOldTable
}

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

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

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

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

func newWaterOldTable(schemaName, tableName, alias string) *WaterOldTable {
	return &WaterOldTable{
		waterOldTable: newWaterOldTableImpl(schemaName, tableName, alias),
		EXCLUDED:      newWaterOldTableImpl("", "excluded", ""),
	}
}

func newWaterOldTableImpl(schemaName, tableName, alias string) waterOldTable {
	var (
		IDColumn                     = postgres.IntegerColumn("id")
		AccessCommentsColumn         = postgres.StringColumn("access_comments")
		AccessGateColumn             = postgres.BoolColumn("access_gate")
		AccessFenceColumn            = postgres.BoolColumn("access_fence")
		AccessLockedColumn           = postgres.BoolColumn("access_locked")
		AccessDogColumn              = postgres.BoolColumn("access_dog")
		AccessOtherColumn            = postgres.BoolColumn("access_other")
		AddressRawColumn             = postgres.StringColumn("address_raw")
		AddressCountryColumn         = postgres.StringColumn("address_country")
		AddressPostalCodeColumn      = postgres.StringColumn("address_postal_code")
		AddressLocalityColumn        = postgres.StringColumn("address_locality")
		AddressStreetColumn          = postgres.StringColumn("address_street")
		AddressRegionColumn          = postgres.StringColumn("address_region")
		CommentsColumn               = postgres.StringColumn("comments")
		CreatedColumn                = postgres.TimestampColumn("created")
		H3cellColumn                 = postgres.StringColumn("h3cell")
		HasAdultColumn               = postgres.BoolColumn("has_adult")
		HasLarvaeColumn              = postgres.BoolColumn("has_larvae")
		HasPupaeColumn               = postgres.BoolColumn("has_pupae")
		MapZoomColumn                = postgres.FloatColumn("map_zoom")
		OwnerEmailColumn             = postgres.StringColumn("owner_email")
		OwnerNameColumn              = postgres.StringColumn("owner_name")
		OwnerPhoneColumn             = postgres.StringColumn("owner_phone")
		PublicIDColumn               = postgres.StringColumn("public_id")
		ReporterEmailColumn          = postgres.StringColumn("reporter_email")
		ReporterNameColumn           = postgres.StringColumn("reporter_name")
		ReporterPhoneColumn          = postgres.StringColumn("reporter_phone")
		StatusColumn                 = postgres.StringColumn("status")
		OrganizationIDColumn         = postgres.IntegerColumn("organization_id")
		HasBackyardPermissionColumn  = postgres.BoolColumn("has_backyard_permission")
		IsReporterConfidentialColumn = postgres.BoolColumn("is_reporter_confidential")
		IsReporterOwnerColumn        = postgres.BoolColumn("is_reporter_owner")
		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, AccessCommentsColumn, AccessGateColumn, AccessFenceColumn, AccessLockedColumn, AccessDogColumn, AccessOtherColumn, AddressRawColumn, AddressCountryColumn, AddressPostalCodeColumn, AddressLocalityColumn, AddressStreetColumn, AddressRegionColumn, CommentsColumn, CreatedColumn, H3cellColumn, HasAdultColumn, HasLarvaeColumn, HasPupaeColumn, MapZoomColumn, OwnerEmailColumn, OwnerNameColumn, OwnerPhoneColumn, PublicIDColumn, ReporterEmailColumn, ReporterNameColumn, ReporterPhoneColumn, StatusColumn, OrganizationIDColumn, HasBackyardPermissionColumn, IsReporterConfidentialColumn, IsReporterOwnerColumn, ReporterContactConsentColumn, LocationColumn, AddressNumberColumn, AddressIDColumn, ReviewedColumn, ReviewerIDColumn}
		mutableColumns               = postgres.ColumnList{AccessCommentsColumn, AccessGateColumn, AccessFenceColumn, AccessLockedColumn, AccessDogColumn, AccessOtherColumn, AddressRawColumn, AddressCountryColumn, AddressPostalCodeColumn, AddressLocalityColumn, AddressStreetColumn, AddressRegionColumn, CommentsColumn, CreatedColumn, H3cellColumn, HasAdultColumn, HasLarvaeColumn, HasPupaeColumn, MapZoomColumn, OwnerEmailColumn, OwnerNameColumn, OwnerPhoneColumn, PublicIDColumn, ReporterEmailColumn, ReporterNameColumn, ReporterPhoneColumn, StatusColumn, OrganizationIDColumn, HasBackyardPermissionColumn, IsReporterConfidentialColumn, IsReporterOwnerColumn, ReporterContactConsentColumn, LocationColumn, AddressNumberColumn, AddressIDColumn, ReviewedColumn, ReviewerIDColumn}
		defaultColumns               = postgres.ColumnList{IDColumn}
	)

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

		//Columns
		ID:                     IDColumn,
		AccessComments:         AccessCommentsColumn,
		AccessGate:             AccessGateColumn,
		AccessFence:            AccessFenceColumn,
		AccessLocked:           AccessLockedColumn,
		AccessDog:              AccessDogColumn,
		AccessOther:            AccessOtherColumn,
		AddressRaw:             AddressRawColumn,
		AddressCountry:         AddressCountryColumn,
		AddressPostalCode:      AddressPostalCodeColumn,
		AddressLocality:        AddressLocalityColumn,
		AddressStreet:          AddressStreetColumn,
		AddressRegion:          AddressRegionColumn,
		Comments:               CommentsColumn,
		Created:                CreatedColumn,
		H3cell:                 H3cellColumn,
		HasAdult:               HasAdultColumn,
		HasLarvae:              HasLarvaeColumn,
		HasPupae:               HasPupaeColumn,
		MapZoom:                MapZoomColumn,
		OwnerEmail:             OwnerEmailColumn,
		OwnerName:              OwnerNameColumn,
		OwnerPhone:             OwnerPhoneColumn,
		PublicID:               PublicIDColumn,
		ReporterEmail:          ReporterEmailColumn,
		ReporterName:           ReporterNameColumn,
		ReporterPhone:          ReporterPhoneColumn,
		Status:                 StatusColumn,
		OrganizationID:         OrganizationIDColumn,
		HasBackyardPermission:  HasBackyardPermissionColumn,
		IsReporterConfidential: IsReporterConfidentialColumn,
		IsReporterOwner:        IsReporterOwnerColumn,
		ReporterContactConsent: ReporterContactConsentColumn,
		Location:               LocationColumn,
		AddressNumber:          AddressNumberColumn,
		AddressID:              AddressIDColumn,
		Reviewed:               ReviewedColumn,
		ReviewerID:             ReviewerIDColumn,

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