Skip to content

Opportunity

Opportunité commerciale, c'est-à-dire une carte du Kanban (/app/pipeline). Le statut détermine la colonne dans laquelle elle apparaît.

  • Path Firestore : users/{userId}/opportunities/{opportunityId}
  • Source TS : klapy-crm/src/types/index.ts

Interface

ts
interface Opportunity {
  id: string;
  title: string;
  contact_id?: string;
  amount?: number;
  shoot_date?: Timestamp;
  status: OpportunityStatus;
  project_type?: string;
  notes?: string;
  created_at: Timestamp;
  updated_at: Timestamp;
}

Champs

ChampNotes
titleObligatoire
contact_idRéférence optionnelle vers un Contact
amountMontant estimé en euros (TTC), sert au calcul du CA potentiel
shoot_dateDate de tournage prévue
statusDétermine la colonne Kanban via OPPORTUNITY_STATUS
project_typeTexte libre (mariage, corporate, clip, etc.)

Constante liée

OPPORTUNITY_STATUS : new, contacted, quote_sent, negotiating, won, lost

Cycle de vie

Transitions libres

Les transitions ne sont pas contraintes par les règles Firestore : un utilisateur peut faire passer une opportunité de new à won directement. Le diagramme ci-dessus est le flux nominal, pas une machine d'état stricte.

Voir aussi

  • Contact
  • Quote : un devis peut être créé depuis une opportunité
  • Task : peut être rattachée à une opportunité via opportunity_id
  • CalendarEvent : idem (tournage planifié)