Class: Nfe::LegalPerson

Inherits:
Data
  • Object
show all
Defined in:
lib/nfe/resources/dto/legal_person.rb,
sig/nfe/resources/dto/legal_person.rbs

Overview

Immutable value object for a legal person (pessoa jurídica) tied to a company. LegalPerson.from_api maps API camelCase onto snake_case, drops unknown keys, and is nil-tolerant.

federal_tax_number is kept as a String (CNPJ), never coerced to Integer.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeLegalPerson

Returns a new instance of LegalPerson.

Parameters:

  • id: (String, nil)
  • name: (String, nil)
  • trade_name: (String, nil)
  • federal_tax_number: (String, nil)
  • email: (String, nil)
  • address: (Object)
  • created_on: (String, nil)
  • modified_on: (String, nil)


16
# File 'sig/nfe/resources/dto/legal_person.rbs', line 16

def initialize: (id: String?, name: String?, trade_name: String?, federal_tax_number: String?, email: String?, address: untyped, created_on: String?, modified_on: String?) -> void

Instance Attribute Details

#addressObject (readonly)

Returns the value of attribute address.

Returns:

  • (Object)


8
9
10
# File 'sig/nfe/resources/dto/legal_person.rbs', line 8

def address
  @address
end

#created_onString? (readonly)

Returns the value of attribute created_on.

Returns:

  • (String, nil)


9
10
11
# File 'sig/nfe/resources/dto/legal_person.rbs', line 9

def created_on
  @created_on
end

#emailString? (readonly)

Returns the value of attribute email.

Returns:

  • (String, nil)


7
8
9
# File 'sig/nfe/resources/dto/legal_person.rbs', line 7

def email
  @email
end

#federal_tax_numberString? (readonly)

Returns the value of attribute federal_tax_number.

Returns:

  • (String, nil)


6
7
8
# File 'sig/nfe/resources/dto/legal_person.rbs', line 6

def federal_tax_number
  @federal_tax_number
end

#idString? (readonly)

Returns the value of attribute id.

Returns:

  • (String, nil)


3
4
5
# File 'sig/nfe/resources/dto/legal_person.rbs', line 3

def id
  @id
end

#modified_onString? (readonly)

Returns the value of attribute modified_on.

Returns:

  • (String, nil)


10
11
12
# File 'sig/nfe/resources/dto/legal_person.rbs', line 10

def modified_on
  @modified_on
end

#nameString? (readonly)

Returns the value of attribute name.

Returns:

  • (String, nil)


4
5
6
# File 'sig/nfe/resources/dto/legal_person.rbs', line 4

def name
  @name
end

#trade_nameString? (readonly)

Returns the value of attribute trade_name.

Returns:

  • (String, nil)


5
6
7
# File 'sig/nfe/resources/dto/legal_person.rbs', line 5

def trade_name
  @trade_name
end

Class Method Details

.from_api(payload) ⇒ Nfe::LegalPerson?

Returns nil when payload is nil.

Parameters:

  • payload (Hash, nil)

    the unwrapped legal-person object.

Returns:



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/nfe/resources/dto/legal_person.rb', line 21

def self.from_api(payload)
  return nil if payload.nil?

  new(
    id: payload["id"],
    name: payload["name"],
    trade_name: payload["tradeName"],
    federal_tax_number: payload["federalTaxNumber"]&.to_s,
    email: payload["email"],
    address: payload["address"],
    created_on: payload["createdOn"],
    modified_on: payload["modifiedOn"]
  )
end

.newinstance

Parameters:

  • id: (String, nil)
  • name: (String, nil)
  • trade_name: (String, nil)
  • federal_tax_number: (String, nil)
  • email: (String, nil)
  • address: (Object)
  • created_on: (String, nil)
  • modified_on: (String, nil)

Returns:

  • (instance)


14
# File 'sig/nfe/resources/dto/legal_person.rbs', line 14

def self.new: (id: String?, name: String?, trade_name: String?, federal_tax_number: String?, email: String?, address: untyped, created_on: String?, modified_on: String?) -> instance