customer-dashboard-api/src/utils/constants.ts

101 lines
3.4 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 CALENDAR_MAX_FUTURE_BOOKING_DAYS = 14;
export const CALENDAR_MIN_EARLIEST_BOOKING_TIME = 15; // 15 minutes
//export const CALENDAR_PRIMARY_CALENDAR_ID = "";
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
}
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 = [
{
//id: PAYMENT_PLAN.DEMO,
maxEmployees: 5,
},
{
//id: PAYMENT_PLAN.BASIC,
maxEmployees: 15,
},
];