n8n/packages/nodes-base/nodes/Clockify/WorkpaceInterfaces.ts
2020-02-17 13:10:46 -05:00

78 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;
}