versia-go/ent/instancemetadata.go

433 lines
17 KiB
Go
Raw Normal View History

2024-08-20 22:43:26 +02:00
// Code generated by ent, DO NOT EDIT.
package ent
import (
"encoding/json"
"fmt"
"strings"
"time"
"entgo.io/ent"
"entgo.io/ent/dialect/sql"
"github.com/google/uuid"
2024-08-28 00:25:25 +02:00
"github.com/versia-pub/versia-go/ent/instancemetadata"
"github.com/versia-pub/versia-go/pkg/versia"
2024-08-20 22:43:26 +02:00
)
// InstanceMetadata is the model entity for the InstanceMetadata schema.
type InstanceMetadata struct {
config `json:"-"`
// ID of the ent.
ID uuid.UUID `json:"id,omitempty"`
// IsRemote holds the value of the "isRemote" field.
IsRemote bool `json:"isRemote,omitempty"`
// URI holds the value of the "uri" field.
URI string `json:"uri,omitempty"`
// Extensions holds the value of the "extensions" field.
2024-08-22 23:03:38 +02:00
Extensions versia.Extensions `json:"extensions,omitempty"`
2024-08-20 22:43:26 +02:00
// CreatedAt holds the value of the "created_at" field.
CreatedAt time.Time `json:"created_at,omitempty"`
// UpdatedAt holds the value of the "updated_at" field.
UpdatedAt time.Time `json:"updated_at,omitempty"`
// Name holds the value of the "name" field.
Name string `json:"name,omitempty"`
// Description holds the value of the "description" field.
Description *string `json:"description,omitempty"`
// Host holds the value of the "host" field.
Host string `json:"host,omitempty"`
// PublicKey holds the value of the "publicKey" field.
PublicKey []byte `json:"publicKey,omitempty"`
// PublicKeyAlgorithm holds the value of the "publicKeyAlgorithm" field.
PublicKeyAlgorithm string `json:"publicKeyAlgorithm,omitempty"`
// PrivateKey holds the value of the "privateKey" field.
PrivateKey []byte `json:"privateKey,omitempty"`
// SoftwareName holds the value of the "softwareName" field.
SoftwareName string `json:"softwareName,omitempty"`
// SoftwareVersion holds the value of the "softwareVersion" field.
SoftwareVersion string `json:"softwareVersion,omitempty"`
// SharedInboxURI holds the value of the "sharedInboxURI" field.
SharedInboxURI *string `json:"sharedInboxURI,omitempty"`
2024-08-20 22:43:26 +02:00
// ModeratorsURI holds the value of the "moderatorsURI" field.
ModeratorsURI *string `json:"moderatorsURI,omitempty"`
// AdminsURI holds the value of the "adminsURI" field.
AdminsURI *string `json:"adminsURI,omitempty"`
// LogoEndpoint holds the value of the "logoEndpoint" field.
LogoEndpoint *string `json:"logoEndpoint,omitempty"`
// LogoMimeType holds the value of the "logoMimeType" field.
LogoMimeType *string `json:"logoMimeType,omitempty"`
// BannerEndpoint holds the value of the "bannerEndpoint" field.
BannerEndpoint *string `json:"bannerEndpoint,omitempty"`
// BannerMimeType holds the value of the "bannerMimeType" field.
BannerMimeType *string `json:"bannerMimeType,omitempty"`
// SupportedVersions holds the value of the "supportedVersions" field.
SupportedVersions []string `json:"supportedVersions,omitempty"`
// SupportedExtensions holds the value of the "supportedExtensions" field.
SupportedExtensions []string `json:"supportedExtensions,omitempty"`
// Edges holds the relations/edges for other nodes in the graph.
// The values are being populated by the InstanceMetadataQuery when eager-loading is set.
Edges InstanceMetadataEdges `json:"edges"`
selectValues sql.SelectValues
}
// InstanceMetadataEdges holds the relations/edges for other nodes in the graph.
type InstanceMetadataEdges struct {
// Users holds the value of the users edge.
Users []*User `json:"users,omitempty"`
// Moderators holds the value of the moderators edge.
Moderators []*User `json:"moderators,omitempty"`
// Admins holds the value of the admins edge.
Admins []*User `json:"admins,omitempty"`
// loadedTypes holds the information for reporting if a
// type was loaded (or requested) in eager-loading or not.
loadedTypes [3]bool
}
// UsersOrErr returns the Users value or an error if the edge
// was not loaded in eager-loading.
func (e InstanceMetadataEdges) UsersOrErr() ([]*User, error) {
if e.loadedTypes[0] {
return e.Users, nil
}
return nil, &NotLoadedError{edge: "users"}
}
// ModeratorsOrErr returns the Moderators value or an error if the edge
// was not loaded in eager-loading.
func (e InstanceMetadataEdges) ModeratorsOrErr() ([]*User, error) {
if e.loadedTypes[1] {
return e.Moderators, nil
}
return nil, &NotLoadedError{edge: "moderators"}
}
// AdminsOrErr returns the Admins value or an error if the edge
// was not loaded in eager-loading.
func (e InstanceMetadataEdges) AdminsOrErr() ([]*User, error) {
if e.loadedTypes[2] {
return e.Admins, nil
}
return nil, &NotLoadedError{edge: "admins"}
}
// scanValues returns the types for scanning values from sql.Rows.
func (*InstanceMetadata) scanValues(columns []string) ([]any, error) {
values := make([]any, len(columns))
for i := range columns {
switch columns[i] {
case instancemetadata.FieldExtensions, instancemetadata.FieldPublicKey, instancemetadata.FieldPrivateKey, instancemetadata.FieldSupportedVersions, instancemetadata.FieldSupportedExtensions:
values[i] = new([]byte)
case instancemetadata.FieldIsRemote:
values[i] = new(sql.NullBool)
case instancemetadata.FieldURI, instancemetadata.FieldName, instancemetadata.FieldDescription, instancemetadata.FieldHost, instancemetadata.FieldPublicKeyAlgorithm, instancemetadata.FieldSoftwareName, instancemetadata.FieldSoftwareVersion, instancemetadata.FieldSharedInboxURI, instancemetadata.FieldModeratorsURI, instancemetadata.FieldAdminsURI, instancemetadata.FieldLogoEndpoint, instancemetadata.FieldLogoMimeType, instancemetadata.FieldBannerEndpoint, instancemetadata.FieldBannerMimeType:
values[i] = new(sql.NullString)
case instancemetadata.FieldCreatedAt, instancemetadata.FieldUpdatedAt:
values[i] = new(sql.NullTime)
case instancemetadata.FieldID:
values[i] = new(uuid.UUID)
default:
values[i] = new(sql.UnknownType)
}
}
return values, nil
}
// assignValues assigns the values that were returned from sql.Rows (after scanning)
// to the InstanceMetadata fields.
func (im *InstanceMetadata) assignValues(columns []string, values []any) error {
if m, n := len(values), len(columns); m < n {
return fmt.Errorf("mismatch number of scan values: %d != %d", m, n)
}
for i := range columns {
switch columns[i] {
case instancemetadata.FieldID:
if value, ok := values[i].(*uuid.UUID); !ok {
return fmt.Errorf("unexpected type %T for field id", values[i])
} else if value != nil {
im.ID = *value
}
case instancemetadata.FieldIsRemote:
if value, ok := values[i].(*sql.NullBool); !ok {
return fmt.Errorf("unexpected type %T for field isRemote", values[i])
} else if value.Valid {
im.IsRemote = value.Bool
}
case instancemetadata.FieldURI:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field uri", values[i])
} else if value.Valid {
im.URI = value.String
}
case instancemetadata.FieldExtensions:
if value, ok := values[i].(*[]byte); !ok {
return fmt.Errorf("unexpected type %T for field extensions", values[i])
} else if value != nil && len(*value) > 0 {
if err := json.Unmarshal(*value, &im.Extensions); err != nil {
return fmt.Errorf("unmarshal field extensions: %w", err)
}
}
case instancemetadata.FieldCreatedAt:
if value, ok := values[i].(*sql.NullTime); !ok {
return fmt.Errorf("unexpected type %T for field created_at", values[i])
} else if value.Valid {
im.CreatedAt = value.Time
}
case instancemetadata.FieldUpdatedAt:
if value, ok := values[i].(*sql.NullTime); !ok {
return fmt.Errorf("unexpected type %T for field updated_at", values[i])
} else if value.Valid {
im.UpdatedAt = value.Time
}
case instancemetadata.FieldName:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field name", values[i])
} else if value.Valid {
im.Name = value.String
}
case instancemetadata.FieldDescription:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field description", values[i])
} else if value.Valid {
im.Description = new(string)
*im.Description = value.String
}
case instancemetadata.FieldHost:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field host", values[i])
} else if value.Valid {
im.Host = value.String
}
case instancemetadata.FieldPublicKey:
if value, ok := values[i].(*[]byte); !ok {
return fmt.Errorf("unexpected type %T for field publicKey", values[i])
} else if value != nil {
im.PublicKey = *value
}
case instancemetadata.FieldPublicKeyAlgorithm:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field publicKeyAlgorithm", values[i])
} else if value.Valid {
im.PublicKeyAlgorithm = value.String
}
case instancemetadata.FieldPrivateKey:
if value, ok := values[i].(*[]byte); !ok {
return fmt.Errorf("unexpected type %T for field privateKey", values[i])
} else if value != nil {
im.PrivateKey = *value
}
case instancemetadata.FieldSoftwareName:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field softwareName", values[i])
} else if value.Valid {
im.SoftwareName = value.String
}
case instancemetadata.FieldSoftwareVersion:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field softwareVersion", values[i])
} else if value.Valid {
im.SoftwareVersion = value.String
}
case instancemetadata.FieldSharedInboxURI:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field sharedInboxURI", values[i])
} else if value.Valid {
im.SharedInboxURI = new(string)
*im.SharedInboxURI = value.String
2024-08-20 22:43:26 +02:00
}
case instancemetadata.FieldModeratorsURI:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field moderatorsURI", values[i])
} else if value.Valid {
im.ModeratorsURI = new(string)
*im.ModeratorsURI = value.String
}
case instancemetadata.FieldAdminsURI:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field adminsURI", values[i])
} else if value.Valid {
im.AdminsURI = new(string)
*im.AdminsURI = value.String
}
case instancemetadata.FieldLogoEndpoint:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field logoEndpoint", values[i])
} else if value.Valid {
im.LogoEndpoint = new(string)
*im.LogoEndpoint = value.String
}
case instancemetadata.FieldLogoMimeType:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field logoMimeType", values[i])
} else if value.Valid {
im.LogoMimeType = new(string)
*im.LogoMimeType = value.String
}
case instancemetadata.FieldBannerEndpoint:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field bannerEndpoint", values[i])
} else if value.Valid {
im.BannerEndpoint = new(string)
*im.BannerEndpoint = value.String
}
case instancemetadata.FieldBannerMimeType:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field bannerMimeType", values[i])
} else if value.Valid {
im.BannerMimeType = new(string)
*im.BannerMimeType = value.String
}
case instancemetadata.FieldSupportedVersions:
if value, ok := values[i].(*[]byte); !ok {
return fmt.Errorf("unexpected type %T for field supportedVersions", values[i])
} else if value != nil && len(*value) > 0 {
if err := json.Unmarshal(*value, &im.SupportedVersions); err != nil {
return fmt.Errorf("unmarshal field supportedVersions: %w", err)
}
}
case instancemetadata.FieldSupportedExtensions:
if value, ok := values[i].(*[]byte); !ok {
return fmt.Errorf("unexpected type %T for field supportedExtensions", values[i])
} else if value != nil && len(*value) > 0 {
if err := json.Unmarshal(*value, &im.SupportedExtensions); err != nil {
return fmt.Errorf("unmarshal field supportedExtensions: %w", err)
}
}
default:
im.selectValues.Set(columns[i], values[i])
}
}
return nil
}
// Value returns the ent.Value that was dynamically selected and assigned to the InstanceMetadata.
// This includes values selected through modifiers, order, etc.
func (im *InstanceMetadata) Value(name string) (ent.Value, error) {
return im.selectValues.Get(name)
}
// QueryUsers queries the "users" edge of the InstanceMetadata entity.
func (im *InstanceMetadata) QueryUsers() *UserQuery {
return NewInstanceMetadataClient(im.config).QueryUsers(im)
}
// QueryModerators queries the "moderators" edge of the InstanceMetadata entity.
func (im *InstanceMetadata) QueryModerators() *UserQuery {
return NewInstanceMetadataClient(im.config).QueryModerators(im)
}
// QueryAdmins queries the "admins" edge of the InstanceMetadata entity.
func (im *InstanceMetadata) QueryAdmins() *UserQuery {
return NewInstanceMetadataClient(im.config).QueryAdmins(im)
}
// Update returns a builder for updating this InstanceMetadata.
// Note that you need to call InstanceMetadata.Unwrap() before calling this method if this InstanceMetadata
// was returned from a transaction, and the transaction was committed or rolled back.
func (im *InstanceMetadata) Update() *InstanceMetadataUpdateOne {
return NewInstanceMetadataClient(im.config).UpdateOne(im)
}
// Unwrap unwraps the InstanceMetadata entity that was returned from a transaction after it was closed,
// so that all future queries will be executed through the driver which created the transaction.
func (im *InstanceMetadata) Unwrap() *InstanceMetadata {
_tx, ok := im.config.driver.(*txDriver)
if !ok {
panic("ent: InstanceMetadata is not a transactional entity")
}
im.config.driver = _tx.drv
return im
}
// String implements the fmt.Stringer.
func (im *InstanceMetadata) String() string {
var builder strings.Builder
builder.WriteString("InstanceMetadata(")
builder.WriteString(fmt.Sprintf("id=%v, ", im.ID))
builder.WriteString("isRemote=")
builder.WriteString(fmt.Sprintf("%v", im.IsRemote))
builder.WriteString(", ")
builder.WriteString("uri=")
builder.WriteString(im.URI)
builder.WriteString(", ")
builder.WriteString("extensions=")
builder.WriteString(fmt.Sprintf("%v", im.Extensions))
builder.WriteString(", ")
builder.WriteString("created_at=")
builder.WriteString(im.CreatedAt.Format(time.ANSIC))
builder.WriteString(", ")
builder.WriteString("updated_at=")
builder.WriteString(im.UpdatedAt.Format(time.ANSIC))
builder.WriteString(", ")
builder.WriteString("name=")
builder.WriteString(im.Name)
builder.WriteString(", ")
if v := im.Description; v != nil {
builder.WriteString("description=")
builder.WriteString(*v)
}
builder.WriteString(", ")
builder.WriteString("host=")
builder.WriteString(im.Host)
builder.WriteString(", ")
builder.WriteString("publicKey=")
builder.WriteString(fmt.Sprintf("%v", im.PublicKey))
builder.WriteString(", ")
builder.WriteString("publicKeyAlgorithm=")
builder.WriteString(im.PublicKeyAlgorithm)
builder.WriteString(", ")
builder.WriteString("privateKey=")
builder.WriteString(fmt.Sprintf("%v", im.PrivateKey))
builder.WriteString(", ")
builder.WriteString("softwareName=")
builder.WriteString(im.SoftwareName)
builder.WriteString(", ")
builder.WriteString("softwareVersion=")
builder.WriteString(im.SoftwareVersion)
builder.WriteString(", ")
if v := im.SharedInboxURI; v != nil {
builder.WriteString("sharedInboxURI=")
builder.WriteString(*v)
}
2024-08-20 22:43:26 +02:00
builder.WriteString(", ")
if v := im.ModeratorsURI; v != nil {
builder.WriteString("moderatorsURI=")
builder.WriteString(*v)
}
builder.WriteString(", ")
if v := im.AdminsURI; v != nil {
builder.WriteString("adminsURI=")
builder.WriteString(*v)
}
builder.WriteString(", ")
if v := im.LogoEndpoint; v != nil {
builder.WriteString("logoEndpoint=")
builder.WriteString(*v)
}
builder.WriteString(", ")
if v := im.LogoMimeType; v != nil {
builder.WriteString("logoMimeType=")
builder.WriteString(*v)
}
builder.WriteString(", ")
if v := im.BannerEndpoint; v != nil {
builder.WriteString("bannerEndpoint=")
builder.WriteString(*v)
}
builder.WriteString(", ")
if v := im.BannerMimeType; v != nil {
builder.WriteString("bannerMimeType=")
builder.WriteString(*v)
}
builder.WriteString(", ")
builder.WriteString("supportedVersions=")
builder.WriteString(fmt.Sprintf("%v", im.SupportedVersions))
builder.WriteString(", ")
builder.WriteString("supportedExtensions=")
builder.WriteString(fmt.Sprintf("%v", im.SupportedExtensions))
builder.WriteByte(')')
return builder.String()
}
// InstanceMetadataSlice is a parsable slice of InstanceMetadata.
type InstanceMetadataSlice []*InstanceMetadata