// Code generated by relspecgo. DO NOT EDIT.
package generatedmodels

import (
	"fmt"
	resolvespec_common "github.com/bitechdev/ResolveSpec/pkg/spectypes"
	"github.com/uptrace/bun"
)

type ModelPublicAgentGuardrails struct {
	bun.BaseModel                         `bun:"table:public.agent_guardrails,alias:agent_guardrails"`
	ID                                    resolvespec_common.SqlInt64       `bun:"id,type:bigserial,pk,autoincrement," json:"id"`
	Content                               resolvespec_common.SqlString      `bun:"content,type:text,notnull," json:"content"`
	CreatedAt                             resolvespec_common.SqlTimeStamp   `bun:"created_at,type:timestamptz,default:now(),notnull," json:"created_at"`
	Description                           resolvespec_common.SqlString      `bun:"description,type:text,default:'',notnull," json:"description"`
	GUID                                  resolvespec_common.SqlUUID        `bun:"guid,type:uuid,default:gen_random_uuid(),notnull," json:"guid"`
	Name                                  resolvespec_common.SqlString      `bun:"name,type:text,notnull," json:"name"`
	Severity                              resolvespec_common.SqlString      `bun:"severity,type:text,default:'medium',notnull," json:"severity"`
	Tags                                  resolvespec_common.SqlStringArray `bun:"tags,type:text[],default:'{}',notnull," json:"tags"`
	UpdatedAt                             resolvespec_common.SqlTimeStamp   `bun:"updated_at,type:timestamptz,default:now(),notnull," json:"updated_at"`
	RelGuardrailIDPublicPlanGuardrails    []*ModelPublicPlanGuardrails      `bun:"rel:has-many,join:id=guardrail_id" json:"relguardrailidpublicplanguardrails,omitempty"`    // Has many ModelPublicPlanGuardrails
	RelGuardrailIDPublicProjectGuardrails []*ModelPublicProjectGuardrails   `bun:"rel:has-many,join:id=guardrail_id" json:"relguardrailidpublicprojectguardrails,omitempty"` // Has many ModelPublicProjectGuardrails
}

// TableName returns the table name for ModelPublicAgentGuardrails
func (m ModelPublicAgentGuardrails) TableName() string {
	return "public.agent_guardrails"
}

// TableNameOnly returns the table name without schema for ModelPublicAgentGuardrails
func (m ModelPublicAgentGuardrails) TableNameOnly() string {
	return "agent_guardrails"
}

// SchemaName returns the schema name for ModelPublicAgentGuardrails
func (m ModelPublicAgentGuardrails) SchemaName() string {
	return "public"
}

// GetID returns the primary key value
func (m ModelPublicAgentGuardrails) GetID() int64 {
	return m.ID.Int64()
}

// GetIDStr returns the primary key as a string
func (m ModelPublicAgentGuardrails) GetIDStr() string {
	return fmt.Sprintf("%v", m.ID)
}

// SetID sets the primary key value
func (m ModelPublicAgentGuardrails) SetID(newid int64) {
	m.UpdateID(newid)
}

// UpdateID updates the primary key value
func (m *ModelPublicAgentGuardrails) UpdateID(newid int64) {
	m.ID.FromString(fmt.Sprintf("%d", newid))
}

// GetIDName returns the name of the primary key column
func (m ModelPublicAgentGuardrails) GetIDName() string {
	return "id"
}

// GetPrefix returns the table prefix
func (m ModelPublicAgentGuardrails) GetPrefix() string {
	return "AGG"
}
