Person

De Stoq Wiki
Ir para: navegação, pesquisa

== Person (Liaison) ==

Person será uma classe base e nunca será instanciada diretamente. Quando necessário o cadastro de uma nova pessoa no sistema, teremos uma instância de Individual ou Company.

Herdamos de Liaison para evitar duplicação dos atributos name e phone_number, assim como os métodos para gerenciamento dos mesmos.

 - id
 - addresses (list of Address)
Esta lista irá armazenar os endereços do person, visto que cada pessoa
poderá ter mais de um endereço. Uma pessoa deverá ter um endereço
principal, que deverá ocupar sempre a primeira posição da lista.
 - mobile_number (str)
 - fax_number (str)
 - email (str)
 - liaisons (list of Liaison)
 - notes (str)
 - calls (list of Calls)

Abaixo é mostrado um diagrama simples com o objetivo de discriminar as dependências entre classes do módulo person:

diagrams/persondiagram.png

Conforme pode ser observado, todo usuário (User) do sistema deve ser um funcionário (Employee) da empresa que esteja cadastrado no sistema.

Pode ser observado também que há uma subclasse de Employee chamada Salesperson, a qual tem como finalidade representar um vendedor e definir atributos próprios do mesmo, como, por exemplo, a comissão pertencente à ele.

Employee deve conter todos os dados de cadastro comuns à todos os cargos de funcionários da empresa. Já PersonPaper tem como objetivo servir como uma classe base para todos os papéis que uma pessoa pode exercer.

Com isso em mente, o diagrama leva-nos à entender que um cliente pode ser tanto uma pessoa física quanto uma pessoa jurídica. Embora possa parecer ser aplicável tanto à clientes (Client) quanto à fornecedores (Supplier), deve ser observado que fornecedores poderão ser somente pessoas jurídicas (Company).