import enum
from enum import Enum


@enum.unique
class Webhook(str, Enum):
    ACCOUNT_DEACTIVATED = "account.deactivated"
    ACCOUNT_DELETED = "account.deleted"
    COMPANY_ADDED = "company.added"
    COMPANY_DELETED = "company.deleted"
    COMPANY_UPDATED = "company.updated"
    CONTACT_ADDED = "contact.added"
    CONTACT_DELETED = "contact.deleted"
    CONTACT_LINKEDTOCOMPANY = "contact.linkedToCompany"
    CONTACT_UNLINKEDFROMCOMPANY = "contact.unlinkedFromCompany"
    CONTACT_UPDATED = "contact.updated"
    CREDITNOTE_BOOKED = "creditNote.booked"
    DEAL_CREATED = "deal.created"
    DEAL_DELETED = "deal.deleted"
    DEAL_LOST = "deal.lost"
    DEAL_MOVED = "deal.moved"
    DEAL_UPDATED = "deal.updated"
    DEAL_WON = "deal.won"
    INVOICE_BOOKED = "invoice.booked"
    INVOICE_DELETED = "invoice.deleted"
    INVOICE_DRAFTED = "invoice.drafted"
    INVOICE_PAYMENTREGISTERED = "invoice.paymentRegistered"
    INVOICE_PAYMENTREMOVED = "invoice.paymentRemoved"
    INVOICE_SENT = "invoice.sent"
    INVOICE_UPDATED = "invoice.updated"
    MILESTONE_CREATED = "milestone.created"
    MILESTONE_UPDATED = "milestone.updated"
    PRODUCT_ADDED = "product.added"
    PROJECT_CREATED = "project.created"
    PROJECT_DELETED = "project.deleted"
    PROJECT_UPDATED = "project.updated"
    TIMETRACKING_ADDED = "timeTracking.added"
    TIMETRACKING_DELETED = "timeTracking.deleted"
    TIMETRACKING_UPDATED = "timeTracking.updated"
    USER_DEACTIVATED = "user.deactivated"


@enum.unique
class MigrateTypes(str, Enum):
    ACCOUNT = "account"
    USER = "user"
    PRODUCT = "product"
    CONTACT = "contact"
    COMPANY = "company"
    DEAL = "deal"
    DEALPHASE = "dealPhase"
    PROJECT = "project"
    MILESTONE = "milestone"
    TASK = "task"
    MEETING = "meeting"
    CALL = "call"
    TICKET = "ticket"
    INVOICE = "invoice"
    CREDITNOTE = "creditNote"
    SUBSCRIPTION = "subscription"
    QUOTATION = "quotation"
