# Class ChannelMetaDto | EchoHub Documentation
Human-facing summary of a channel (the /meta command). For encrypted channels the server still knows these figures — count, timestamps, and stored blob sizes — even though it cannot read the content itself. is the sum of stored attachment blob sizes plus message text length, so it is an estimate, not an exact on-disk total.

# Class ChannelMetaDto

Namespace
  EchoHub.Core.DTOs

Assembly
  EchoHub.Core.dll

Human-facing summary of a channel (the `/meta` command). For encrypted channels the server still knows these figures — count, timestamps, and stored blob sizes — even though it cannot read the content itself. EstimatedSizeBytes is the sum of stored attachment blob sizes plus message text length, so it is an estimate, not an exact on-disk total.

    public record ChannelMetaDto : IEquatable<ChannelMetaDto>

Inheritance
  object
  ChannelMetaDto

Implements
  IEquatable<ChannelMetaDto>

Inherited Members
  object.GetType()
  object.MemberwiseClone()
  object.Equals(object, object)
  object.ReferenceEquals(object, object)

## Constructors

### ChannelMetaDto(ChannelMetaDto)

    protected ChannelMetaDto(ChannelMetaDto original)

#### Parameters

`original` ChannelMetaDto

### ChannelMetaDto(Guid, string, string?, bool, bool, int, int, long, DateTimeOffset)

Human-facing summary of a channel (the `/meta` command). For encrypted channels the server still knows these figures — count, timestamps, and stored blob sizes — even though it cannot read the content itself. EstimatedSizeBytes is the sum of stored attachment blob sizes plus message text length, so it is an estimate, not an exact on-disk total.

    public ChannelMetaDto(Guid Id, string Name, string? Topic, bool IsEncrypted, bool IsProtected, int MessageCount, int UniqueUserCount, long EstimatedSizeBytes, DateTimeOffset CreatedAt)

#### Parameters

`Id` Guid
`Name` string
`Topic` string
`IsEncrypted` bool
`IsProtected` bool
`MessageCount` int
`UniqueUserCount` int
`EstimatedSizeBytes` long
`CreatedAt` DateTimeOffset

## Properties

### CreatedAt

    public DateTimeOffset CreatedAt { get; init; }

#### Property Value

DateTimeOffset

### EqualityContract

    protected virtual Type EqualityContract { get; }

#### Property Value

Type

### EstimatedSizeBytes

    public long EstimatedSizeBytes { get; init; }

#### Property Value

long

### Id

    public Guid Id { get; init; }

#### Property Value

Guid

### IsEncrypted

    public bool IsEncrypted { get; init; }

#### Property Value

bool

### IsProtected

    public bool IsProtected { get; init; }

#### Property Value

bool

### MessageCount

    public int MessageCount { get; init; }

#### Property Value

int

### Name

    public string Name { get; init; }

#### Property Value

string

### Topic

    public string? Topic { get; init; }

#### Property Value

string

### UniqueUserCount

    public int UniqueUserCount { get; init; }

#### Property Value

int

## Methods

### Deconstruct(out Guid, out string, out string?, out bool, out bool, out int, out int, out long, out DateTimeOffset)

    public void Deconstruct(out Guid Id, out string Name, out string? Topic, out bool IsEncrypted, out bool IsProtected, out int MessageCount, out int UniqueUserCount, out long EstimatedSizeBytes, out DateTimeOffset CreatedAt)

#### Parameters

`Id` Guid
`Name` string
`Topic` string
`IsEncrypted` bool
`IsProtected` bool
`MessageCount` int
`UniqueUserCount` int
`EstimatedSizeBytes` long
`CreatedAt` DateTimeOffset

### Equals(ChannelMetaDto?)

    public virtual bool Equals(ChannelMetaDto? other)

#### Parameters

`other` ChannelMetaDto

#### Returns

bool

### Equals(object?)

    public override bool Equals(object? obj)

#### Parameters

`obj` object

#### Returns

bool

### GetHashCode()

    public override int GetHashCode()

#### Returns

int

### PrintMembers(StringBuilder)

    protected virtual bool PrintMembers(StringBuilder builder)

#### Parameters

`builder` StringBuilder

#### Returns

bool

### ToString()

    public override string ToString()

#### Returns

string

## Operators

### operator ==(ChannelMetaDto?, ChannelMetaDto?)

    public static bool operator ==(ChannelMetaDto? left, ChannelMetaDto? right)

#### Parameters

`left` ChannelMetaDto
`right` ChannelMetaDto

#### Returns

bool

### operator !=(ChannelMetaDto?, ChannelMetaDto?)

    public static bool operator !=(ChannelMetaDto? left, ChannelMetaDto? right)

#### Parameters

`left` ChannelMetaDto
`right` ChannelMetaDto

#### Returns

bool