Table of Contents

Class ProjectForumTopicDto

Namespace
Builvero.Application.DTOs.Forum
Assembly
Builvero.Application.dll

Data transfer object representing a forum topic with its messages and metadata.

public class ProjectForumTopicDto
Inheritance
ProjectForumTopicDto
Inherited Members

Remarks

This DTO is used for displaying forum topics within projects. Topics can be soft-deleted by admins/moderators, and deleted topics are only visible to users with elevated permissions (Admin, Moderator, TeamMember). The Messages list contains all messages in the topic, with deleted messages filtered based on user permissions.

Properties

CreatedAtUtc

Gets or sets the UTC timestamp when the topic was created.

public DateTime CreatedAtUtc { get; set; }

Property Value

DateTime
Data transfer object representing a forum topic with its messages and metadata.

CreatedByUserId

Gets or sets the unique identifier of the user who created the topic.

public Guid CreatedByUserId { get; set; }

Property Value

Guid
Data transfer object representing a forum topic with its messages and metadata.

CreatedByUserName

Gets or sets the full name of the user who created the topic.

public string CreatedByUserName { get; set; }

Property Value

string
Data transfer object representing a forum topic with its messages and metadata.

DeletedAtUtc

Gets or sets the UTC timestamp when the topic was deleted (null if not deleted).

public DateTime? DeletedAtUtc { get; set; }

Property Value

DateTime?
Data transfer object representing a forum topic with its messages and metadata.

DeletedByUserName

Gets or sets the full name of the user who deleted the topic (null if not deleted).

public string? DeletedByUserName { get; set; }

Property Value

string
Data transfer object representing a forum topic with its messages and metadata.

Id

Gets or sets the unique identifier of the topic.

public Guid Id { get; set; }

Property Value

Guid
Data transfer object representing a forum topic with its messages and metadata.

IsDeleted

Gets or sets a value indicating whether this topic has been soft-deleted.

public bool IsDeleted { get; set; }

Property Value

bool
Data transfer object representing a forum topic with its messages and metadata.

Remarks

Deleted topics are only visible to users with elevated permissions (Admin, Moderator, TeamMember). Regular users never see deleted topics.

LastMessageAtUtc

Gets or sets the UTC timestamp of the most recent message in this topic (null if no messages).

public DateTime? LastMessageAtUtc { get; set; }

Property Value

DateTime?
Data transfer object representing a forum topic with its messages and metadata.

MessageCount

Gets or sets the total number of messages in this topic (excluding deleted messages for regular users).

public int MessageCount { get; set; }

Property Value

int
Data transfer object representing a forum topic with its messages and metadata.

Messages

Gets or sets the list of messages in this topic.

public List<ProjectForumMessageDto> Messages { get; set; }

Property Value

List<ProjectForumMessageDto>
Data transfer object representing a forum topic with its messages and metadata.

Remarks

For regular users, this list excludes deleted messages. For users with elevated permissions, deleted messages are included based on the includeDeleted parameter.

ProjectId

Gets or sets the unique identifier of the project this topic belongs to.

public Guid ProjectId { get; set; }

Property Value

Guid
Data transfer object representing a forum topic with its messages and metadata.

ProjectName

Gets or sets the name of the project this topic belongs to.

public string ProjectName { get; set; }

Property Value

string
Data transfer object representing a forum topic with its messages and metadata.

Title

Gets or sets the title of the topic (must be unique within the project).

public string Title { get; set; }

Property Value

string
Data transfer object representing a forum topic with its messages and metadata.

UpdatedAtUtc

Gets or sets the UTC timestamp when the topic was last updated (null if never updated).

public DateTime? UpdatedAtUtc { get; set; }

Property Value

DateTime?
Data transfer object representing a forum topic with its messages and metadata.