75f3dd141c
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
CI and Release / lint-frontend (push) Has been cancelled
CI and Release / dockerfile-scan (push) Has been cancelled
CI and Release / test-frontend (push) Has been cancelled
CI and Release / lint-verification-agent (push) Has been cancelled
CI and Release / test-verification-agent (push) Has been cancelled
CI and Release / e2e-verification-agent (push) Has been cancelled
CI and Release / test-backend (push) Has been cancelled
CI and Release / build-dev-image (push) Has been cancelled
CI and Release / push-dev-image (push) Has been cancelled
CI and Release / build-image (push) Has been cancelled
CI and Release / build-verification-image (push) Has been cancelled
CI and Release / determine-version (push) Has been cancelled
CI and Release / push-image (push) Has been cancelled
CI and Release / push-verification-image (12) (push) Has been cancelled
CI and Release / lint-backend (push) Has been cancelled
CI and Release / push-verification-image (17) (push) Has been cancelled
CI and Release / push-verification-image (18) (push) Has been cancelled
CI and Release / release (push) Has been cancelled
CI and Release / publish-helm-chart (push) Has been cancelled
CI and Release / push-verification-image (13) (push) Has been cancelled
CI and Release / push-verification-image (14) (push) Has been cancelled
CI and Release / push-verification-image (15) (push) Has been cancelled
CI and Release / push-verification-image (16) (push) Has been cancelled
66 lines
1.7 KiB
Go
66 lines
1.7 KiB
Go
package workspaces_dto
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
|
|
users_enums "databasus-backend/internal/features/users/enums"
|
|
)
|
|
|
|
type AddMemberStatus string
|
|
|
|
const (
|
|
AddStatusInvited AddMemberStatus = "INVITED"
|
|
AddStatusAdded AddMemberStatus = "ADDED"
|
|
)
|
|
|
|
// Workspace DTOs
|
|
type CreateWorkspaceRequestDTO struct {
|
|
Name string `json:"name" binding:"required,min=1,max=255"`
|
|
}
|
|
|
|
type WorkspaceResponseDTO struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Name string `json:"name"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
|
|
// User's role in this workspace (populated when fetching for specific user)
|
|
UserRole *users_enums.WorkspaceRole `json:"userRole,omitempty"`
|
|
}
|
|
|
|
type ListWorkspacesResponseDTO struct {
|
|
Workspaces []WorkspaceResponseDTO `json:"workspaces"`
|
|
}
|
|
|
|
// Membership DTOs
|
|
type AddMemberRequestDTO struct {
|
|
Email string `json:"email" binding:"required,email"`
|
|
Role users_enums.WorkspaceRole `json:"role" binding:"required"`
|
|
}
|
|
|
|
type AddMemberResponseDTO struct {
|
|
Status AddMemberStatus `json:"status"`
|
|
}
|
|
|
|
type ChangeMemberRoleRequestDTO struct {
|
|
Role users_enums.WorkspaceRole `json:"role" binding:"required"`
|
|
}
|
|
|
|
type TransferOwnershipRequestDTO struct {
|
|
NewOwnerEmail string `json:"newOwnerEmail" binding:"required"`
|
|
}
|
|
|
|
type WorkspaceMemberResponseDTO struct {
|
|
ID uuid.UUID `json:"id"`
|
|
UserID uuid.UUID `json:"userId"`
|
|
Email string `json:"email"` // Populated from user join
|
|
Name string `json:"name"` // Populated from user join
|
|
Role users_enums.WorkspaceRole `json:"role"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
}
|
|
|
|
type GetMembersResponseDTO struct {
|
|
Members []WorkspaceMemberResponseDTO `json:"members"`
|
|
}
|