Data changes to prepare for workspaceMember page (#10439)
Workspace Member will get their own record page in the future. This PR lays backend changes to prepare for this: - Settings most fields on WorkspaceMember as system fields - Renaming workspaceMember/workspaceMemberId to forWorkspaceMember/forWorkspaceMemberId as it conflicts with the morph relationship, if we want to be able to add a workspace member as favorite --------- Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
This commit is contained in:
@ -53,7 +53,7 @@ export class FavoriteWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
|
||||
// Relations
|
||||
@WorkspaceRelation({
|
||||
standardId: FAVORITE_STANDARD_FIELD_IDS.workspaceMember,
|
||||
standardId: FAVORITE_STANDARD_FIELD_IDS.forWorkspaceMember,
|
||||
type: RelationMetadataType.MANY_TO_ONE,
|
||||
label: msg`Workspace Member`,
|
||||
description: msg`Favorite workspace member`,
|
||||
@ -62,10 +62,10 @@ export class FavoriteWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
inverseSideTarget: () => WorkspaceMemberWorkspaceEntity,
|
||||
})
|
||||
@WorkspaceIsNullable()
|
||||
workspaceMember: Relation<WorkspaceMemberWorkspaceEntity>;
|
||||
forWorkspaceMember: Relation<WorkspaceMemberWorkspaceEntity>;
|
||||
|
||||
@WorkspaceJoinColumn('workspaceMember')
|
||||
workspaceMemberId: string;
|
||||
@WorkspaceJoinColumn('forWorkspaceMember')
|
||||
forWorkspaceMemberId: string;
|
||||
|
||||
@WorkspaceRelation({
|
||||
standardId: FAVORITE_STANDARD_FIELD_IDS.person,
|
||||
|
||||
@ -82,6 +82,17 @@ export const SEARCH_FIELDS_FOR_WORKSPACE_MEMBER: FieldTypeAndNameMetadata[] = [
|
||||
@WorkspaceIsSystem()
|
||||
@WorkspaceIsNotAuditLogged()
|
||||
export class WorkspaceMemberWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
@WorkspaceField({
|
||||
standardId: WORKSPACE_MEMBER_STANDARD_FIELD_IDS.position,
|
||||
type: FieldMetadataType.POSITION,
|
||||
label: msg`Position`,
|
||||
description: msg`Workspace member position`,
|
||||
icon: 'IconHierarchy2',
|
||||
defaultValue: 0,
|
||||
})
|
||||
@WorkspaceIsSystem()
|
||||
position: number;
|
||||
|
||||
@WorkspaceField({
|
||||
standardId: WORKSPACE_MEMBER_STANDARD_FIELD_IDS.name,
|
||||
type: FieldMetadataType.FULL_NAME,
|
||||
@ -99,6 +110,7 @@ export class WorkspaceMemberWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
icon: 'IconColorSwatch',
|
||||
defaultValue: "'System'",
|
||||
})
|
||||
@WorkspaceIsSystem()
|
||||
colorScheme: string;
|
||||
|
||||
@WorkspaceField({
|
||||
@ -109,6 +121,7 @@ export class WorkspaceMemberWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
icon: 'IconLanguage',
|
||||
defaultValue: `'${SOURCE_LOCALE}'`,
|
||||
})
|
||||
@WorkspaceIsSystem()
|
||||
locale: keyof typeof APP_LOCALES;
|
||||
|
||||
@WorkspaceField({
|
||||
@ -118,6 +131,7 @@ export class WorkspaceMemberWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
description: msg`Workspace member avatar`,
|
||||
icon: 'IconFileUpload',
|
||||
})
|
||||
@WorkspaceIsSystem()
|
||||
avatarUrl: string;
|
||||
|
||||
@WorkspaceField({
|
||||
@ -127,6 +141,7 @@ export class WorkspaceMemberWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
description: msg`Related user email address`,
|
||||
icon: 'IconMail',
|
||||
})
|
||||
@WorkspaceIsSystem()
|
||||
userEmail: string;
|
||||
|
||||
@WorkspaceField({
|
||||
@ -136,8 +151,88 @@ export class WorkspaceMemberWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
description: msg`Associated User Id`,
|
||||
icon: 'IconCircleUsers',
|
||||
})
|
||||
@WorkspaceIsSystem()
|
||||
userId: string;
|
||||
|
||||
@WorkspaceField({
|
||||
standardId: WORKSPACE_MEMBER_STANDARD_FIELD_IDS.timeZone,
|
||||
type: FieldMetadataType.TEXT,
|
||||
label: msg`Time zone`,
|
||||
defaultValue: "'system'",
|
||||
description: msg`User time zone`,
|
||||
icon: 'IconTimezone',
|
||||
})
|
||||
@WorkspaceIsSystem()
|
||||
timeZone: string;
|
||||
|
||||
@WorkspaceField({
|
||||
standardId: WORKSPACE_MEMBER_STANDARD_FIELD_IDS.dateFormat,
|
||||
type: FieldMetadataType.SELECT,
|
||||
label: msg`Date format`,
|
||||
description: msg`User's preferred date format`,
|
||||
icon: 'IconCalendarEvent',
|
||||
options: [
|
||||
{
|
||||
value: WorkspaceMemberDateFormatEnum.SYSTEM,
|
||||
label: 'System',
|
||||
position: 0,
|
||||
color: 'turquoise',
|
||||
},
|
||||
{
|
||||
value: WorkspaceMemberDateFormatEnum.MONTH_FIRST,
|
||||
label: 'Month First',
|
||||
position: 1,
|
||||
color: 'red',
|
||||
},
|
||||
{
|
||||
value: WorkspaceMemberDateFormatEnum.DAY_FIRST,
|
||||
label: 'Day First',
|
||||
position: 2,
|
||||
color: 'purple',
|
||||
},
|
||||
{
|
||||
value: WorkspaceMemberDateFormatEnum.YEAR_FIRST,
|
||||
label: 'Year First',
|
||||
position: 3,
|
||||
color: 'sky',
|
||||
},
|
||||
],
|
||||
defaultValue: `'${WorkspaceMemberDateFormatEnum.SYSTEM}'`,
|
||||
})
|
||||
@WorkspaceIsSystem()
|
||||
dateFormat: string;
|
||||
|
||||
@WorkspaceField({
|
||||
standardId: WORKSPACE_MEMBER_STANDARD_FIELD_IDS.timeFormat,
|
||||
type: FieldMetadataType.SELECT,
|
||||
label: msg`Time format`,
|
||||
description: msg`User's preferred time format`,
|
||||
icon: 'IconClock2',
|
||||
options: [
|
||||
{
|
||||
value: WorkspaceMemberTimeFormatEnum.SYSTEM,
|
||||
label: 'System',
|
||||
position: 0,
|
||||
color: 'sky',
|
||||
},
|
||||
{
|
||||
value: WorkspaceMemberTimeFormatEnum.HOUR_24,
|
||||
label: '24HRS',
|
||||
position: 1,
|
||||
color: 'red',
|
||||
},
|
||||
{
|
||||
value: WorkspaceMemberTimeFormatEnum.HOUR_12,
|
||||
label: '12HRS',
|
||||
position: 2,
|
||||
color: 'purple',
|
||||
},
|
||||
],
|
||||
defaultValue: `'${WorkspaceMemberTimeFormatEnum.SYSTEM}'`,
|
||||
})
|
||||
@WorkspaceIsSystem()
|
||||
timeFormat: string;
|
||||
|
||||
// Relations
|
||||
@WorkspaceRelation({
|
||||
standardId: WORKSPACE_MEMBER_STANDARD_FIELD_IDS.assignedTasks,
|
||||
@ -158,6 +253,7 @@ export class WorkspaceMemberWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
description: msg`Favorites linked to the workspace member`,
|
||||
icon: 'IconHeart',
|
||||
inverseSideTarget: () => FavoriteWorkspaceEntity,
|
||||
inverseSideFieldKey: 'forWorkspaceMember',
|
||||
onDelete: RelationOnDeleteAction.CASCADE,
|
||||
})
|
||||
favorites: Relation<FavoriteWorkspaceEntity[]>;
|
||||
@ -262,82 +358,6 @@ export class WorkspaceMemberWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
@WorkspaceIsSystem()
|
||||
auditLogs: Relation<AuditLogWorkspaceEntity[]>;
|
||||
|
||||
@WorkspaceField({
|
||||
standardId: WORKSPACE_MEMBER_STANDARD_FIELD_IDS.timeZone,
|
||||
type: FieldMetadataType.TEXT,
|
||||
label: msg`Time zone`,
|
||||
defaultValue: "'system'",
|
||||
description: msg`User time zone`,
|
||||
icon: 'IconTimezone',
|
||||
})
|
||||
timeZone: string;
|
||||
|
||||
@WorkspaceField({
|
||||
standardId: WORKSPACE_MEMBER_STANDARD_FIELD_IDS.dateFormat,
|
||||
type: FieldMetadataType.SELECT,
|
||||
label: msg`Date format`,
|
||||
description: msg`User's preferred date format`,
|
||||
icon: 'IconCalendarEvent',
|
||||
options: [
|
||||
{
|
||||
value: WorkspaceMemberDateFormatEnum.SYSTEM,
|
||||
label: 'System',
|
||||
position: 0,
|
||||
color: 'turquoise',
|
||||
},
|
||||
{
|
||||
value: WorkspaceMemberDateFormatEnum.MONTH_FIRST,
|
||||
label: 'Month First',
|
||||
position: 1,
|
||||
color: 'red',
|
||||
},
|
||||
{
|
||||
value: WorkspaceMemberDateFormatEnum.DAY_FIRST,
|
||||
label: 'Day First',
|
||||
position: 2,
|
||||
color: 'purple',
|
||||
},
|
||||
{
|
||||
value: WorkspaceMemberDateFormatEnum.YEAR_FIRST,
|
||||
label: 'Year First',
|
||||
position: 3,
|
||||
color: 'sky',
|
||||
},
|
||||
],
|
||||
defaultValue: `'${WorkspaceMemberDateFormatEnum.SYSTEM}'`,
|
||||
})
|
||||
dateFormat: string;
|
||||
|
||||
@WorkspaceField({
|
||||
standardId: WORKSPACE_MEMBER_STANDARD_FIELD_IDS.timeFormat,
|
||||
type: FieldMetadataType.SELECT,
|
||||
label: msg`Time format`,
|
||||
description: msg`User's preferred time format`,
|
||||
icon: 'IconClock2',
|
||||
options: [
|
||||
{
|
||||
value: WorkspaceMemberTimeFormatEnum.SYSTEM,
|
||||
label: 'System',
|
||||
position: 0,
|
||||
color: 'sky',
|
||||
},
|
||||
{
|
||||
value: WorkspaceMemberTimeFormatEnum.HOUR_24,
|
||||
label: '24HRS',
|
||||
position: 1,
|
||||
color: 'red',
|
||||
},
|
||||
{
|
||||
value: WorkspaceMemberTimeFormatEnum.HOUR_12,
|
||||
label: '12HRS',
|
||||
position: 2,
|
||||
color: 'purple',
|
||||
},
|
||||
],
|
||||
defaultValue: `'${WorkspaceMemberTimeFormatEnum.SYSTEM}'`,
|
||||
})
|
||||
timeFormat: string;
|
||||
|
||||
@WorkspaceField({
|
||||
standardId: WORKSPACE_MEMBER_STANDARD_FIELD_IDS.searchVector,
|
||||
type: FieldMetadataType.TS_VECTOR,
|
||||
|
||||
Reference in New Issue
Block a user