40 lines
1.2 KiB
C#
40 lines
1.2 KiB
C#
using Socialize.Api.Modules.Organizations.Data;
|
|
using Socialize.Api.Modules.Workspaces.Handlers;
|
|
|
|
namespace Socialize.Api.Modules.Organizations.Handlers;
|
|
|
|
public record OrganizationMemberDto(
|
|
Guid UserId,
|
|
string DisplayName,
|
|
string Email,
|
|
string? PortraitUrl,
|
|
string Role,
|
|
IReadOnlyCollection<string> Permissions,
|
|
DateTimeOffset CreatedAt);
|
|
|
|
public record OrganizationDto(
|
|
Guid Id,
|
|
string Name,
|
|
Guid OwnerUserId,
|
|
IReadOnlyCollection<string> CurrentUserPermissions,
|
|
IReadOnlyCollection<OrganizationMemberDto> Members,
|
|
IReadOnlyCollection<WorkspaceDto> Workspaces,
|
|
DateTimeOffset CreatedAt)
|
|
{
|
|
public static OrganizationDto FromOrganization(
|
|
Organization organization,
|
|
IReadOnlyCollection<string> currentUserPermissions,
|
|
IReadOnlyCollection<OrganizationMemberDto>? members = null,
|
|
IReadOnlyCollection<WorkspaceDto>? workspaces = null)
|
|
{
|
|
return new OrganizationDto(
|
|
organization.Id,
|
|
organization.Name,
|
|
organization.OwnerUserId,
|
|
currentUserPermissions,
|
|
members ?? [],
|
|
workspaces ?? [],
|
|
organization.CreatedAt);
|
|
}
|
|
}
|