n8n/packages/nodes-base/nodes/Clockify/WorkpaceInterfaces.ts
2020-02-21 11:41:08 +01:00

77 lines
1.6 KiB
TypeScript

import { IHourlyRateDto, IMembershipDto } from './CommonDtos';
enum AdminOnlyPagesEnum {
PROJECT ='PROJECT',
TEAM = 'TEAM',
REPORTS = 'REPORTS',
}
enum DaysOfWeekEnum {
MONDAY = 'MONDAY',
TUESDAY = 'TUESDAY',
WEDNESDAY = 'WEDNESDAY',
THURSDAY = 'THURSDAY',
FRIDAY = 'FRIDAY',
SATURDAY = 'SATURDAY',
SUNDAY = 'SUNDAY',
}
enum DatePeriodEnum {
DAYS = 'DAYS',
WEEKS = 'WEEKS',
MONTHS = 'MONTHS',
}
enum AutomaticLockTypeEnum {
WEEKLY = 'WEEKLY',
MONTHLY = 'MONTHLY',
OLDER_THAN = 'OLDER_THAN',
}
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;
}