PetHealth-CVH / PetHealth

4 stars 1 forks source link

Criação dos `Models` #24

Open Tiallysson opened 1 month ago

Tiallysson commented 1 month ago

Criei os arquivos: ./Models/ProdutosModel.cs

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Controllers;
using Models.HttpRequests;

// Definição da classe
namespace Models
{

    [Table("tb_produtos")]
    public class Produtos
    {

        [Column("id_produtos")]
        [Key]
        public Guid Id { get; set; }

        // Mapeia suas propriedades para colunas em uma tabela de banco de dados.
        [Column("nome_produto")]
        [MaxLength(50)]
        public required string Nome_Produto { get; set; }

        [Column("descricao")]
        public required string Descricao { get; set; }

        [Column("quantidade")]
        public required int Quantidade { get; set; }

        [Column("preco")]
        public required double Preco { get; set; }

        [ForeignKey("tb_fornecedores")]
        [Column("id_fornecedor")] 

        public Guid FornecedorId {get; set;}
        public required Fornecedor Fornecedores {get; set;}
    }
}

./Models/UsuariosModel.cs

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

// Definição da classe
namespace Models

{
    [Table("tb_usuarios")]
    public class Usuario
    {
        [Key]
        [Column("id_usuario")]
        public Guid Id {get; set;} 

        // Mapeia suas propriedades para colunas em uma tabela de banco de dados.
        [Column("nome")]
        [MaxLength(50)]
        public required string Nome { get; set; }

        [Column("sobrenome")]
        [MaxLength(50)]
        public required string Sobrenome { get; set; }

        [Column("cpf")]
        [MaxLength(11)]
        public required string Cpf { get; set; }

        [Column("data_cadastro")]
        public DateTime DataCadastro { get; set; } = DateTime.Now;

        // Relacionamentos da tb_usuarios = tb_enderecos.id_enderecos
        [ForeignKey("Endereco")]
        [Column("id_endereco")]
        public Guid EnderecoId {get; set;}
        public Endereco Endereco {get; set;}

        [ForeignKey("Contato")]
        [Column("id_contato")]

        public Guid ContatoId {get;set;}
        public Contato Contato {get;set;}
        public object CEP { get; internal set; }
    }
}        
wagnerluann commented 1 month ago

PedidosModels.cs


using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

// Definição da classe
namespace Models
{
    [Table("tb_pedidos")]
    public class Pedidos 
    {
        [Key]
        [Column("id_pedidos")]
        public Guid Id {get; set;}

        // Propriedades da classe
        [Column("data_pedido")]
        public DateTime data_pedido {get; set;}

        [Column("quantidade")]
        public int quantidade {get; set;}

        [Column("preco")]
        public double preco {get; set;}

        // Relacionamentos da tb_pedidos = tb_usuario.id_usuario
        [ForeignKey("UsuarioId")]
        [Column("id_usuario")]
        public Guid UsuarioId {get; set;}
        public Usuario Usuario {get; set;}

        [ForeignKey("ProdutosId")]
        [Column("id_produtos")]
        public Guid ProdutosId {get; set;}
        public Produtos Produtos {get; set;}

    }
}
wagnerluann commented 1 month ago

FornecedorModels.cs


using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore.Metadata.Internal;

// Definição da classe
namespace Models 
{
    [Table("tb_fornecedores")]
    public class Fornecedor
    {
        [Key]
        [Column("id_fornecedor")]

        // Mapeia suas propriedades para colunas em uma tabela de banco de dados.
        public Guid id { get; set; }
        [Required]
        [MaxLength(64)]
        [Column("razao")]
        public string Razao { get; set; }
        [Required]
        [MaxLength(14)]
        [Column("cnpj")]
        public string CNPJ { get; set; }
        [Required]
        [MaxLength(12)]
        [Column("telefone")]
        public string Telefone { get; set; }
        [Required]
        [MaxLength(128)]
        [Column("email")]
        public string Email { get; set; }
    }
}
wagnerluann commented 1 month ago

EnderecoModels.cs


using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

// Definição da classe
namespace Models
{
    [Table("tb_enderecos")]
    public class Endereco
    {
        [Key]
        [Column("id_enderecos")]
        public Guid Id {get; set;}

        // Mapeia suas propriedades para colunas em uma tabela de banco de dados.
        [Column("estado")]
        public required string Estado {get; set;}

        [Column("bairro")]
        public required string Bairro {get; set;}

        [Column("cidade")]
        public required string Cidade {get; set;} 

        [Column("rua")]
        public required string Rua {get; set;}

        [Column("numero")]
        public required string Numero {get; set;}

        [Column("cep")]
        [MaxLength(8)]
        public required string CEP {get; set;}

        [Column("complemento")]
        [MaxLength(200)]
        public required string Complemento {get; set;}

    }
}
wagnerluann commented 1 month ago

CredencialModels.cs


using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

// Definição da classe
namespace Models 
{
    [Table("tb_credenciais")]
    public class Credencial
    {
        [Column("id_credencial")]
        [Key]
        public Guid Id {get; set;}

        // Mapeia suas propriedades para colunas em uma tabela de banco de dados.
        [Column("email")]
        public required string Email {get; set;}

        [Column("senha")]
        [MaxLength(10)]
        public required string Senha {get; set;}

        [ForeignKey("UsuarioId")]
        [Column("id_usuario")]
        public Guid UsuarioId {get; set;}
        public Usuario Usuario {get; set;}
    }
}
wagnerluann commented 1 month ago

ContatoModel.cs


using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

// Definição da classe
namespace Models 
{
    [Table("tb_contato")]
    public class Contato
    {
        [Key]
        [Column("id_contato")]
        public Guid Id {get; set;}

        // Mapeia suas propriedades para colunas em uma tabela de banco de dados.
        [Column("celular")]
        [MaxLength(14)]
        public string celular {get; set;}

        [ForeignKey("email")]
        [Column("email")]
        [MaxLength(100)]
        public string Email {get; set;}
        public Credencial email {get; set;}      
    }
}