CREATE TABLE public.usuario (
	"id_usuario" uuid DEFAULT gen_random_uuid() NOT NULL,
	"criado_em" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
	"atualizado_em" TIMESTAMP,
	"deletado" bool NOT NULL DEFAULT 'false',
	"tipo_de_usuario" varchar(30) NOT NULL,
	"nome" varchar(50) NOT NULL,
	"cnpj" varchar(50) NOT NULL UNIQUE,
	CONSTRAINT "usuario_pk" PRIMARY KEY ("id_usuario")
) WITH (
  OIDS=FALSE
);

CREATE TABLE public.contato (
	"id_contato" serial NOT NULL,
	"id_usuario" uuid NOT NULL,
	"criado_em" TIMESTAMP NOT NULL,
	"criado_por" uuid NOT NULL,
	"atualizado_em" TIMESTAMP,
	"atualizado_por" uuid,
	"deletado" bool NOT NULL DEFAULT 'false',
	CONSTRAINT "contato_pk" PRIMARY KEY ("id_contato")
) WITH (
  OIDS=FALSE
);

CREATE TABLE public.endereco (
	"id_endereco" serial NOT NULL,
	"id_usario" uuid NOT NULL,
	"criado_em" TIMESTAMP NOT NULL,
	"criado_por" uuid NOT NULL,
	"atualizado_em" TIMESTAMP,
	"atualizado_por" uuid,
	"deletado" bool NOT NULL DEFAULT 'false',
	CONSTRAINT "endereco_pk" PRIMARY KEY ("id_endereco")
) WITH (
  OIDS=FALSE
);



CREATE TABLE public.produto (
	"id_produto" serial NOT NULL,
	"criado_em" TIMESTAMP NOT NULL,
	"criado_por" uuid NOT NULL,
	"atualizado_em" TIMESTAMP,
	"atualizado_por" uuid,
	"deletado" bool NOT NULL DEFAULT 'false',
	"nome" varchar(100) NOT NULL,
	"descricao" varchar(255) NOT NULL,
	"tipo_de_produto" varchar(50) NOT NULL,
	"quantidade_por_embalagem" varchar(50) NOT NULL,
	"compra_minima" int NOT NULL,
	"compra_maxima" int NOT NULL,
	"imagens" varchar(255) NOT NULL,
	"id_industria" uuid NOT NULL,
	CONSTRAINT "produto_pk" PRIMARY KEY ("id_produto")
) WITH (
  OIDS=FALSE
);


ALTER TABLE "contato" ADD CONSTRAINT "contato_fk0" FOREIGN KEY ("id_usuario") REFERENCES "usuario"("id_usuario");
ALTER TABLE "contato" ADD CONSTRAINT "contato_fk1" FOREIGN KEY ("criado_por") REFERENCES "usuario"("id_usuario");
ALTER TABLE "contato" ADD CONSTRAINT "contato_fk2" FOREIGN KEY ("atualizado_por") REFERENCES "usuario"("id_usuario");

ALTER TABLE "endereco" ADD CONSTRAINT "endereco_fk0" FOREIGN KEY ("id_usario") REFERENCES "usuario"("id_usuario");
ALTER TABLE "endereco" ADD CONSTRAINT "endereco_fk1" FOREIGN KEY ("criado_por") REFERENCES "usuario"("id_usuario");
ALTER TABLE "endereco" ADD CONSTRAINT "endereco_fk2" FOREIGN KEY ("atualizado_por") REFERENCES "usuario"("id_usuario");

ALTER TABLE "produto" ADD CONSTRAINT "produto_fk0" FOREIGN KEY ("criado_por") REFERENCES "usuario"("id_usuario");
ALTER TABLE "produto" ADD CONSTRAINT "produto_fk1" FOREIGN KEY ("atualizado_por") REFERENCES "usuario"("id_usuario");
ALTER TABLE "produto" ADD CONSTRAINT "produto_fk2" FOREIGN KEY ("id_industria") REFERENCES "usuario"("id_usuario");
