Closes #6431 - create new field `activationStatus` - create migration commands - add logic to update `activationStatus` on workspace activation and on stripe subscriptionStatus change --------- Co-authored-by: Charles Bochet <charles@twenty.com>
126 lines
5.5 KiB
TypeScript
126 lines
5.5 KiB
TypeScript
import { WorkspaceMember } from '@/workspace-member/types/WorkspaceMember';
|
|
import {
|
|
OnboardingStatus,
|
|
SubscriptionInterval,
|
|
SubscriptionStatus,
|
|
User,
|
|
Workspace,
|
|
WorkspaceActivationStatus,
|
|
} from '~/generated/graphql';
|
|
|
|
type MockedUser = Pick<
|
|
User,
|
|
| 'id'
|
|
| 'email'
|
|
| 'firstName'
|
|
| 'lastName'
|
|
| 'canImpersonate'
|
|
| '__typename'
|
|
| 'supportUserHash'
|
|
| 'onboardingStatus'
|
|
| 'userVars'
|
|
> & {
|
|
workspaceMember: WorkspaceMember | null;
|
|
locale: string;
|
|
defaultWorkspace: Workspace;
|
|
workspaces: Array<{ workspace: Workspace }>;
|
|
};
|
|
|
|
export const avatarUrl =
|
|
'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAYABgAAD/4QCMRXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABgAAAAAQAAAGAAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAABSgAwAEAAAAAQAAABQAAAAA/8AAEQgAFAAUAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMACwgICggHCwoJCg0MCw0RHBIRDw8RIhkaFBwpJCsqKCQnJy0yQDctMD0wJyc4TDk9Q0VISUgrNk9VTkZUQEdIRf/bAEMBDA0NEQ8RIRISIUUuJy5FRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRf/dAAQAAv/aAAwDAQACEQMRAD8Ava1q728otYY98joSCTgZrnbXWdTtrhrfVZXWLafmcAEkdgR/hVltQku9Q8+OIEBcGOT+ID0PY1ka1KH2u8ToqnPLbmIqG7u6LtbQ7RXBRec4Uck9eKXcPWsKDWVnhWSL5kYcFelSf2m3901POh8jP//QoyIAnTuKpXsY82NsksUyWPU5q/L9z8RVK++/F/uCsVsaEURwgA4HtT9x9TUcf3KfUGh//9k=';
|
|
export const workspaceLogoUrl =
|
|
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACb0lEQVR4nO2VO4taQRTHr3AblbjxEVlwCwVhg7BoqqCIjy/gAyyFWNlYBOxsfH0KuxgQGwXRUkGuL2S7i1barGAgiwbdW93SnGOc4BonPiKahf3DwXFmuP/fPM4ZlvmlTxAhCBdzHnEQWYiv7Mr4C3NeuVYhQYDPzOUUQgDLBQGcLHNhvQK8DACPx8PTxiqVyvISG43GbyaT6Qfpn06n0m63e/tPAPF4vJ1MJu8kEsnWTCkWi1yr1RKGw+GDRqPBOTfr44vFQvD7/Q/lcpmaaVQAr9fLp1IpO22c47hGOBz+MB6PH+Vy+VYDAL8qlUoGtVotzOfzq4MAgsHgE/6KojiQyWR/bKVSqbSszHFM8Pl8z1YK48JsNltCOBwOnrYLO+8AAIjb+nHbycoTiUQfDJ7tFq4YAHiVSmXBxcD41u8flQU8z7fhzO0r83atVns3Go3u9Xr9x0O/RQXo9/tsIBBg6vX606a52Wz+bZ7P5/WwG29gxSJzhKgA6XTaDoFNF+krFAocmC//4yWEcSf2wTm7mCO19xFgSsKOLI16vV7b7XY7mRNoLwA0JymJ5uQIzgIAuX5PzDElT2m+E8BqtQ4ymcx7Yq7T6a6ZE4sKgOadTucaCwkxp1UzlEKh0GDxIXOwDWHAdi6Xe3swQDQa/Q7mywoolUpvsaptymazDWKxmBHTlWXZm405BFZoNpuGgwEmk4mE2SGtVivii4f1AO7J3ZopkQCQj7Ar1FeRChCJRJzVapX6DKNIfSc1Ax+wtQWQ55h6bH8FWDfYV4fO3wlwDr0C/BcADYiTPCxHqIEA2QsCZAkAKnRGkMbKN/sTX5YHPQ1e7SkAAAAASUVORK5CYII=';
|
|
|
|
export const mockDefaultWorkspace: Workspace = {
|
|
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6w',
|
|
displayName: 'Twenty',
|
|
domainName: 'twenty.com',
|
|
inviteHash: 'twenty.com-invite-hash',
|
|
logo: workspaceLogoUrl,
|
|
allowImpersonation: true,
|
|
activationStatus: WorkspaceActivationStatus.Active,
|
|
featureFlags: [
|
|
{
|
|
id: '1492de61-5018-4368-8923-4f1eeaf988c4',
|
|
key: 'IS_AIRTABLE_INTEGRATION_ENABLED',
|
|
value: true,
|
|
workspaceId: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6w',
|
|
},
|
|
{
|
|
id: '1492de61-5018-4368-8923-4f1eeaf988c5',
|
|
key: 'IS_POSTGRESQL_INTEGRATION_ENABLED',
|
|
value: true,
|
|
workspaceId: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6w',
|
|
},
|
|
{
|
|
id: '1492de61-5018-4368-8923-4f1eeaf988c6',
|
|
key: 'IS_CALENDER_ENABLED',
|
|
value: true,
|
|
workspaceId: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6w',
|
|
},
|
|
],
|
|
createdAt: '2023-04-26T10:23:42.33625+00:00',
|
|
updatedAt: '2023-04-26T10:23:42.33625+00:00',
|
|
currentCacheVersion: '1',
|
|
currentBillingSubscription: {
|
|
__typename: 'BillingSubscription',
|
|
id: '7efbc3f7-6e5e-4128-957e-8d86808cdf6a',
|
|
interval: SubscriptionInterval.Month,
|
|
status: SubscriptionStatus.Active,
|
|
},
|
|
workspaceMembersCount: 1,
|
|
};
|
|
|
|
export const mockedWorkspaceMemberData: WorkspaceMember = {
|
|
__typename: 'WorkspaceMember',
|
|
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6b',
|
|
colorScheme: 'Light',
|
|
avatarUrl,
|
|
locale: 'en',
|
|
name: {
|
|
firstName: 'Charles',
|
|
lastName: 'Test',
|
|
},
|
|
createdAt: '2023-04-26T10:23:42.33625+00:00',
|
|
updatedAt: '2023-04-26T10:23:42.33625+00:00',
|
|
userId: '2603c1f9-0172-4ea6-986c-eeaccdf7f4cf',
|
|
userEmail: 'charles@test.com',
|
|
};
|
|
|
|
export const mockedUserData: MockedUser = {
|
|
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6d',
|
|
__typename: 'User',
|
|
email: 'charles@test.com',
|
|
firstName: 'Charles',
|
|
lastName: 'Test',
|
|
canImpersonate: false,
|
|
supportUserHash:
|
|
'a95afad9ff6f0b364e2a3fd3e246a1a852c22b6e55a3ca33745a86c201f9c10d',
|
|
workspaceMember: mockedWorkspaceMemberData,
|
|
defaultWorkspace: mockDefaultWorkspace,
|
|
locale: 'en',
|
|
workspaces: [{ workspace: mockDefaultWorkspace }],
|
|
onboardingStatus: OnboardingStatus.Completed,
|
|
userVars: {},
|
|
};
|
|
|
|
export const mockedOnboardingUserData = (
|
|
onboardingStatus?: OnboardingStatus,
|
|
) => {
|
|
return {
|
|
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6d',
|
|
__typename: 'User',
|
|
email: 'workspace-onboarding@test.com',
|
|
firstName: '',
|
|
lastName: '',
|
|
canImpersonate: false,
|
|
supportUserHash:
|
|
'4fb61d34ed3a4aeda2476d4b308b5162db9e1809b2b8277e6fdc6efc4a609254',
|
|
workspaceMember: null,
|
|
defaultWorkspace: mockDefaultWorkspace,
|
|
locale: 'en',
|
|
workspaces: [{ workspace: mockDefaultWorkspace }],
|
|
onboardingStatus: onboardingStatus || null,
|
|
};
|
|
};
|