Package controllers

Class BranchController

java.lang.Object
controllers.BranchController

public class BranchController extends Object
Manipula os dados presentes nas filiais para serem utilizados nas views de maneira mais fácil de apresentar
Since:
2023
Version:
1.1
Author:
Mateus, Henrique e Gabriel
See Also:
  • Constructor Details

    • BranchController

      public BranchController()
  • Method Details

    • generateMedicamentHTMLTemplate

      public String generateMedicamentHTMLTemplate(Product product, Branch branch)
      Cria um template em HTML com os detalhes de um produto do tipo medicamento
      Parameters:
      product - Product Produto a ser gerado o template
      branch - Branch Filial a qual o produto pertence
      Returns:
      String Template HTML de um Medicamento
      See Also:
    • generatePurchasedProductsHTMLTemplate

      public String[] generatePurchasedProductsHTMLTemplate(HashMap<Product,Integer> purchasedProducts)
      Cria um template em HTML com os detalhes dos produtos comprados
      Parameters:
      purchasedProducts - HashMap<Product, Integer> De produtos comprados
      Returns:
      String[] Template HTML dos produtos comprados
      See Also:
    • generateCosmeticHTMLTemplate

      public String generateCosmeticHTMLTemplate(Product product, Branch branch)
      Cria um template em HTML com os detalhes de um produto do tipo cosmético
      Parameters:
      product - Product Produto a ser gerado o template
      branch - Branch Filial a qual o produto pertence
      Returns:
      String Template HTML de um Cosmético
      See Also:
    • searchProductsByWordAsHTMLTemplate

      public String[] searchProductsByWordAsHTMLTemplate(String branchUUID, String word)
      Busca produtos por um expressão existente em seu nome
      Parameters:
      branchUUID - String UUID da filial
      word - String expressão a ser buscada
      Returns:
      String[] Array de strings com os produtos encontrados
      See Also:
    • handleProductType

      public String handleProductType(Product product)
      Identifica o tipo de um produto "Medicamento" ou "Cosmético"
      Parameters:
      product - Product Produto a ser identificado
      Returns:
      String Tipo do produto traduzido em um string
      See Also:
    • addMedicament

      public void addMedicament(String branchUUID, String productName, Integer productPrice, Integer productQuantity, String boxColor, Integer dosageMg, Integer minimumAge)
      Adiciona um novo medicamento em uma filial específica
      Parameters:
      branchUUID - String UUID da filial
      productName - String Nome do medicamento
      productPrice - Integer Preço do medicamento
      productQuantity - Integer Quantidade do medicamento
      boxColor - String Cor da caixa do medicamento
      dosageMg - Integer Dosagem em mg do medicamento
      minimumAge - Integer Idade mínima para consumir o medicamento
      See Also:
    • addCosmetic

      public void addCosmetic(String branchUUID, String productName, Integer productPrice, Integer productQuantity, String brand, String type, Boolean uv)
      Adiciona um novo cosmético em uma filial específica
      Parameters:
      branchUUID - String UUID da filial
      productName - String Nome do cosmético
      productPrice - Integer Preço do cosmético
      productQuantity - Integer Quantidade do cosmético
      brand - String Marca do cosmético
      type - String Tipo do cosmético
      uv - Boolean Proteção solar do cosmético
      See Also:
    • getProductByName

      public Product getProductByName(String branchUUID, String productName)
      Busca por um produto específico pelo seu nome
      Parameters:
      branchUUID - String UUID da filial
      productName - String Nome do produto
      Returns:
      Product produto encontrado
      See Also:
    • getProductQuantity

      public Integer getProductQuantity(String branchUUID, Product product)
      Busca a quantidade de um produto recebido, em uma filial específica
      Parameters:
      branchUUID - String UUID da filial
      product - Product Produto a ser buscado
      Returns:
      Integer quantidade do produto recebido
    • getBranchByUUID

      public Branch getBranchByUUID(String branchUUID)
      Busca por uma filial dado seu UUID
      Parameters:
      branchUUID - String UUID da filial
      Returns:
      Branch Filial encontrada pelo UUID
    • registerBranch

      public void registerBranch(String password, String city, String region)
      Registra um nova filial dada a senha geral da rede, a cidade e a região
      Parameters:
      password - String Senha geral da rede
      city - String Cidade da filial
      region - String Região da filial
    • authenticateBranch

      public boolean authenticateBranch(String branchUUID, String password)
      Tenta fazer o login de uma filial dado seu UUID e senha
      Parameters:
      branchUUID - String UUID da filial
      password - String Senha da filial
      Returns:
      boolean informa se foi possível ou não a autenticação de uma filial
      See Also:
    • logoutBranch

      public void logoutBranch(String branchUUID)
      Faz o logout de uma filial dado seu UUID
      Parameters:
      branchUUID - String UUID da filial
    • updateBranchAddress

      public boolean updateBranchAddress(String branchUUID, String newCity, String newRegion)
      Tenta atualizar o endereço de uma filial dado seu UUID, cidade e região
      Parameters:
      branchUUID - String UUID da filial
      newCity - String Nova cidade da filial
      newRegion - String Nova região da filial
      Returns:
      boolean informa se o update do endereço foi possível ou não
      See Also:
    • getBranchCity

      public String getBranchCity(String branchUUID)
      Informa a cidade de uma filial dado seu UUID
      Parameters:
      branchUUID - String UUID da filial
      Returns:
      String Cidade da filial encontrada
    • getBranchRegion

      public String getBranchRegion(String branchUUID)
      Informa a região da filial dado seu UUID
      Parameters:
      branchUUID - String UUID da filial
      Returns:
      String Região da filial encontrada
    • updateProduct

      public void updateProduct(String branchUUID, String productName, String productType, LinkedHashMap<String,String> productData)
      Atualiza todas as informações de um certo produto dado seu nome
      Parameters:
      branchUUID - String UUID da filial
      productName - String Nome do produto
      productType - String Tipo do produto
      productData - LinkedHashMap<String, String> Dados do produto
      See Also:
    • removeProduct

      public void removeProduct(String branchUUID, String productName)
      Remove um produto de uma filial específica dado seu UUID a partir do nome de tal
      Parameters:
      branchUUID - String UUID da filial
      productName - String Nome do produto
      See Also:
    • removeProduct

      public void removeProduct(String branchUUID, String productName, Integer quantity)
      Remove uma quantidade específica de um produto dado o UUID da filial, o nome do produto e a quantidade
      Parameters:
      branchUUID - String UUID da filial
      productName - String Nome do produto
      quantity - Integer Quantidade a ser removida
      See Also:
    • buyProduct

      public void buyProduct(String branchUUID, Client client, String productName)
      Realiza a compra de um produto por um cliente dado o UUID da filial, o cliente e o nome do produto
      Parameters:
      branchUUID - String UUID da filial
      client - Client Cliente que está comprando
      productName - String Nome do produto
      See Also:
    • getPurchasedProducts

      public HashMap<Product,Integer> getPurchasedProducts(Client client)