PhoenixKitCRM.Schemas.Company (PhoenixKitCRM v0.7.2)

Copy Markdown View Source

A CRM company / organization record. A first-class record (its own data), NOT a login user. Contacts link to it via CompanyMembership.

Summary

Functions

Public changeset for create/edit. user_uuid is NOT castable here — the organization-user mirror link is set only via link_user_changeset/2, so a crafted form payload can't link an arbitrary user.

Sets or clears the optional organization-user mirror link (controlled, not from form params).

Types

t()

@type t() :: %PhoenixKitCRM.Schemas.Company{
  __meta__: term(),
  address: String.t() | nil,
  company_memberships:
    [PhoenixKitCRM.Schemas.CompanyMembership.t()]
    | Ecto.Association.NotLoaded.t(),
  description: term(),
  email: String.t() | nil,
  industry: String.t() | nil,
  inserted_at: DateTime.t() | nil,
  logo_url: term(),
  metadata: map(),
  name: String.t() | nil,
  notes: String.t() | nil,
  phone: String.t() | nil,
  status: String.t() | nil,
  updated_at: DateTime.t() | nil,
  user: PhoenixKit.Users.Auth.User.t() | Ecto.Association.NotLoaded.t() | nil,
  user_uuid: UUIDv7.t() | nil,
  uuid: UUIDv7.t() | nil,
  website: String.t() | nil
}

Functions

changeset(company, attrs)

@spec changeset(t() | Ecto.Changeset.t(t()), map()) :: Ecto.Changeset.t(t())

Public changeset for create/edit. user_uuid is NOT castable here — the organization-user mirror link is set only via link_user_changeset/2, so a crafted form payload can't link an arbitrary user.

display_name(company)

@spec display_name(t()) :: String.t()

soft_delete_status()

@spec soft_delete_status() :: String.t()

statuses()

@spec statuses() :: [String.t()]

trashed?(company)

@spec trashed?(t()) :: boolean()