export const locationType = ['country', 'state', 'city', 'area'] as const;

export const EmailType = ['Transactional', 'Promotional'] as const;

export const DeviceType = ['ios', 'android', 'web'] as const;

export enum CommonTypes {
  SUPERADMIN = 'superAdmin',
  ADMIN = 'Admin',
}

export enum CompanyType {
  BROKER = 'broker',
  BUILDER = 'builder',
  SUPERADMIN = CommonTypes.SUPERADMIN,
}

export enum Status {
  ACTIVE = 'active',
  INACTIVE = 'inactive',
  PENDING = 'pending',
  REJECTED = 'rejected',
  ACCEPTED = 'accepted',
  EXPIRED = 'expired',
  EXPIRING_SOON = 'expiring_soon',
}

export enum MemberType {
  INTERNAL = 'internal',
  EXTERNAL = 'external',
}

export enum UserType {
  SUPERADMIN = CommonTypes.SUPERADMIN,
  ADMIN = 'admin',
  CRMUSER = 'crm-user',
}

export const AuditMode = {
  CREATE: 'create',
  UPDATE: 'update',
} as const;

export type AuditModeType = (typeof AuditMode)[keyof typeof AuditMode];

export const PermissionAction = ['create', 'read', 'update', 'delete'] as const;

export enum SupportStatus {
  PENDING = 'pending',
  REPLIED = 'replied',
}

// --- LEAD Module Enums ---
export enum LeadPriority {
  HIGH = 'high',
  MEDIUM = 'medium',
  LOW = 'low',
}

export enum LeadInterestType {
  BUY = 'buy',
  SELL = 'sell',
  RENT = 'rent',
  LEASE = 'lease',
}

export enum LeadBuyingPreference {
  PREFERRED_PROJECT = 'preferred_project',
  OPEN_TO_SUGGESTION = 'open_to_suggestions',
}

export enum PropertyAgeStatus {
  NEW_CONSTRUCTION = 'new_construction',
  LESS_THAN_5_YEARS = 'less_than_5',
  FIVE_TO_TEN_YEARS = '5_to_10',
  TEN_TO_TWENTY_YEARS = '10_to_20',
  MORE_THAN_TWENTY = 'more_than_20',
  RENOVATED = 'renovated',
}

// Bank Account ENUM

export enum BankAccountType {
  SAVINGS = 'savings',
  CURRENT = 'current',
}

// TARGET MODULE ENUMS
export enum TargetType {
  WholeTeam = 'WholeTeam',
  Individual = 'Individual',
}
// Payment Plan ENUM

export enum PaymentType {
  PERCENTAGE = 'percentage',
  FIXED_AMOUNT = 'fixedAmount',
}

export enum ChargeType {
  PERCENTAGE = 'percentage',
  FIXED_AMOUNT = 'fixedAmount',
  PER_SQ_FT = 'perSqFt',
  PER_SQ_YARD = 'perSqYard',
}

export enum ActivityStatus {
  COMPLETED = 'completed',
  OVERDUE = 'overdue',
  PENDING = 'pending',
}

export enum ActivityType {
  CALL = 'call',
  NOTES = 'notes',
  SITE_VISIT = 'site-visit',
  SCHEDULE = 'schedule',
  QUOTE = 'quote',
  FILES = 'files',
  BOOK = 'book',
  HOLD = 'hold',
  MEETING = 'meeting',
  OTHER = 'other',
}

export enum PaymentTerms {
  PERCENTAGE = 'percentage',
  AMOUNT = 'amount',
}

export enum InvoiceStatus {
  PAID = 'paid',
  UNPAID = 'unpaid',
  OVERDUE = 'overdue',
}

export enum ValidUnit {
  DAYS = 'days',
  MONTHS = 'months',
  YEARS = 'years',
}

export enum TriggerPoint {
  OnLoginMobileApp = 'On Login in Mobile App',
  OnSchedule = 'On Schedule',
  Before2Hours = 'Before 2 hrs',
  AfterMeetingCompletedSuccessfully = 'After Meeting Completed Successfully',
  WhenMeetingRescheduled = 'When Meeting Time Changed',
  After3DaysNoActivityScheduled = 'After 3 days of successful meeting if no activity scheduled',
  After7DaysNoActivityScheduled = 'After 7 days of successful meeting if no activity scheduled',
  After3DaysNoActivityScheduledSiteVisit = 'After 3 days of successful site visit if no activity scheduled',
  After7DaysNoActivityScheduledSiteVisit = 'After 7 days of successful site visit if no activity scheduled',
  WhenFilesSharedFromCRM = 'When files shared from CRM',
  WhenUserShareProjectDetails = 'When User share project details',
  WhenUserShareProperties = 'When User share one or multiple properties',
  WhenUserMarkPropertyForSellToLead = 'When user mark property for sell to any lead',
  WhenUserMarkPropertyForRentToLead = 'When user mark property for rent to any lead',
  WhenUserHoldPropertyForLead = 'When user hold property for any lead',
  WhenBuilderRequestPayment = 'When Builder request payment',
  WhenPaymentReceived = 'When payment received from customer',
}
