Files
n8n-enterprise-unlocked/packages/nodes-base/nodes/Clockify/WorkpaceInterfaces.ts

91 lines
2.1 KiB
TypeScript

import type { IHourlyRateDto, IMembershipDto } from './CommonDtos';
export const AdminOnlyPages = {
PROJECT: 'PROJECT',
TEAM: 'TEAM',
REPORTS: 'REPORTS',
} as const;
export type AdminOnlyPagesEnum = (typeof AdminOnlyPages)[keyof typeof AdminOnlyPages];
export const DaysOfWeek = {
MONDAY: 'MONDAY',
TUESDAY: 'TUESDAY',
WEDNESDAY: 'WEDNESDAY',
THURSDAY: 'THURSDAY',
FRIDAY: 'FRIDAY',
SATURDAY: 'SATURDAY',
SUNDAY: 'SUNDAY',
} as const;
export type DaysOfWeekEnum = (typeof DaysOfWeek)[keyof typeof DaysOfWeek];
export const DatePeriods = {
DAYS: 'DAYS',
WEEKS: 'WEEKS',
MONTHS: 'MONTHS',
} as const;
export type DatePeriodEnum = (typeof DatePeriods)[keyof typeof DatePeriods];
export const AutomaticLockTypes = {
WEEKLY: 'WEEKLY',
MONTHLY: 'MONTHLY',
OLDER_THAN: 'OLDER_THAN',
} as const;
export type AutomaticLockTypeEnum = (typeof AutomaticLockTypes)[keyof typeof AutomaticLockTypes];
interface IAutomaticLockDto {
changeDay: DaysOfWeekEnum;
dayOfMonth: number;
firstDay: DaysOfWeekEnum;
olderThanPeriod: DatePeriodEnum;
olderThanValue: number;
type: AutomaticLockTypeEnum;
}
interface IRound {
minutes: string;
round: string;
}
interface IWorkspaceSettingsDto {
adminOnlyPages: AdminOnlyPagesEnum[];
automaticLock: IAutomaticLockDto;
canSeeTimeSheet: boolean;
defaultBillableProjects: boolean;
forceDescription: boolean;
forceProjects: boolean;
forceTags: boolean;
forceTasks: boolean;
lockTimeEntries: string;
onlyAdminsCreateProject: boolean;
onlyAdminsCreateTag: boolean;
onlyAdminsSeeAllTimeEntries: boolean;
onlyAdminsSeeBillableRates: boolean;
onlyAdminsSeeDashboard: boolean;
onlyAdminsSeePublicProjectsEntries: boolean;
projectFavorites: boolean;
projectGroupingLabel: string;
projectPickerSpecialFilter: boolean;
round: IRound;
timeRoundingInReports: boolean;
trackTimeDownToSecond: boolean;
}
export interface IWorkspaceDto {
hourlyRate: IHourlyRateDto;
id: string;
imageUrl: string;
memberships: IMembershipDto[];
name: string;
workspaceSettings: IWorkspaceSettingsDto;
}
export interface IClientDto {
id: string;
name: string;
workspaceId: string;
}