import type { EntityConfig } from '../types';

export const DEAL_CONFIG: EntityConfig = {
  entityType: 'deal',
  apiPrefix: '/crm/deals',
  label: { singular: 'Сделка', plural: 'Сделки', genitive: 'сделки' },
  systemFields: [
    { key: 'title', label: 'Название', type: 'string', defaultVisible: true, defaultInCard: true },
    { key: 'amount', label: 'Сумма', type: 'currency', defaultVisible: true, defaultInCard: true },
    {
      key: 'contactName',
      label: 'Контакт',
      type: 'string',
      section: 'contact',
      defaultVisible: true,
      defaultInCard: true,
    },
    {
      key: 'contactPhone',
      label: 'Телефон',
      type: 'phone',
      section: 'contact',
      defaultVisible: true,
      defaultInCard: true,
    },
    {
      key: 'contactEmail',
      label: 'Email',
      type: 'email',
      section: 'contact',
      defaultVisible: true,
    },
    { key: 'contactTelegram', label: 'Telegram', type: 'string', section: 'contact' },
    { key: 'contactWhatsapp', label: 'WhatsApp', type: 'string', section: 'contact' },
    { key: 'contactVk', label: 'VK', type: 'string', section: 'contact' },
    {
      key: 'source',
      label: 'Источник',
      type: 'enum',
      defaultVisible: true,
      defaultInCard: true,
      enumOptions: [
        { value: 'MANUAL', label: 'Вручную' },
        { value: 'LANDING', label: 'Лендинг' },
        { value: 'WEBHOOK', label: 'Вебхук' },
        { value: 'IMPORT', label: 'Импорт' },
        { value: 'REFERRAL', label: 'Реферал' },
        { value: 'PHONE', label: 'Телефон' },
        { value: 'SOCIAL', label: 'Соцсети' },
      ],
    },
    { key: 'probability', label: 'Вероятность %', type: 'number' },
    { key: 'expectedCloseDate', label: 'Ожидаемое закрытие', type: 'date' },
    { key: 'assigneeId', label: 'Ответственный', type: 'relation', relationEndpoint: '/staff' },
    { key: 'companyName', label: 'Компания', type: 'string', section: 'company' },
    { key: 'companyInn', label: 'ИНН', type: 'string', section: 'company' },
    { key: 'companyKpp', label: 'КПП', type: 'string', section: 'company' },
    { key: 'companyOgrn', label: 'ОГРН', type: 'string', section: 'company' },
    { key: 'companyLegalAddress', label: 'Юр. адрес', type: 'string', section: 'company' },
    { key: 'companyBankAccount', label: 'Р/С', type: 'string', section: 'company' },
    { key: 'companyBik', label: 'БИК', type: 'string', section: 'company' },
    { key: 'companyBankName', label: 'Банк', type: 'string', section: 'company' },
  ],
  features: {
    pipelines: true,
    activities: true,
    timeline: true,
    customFields: true,
  },
};
