package organizationdb import ( "context" "github.com/tech/sendico/pkg/model" "github.com/tech/sendico/pkg/mutil/mzap" "go.mongodb.org/mongo-driver/bson/primitive" "go.uber.org/zap" ) // SetArchived sets the archived status of an organization and optionally cascades to projects, tasks, comments, and reactions func (db *OrganizationDB) SetArchived(ctx context.Context, accountRef, organizationRef primitive.ObjectID, archived, cascade bool) error { db.DBImp.Logger.Debug("Setting organization archived status", mzap.ObjRef("organization_ref", organizationRef), zap.Bool("archived", archived), zap.Bool("cascade", cascade)) // Get the organization first var organization model.Organization if err := db.Get(ctx, accountRef, organizationRef, &organization); err != nil { db.DBImp.Logger.Warn("Error retrieving organization for archival", zap.Error(err), mzap.ObjRef("organization_ref", organizationRef)) return err } // Update the organization's archived status organization.SetArchived(archived) if err := db.Update(ctx, accountRef, &organization); err != nil { db.DBImp.Logger.Warn("Error updating organization archived status", zap.Error(err), mzap.ObjRef("organization_ref", organizationRef)) return err } db.DBImp.Logger.Debug("Successfully set organization archived status", mzap.ObjRef("organization_ref", organizationRef), zap.Bool("archived", archived)) return nil }