// 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 factory

import (
	"context"
	"testing"
	"time"

	"github.com/Gleipnir-Technology/bob"
	enums "github.com/Gleipnir-Technology/nidus-sync/db/enums"
	models "github.com/Gleipnir-Technology/nidus-sync/db/models"
	"github.com/aarondl/opt/null"
	"github.com/aarondl/opt/omit"
	"github.com/aarondl/opt/omitnull"
	"github.com/jaswdr/faker/v2"
)

type PublicreportNuisanceMod interface {
	Apply(context.Context, *PublicreportNuisanceTemplate)
}

type PublicreportNuisanceModFunc func(context.Context, *PublicreportNuisanceTemplate)

func (f PublicreportNuisanceModFunc) Apply(ctx context.Context, n *PublicreportNuisanceTemplate) {
	f(ctx, n)
}

type PublicreportNuisanceModSlice []PublicreportNuisanceMod

func (mods PublicreportNuisanceModSlice) Apply(ctx context.Context, n *PublicreportNuisanceTemplate) {
	for _, f := range mods {
		f.Apply(ctx, n)
	}
}

// PublicreportNuisanceTemplate is an object representing the database table.
// all columns are optional and should be set by mods
type PublicreportNuisanceTemplate struct {
	ID                     func() int32
	AdditionalInfo         func() string
	Created                func() time.Time
	Duration               func() enums.PublicreportNuisancedurationtype
	SourceContainer        func() bool
	SourceDescription      func() string
	SourceStagnant         func() bool
	PublicID               func() string
	ReporterEmail          func() null.Val[string]
	ReporterName           func() null.Val[string]
	ReporterPhone          func() null.Val[string]
	Address                func() string
	Location               func() null.Val[string]
	Status                 func() enums.PublicreportReportstatustype
	OrganizationID         func() null.Val[int32]
	SourceGutter           func() bool
	H3cell                 func() null.Val[string]
	AddressCountry         func() string
	AddressPlace           func() string
	AddressPostcode        func() string
	AddressRegion          func() string
	AddressStreet          func() string
	IsLocationBackyard     func() bool
	IsLocationFrontyard    func() bool
	IsLocationGarden       func() bool
	IsLocationOther        func() bool
	IsLocationPool         func() bool
	MapZoom                func() float32
	TodEarly               func() bool
	TodDay                 func() bool
	TodEvening             func() bool
	TodNight               func() bool
	LatlngAccuracyType     func() enums.PublicreportAccuracytype
	LatlngAccuracyValue    func() float32
	ReporterContactConsent func() null.Val[bool]

	r publicreportNuisanceR
	f *Factory

	alreadyPersisted bool
}

type publicreportNuisanceR struct {
	NotifyEmailNuisances []*publicreportNuisanceRNotifyEmailNuisancesR
	NotifyPhoneNuisances []*publicreportNuisanceRNotifyPhoneNuisancesR
	Organization         *publicreportNuisanceROrganizationR
	Images               []*publicreportNuisanceRImagesR
}

type publicreportNuisanceRNotifyEmailNuisancesR struct {
	number int
	o      *PublicreportNotifyEmailNuisanceTemplate
}
type publicreportNuisanceRNotifyPhoneNuisancesR struct {
	number int
	o      *PublicreportNotifyPhoneNuisanceTemplate
}
type publicreportNuisanceROrganizationR struct {
	o *OrganizationTemplate
}
type publicreportNuisanceRImagesR struct {
	number int
	o      *PublicreportImageTemplate
}

// Apply mods to the PublicreportNuisanceTemplate
func (o *PublicreportNuisanceTemplate) Apply(ctx context.Context, mods ...PublicreportNuisanceMod) {
	for _, mod := range mods {
		mod.Apply(ctx, o)
	}
}

// setModelRels creates and sets the relationships on *models.PublicreportNuisance
// according to the relationships in the template. Nothing is inserted into the db
func (t PublicreportNuisanceTemplate) setModelRels(o *models.PublicreportNuisance) {
	if t.r.NotifyEmailNuisances != nil {
		rel := models.PublicreportNotifyEmailNuisanceSlice{}
		for _, r := range t.r.NotifyEmailNuisances {
			related := r.o.BuildMany(r.number)
			for _, rel := range related {
				rel.NuisanceID = o.ID // h2
				rel.R.Nuisance = o
			}
			rel = append(rel, related...)
		}
		o.R.NotifyEmailNuisances = rel
	}

	if t.r.NotifyPhoneNuisances != nil {
		rel := models.PublicreportNotifyPhoneNuisanceSlice{}
		for _, r := range t.r.NotifyPhoneNuisances {
			related := r.o.BuildMany(r.number)
			for _, rel := range related {
				rel.NuisanceID = o.ID // h2
				rel.R.Nuisance = o
			}
			rel = append(rel, related...)
		}
		o.R.NotifyPhoneNuisances = rel
	}

	if t.r.Organization != nil {
		rel := t.r.Organization.o.Build()
		rel.R.Nuisances = append(rel.R.Nuisances, o)
		o.OrganizationID = null.From(rel.ID) // h2
		o.R.Organization = rel
	}

	if t.r.Images != nil {
		rel := models.PublicreportImageSlice{}
		for _, r := range t.r.Images {
			related := r.o.BuildMany(r.number)
			for _, rel := range related {
				rel.R.Nuisances = append(rel.R.Nuisances, o)
			}
			rel = append(rel, related...)
		}
		o.R.Images = rel
	}
}

// BuildSetter returns an *models.PublicreportNuisanceSetter
// this does nothing with the relationship templates
func (o PublicreportNuisanceTemplate) BuildSetter() *models.PublicreportNuisanceSetter {
	m := &models.PublicreportNuisanceSetter{}

	if o.ID != nil {
		val := o.ID()
		m.ID = omit.From(val)
	}
	if o.AdditionalInfo != nil {
		val := o.AdditionalInfo()
		m.AdditionalInfo = omit.From(val)
	}
	if o.Created != nil {
		val := o.Created()
		m.Created = omit.From(val)
	}
	if o.Duration != nil {
		val := o.Duration()
		m.Duration = omit.From(val)
	}
	if o.SourceContainer != nil {
		val := o.SourceContainer()
		m.SourceContainer = omit.From(val)
	}
	if o.SourceDescription != nil {
		val := o.SourceDescription()
		m.SourceDescription = omit.From(val)
	}
	if o.SourceStagnant != nil {
		val := o.SourceStagnant()
		m.SourceStagnant = omit.From(val)
	}
	if o.PublicID != nil {
		val := o.PublicID()
		m.PublicID = omit.From(val)
	}
	if o.ReporterEmail != nil {
		val := o.ReporterEmail()
		m.ReporterEmail = omitnull.FromNull(val)
	}
	if o.ReporterName != nil {
		val := o.ReporterName()
		m.ReporterName = omitnull.FromNull(val)
	}
	if o.ReporterPhone != nil {
		val := o.ReporterPhone()
		m.ReporterPhone = omitnull.FromNull(val)
	}
	if o.Address != nil {
		val := o.Address()
		m.Address = omit.From(val)
	}
	if o.Location != nil {
		val := o.Location()
		m.Location = omitnull.FromNull(val)
	}
	if o.Status != nil {
		val := o.Status()
		m.Status = omit.From(val)
	}
	if o.OrganizationID != nil {
		val := o.OrganizationID()
		m.OrganizationID = omitnull.FromNull(val)
	}
	if o.SourceGutter != nil {
		val := o.SourceGutter()
		m.SourceGutter = omit.From(val)
	}
	if o.H3cell != nil {
		val := o.H3cell()
		m.H3cell = omitnull.FromNull(val)
	}
	if o.AddressCountry != nil {
		val := o.AddressCountry()
		m.AddressCountry = omit.From(val)
	}
	if o.AddressPlace != nil {
		val := o.AddressPlace()
		m.AddressPlace = omit.From(val)
	}
	if o.AddressPostcode != nil {
		val := o.AddressPostcode()
		m.AddressPostcode = omit.From(val)
	}
	if o.AddressRegion != nil {
		val := o.AddressRegion()
		m.AddressRegion = omit.From(val)
	}
	if o.AddressStreet != nil {
		val := o.AddressStreet()
		m.AddressStreet = omit.From(val)
	}
	if o.IsLocationBackyard != nil {
		val := o.IsLocationBackyard()
		m.IsLocationBackyard = omit.From(val)
	}
	if o.IsLocationFrontyard != nil {
		val := o.IsLocationFrontyard()
		m.IsLocationFrontyard = omit.From(val)
	}
	if o.IsLocationGarden != nil {
		val := o.IsLocationGarden()
		m.IsLocationGarden = omit.From(val)
	}
	if o.IsLocationOther != nil {
		val := o.IsLocationOther()
		m.IsLocationOther = omit.From(val)
	}
	if o.IsLocationPool != nil {
		val := o.IsLocationPool()
		m.IsLocationPool = omit.From(val)
	}
	if o.MapZoom != nil {
		val := o.MapZoom()
		m.MapZoom = omit.From(val)
	}
	if o.TodEarly != nil {
		val := o.TodEarly()
		m.TodEarly = omit.From(val)
	}
	if o.TodDay != nil {
		val := o.TodDay()
		m.TodDay = omit.From(val)
	}
	if o.TodEvening != nil {
		val := o.TodEvening()
		m.TodEvening = omit.From(val)
	}
	if o.TodNight != nil {
		val := o.TodNight()
		m.TodNight = omit.From(val)
	}
	if o.LatlngAccuracyType != nil {
		val := o.LatlngAccuracyType()
		m.LatlngAccuracyType = omit.From(val)
	}
	if o.LatlngAccuracyValue != nil {
		val := o.LatlngAccuracyValue()
		m.LatlngAccuracyValue = omit.From(val)
	}
	if o.ReporterContactConsent != nil {
		val := o.ReporterContactConsent()
		m.ReporterContactConsent = omitnull.FromNull(val)
	}

	return m
}

// BuildManySetter returns an []*models.PublicreportNuisanceSetter
// this does nothing with the relationship templates
func (o PublicreportNuisanceTemplate) BuildManySetter(number int) []*models.PublicreportNuisanceSetter {
	m := make([]*models.PublicreportNuisanceSetter, number)

	for i := range m {
		m[i] = o.BuildSetter()
	}

	return m
}

// Build returns an *models.PublicreportNuisance
// Related objects are also created and placed in the .R field
// NOTE: Objects are not inserted into the database. Use PublicreportNuisanceTemplate.Create
func (o PublicreportNuisanceTemplate) Build() *models.PublicreportNuisance {
	m := &models.PublicreportNuisance{}

	if o.ID != nil {
		m.ID = o.ID()
	}
	if o.AdditionalInfo != nil {
		m.AdditionalInfo = o.AdditionalInfo()
	}
	if o.Created != nil {
		m.Created = o.Created()
	}
	if o.Duration != nil {
		m.Duration = o.Duration()
	}
	if o.SourceContainer != nil {
		m.SourceContainer = o.SourceContainer()
	}
	if o.SourceDescription != nil {
		m.SourceDescription = o.SourceDescription()
	}
	if o.SourceStagnant != nil {
		m.SourceStagnant = o.SourceStagnant()
	}
	if o.PublicID != nil {
		m.PublicID = o.PublicID()
	}
	if o.ReporterEmail != nil {
		m.ReporterEmail = o.ReporterEmail()
	}
	if o.ReporterName != nil {
		m.ReporterName = o.ReporterName()
	}
	if o.ReporterPhone != nil {
		m.ReporterPhone = o.ReporterPhone()
	}
	if o.Address != nil {
		m.Address = o.Address()
	}
	if o.Location != nil {
		m.Location = o.Location()
	}
	if o.Status != nil {
		m.Status = o.Status()
	}
	if o.OrganizationID != nil {
		m.OrganizationID = o.OrganizationID()
	}
	if o.SourceGutter != nil {
		m.SourceGutter = o.SourceGutter()
	}
	if o.H3cell != nil {
		m.H3cell = o.H3cell()
	}
	if o.AddressCountry != nil {
		m.AddressCountry = o.AddressCountry()
	}
	if o.AddressPlace != nil {
		m.AddressPlace = o.AddressPlace()
	}
	if o.AddressPostcode != nil {
		m.AddressPostcode = o.AddressPostcode()
	}
	if o.AddressRegion != nil {
		m.AddressRegion = o.AddressRegion()
	}
	if o.AddressStreet != nil {
		m.AddressStreet = o.AddressStreet()
	}
	if o.IsLocationBackyard != nil {
		m.IsLocationBackyard = o.IsLocationBackyard()
	}
	if o.IsLocationFrontyard != nil {
		m.IsLocationFrontyard = o.IsLocationFrontyard()
	}
	if o.IsLocationGarden != nil {
		m.IsLocationGarden = o.IsLocationGarden()
	}
	if o.IsLocationOther != nil {
		m.IsLocationOther = o.IsLocationOther()
	}
	if o.IsLocationPool != nil {
		m.IsLocationPool = o.IsLocationPool()
	}
	if o.MapZoom != nil {
		m.MapZoom = o.MapZoom()
	}
	if o.TodEarly != nil {
		m.TodEarly = o.TodEarly()
	}
	if o.TodDay != nil {
		m.TodDay = o.TodDay()
	}
	if o.TodEvening != nil {
		m.TodEvening = o.TodEvening()
	}
	if o.TodNight != nil {
		m.TodNight = o.TodNight()
	}
	if o.LatlngAccuracyType != nil {
		m.LatlngAccuracyType = o.LatlngAccuracyType()
	}
	if o.LatlngAccuracyValue != nil {
		m.LatlngAccuracyValue = o.LatlngAccuracyValue()
	}
	if o.ReporterContactConsent != nil {
		m.ReporterContactConsent = o.ReporterContactConsent()
	}

	o.setModelRels(m)

	return m
}

// BuildMany returns an models.PublicreportNuisanceSlice
// Related objects are also created and placed in the .R field
// NOTE: Objects are not inserted into the database. Use PublicreportNuisanceTemplate.CreateMany
func (o PublicreportNuisanceTemplate) BuildMany(number int) models.PublicreportNuisanceSlice {
	m := make(models.PublicreportNuisanceSlice, number)

	for i := range m {
		m[i] = o.Build()
	}

	return m
}

func ensureCreatablePublicreportNuisance(m *models.PublicreportNuisanceSetter) {
	if !(m.AdditionalInfo.IsValue()) {
		val := random_string(nil)
		m.AdditionalInfo = omit.From(val)
	}
	if !(m.Created.IsValue()) {
		val := random_time_Time(nil)
		m.Created = omit.From(val)
	}
	if !(m.Duration.IsValue()) {
		val := random_enums_PublicreportNuisancedurationtype(nil)
		m.Duration = omit.From(val)
	}
	if !(m.SourceContainer.IsValue()) {
		val := random_bool(nil)
		m.SourceContainer = omit.From(val)
	}
	if !(m.SourceDescription.IsValue()) {
		val := random_string(nil)
		m.SourceDescription = omit.From(val)
	}
	if !(m.SourceStagnant.IsValue()) {
		val := random_bool(nil)
		m.SourceStagnant = omit.From(val)
	}
	if !(m.PublicID.IsValue()) {
		val := random_string(nil)
		m.PublicID = omit.From(val)
	}
	if !(m.Address.IsValue()) {
		val := random_string(nil)
		m.Address = omit.From(val)
	}
	if !(m.Status.IsValue()) {
		val := random_enums_PublicreportReportstatustype(nil)
		m.Status = omit.From(val)
	}
	if !(m.SourceGutter.IsValue()) {
		val := random_bool(nil)
		m.SourceGutter = omit.From(val)
	}
	if !(m.AddressCountry.IsValue()) {
		val := random_string(nil)
		m.AddressCountry = omit.From(val)
	}
	if !(m.AddressPlace.IsValue()) {
		val := random_string(nil)
		m.AddressPlace = omit.From(val)
	}
	if !(m.AddressPostcode.IsValue()) {
		val := random_string(nil)
		m.AddressPostcode = omit.From(val)
	}
	if !(m.AddressRegion.IsValue()) {
		val := random_string(nil)
		m.AddressRegion = omit.From(val)
	}
	if !(m.AddressStreet.IsValue()) {
		val := random_string(nil)
		m.AddressStreet = omit.From(val)
	}
	if !(m.IsLocationBackyard.IsValue()) {
		val := random_bool(nil)
		m.IsLocationBackyard = omit.From(val)
	}
	if !(m.IsLocationFrontyard.IsValue()) {
		val := random_bool(nil)
		m.IsLocationFrontyard = omit.From(val)
	}
	if !(m.IsLocationGarden.IsValue()) {
		val := random_bool(nil)
		m.IsLocationGarden = omit.From(val)
	}
	if !(m.IsLocationOther.IsValue()) {
		val := random_bool(nil)
		m.IsLocationOther = omit.From(val)
	}
	if !(m.IsLocationPool.IsValue()) {
		val := random_bool(nil)
		m.IsLocationPool = omit.From(val)
	}
	if !(m.MapZoom.IsValue()) {
		val := random_float32(nil)
		m.MapZoom = omit.From(val)
	}
	if !(m.TodEarly.IsValue()) {
		val := random_bool(nil)
		m.TodEarly = omit.From(val)
	}
	if !(m.TodDay.IsValue()) {
		val := random_bool(nil)
		m.TodDay = omit.From(val)
	}
	if !(m.TodEvening.IsValue()) {
		val := random_bool(nil)
		m.TodEvening = omit.From(val)
	}
	if !(m.TodNight.IsValue()) {
		val := random_bool(nil)
		m.TodNight = omit.From(val)
	}
	if !(m.LatlngAccuracyType.IsValue()) {
		val := random_enums_PublicreportAccuracytype(nil)
		m.LatlngAccuracyType = omit.From(val)
	}
	if !(m.LatlngAccuracyValue.IsValue()) {
		val := random_float32(nil)
		m.LatlngAccuracyValue = omit.From(val)
	}
}

// insertOptRels creates and inserts any optional the relationships on *models.PublicreportNuisance
// according to the relationships in the template.
// any required relationship should have already exist on the model
func (o *PublicreportNuisanceTemplate) insertOptRels(ctx context.Context, exec bob.Executor, m *models.PublicreportNuisance) error {
	var err error

	isNotifyEmailNuisancesDone, _ := publicreportNuisanceRelNotifyEmailNuisancesCtx.Value(ctx)
	if !isNotifyEmailNuisancesDone && o.r.NotifyEmailNuisances != nil {
		ctx = publicreportNuisanceRelNotifyEmailNuisancesCtx.WithValue(ctx, true)
		for _, r := range o.r.NotifyEmailNuisances {
			if r.o.alreadyPersisted {
				m.R.NotifyEmailNuisances = append(m.R.NotifyEmailNuisances, r.o.Build())
			} else {
				rel0, err := r.o.CreateMany(ctx, exec, r.number)
				if err != nil {
					return err
				}

				err = m.AttachNotifyEmailNuisances(ctx, exec, rel0...)
				if err != nil {
					return err
				}
			}
		}
	}

	isNotifyPhoneNuisancesDone, _ := publicreportNuisanceRelNotifyPhoneNuisancesCtx.Value(ctx)
	if !isNotifyPhoneNuisancesDone && o.r.NotifyPhoneNuisances != nil {
		ctx = publicreportNuisanceRelNotifyPhoneNuisancesCtx.WithValue(ctx, true)
		for _, r := range o.r.NotifyPhoneNuisances {
			if r.o.alreadyPersisted {
				m.R.NotifyPhoneNuisances = append(m.R.NotifyPhoneNuisances, r.o.Build())
			} else {
				rel1, err := r.o.CreateMany(ctx, exec, r.number)
				if err != nil {
					return err
				}

				err = m.AttachNotifyPhoneNuisances(ctx, exec, rel1...)
				if err != nil {
					return err
				}
			}
		}
	}

	isOrganizationDone, _ := publicreportNuisanceRelOrganizationCtx.Value(ctx)
	if !isOrganizationDone && o.r.Organization != nil {
		ctx = publicreportNuisanceRelOrganizationCtx.WithValue(ctx, true)
		if o.r.Organization.o.alreadyPersisted {
			m.R.Organization = o.r.Organization.o.Build()
		} else {
			var rel2 *models.Organization
			rel2, err = o.r.Organization.o.Create(ctx, exec)
			if err != nil {
				return err
			}
			err = m.AttachOrganization(ctx, exec, rel2)
			if err != nil {
				return err
			}
		}

	}

	isImagesDone, _ := publicreportNuisanceRelImagesCtx.Value(ctx)
	if !isImagesDone && o.r.Images != nil {
		ctx = publicreportNuisanceRelImagesCtx.WithValue(ctx, true)
		for _, r := range o.r.Images {
			if r.o.alreadyPersisted {
				m.R.Images = append(m.R.Images, r.o.Build())
			} else {
				rel3, err := r.o.CreateMany(ctx, exec, r.number)
				if err != nil {
					return err
				}

				err = m.AttachImages(ctx, exec, rel3...)
				if err != nil {
					return err
				}
			}
		}
	}

	return err
}

// Create builds a publicreportNuisance and inserts it into the database
// Relations objects are also inserted and placed in the .R field
func (o *PublicreportNuisanceTemplate) Create(ctx context.Context, exec bob.Executor) (*models.PublicreportNuisance, error) {
	var err error
	opt := o.BuildSetter()
	ensureCreatablePublicreportNuisance(opt)

	m, err := models.PublicreportNuisances.Insert(opt).One(ctx, exec)
	if err != nil {
		return nil, err
	}

	if err := o.insertOptRels(ctx, exec, m); err != nil {
		return nil, err
	}
	return m, err
}

// MustCreate builds a publicreportNuisance and inserts it into the database
// Relations objects are also inserted and placed in the .R field
// panics if an error occurs
func (o *PublicreportNuisanceTemplate) MustCreate(ctx context.Context, exec bob.Executor) *models.PublicreportNuisance {
	m, err := o.Create(ctx, exec)
	if err != nil {
		panic(err)
	}
	return m
}

// CreateOrFail builds a publicreportNuisance and inserts it into the database
// Relations objects are also inserted and placed in the .R field
// It calls `tb.Fatal(err)` on the test/benchmark if an error occurs
func (o *PublicreportNuisanceTemplate) CreateOrFail(ctx context.Context, tb testing.TB, exec bob.Executor) *models.PublicreportNuisance {
	tb.Helper()
	m, err := o.Create(ctx, exec)
	if err != nil {
		tb.Fatal(err)
		return nil
	}
	return m
}

// CreateMany builds multiple publicreportNuisances and inserts them into the database
// Relations objects are also inserted and placed in the .R field
func (o PublicreportNuisanceTemplate) CreateMany(ctx context.Context, exec bob.Executor, number int) (models.PublicreportNuisanceSlice, error) {
	var err error
	m := make(models.PublicreportNuisanceSlice, number)

	for i := range m {
		m[i], err = o.Create(ctx, exec)
		if err != nil {
			return nil, err
		}
	}

	return m, nil
}

// MustCreateMany builds multiple publicreportNuisances and inserts them into the database
// Relations objects are also inserted and placed in the .R field
// panics if an error occurs
func (o PublicreportNuisanceTemplate) MustCreateMany(ctx context.Context, exec bob.Executor, number int) models.PublicreportNuisanceSlice {
	m, err := o.CreateMany(ctx, exec, number)
	if err != nil {
		panic(err)
	}
	return m
}

// CreateManyOrFail builds multiple publicreportNuisances and inserts them into the database
// Relations objects are also inserted and placed in the .R field
// It calls `tb.Fatal(err)` on the test/benchmark if an error occurs
func (o PublicreportNuisanceTemplate) CreateManyOrFail(ctx context.Context, tb testing.TB, exec bob.Executor, number int) models.PublicreportNuisanceSlice {
	tb.Helper()
	m, err := o.CreateMany(ctx, exec, number)
	if err != nil {
		tb.Fatal(err)
		return nil
	}
	return m
}

// PublicreportNuisance has methods that act as mods for the PublicreportNuisanceTemplate
var PublicreportNuisanceMods publicreportNuisanceMods

type publicreportNuisanceMods struct{}

func (m publicreportNuisanceMods) RandomizeAllColumns(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModSlice{
		PublicreportNuisanceMods.RandomID(f),
		PublicreportNuisanceMods.RandomAdditionalInfo(f),
		PublicreportNuisanceMods.RandomCreated(f),
		PublicreportNuisanceMods.RandomDuration(f),
		PublicreportNuisanceMods.RandomSourceContainer(f),
		PublicreportNuisanceMods.RandomSourceDescription(f),
		PublicreportNuisanceMods.RandomSourceStagnant(f),
		PublicreportNuisanceMods.RandomPublicID(f),
		PublicreportNuisanceMods.RandomReporterEmail(f),
		PublicreportNuisanceMods.RandomReporterName(f),
		PublicreportNuisanceMods.RandomReporterPhone(f),
		PublicreportNuisanceMods.RandomAddress(f),
		PublicreportNuisanceMods.RandomLocation(f),
		PublicreportNuisanceMods.RandomStatus(f),
		PublicreportNuisanceMods.RandomOrganizationID(f),
		PublicreportNuisanceMods.RandomSourceGutter(f),
		PublicreportNuisanceMods.RandomH3cell(f),
		PublicreportNuisanceMods.RandomAddressCountry(f),
		PublicreportNuisanceMods.RandomAddressPlace(f),
		PublicreportNuisanceMods.RandomAddressPostcode(f),
		PublicreportNuisanceMods.RandomAddressRegion(f),
		PublicreportNuisanceMods.RandomAddressStreet(f),
		PublicreportNuisanceMods.RandomIsLocationBackyard(f),
		PublicreportNuisanceMods.RandomIsLocationFrontyard(f),
		PublicreportNuisanceMods.RandomIsLocationGarden(f),
		PublicreportNuisanceMods.RandomIsLocationOther(f),
		PublicreportNuisanceMods.RandomIsLocationPool(f),
		PublicreportNuisanceMods.RandomMapZoom(f),
		PublicreportNuisanceMods.RandomTodEarly(f),
		PublicreportNuisanceMods.RandomTodDay(f),
		PublicreportNuisanceMods.RandomTodEvening(f),
		PublicreportNuisanceMods.RandomTodNight(f),
		PublicreportNuisanceMods.RandomLatlngAccuracyType(f),
		PublicreportNuisanceMods.RandomLatlngAccuracyValue(f),
		PublicreportNuisanceMods.RandomReporterContactConsent(f),
	}
}

// Set the model columns to this value
func (m publicreportNuisanceMods) ID(val int32) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ID = func() int32 { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) IDFunc(f func() int32) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ID = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetID() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ID = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomID(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ID = func() int32 {
			return random_int32(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) AdditionalInfo(val string) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AdditionalInfo = func() string { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) AdditionalInfoFunc(f func() string) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AdditionalInfo = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetAdditionalInfo() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AdditionalInfo = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomAdditionalInfo(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AdditionalInfo = func() string {
			return random_string(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) Created(val time.Time) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Created = func() time.Time { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) CreatedFunc(f func() time.Time) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Created = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetCreated() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Created = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomCreated(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Created = func() time.Time {
			return random_time_Time(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) Duration(val enums.PublicreportNuisancedurationtype) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Duration = func() enums.PublicreportNuisancedurationtype { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) DurationFunc(f func() enums.PublicreportNuisancedurationtype) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Duration = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetDuration() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Duration = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomDuration(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Duration = func() enums.PublicreportNuisancedurationtype {
			return random_enums_PublicreportNuisancedurationtype(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) SourceContainer(val bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.SourceContainer = func() bool { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) SourceContainerFunc(f func() bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.SourceContainer = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetSourceContainer() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.SourceContainer = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomSourceContainer(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.SourceContainer = func() bool {
			return random_bool(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) SourceDescription(val string) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.SourceDescription = func() string { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) SourceDescriptionFunc(f func() string) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.SourceDescription = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetSourceDescription() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.SourceDescription = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomSourceDescription(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.SourceDescription = func() string {
			return random_string(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) SourceStagnant(val bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.SourceStagnant = func() bool { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) SourceStagnantFunc(f func() bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.SourceStagnant = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetSourceStagnant() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.SourceStagnant = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomSourceStagnant(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.SourceStagnant = func() bool {
			return random_bool(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) PublicID(val string) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.PublicID = func() string { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) PublicIDFunc(f func() string) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.PublicID = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetPublicID() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.PublicID = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomPublicID(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.PublicID = func() string {
			return random_string(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) ReporterEmail(val null.Val[string]) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterEmail = func() null.Val[string] { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) ReporterEmailFunc(f func() null.Val[string]) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterEmail = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetReporterEmail() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterEmail = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
// The generated value is sometimes null
func (m publicreportNuisanceMods) RandomReporterEmail(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterEmail = func() null.Val[string] {
			if f == nil {
				f = &defaultFaker
			}

			val := random_string(f)
			return null.From(val)
		}
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
// The generated value is never null
func (m publicreportNuisanceMods) RandomReporterEmailNotNull(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterEmail = func() null.Val[string] {
			if f == nil {
				f = &defaultFaker
			}

			val := random_string(f)
			return null.From(val)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) ReporterName(val null.Val[string]) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterName = func() null.Val[string] { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) ReporterNameFunc(f func() null.Val[string]) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterName = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetReporterName() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterName = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
// The generated value is sometimes null
func (m publicreportNuisanceMods) RandomReporterName(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterName = func() null.Val[string] {
			if f == nil {
				f = &defaultFaker
			}

			val := random_string(f)
			return null.From(val)
		}
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
// The generated value is never null
func (m publicreportNuisanceMods) RandomReporterNameNotNull(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterName = func() null.Val[string] {
			if f == nil {
				f = &defaultFaker
			}

			val := random_string(f)
			return null.From(val)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) ReporterPhone(val null.Val[string]) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterPhone = func() null.Val[string] { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) ReporterPhoneFunc(f func() null.Val[string]) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterPhone = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetReporterPhone() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterPhone = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
// The generated value is sometimes null
func (m publicreportNuisanceMods) RandomReporterPhone(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterPhone = func() null.Val[string] {
			if f == nil {
				f = &defaultFaker
			}

			val := random_string(f)
			return null.From(val)
		}
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
// The generated value is never null
func (m publicreportNuisanceMods) RandomReporterPhoneNotNull(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterPhone = func() null.Val[string] {
			if f == nil {
				f = &defaultFaker
			}

			val := random_string(f)
			return null.From(val)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) Address(val string) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Address = func() string { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) AddressFunc(f func() string) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Address = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetAddress() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Address = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomAddress(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Address = func() string {
			return random_string(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) Location(val null.Val[string]) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Location = func() null.Val[string] { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) LocationFunc(f func() null.Val[string]) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Location = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetLocation() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Location = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
// The generated value is sometimes null
func (m publicreportNuisanceMods) RandomLocation(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Location = func() null.Val[string] {
			if f == nil {
				f = &defaultFaker
			}

			val := random_string(f)
			return null.From(val)
		}
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
// The generated value is never null
func (m publicreportNuisanceMods) RandomLocationNotNull(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Location = func() null.Val[string] {
			if f == nil {
				f = &defaultFaker
			}

			val := random_string(f)
			return null.From(val)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) Status(val enums.PublicreportReportstatustype) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Status = func() enums.PublicreportReportstatustype { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) StatusFunc(f func() enums.PublicreportReportstatustype) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Status = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetStatus() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Status = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomStatus(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.Status = func() enums.PublicreportReportstatustype {
			return random_enums_PublicreportReportstatustype(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) OrganizationID(val null.Val[int32]) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.OrganizationID = func() null.Val[int32] { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) OrganizationIDFunc(f func() null.Val[int32]) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.OrganizationID = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetOrganizationID() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.OrganizationID = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
// The generated value is sometimes null
func (m publicreportNuisanceMods) RandomOrganizationID(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.OrganizationID = func() null.Val[int32] {
			if f == nil {
				f = &defaultFaker
			}

			val := random_int32(f)
			return null.From(val)
		}
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
// The generated value is never null
func (m publicreportNuisanceMods) RandomOrganizationIDNotNull(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.OrganizationID = func() null.Val[int32] {
			if f == nil {
				f = &defaultFaker
			}

			val := random_int32(f)
			return null.From(val)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) SourceGutter(val bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.SourceGutter = func() bool { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) SourceGutterFunc(f func() bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.SourceGutter = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetSourceGutter() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.SourceGutter = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomSourceGutter(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.SourceGutter = func() bool {
			return random_bool(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) H3cell(val null.Val[string]) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.H3cell = func() null.Val[string] { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) H3cellFunc(f func() null.Val[string]) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.H3cell = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetH3cell() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.H3cell = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
// The generated value is sometimes null
func (m publicreportNuisanceMods) RandomH3cell(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.H3cell = func() null.Val[string] {
			if f == nil {
				f = &defaultFaker
			}

			val := random_string(f)
			return null.From(val)
		}
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
// The generated value is never null
func (m publicreportNuisanceMods) RandomH3cellNotNull(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.H3cell = func() null.Val[string] {
			if f == nil {
				f = &defaultFaker
			}

			val := random_string(f)
			return null.From(val)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) AddressCountry(val string) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressCountry = func() string { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) AddressCountryFunc(f func() string) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressCountry = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetAddressCountry() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressCountry = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomAddressCountry(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressCountry = func() string {
			return random_string(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) AddressPlace(val string) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressPlace = func() string { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) AddressPlaceFunc(f func() string) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressPlace = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetAddressPlace() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressPlace = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomAddressPlace(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressPlace = func() string {
			return random_string(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) AddressPostcode(val string) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressPostcode = func() string { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) AddressPostcodeFunc(f func() string) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressPostcode = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetAddressPostcode() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressPostcode = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomAddressPostcode(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressPostcode = func() string {
			return random_string(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) AddressRegion(val string) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressRegion = func() string { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) AddressRegionFunc(f func() string) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressRegion = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetAddressRegion() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressRegion = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomAddressRegion(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressRegion = func() string {
			return random_string(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) AddressStreet(val string) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressStreet = func() string { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) AddressStreetFunc(f func() string) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressStreet = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetAddressStreet() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressStreet = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomAddressStreet(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.AddressStreet = func() string {
			return random_string(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) IsLocationBackyard(val bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationBackyard = func() bool { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) IsLocationBackyardFunc(f func() bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationBackyard = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetIsLocationBackyard() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationBackyard = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomIsLocationBackyard(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationBackyard = func() bool {
			return random_bool(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) IsLocationFrontyard(val bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationFrontyard = func() bool { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) IsLocationFrontyardFunc(f func() bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationFrontyard = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetIsLocationFrontyard() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationFrontyard = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomIsLocationFrontyard(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationFrontyard = func() bool {
			return random_bool(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) IsLocationGarden(val bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationGarden = func() bool { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) IsLocationGardenFunc(f func() bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationGarden = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetIsLocationGarden() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationGarden = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomIsLocationGarden(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationGarden = func() bool {
			return random_bool(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) IsLocationOther(val bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationOther = func() bool { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) IsLocationOtherFunc(f func() bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationOther = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetIsLocationOther() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationOther = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomIsLocationOther(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationOther = func() bool {
			return random_bool(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) IsLocationPool(val bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationPool = func() bool { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) IsLocationPoolFunc(f func() bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationPool = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetIsLocationPool() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationPool = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomIsLocationPool(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.IsLocationPool = func() bool {
			return random_bool(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) MapZoom(val float32) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.MapZoom = func() float32 { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) MapZoomFunc(f func() float32) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.MapZoom = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetMapZoom() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.MapZoom = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomMapZoom(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.MapZoom = func() float32 {
			return random_float32(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) TodEarly(val bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.TodEarly = func() bool { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) TodEarlyFunc(f func() bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.TodEarly = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetTodEarly() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.TodEarly = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomTodEarly(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.TodEarly = func() bool {
			return random_bool(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) TodDay(val bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.TodDay = func() bool { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) TodDayFunc(f func() bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.TodDay = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetTodDay() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.TodDay = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomTodDay(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.TodDay = func() bool {
			return random_bool(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) TodEvening(val bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.TodEvening = func() bool { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) TodEveningFunc(f func() bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.TodEvening = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetTodEvening() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.TodEvening = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomTodEvening(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.TodEvening = func() bool {
			return random_bool(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) TodNight(val bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.TodNight = func() bool { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) TodNightFunc(f func() bool) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.TodNight = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetTodNight() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.TodNight = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomTodNight(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.TodNight = func() bool {
			return random_bool(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) LatlngAccuracyType(val enums.PublicreportAccuracytype) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.LatlngAccuracyType = func() enums.PublicreportAccuracytype { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) LatlngAccuracyTypeFunc(f func() enums.PublicreportAccuracytype) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.LatlngAccuracyType = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetLatlngAccuracyType() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.LatlngAccuracyType = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomLatlngAccuracyType(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.LatlngAccuracyType = func() enums.PublicreportAccuracytype {
			return random_enums_PublicreportAccuracytype(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) LatlngAccuracyValue(val float32) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.LatlngAccuracyValue = func() float32 { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) LatlngAccuracyValueFunc(f func() float32) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.LatlngAccuracyValue = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetLatlngAccuracyValue() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.LatlngAccuracyValue = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
func (m publicreportNuisanceMods) RandomLatlngAccuracyValue(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.LatlngAccuracyValue = func() float32 {
			return random_float32(f)
		}
	})
}

// Set the model columns to this value
func (m publicreportNuisanceMods) ReporterContactConsent(val null.Val[bool]) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterContactConsent = func() null.Val[bool] { return val }
	})
}

// Set the Column from the function
func (m publicreportNuisanceMods) ReporterContactConsentFunc(f func() null.Val[bool]) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterContactConsent = f
	})
}

// Clear any values for the column
func (m publicreportNuisanceMods) UnsetReporterContactConsent() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterContactConsent = nil
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
// The generated value is sometimes null
func (m publicreportNuisanceMods) RandomReporterContactConsent(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterContactConsent = func() null.Val[bool] {
			if f == nil {
				f = &defaultFaker
			}

			val := random_bool(f)
			return null.From(val)
		}
	})
}

// Generates a random value for the column using the given faker
// if faker is nil, a default faker is used
// The generated value is never null
func (m publicreportNuisanceMods) RandomReporterContactConsentNotNull(f *faker.Faker) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) {
		o.ReporterContactConsent = func() null.Val[bool] {
			if f == nil {
				f = &defaultFaker
			}

			val := random_bool(f)
			return null.From(val)
		}
	})
}

func (m publicreportNuisanceMods) WithParentsCascading() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		if isDone, _ := publicreportNuisanceWithParentsCascadingCtx.Value(ctx); isDone {
			return
		}
		ctx = publicreportNuisanceWithParentsCascadingCtx.WithValue(ctx, true)
		{

			related := o.f.NewOrganizationWithContext(ctx, OrganizationMods.WithParentsCascading())
			m.WithOrganization(related).Apply(ctx, o)
		}
	})
}

func (m publicreportNuisanceMods) WithOrganization(rel *OrganizationTemplate) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		o.r.Organization = &publicreportNuisanceROrganizationR{
			o: rel,
		}
	})
}

func (m publicreportNuisanceMods) WithNewOrganization(mods ...OrganizationMod) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		related := o.f.NewOrganizationWithContext(ctx, mods...)

		m.WithOrganization(related).Apply(ctx, o)
	})
}

func (m publicreportNuisanceMods) WithExistingOrganization(em *models.Organization) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		o.r.Organization = &publicreportNuisanceROrganizationR{
			o: o.f.FromExistingOrganization(em),
		}
	})
}

func (m publicreportNuisanceMods) WithoutOrganization() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		o.r.Organization = nil
	})
}

func (m publicreportNuisanceMods) WithNotifyEmailNuisances(number int, related *PublicreportNotifyEmailNuisanceTemplate) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		o.r.NotifyEmailNuisances = []*publicreportNuisanceRNotifyEmailNuisancesR{{
			number: number,
			o:      related,
		}}
	})
}

func (m publicreportNuisanceMods) WithNewNotifyEmailNuisances(number int, mods ...PublicreportNotifyEmailNuisanceMod) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		related := o.f.NewPublicreportNotifyEmailNuisanceWithContext(ctx, mods...)
		m.WithNotifyEmailNuisances(number, related).Apply(ctx, o)
	})
}

func (m publicreportNuisanceMods) AddNotifyEmailNuisances(number int, related *PublicreportNotifyEmailNuisanceTemplate) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		o.r.NotifyEmailNuisances = append(o.r.NotifyEmailNuisances, &publicreportNuisanceRNotifyEmailNuisancesR{
			number: number,
			o:      related,
		})
	})
}

func (m publicreportNuisanceMods) AddNewNotifyEmailNuisances(number int, mods ...PublicreportNotifyEmailNuisanceMod) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		related := o.f.NewPublicreportNotifyEmailNuisanceWithContext(ctx, mods...)
		m.AddNotifyEmailNuisances(number, related).Apply(ctx, o)
	})
}

func (m publicreportNuisanceMods) AddExistingNotifyEmailNuisances(existingModels ...*models.PublicreportNotifyEmailNuisance) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		for _, em := range existingModels {
			o.r.NotifyEmailNuisances = append(o.r.NotifyEmailNuisances, &publicreportNuisanceRNotifyEmailNuisancesR{
				o: o.f.FromExistingPublicreportNotifyEmailNuisance(em),
			})
		}
	})
}

func (m publicreportNuisanceMods) WithoutNotifyEmailNuisances() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		o.r.NotifyEmailNuisances = nil
	})
}

func (m publicreportNuisanceMods) WithNotifyPhoneNuisances(number int, related *PublicreportNotifyPhoneNuisanceTemplate) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		o.r.NotifyPhoneNuisances = []*publicreportNuisanceRNotifyPhoneNuisancesR{{
			number: number,
			o:      related,
		}}
	})
}

func (m publicreportNuisanceMods) WithNewNotifyPhoneNuisances(number int, mods ...PublicreportNotifyPhoneNuisanceMod) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		related := o.f.NewPublicreportNotifyPhoneNuisanceWithContext(ctx, mods...)
		m.WithNotifyPhoneNuisances(number, related).Apply(ctx, o)
	})
}

func (m publicreportNuisanceMods) AddNotifyPhoneNuisances(number int, related *PublicreportNotifyPhoneNuisanceTemplate) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		o.r.NotifyPhoneNuisances = append(o.r.NotifyPhoneNuisances, &publicreportNuisanceRNotifyPhoneNuisancesR{
			number: number,
			o:      related,
		})
	})
}

func (m publicreportNuisanceMods) AddNewNotifyPhoneNuisances(number int, mods ...PublicreportNotifyPhoneNuisanceMod) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		related := o.f.NewPublicreportNotifyPhoneNuisanceWithContext(ctx, mods...)
		m.AddNotifyPhoneNuisances(number, related).Apply(ctx, o)
	})
}

func (m publicreportNuisanceMods) AddExistingNotifyPhoneNuisances(existingModels ...*models.PublicreportNotifyPhoneNuisance) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		for _, em := range existingModels {
			o.r.NotifyPhoneNuisances = append(o.r.NotifyPhoneNuisances, &publicreportNuisanceRNotifyPhoneNuisancesR{
				o: o.f.FromExistingPublicreportNotifyPhoneNuisance(em),
			})
		}
	})
}

func (m publicreportNuisanceMods) WithoutNotifyPhoneNuisances() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		o.r.NotifyPhoneNuisances = nil
	})
}

func (m publicreportNuisanceMods) WithImages(number int, related *PublicreportImageTemplate) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		o.r.Images = []*publicreportNuisanceRImagesR{{
			number: number,
			o:      related,
		}}
	})
}

func (m publicreportNuisanceMods) WithNewImages(number int, mods ...PublicreportImageMod) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		related := o.f.NewPublicreportImageWithContext(ctx, mods...)
		m.WithImages(number, related).Apply(ctx, o)
	})
}

func (m publicreportNuisanceMods) AddImages(number int, related *PublicreportImageTemplate) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		o.r.Images = append(o.r.Images, &publicreportNuisanceRImagesR{
			number: number,
			o:      related,
		})
	})
}

func (m publicreportNuisanceMods) AddNewImages(number int, mods ...PublicreportImageMod) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		related := o.f.NewPublicreportImageWithContext(ctx, mods...)
		m.AddImages(number, related).Apply(ctx, o)
	})
}

func (m publicreportNuisanceMods) AddExistingImages(existingModels ...*models.PublicreportImage) PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		for _, em := range existingModels {
			o.r.Images = append(o.r.Images, &publicreportNuisanceRImagesR{
				o: o.f.FromExistingPublicreportImage(em),
			})
		}
	})
}

func (m publicreportNuisanceMods) WithoutImages() PublicreportNuisanceMod {
	return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) {
		o.r.Images = nil
	})
}
