102 lines
3.6 KiB
TypeScript
102 lines
3.6 KiB
TypeScript
export const DEFAULT_SESSION_EXPIRY = 365 * 24 * 60 * 60 * 1000; // 365 days
|
|
export const SESSION_EXPIRY_NOT_REMEMBER_ME = 60 * 60 * 1000; // 1 hour
|
|
export const USER_SESSION_LENGTH = 32;
|
|
|
|
export const USERNAME_MIN_LENGTH = 3;
|
|
export const USERNAME_MAX_LENGTH = 20;
|
|
|
|
export const EMAIL_MIN_LENGTH = 3;
|
|
export const EMAIL_MAX_LENGTH = 64;
|
|
export const EMAIL_REGEX = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
|
|
|
|
export const PASSWORD_MIN_LENGTH = 8;
|
|
export const PASSWORD_MAX_LENGTH = 64;
|
|
|
|
export const USER_ID_LENGTH = 36;
|
|
|
|
// Header name for the session ID
|
|
export const HEADER_X_AUTHORIZATION: string = "x-authorization";
|
|
|
|
export const STORE_SERVICE_MIN_LENGTH = 3;
|
|
export const STORE_SERVICE_MAX_LENGTH = 64;
|
|
|
|
export const STORE_SERVICE_ACTIVITY_NAME_MIN_LENGTH = 3;
|
|
export const STORE_SERVICE_ACTIVITY_NAME_MAX_LENGTH = 64;
|
|
|
|
export const STORE_SERVICE_ACTIVITY_DESCRIPTION_MAX_LENGTH = 1024;
|
|
|
|
export const STORE_SERVICE_ACTIVITY_PRICE_MIN = 0;
|
|
export const STORE_SERVICE_ACTIVITY_PRICE_MAX = 10000000;
|
|
|
|
export const STORE_SERVICE_ACTIVITY_DURATION_MINUTES_MAX = 24 * 60; // 1440 minutes = 24 hours
|
|
export const STORE_SERVICE_ACTIVITY_DURATION_MIN = 0;
|
|
export const STORE_SERVICE_ACTIVITY_DURATION_MAX =
|
|
STORE_SERVICE_ACTIVITY_DURATION_MINUTES_MAX;
|
|
|
|
export const CALNEDAR_MIN_FUTURE_BOOKING_DAYS = 1;
|
|
export const CALENDAR_MIN_EARLIEST_BOOKING_TIME = 15; // 15 minutes
|
|
export const CALENDAR_MAX_EARLIEST_BOOKING_TIME = 24 * 60; // 24 hours in minutes
|
|
export const CALENDAR_USING_PRIMARY_CALENDAR = false;
|
|
export const CALENDAR_MAX_SERVICE_DURATION = 1440; // 24 hours in minutes
|
|
|
|
export const COMPANY_NAME_MIN_LENGTH = 3;
|
|
export const COMPANY_NAME_MAX_LENGTH = 64;
|
|
|
|
// applied to all new created users or employees
|
|
export const USER_ANALYTICS_ENABLED_DEFAULT = true;
|
|
|
|
export const VALID_LANGUAGE_CODES = ["en", "de"];
|
|
|
|
export enum ACCOUNT_STATE {
|
|
ACTIVE = 0, // everything is fine
|
|
PENDING_DELETION = 1, // account still exists but is marked as deleted, can be restored or will be deleted after a certain time
|
|
INIT_LOGIN = 2, // account is created but password is not set yet
|
|
BANNED = 3, // account is banned, cannot login
|
|
PENDING_EMAIL_VERIFICATION = 4, // account is created but email is not verified yet
|
|
}
|
|
|
|
export const FEEDBACK_MIN_LENGTH = 3;
|
|
export const FEEDBACK_MAX_LENGTH = 1024;
|
|
|
|
// TODO: outdated
|
|
export const Roles = {
|
|
// admin of the whole system independent of stores
|
|
Admin: "admin",
|
|
// owner of a store
|
|
Master: "master",
|
|
// worker of a store belonging to a master
|
|
Worker: "worker",
|
|
};
|
|
|
|
export const ACCOUNT_DEMO_DAYS = Number(
|
|
process.env.CONSTANTS_ACCOUNT_DEMO_DAYS
|
|
); // how many days a demo account is valid until payment is required or account will be deleted
|
|
|
|
export enum EMAIL_VERIFICATION_STATE {
|
|
PENDING_EMAIL_VERIFICATION = 0, // account is created but email is not verified yet
|
|
PENDING_USER_PROFILE_EMAIL_CHANGE_VERIFICATION = 1, // user wants to change email, new email is not verified yet
|
|
}
|
|
|
|
export const DASHBOARD_URL = process.env.DASHBOARD_URL as string;
|
|
export const GOOGLE_CALLBACK_URL = `${process.env.DASHBOARD_API_URL}/v1/calendar/auth/google/callback`;
|
|
export const PASSPORT_FAILURE_REDIRECT_URL = `${DASHBOARD_URL}/store/calendar/auth/failed`;
|
|
export const PASSPORT_SUCCESS_REDIRECT_URL = `${DASHBOARD_URL}/store/calendar/auth/finish`;
|
|
export const ACCOUNT_EXPORT_URL = `${DASHBOARD_URL}/v1/user/profile/export/`;
|
|
export const TERMIN_PLANNER_URL = process.env.TERMIN_PLANNER_URL;
|
|
|
|
export enum PAYMENT_PLAN {
|
|
DEMO = 0,
|
|
BASIC = 1,
|
|
}
|
|
|
|
export const PAYMENT_PLAN_SETTINGS = [
|
|
{
|
|
maxEmployees: 5,
|
|
calendarMaxFutureBookingDays: 14,
|
|
},
|
|
{
|
|
maxEmployees: 15,
|
|
calendarMaxFutureBookingDays: 60,
|
|
},
|
|
];
|