// 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 CommsTextLogs = Table[
	commsTextLogColumns,
	commsTextLogIndexes,
	commsTextLogForeignKeys,
	commsTextLogUniques,
	commsTextLogChecks,
]{
	Schema: "comms",
	Name:   "text_log",
	Columns: commsTextLogColumns{
		Content: column{
			Name:      "content",
			DBType:    "text",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		Created: column{
			Name:      "created",
			DBType:    "timestamp without time zone",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		Destination: column{
			Name:      "destination",
			DBType:    "text",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		ID: column{
			Name:      "id",
			DBType:    "integer",
			Default:   "nextval('comms.text_log_id_seq'::regclass)",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		IsWelcome: column{
			Name:      "is_welcome",
			DBType:    "boolean",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		Origin: column{
			Name:      "origin",
			DBType:    "comms.textorigin",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		Source: column{
			Name:      "source",
			DBType:    "text",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		TwilioSid: column{
			Name:      "twilio_sid",
			DBType:    "text",
			Default:   "NULL",
			Comment:   "",
			Nullable:  true,
			Generated: false,
			AutoIncr:  false,
		},
		TwilioStatus: column{
			Name:      "twilio_status",
			DBType:    "text",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
		IsVisibleToLLM: column{
			Name:      "is_visible_to_llm",
			DBType:    "boolean",
			Default:   "",
			Comment:   "",
			Nullable:  false,
			Generated: false,
			AutoIncr:  false,
		},
	},
	Indexes: commsTextLogIndexes{
		TextLogPkey: index{
			Type: "btree",
			Name: "text_log_pkey",
			Columns: []indexColumn{
				{
					Name:         "id",
					Desc:         null.FromCond(false, true),
					IsExpression: false,
				},
			},
			Unique:        true,
			Comment:       "",
			NullsFirst:    []bool{false},
			NullsDistinct: false,
			Where:         "",
			Include:       []string{},
		},
		TextLogTwilioSidKey: index{
			Type: "btree",
			Name: "text_log_twilio_sid_key",
			Columns: []indexColumn{
				{
					Name:         "twilio_sid",
					Desc:         null.FromCond(false, true),
					IsExpression: false,
				},
			},
			Unique:        true,
			Comment:       "",
			NullsFirst:    []bool{false},
			NullsDistinct: false,
			Where:         "",
			Include:       []string{},
		},
	},
	PrimaryKey: &constraint{
		Name:    "text_log_pkey",
		Columns: []string{"id"},
		Comment: "",
	},
	ForeignKeys: commsTextLogForeignKeys{
		CommsTextLogTextLogDestinationFkey: foreignKey{
			constraint: constraint{
				Name:    "comms.text_log.text_log_destination_fkey",
				Columns: []string{"destination"},
				Comment: "",
			},
			ForeignTable:   "comms.phone",
			ForeignColumns: []string{"e164"},
		},
		CommsTextLogTextLogSourceFkey: foreignKey{
			constraint: constraint{
				Name:    "comms.text_log.text_log_source_fkey",
				Columns: []string{"source"},
				Comment: "",
			},
			ForeignTable:   "comms.phone",
			ForeignColumns: []string{"e164"},
		},
	},
	Uniques: commsTextLogUniques{
		TextLogTwilioSidKey: constraint{
			Name:    "text_log_twilio_sid_key",
			Columns: []string{"twilio_sid"},
			Comment: "",
		},
	},

	Comment: "Used to track text messages that were sent.",
}

type commsTextLogColumns struct {
	Content        column
	Created        column
	Destination    column
	ID             column
	IsWelcome      column
	Origin         column
	Source         column
	TwilioSid      column
	TwilioStatus   column
	IsVisibleToLLM column
}

func (c commsTextLogColumns) AsSlice() []column {
	return []column{
		c.Content, c.Created, c.Destination, c.ID, c.IsWelcome, c.Origin, c.Source, c.TwilioSid, c.TwilioStatus, c.IsVisibleToLLM,
	}
}

type commsTextLogIndexes struct {
	TextLogPkey         index
	TextLogTwilioSidKey index
}

func (i commsTextLogIndexes) AsSlice() []index {
	return []index{
		i.TextLogPkey, i.TextLogTwilioSidKey,
	}
}

type commsTextLogForeignKeys struct {
	CommsTextLogTextLogDestinationFkey foreignKey
	CommsTextLogTextLogSourceFkey      foreignKey
}

func (f commsTextLogForeignKeys) AsSlice() []foreignKey {
	return []foreignKey{
		f.CommsTextLogTextLogDestinationFkey, f.CommsTextLogTextLogSourceFkey,
	}
}

type commsTextLogUniques struct {
	TextLogTwilioSidKey constraint
}

func (u commsTextLogUniques) AsSlice() []constraint {
	return []constraint{
		u.TextLogTwilioSidKey,
	}
}

type commsTextLogChecks struct{}

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