User-flow built for you.
/workspace/invite
Response Dto/Entity: *workspaces.WorkspaceInviteEntity
message WorkspaceInviteEntity {
string coverLetter = 1;
string targetUserLocale = 2;
string email = 3;
string phoneNumber = 4;
WorkspaceEntity workspace = 5; // @tag(gorm:"foreignKey:WorkspaceId;references:UniqueId" json:"-")
optional string workspaceId = 6; // @tag(gorm:"size:100;")
string uniqueId = 7; // @tag(gorm:"primarykey;uniqueId;unique;not null;size:100;")
RoleEntity role = 8; // @tag(gorm:"foreignKey:RoleId;references:UniqueId")
optional string roleId = 9; // @tag(gorm:"size:100;")
}
export interface WorkspaceInviteEntity {
coverLetter: string;
targetUserLocale: string;
email: string;
phoneNumber: string;
/** @tag(gorm:"foreignKey:WorkspaceId;references:UniqueId" json:"-") */
workspace: WorkspaceEntity | undefined;
/** @tag(gorm:"size:100;") */
workspaceId?: string | undefined;
/** @tag(gorm:"primarykey;uniqueId;unique;not null;size:100;") */
uniqueId: string;
/** @tag(gorm:"foreignKey:RoleId;references:UniqueId") */
role: RoleEntity | undefined;
/** @tag(gorm:"size:100;") */
roleId?: string | undefined;
}
Request Dto/Entity: *workspaces.WorkspaceInviteDto
message WorkspaceInviteDto {
string email = 1; // @tag(validate:"required")
string roleId = 2; // @tag(validate:"required")
}
export interface WorkspaceInviteDto {
/** @tag(validate:"required") */
email: string;
/** @tag(validate:"required") */
roleId: string;
}
/workspaces/invite/:id
Response Dto/Entity: *[]workspaces.WorkspaceInviteEntity
message WorkspaceInviteEntity {
string coverLetter = 1;
string targetUserLocale = 2;
string email = 3;
string phoneNumber = 4;
WorkspaceEntity workspace = 5; // @tag(gorm:"foreignKey:WorkspaceId;references:UniqueId" json:"-")
optional string workspaceId = 6; // @tag(gorm:"size:100;")
string uniqueId = 7; // @tag(gorm:"primarykey;uniqueId;unique;not null;size:100;")
RoleEntity role = 8; // @tag(gorm:"foreignKey:RoleId;references:UniqueId")
optional string roleId = 9; // @tag(gorm:"size:100;")
}
export interface WorkspaceInviteEntity {
coverLetter: string;
targetUserLocale: string;
email: string;
phoneNumber: string;
/** @tag(gorm:"foreignKey:WorkspaceId;references:UniqueId" json:"-") */
workspace: WorkspaceEntity | undefined;
/** @tag(gorm:"size:100;") */
workspaceId?: string | undefined;
/** @tag(gorm:"primarykey;uniqueId;unique;not null;size:100;") */
uniqueId: string;
/** @tag(gorm:"foreignKey:RoleId;references:UniqueId") */
role: RoleEntity | undefined;
/** @tag(gorm:"size:100;") */
roleId?: string | undefined;
}
Params: :id
/workspace/acceptInvite
Response Dto/Entity: *core.OkayResponse
/workspaces
Response Dto/Entity: *[]workspaces.WorkspaceEntity
message WorkspaceEntity {
string name = 1;
string description = 2;
string uniqueId = 3; // @tag(gorm:"primarykey;uniqueId;unique;not null;size:100;")
}
export interface WorkspaceEntity {
name: string;
description: string;
/** @tag(gorm:"primarykey;uniqueId;unique;not null;size:100;") */
uniqueId: string;
}
/workspace
Response Dto/Entity: *workspaces.WorkspaceEntity
message WorkspaceEntity {
string name = 1;
string description = 2;
string uniqueId = 3; // @tag(gorm:"primarykey;uniqueId;unique;not null;size:100;")
}
export interface WorkspaceEntity {
name: string;
description: string;
/** @tag(gorm:"primarykey;uniqueId;unique;not null;size:100;") */
uniqueId: string;
}
Request Dto/Entity: *workspaces.WorkspaceEntity
message WorkspaceEntity {
string name = 1;
string description = 2;
string uniqueId = 3; // @tag(gorm:"primarykey;uniqueId;unique;not null;size:100;")
}
export interface WorkspaceEntity {
name: string;
description: string;
/** @tag(gorm:"primarykey;uniqueId;unique;not null;size:100;") */
uniqueId: string;
}
/workspace
Target Entity: *workspaces.WorkspaceEntity
message WorkspaceEntity {
string name = 1;
string description = 2;
string uniqueId = 3; // @tag(gorm:"primarykey;uniqueId;unique;not null;size:100;")
}
export interface WorkspaceEntity {
name: string;
description: string;
/** @tag(gorm:"primarykey;uniqueId;unique;not null;size:100;") */
uniqueId: string;
}
/workspace/invites
Response Dto/Entity: *[]workspaces.WorkspaceInviteEntity
message WorkspaceInviteEntity {
string coverLetter = 1;
string targetUserLocale = 2;
string email = 3;
string phoneNumber = 4;
WorkspaceEntity workspace = 5; // @tag(gorm:"foreignKey:WorkspaceId;references:UniqueId" json:"-")
optional string workspaceId = 6; // @tag(gorm:"size:100;")
string uniqueId = 7; // @tag(gorm:"primarykey;uniqueId;unique;not null;size:100;")
RoleEntity role = 8; // @tag(gorm:"foreignKey:RoleId;references:UniqueId")
optional string roleId = 9; // @tag(gorm:"size:100;")
}
export interface WorkspaceInviteEntity {
coverLetter: string;
targetUserLocale: string;
email: string;
phoneNumber: string;
/** @tag(gorm:"foreignKey:WorkspaceId;references:UniqueId" json:"-") */
workspace: WorkspaceEntity | undefined;
/** @tag(gorm:"size:100;") */
workspaceId?: string | undefined;
/** @tag(gorm:"primarykey;uniqueId;unique;not null;size:100;") */
uniqueId: string;
/** @tag(gorm:"foreignKey:RoleId;references:UniqueId") */
role: RoleEntity | undefined;
/** @tag(gorm:"size:100;") */
roleId?: string | undefined;
}