1
resposta

Model Angular 2

Boa noite,

Pessoal, estou com uma dúvida e espero que consigam me auxiliar da melhor forma para que eu consiga resolver. Estou criando uma aplicação Angular 2, porém tenho 3 models.

export class Product {  
  id: string;
  brand: string;
  product_name: string;
  description: string;
  amount: number;
}
export class Category {   
  id: string;
  description: string;
}
export class Stock {  
  id: string;
  location_street: string;
  location_block: number;
  quantity: number;
  quantity_minimum: number;
}

Como faço pra definir o relacionamento, sendo que todo produto tem 1 categoria e n stocks? Procurei alguns exemplos, porém não consegui resolver.

Se puderem me ajudar, fico muito grato.

Abs,

1 resposta

Hey Patric, tranquilo?

Então, a desvantagem de você trabalhar com modelos dessa forma é que você acaba perdendo muita versatilidade de se trabalhar com orientação a objetos. Por exemplo, não tem como criar um construtor para essas modelos, a implementação de métodos fica estranha, e não tem como encapsular os atributos.

Uma alternativa seria algo do tipo:

  export class Product {  

    constructor(private _id: string,
                private _brand: string,
                private _product_namer: string,
                private _description: string,
                private _amount: number,
                private _category: Category,
                private _stocks: Stock[]) {
    }

    // Getters e settes caso necessario

  }

Esse é um exemplo de como ficaria a classe modelo para Product.

Note que no construtor eu já declaro todos os atributos, forçando assim a quem tiver instanciando a classe a passar todos os elementos necessários, note também que eu declarei um atributo do tipo Category e um array de Stocks.

Uma forma de você criar uma relação com essas classes poderia ser através de um método contains na classe Product ou mesmo implementando um atributo a mais na classe Category e Stock que guarde a id do Product, mas não acho que seja necessário.

belezinha?