export type CustomFieldType = | 'cpf' | 'cnpj' | 'email' | 'date' | 'date-range' | 'hour' | 'hour-range' | 'type' | 'text' | 'long-text' | 'numeric' | 'monetary' | 'phone' | 'postal-code' | 'checkbox' | 'list' export type CustomFieldOption = { id?: string label?: string } /** Settings for `list` and `checkbox` types: a list of selectable options. */ export type CustomFieldListSettings = { options: CustomFieldOption[] } /** Settings for `monetary` type: optional min/max value constraints. */ export type CustomFieldMonetarySettings = { options: CustomFieldOption[] min?: string max?: string } /** Settings for `text` and `long-text` types: optional max length constraint. */ export type CustomFieldTextSettings = { options: CustomFieldOption[] maxLength?: number } export type CustomFieldSettings = | CustomFieldListSettings | CustomFieldMonetarySettings | CustomFieldTextSettings export type CustomField = { id: string name: string type: CustomFieldType allowed: 'contacts' showOnRegister: boolean required: boolean settings: CustomFieldSettings | null accountId: string createdAt: string updatedAt: string deletedAt: string | null } export type CreateCustomFieldPayload = { name: string type: CustomFieldType allowed: 'contacts' showOnRegister?: boolean required?: boolean settings?: CustomFieldSettings } export type UpdateCustomFieldPayload = { name?: string type?: CustomFieldType showOnRegister?: boolean required?: boolean settings?: CustomFieldSettings | null }