Subversion Repositories Integrator Subversion

Rev

Rev 743 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

/*==============================================================*/
/* DBMS name:     PostgreSQL 8                                  */
/* Criado em:     30/10/2025                                        */
/* Autor: Bruno Lopes Peixoto                                       */
/*==============================================================*/

SET search_path = sc_lse;

CREATE SEQUENCE sq_vigencia
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;

/*==============================================================*/
/* Table: sec_vigencia                                          */
/*==============================================================*/
CREATE TABLE sec_vigencia (
   seq_vigencia         INT8                 NOT NULL DEFAULT NEXTVAL('sc_lse.sq_vigencia'::regclass),
   dsc_vigencia         VARCHAR(10)          NOT NULL,
   dth_inicio           TIMESTAMP            NOT NULL,
   dth_fim              TIMESTAMP            NOT NULL,
   tip_situacao_folha   CHAR(1)              NOT NULL
      CONSTRAINT ck_vigsit_folha CHECK (tip_situacao_folha IN ('P','A','F')),
   tip_situacao_valetransporte CHAR(1)              NOT NULL
      CONSTRAINT ck_vigsit_valetransporte CHECK (tip_situacao_valetransporte IN ('P','A','F')),
   tip_situacao_concbancaria CHAR(1)              NOT NULL
      CONSTRAINT ck_vigsit_concbancaria CHECK (tip_situacao_concbancaria IN ('P','A','F')),
   tip_situacao_escala  CHAR(1)              NOT NULL
      CONSTRAINT ck_vigsit_escala CHECK (tip_situacao_escala IN ('P','A','F')),
   tip_situacao_metas   CHAR(1)              NOT NULL
      CONSTRAINT ck_vigsit_metas CHECK (tip_situacao_metas IN ('P','A','F')),
   tip_situacao_avaliacoes CHAR(1)              NOT NULL
      CONSTRAINT ck_vigsit_avaliacoes CHECK (tip_situacao_avaliacoes IN ('P','A','F')),
   tip_situacao_provisaoferias CHAR(1)              NOT NULL
      CONSTRAINT ck_vigsit_provisaoferias CHECK (tip_situacao_provisaoferias IN ('P','A','F')),
   tip_situacao_notasfiscais CHAR(1)              NOT NULL
      CONSTRAINT ck_vigsit_notasfiscais CHECK (tip_situacao_notasfiscais IN ('P','A','F')),
   tip_situacao_consolidacao CHAR(1)              NOT NULL
      CONSTRAINT ck_vigsit_consolidacao CHECK (tip_situacao_consolidacao IN ('P','A','F')),
   CONSTRAINT pk_vigencia PRIMARY KEY (seq_vigencia)
);

comment ON COLUMN sec_vigencia.tip_situacao_folha IS
'Valores possíveis:
P - PENDENTE
A - EM ANDAMENTO
F - FINALIZADA'
;

comment ON COLUMN sec_vigencia.tip_situacao_valetransporte IS
'Valores possíveis:
P - PENDENTE
A - EM ANDAMENTO
F - FINALIZADA'
;

comment ON COLUMN sec_vigencia.tip_situacao_concbancaria IS
'Valores possíveis:
P - PENDENTE
A - EM ANDAMENTO
F - FINALIZADA'
;

comment ON COLUMN sec_vigencia.tip_situacao_escala IS
'Valores possíveis:
P - PENDENTE
A - EM ANDAMENTO
F - FINALIZADA'
;

comment ON COLUMN sec_vigencia.tip_situacao_metas IS
'Valores possíveis:
P - PENDENTE
A - EM ANDAMENTO
F - FINALIZADA'
;

comment ON COLUMN sec_vigencia.tip_situacao_avaliacoes IS
'Valores possíveis:
P - PENDENTE
A - EM ANDAMENTO
F - FINALIZADA'
;

comment ON COLUMN sec_vigencia.tip_situacao_provisaoferias IS
'Valores possíveis:
P - PENDENTE
A - EM ANDAMENTO
F - FINALIZADA'
;

comment ON COLUMN sec_vigencia.tip_situacao_notasfiscais IS
'Valores possíveis:
P - PENDENTE
A - EM ANDAMENTO
F - FINALIZADA'
;

comment ON COLUMN sec_vigencia.tip_situacao_consolidacao IS
'Valores possíveis:
P - PENDENTE
A - EM ANDAMENTO
F - FINALIZADA'
;

-- set table ownership
ALTER TABLE sec_vigencia owner TO labse_sc_lse
;
/*==============================================================*/
/* Index: ix_vigencia                                           */
/*==============================================================*/
CREATE UNIQUE INDEX ix_vigencia ON sec_vigencia (
seq_vigencia
);


CREATE SEQUENCE sq_endereco
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;

/*==============================================================*/
/* Table: sec_endereco                                          */
/*==============================================================*/
CREATE TABLE sec_endereco (
   seq_endereco         INT8                 NOT NULL DEFAULT NEXTVAL('sc_lse.sq_endereco'::regclass),
   seq_pessoa           INT8                 NOT NULL,
   dsc_cep              VARCHAR(8)           NULL,
   dsc_logradouro       VARCHAR(200)         NULL,
   dsc_numero           VARCHAR(6)           NULL,
   dsc_bairro           VARCHAR(120)         NULL,
   dsc_complemento      VARCHAR(200)         NULL,
   dsc_municipio        VARCHAR(120)         NULL,
   dsc_codigo_municipio VARCHAR(20)          NULL,
   dsc_uf               VARCHAR(2)           NULL,
   ind_propria          BOOL                 NULL,
   ind_uso_fgts         BOOL                 NULL,
   tip_dependentes      VARCHAR(2)           NULL
      CONSTRAINT ck_tipodependentes CHECK (tip_dependentes IS NULL OR (tip_dependentes IN ('<Val0>'))),
   dsc_dados_dependentes VARCHAR(400)         NULL,
   ind_dependentes_irrf BOOL                 NULL,
   ind_dependentes_salariofamilia BOOL                 NULL,
   ind_ativo            BOOL                 NOT NULL,
   CONSTRAINT pk_endereco PRIMARY KEY (seq_endereco)
);

-- set table ownership
ALTER TABLE sec_endereco owner TO labse_sc_lse
;
/*==============================================================*/
/* Index: ix_endereco                                           */
/*==============================================================*/
CREATE UNIQUE INDEX ix_endereco ON sec_endereco (
seq_endereco
);

CREATE SEQUENCE sq_pessoa
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;


/*==============================================================*/
/* Table: sec_pessoa                                            */
/*==============================================================*/
CREATE TABLE sec_pessoa (
   seq_pessoa           INT8                 NOT NULL DEFAULT NEXTVAL('sc_lse.sq_pessoa'::regclass),
   tip_pessoa           CHAR(1)              NULL
      CONSTRAINT ck_pessoa_tipo CHECK (tip_pessoa IS NULL OR (tip_pessoa IN ('F','J'))),
   dsc_nome             VARCHAR(120)         NOT NULL,
   dsc_cpf_cnpj         VARCHAR(20)          NULL,
   dsc_rg               VARCHAR(20)          NULL,
   dsc_rg_dataexpedicao DATE                 NULL,
   dsc_rg_orgaoemissor  VARCHAR(10)          NULL,
   dsc_email            VARCHAR(120)         NULL,
   dsc_contato          VARCHAR(120)         NULL,
   tip_sexo             CHAR(1)              NULL
      CONSTRAINT ck_pessoa_sexo CHECK (tip_sexo IS NULL OR (tip_sexo IN ('F','M'))),
   dsc_telefone         VARCHAR(11)          NULL,
   dsc_nacionalidade    VARCHAR(20)          NULL,
   dsc_observacao       VARCHAR(240)         NULL,
   dat_nascimento       DATE                 NULL,
   dsc_nascimento_local VARCHAR(120)         NULL,
   dsc_nascimento_uf    VARCHAR(2)           NULL,
   dsc_nome_pai         VARCHAR(120)         NULL,
   dsc_nome_mae         VARCHAR(120)         NULL,
   tip_estado_civil     CHAR(1)              NULL
      CONSTRAINT ck_estadocivil_pessoa CHECK (tip_estado_civil IS NULL OR (tip_estado_civil IN ('S','C','D','V','U','O'))),
   tip_raca_cor         CHAR(1)              NULL
      CONSTRAINT ck_racacor_pessoa CHECK (tip_raca_cor IS NULL OR (tip_raca_cor IN ('I','B','N','A','P','Z'))),
   tip_escolaridade     VARCHAR(2)           NULL
      CONSTRAINT ck_escolaridade_pessoa CHECK (tip_escolaridade IS NULL OR (tip_escolaridade IN ('1','2','3','4','5','6','7','8','9','10','11','12'))),
   dsc_razao_social     VARCHAR(240)         NULL,
   dsc_nome_fantasia    VARCHAR(120)         NULL,
   tip_regime_tributario CHAR(1)              NULL
      CONSTRAINT ck_regime_tributario_pessoa CHECK (tip_regime_tributario IS NULL OR (tip_regime_tributario IN ('1','2','3'))),
   dsc_inscricao_estadual VARCHAR(15)          NULL,
   ind_inscricao_estadual_isento BOOL                 NULL,
   tip_inscricao_estadual CHAR(1)              NULL
      CONSTRAINT ck_pessoa_inscricaoestadual CHECK (tip_inscricao_estadual IS NULL OR (tip_inscricao_estadual IN ('C','I','N'))),
   dsc_inscricao_municipal VARCHAR(15)          NULL,
   tip_papel            CHAR(1)              NULL
      CONSTRAINT ck_papel_pessoa CHECK (tip_papel IS NULL OR (tip_papel IN ('C','O','F','T'))),
   ind_novidades        BOOL                 NULL,
   ind_primeiro_emprego BOOL                 NULL,
   ind_optante_fgts     BOOL                 NULL,
   ind_deficiente_motora BOOL                 NULL,
   ind_deficiente_visual BOOL                 NULL,
   ind_deficiente_auditiva BOOL                 NULL,
   ind_reabilitado      BOOL                 NULL,
   dsc_deficiente_observacao VARCHAR(200)         NULL,
   ind_ativo            BOOL                 NOT NULL,
   CONSTRAINT pk_pessoa PRIMARY KEY (seq_pessoa)
);

comment ON COLUMN sec_pessoa.tip_pessoa IS
'Valores possíveis:
F - FÍSICA
J - JURÍDICA'
;

comment ON COLUMN sec_pessoa.tip_sexo IS
'Valores possíveis:
F - FEMININO
M - MASCULINO'
;

comment ON COLUMN sec_pessoa.tip_estado_civil IS
'Valores possíveis:
S - Solteiro
C - Casado
D - Divorciado
V - Viúvo
U - União Estável
O - Outros'
;

comment ON COLUMN sec_pessoa.tip_raca_cor IS
'Valores possíveis:
I - Indígena
B - Branca
N - Negra
A - Amarela (japonesa, coreana)
P - Parda
Z - Nao informado'
;

comment ON COLUMN sec_pessoa.tip_escolaridade IS
'Valores possíveis:
1 - Analfabeto
2 - Até a 4ª série incompleta do ensino fundamental
3 - Até a 4ª série completa do ensino fundamental
4 - Até a 8ª série incompleta do ensino fundamental
5 - Ensino fundamental completo
6 - Ensino médio incompleto
7 - Ensino médio completo
8 - Ensino superior incompleto
9 - Ensino superior completo
10 - Pós-graduação
11 - Mestrado
12 - Doutorado'
;

comment ON COLUMN sec_pessoa.tip_regime_tributario IS
'Valores possíveis:
1 - Simples Nacional
2 - Simples Nacional - Excesso de Sublimite de Receita Bruta
3 - Regime Normal'
;

comment ON COLUMN sec_pessoa.tip_inscricao_estadual IS
'Valores possíveis:
C - Contribuinte ICMS
I - Contribuinte Isento
N - Não Contribuinte'
;

comment ON COLUMN sec_pessoa.tip_papel IS
'Valores possíveis:
C - Cliente
O - Colaborador
F - Fornecedor
T - Técnico'
;

-- set table ownership
ALTER TABLE sec_pessoa owner TO labse_sc_lse
;
/*==============================================================*/
/* Index: ix_pessoa                                             */
/*==============================================================*/
CREATE UNIQUE INDEX ix_pessoa ON sec_pessoa (
seq_pessoa
);


/*==============================================================*/
/* Index: ix_endereco_pessoa                                    */
/*==============================================================*/
CREATE  INDEX ix_endereco_pessoa ON sec_endereco (
seq_pessoa
);

ALTER TABLE sec_endereco
   ADD CONSTRAINT fk_endereco_pessoa FOREIGN KEY (seq_pessoa)
      REFERENCES sec_pessoa (seq_pessoa)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

/*==============================================================*/
/* Table: sec_papel                                             */
/*==============================================================*/
CREATE TABLE sec_papel (
   cod_papel            INT8                 NOT NULL,
   dsc_papel            VARCHAR(120)         NOT NULL,
   CONSTRAINT pk_papel PRIMARY KEY (cod_papel)
);

-- set table ownership
ALTER TABLE sec_papel owner TO labse_sc_lse
;
/*==============================================================*/
/* Index: ix_papel                                              */
/*==============================================================*/
CREATE UNIQUE INDEX ix_papel ON sec_papel (
cod_papel
);

/*==============================================================*/
/* Table: sec_pessoa_papel                                      */
/*==============================================================*/
CREATE TABLE sec_pessoa_papel (
   seq_pessoa           INT8                 NOT NULL,
   cod_papel            INT8                 NOT NULL,
   CONSTRAINT pk_pessoapapel PRIMARY KEY (seq_pessoa, cod_papel)
);

-- set table ownership
ALTER TABLE sec_pessoa_papel owner TO labse_sc_lse
;
/*==============================================================*/
/* Index: ix_pessoapapel                                        */
/*==============================================================*/
CREATE UNIQUE INDEX ix_pessoapapel ON sec_pessoa_papel (
seq_pessoa,
cod_papel
);

/*==============================================================*/
/* Index: ix_pessoapapel_papel                                  */
/*==============================================================*/
CREATE  INDEX ix_pessoapapel_papel ON sec_pessoa_papel (
cod_papel
);

/*==============================================================*/
/* Index: ix_pessoapapel_pessoa                                 */
/*==============================================================*/
CREATE  INDEX ix_pessoapapel_pessoa ON sec_pessoa_papel (
seq_pessoa
);

ALTER TABLE sec_pessoa_papel
   ADD CONSTRAINT fk_pessoapapel_papel FOREIGN KEY (cod_papel)
      REFERENCES sec_papel (cod_papel)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

ALTER TABLE sec_pessoa_papel
   ADD CONSTRAINT fk_pessoapapel_pessoa FOREIGN KEY (seq_pessoa)
      REFERENCES sec_pessoa (seq_pessoa)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

CREATE SEQUENCE sq_funcionario
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;

/*==============================================================*/
/* Table: sec_funcionario                                       */
/*==============================================================*/
CREATE TABLE sec_funcionario (
   seq_funcionario      INT8                 NOT NULL DEFAULT NEXTVAL('sc_lse.sq_funcionario'::regclass),
   seq_pessoa           INT8                 NULL,
   cod_contabilidade    INT8                 NULL,
   dat_admissao         DATE                 NULL,
   dat_demissao         DATE                 NULL,
   dsc_pis              VARCHAR(30)          NULL,
   dsc_ctps             VARCHAR(30)          NULL,
   dsc_ctps_serie       VARCHAR(10)          NULL,
   dsc_ctps_uf          VARCHAR(2)           NULL,
   val_salario          NUMERIC(10,2)        NULL,
   ind_ativo            BOOL                 NOT NULL,
   tip_comissionamento  CHAR(1)              NOT NULL
      CONSTRAINT ck_comissionamento_tipo CHECK (tip_comissionamento IN ('E','C','F','V')),
   dsc_tamanho_fardamento VARCHAR(3)           NULL,
   CONSTRAINT pk_funcionario PRIMARY KEY (seq_funcionario)
);

comment ON COLUMN sec_funcionario.tip_comissionamento IS
'Valores possíveis:
E - Espaço Case
C - Casa das Capas
F - Farmácia
V - Vivo'
;

-- set table ownership
ALTER TABLE sec_funcionario owner TO labse_sc_lse
;
/*==============================================================*/
/* Index: ix_funcionario                                        */
/*==============================================================*/
CREATE UNIQUE INDEX ix_funcionario ON sec_funcionario (
seq_funcionario
);

/*==============================================================*/
/* Index: ix_funcionario_pessoa                                 */
/*==============================================================*/
CREATE  INDEX ix_funcionario_pessoa ON sec_funcionario (
seq_pessoa
);

ALTER TABLE sec_funcionario
   ADD CONSTRAINT fk_funcionario_pessoa FOREIGN KEY (seq_pessoa)
      REFERENCES sec_pessoa (seq_pessoa)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

CREATE SEQUENCE sq_contabancaria
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;

/*==============================================================*/
/* Table: sec_conta_bancaria                                    */
/*==============================================================*/
CREATE TABLE sec_conta_bancaria (
   seq_conta_bancaria   INT8                 NOT NULL DEFAULT NEXTVAL('sc_lse.sq_contabancaria'::regclass),
   seq_pessoa           INT8                 NULL,
   dsc_descricao        VARCHAR(120)         NULL,
   tip_conta_bancaria   CHAR(1)              NOT NULL
      CONSTRAINT ck_contabancaria_tipo CHECK (tip_conta_bancaria IN ('B','C')),
   val_saldo            DECIMAL(10,2)        NULL,
   ind_ativo            BOOL                 NOT NULL,
   CONSTRAINT pk_contabancaria PRIMARY KEY (seq_conta_bancaria)
);

comment ON COLUMN sec_conta_bancaria.tip_conta_bancaria IS
'Valores possíveis:
C - Caixa
B - Banco'
;

-- set table ownership
ALTER TABLE sec_conta_bancaria owner TO labse_sc_lse
;
/*==============================================================*/
/* Index: ix_contabancaria                                      */
/*==============================================================*/
CREATE UNIQUE INDEX ix_contabancaria ON sec_conta_bancaria (
seq_conta_bancaria
);

/*==============================================================*/
/* Index: ix_contabancaria_pessoa                               */
/*==============================================================*/
CREATE  INDEX ix_contabancaria_pessoa ON sec_conta_bancaria (
seq_pessoa
);

ALTER TABLE sec_conta_bancaria
   ADD CONSTRAINT fk_contabancaria_pessoa FOREIGN KEY (seq_pessoa)
      REFERENCES sec_pessoa (seq_pessoa)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

/*==============================================================*/
/* Table: sec_perfil                                            */
/*==============================================================*/
CREATE TABLE sec_perfil (
   cod_perfil           INT8                 NOT NULL,
   dsc_perfil           VARCHAR(120)         NULL,
   dsc_setor            VARCHAR(120)         NULL,
   ind_setor_ativo      BOOL                 NOT NULL,
   CONSTRAINT pk_perfil PRIMARY KEY (cod_perfil)
);

-- set table ownership
ALTER TABLE sec_perfil owner TO labse_sc_lse
;
/*==============================================================*/
/* Index: ix_perfil                                             */
/*==============================================================*/
CREATE UNIQUE INDEX ix_perfil ON sec_perfil (
cod_perfil
);

CREATE SEQUENCE sq_usuario
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;

/*==============================================================*/
/* Table: sec_usuario                                           */
/*==============================================================*/
CREATE TABLE sec_usuario (
   seq_usuario          INT8                 NOT NULL DEFAULT NEXTVAL('sc_lse.sq_usuario'::regclass),
   seq_pessoa           INT8                 NULL,
   dsc_login            VARCHAR(32)          NOT NULL,
   dsc_nome             VARCHAR(120)         NULL,
   dsc_senha            VARCHAR(32)          NOT NULL,
   dth_ultimo_acesso    TIMESTAMP            NULL,
   ind_ativo            BOOL                 NOT NULL,
   CONSTRAINT pk_usuario PRIMARY KEY (seq_usuario)
);

-- set table ownership
ALTER TABLE sec_usuario owner TO labse_sc_lse
;
/*==============================================================*/
/* Index: ix_usuario                                            */
/*==============================================================*/
CREATE UNIQUE INDEX ix_usuario ON sec_usuario (
seq_usuario
);

/*==============================================================*/
/* Index: ix_usuario_pessoa                                     */
/*==============================================================*/
CREATE  INDEX ix_usuario_pessoa ON sec_usuario (
seq_pessoa
);

CREATE SEQUENCE sq_usuarioperfil
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;

/*==============================================================*/
/* Table: sec_usuario_perfil                                    */
/*==============================================================*/
CREATE TABLE sec_usuario_perfil (
   seq_usuario_perfil   INT8                 NOT NULL DEFAULT NEXTVAL('sc_lse.sq_usuarioperfil'::regclass),
   seq_usuario          INT8                 NOT NULL,
   cod_perfil           INT8                 NOT NULL,
   CONSTRAINT pk_usuario_perfil PRIMARY KEY (seq_usuario_perfil)
);

-- set table ownership
ALTER TABLE sec_usuario_perfil owner TO labse_sc_lse
;
/*==============================================================*/
/* Index: ix_usuarioperfil_perfil                               */
/*==============================================================*/
CREATE UNIQUE INDEX ix_usuarioperfil_perfil ON sec_usuario_perfil (
seq_usuario_perfil
);

/*==============================================================*/
/* Index: ix_usuarioperfil_usuario                              */
/*==============================================================*/
CREATE  INDEX ix_usuarioperfil_usuario ON sec_usuario_perfil (
seq_usuario
);

/*==============================================================*/
/* Index: ix_usuarioperfil_codigoperfil                         */
/*==============================================================*/
CREATE  INDEX ix_usuarioperfil_codigoperfil ON sec_usuario_perfil (
cod_perfil
);

ALTER TABLE sec_usuario_perfil
   ADD CONSTRAINT fk_usuarioperfil_perfil FOREIGN KEY (cod_perfil)
      REFERENCES sec_perfil (cod_perfil)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

ALTER TABLE sec_usuario_perfil
   ADD CONSTRAINT fk_usuarioperfil_usuario FOREIGN KEY (seq_usuario)
      REFERENCES sec_usuario (seq_usuario)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

CREATE SEQUENCE sq_empresaadquirente
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;

/*==============================================================*/
/* Table: sec_empresa_adquirente                                */
/*==============================================================*/
CREATE TABLE sec_empresa_adquirente (
   seq_empresa_adquirente INT8                 NOT NULL DEFAULT NEXTVAL('sc_lse.sq_empresaadquirente'::regclass),
   dsc_empresa_adquirente VARCHAR(120)         NOT NULL,
   ind_ativo            BOOL                 NOT NULL,
   CONSTRAINT pk_empresaadquirente PRIMARY KEY (seq_empresa_adquirente)
);

-- set table ownership
ALTER TABLE sec_empresa_adquirente owner TO labse_sc_lse
;
/*==============================================================*/
/* Index: ix_empresa_adquirente                                 */
/*==============================================================*/
CREATE UNIQUE INDEX ix_empresa_adquirente ON sec_empresa_adquirente (
seq_empresa_adquirente
);

CREATE SEQUENCE sq_maquineta
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;

/*==============================================================*/
/* Table: sec_maquineta                                         */
/*==============================================================*/
CREATE TABLE sec_maquineta (
   seq_maquineta        INT8                 NOT NULL DEFAULT NEXTVAL('sc_lse.sq_maquineta'::regclass),
   seq_empresa_adquirente INT8                 NOT NULL,
   seq_pessoa           INT8                 NOT NULL,
   dsc_maquineta        VARCHAR(120)         NOT NULL,
   dsc_senha            VARCHAR(20)          NULL,
   val_aluguel          NUMERIC(10,2)        NULL,
   dsc_observacao       VARCHAR(400)         NULL,
   ind_ativo            BOOL                 NOT NULL,
   CONSTRAINT pk_maquineta PRIMARY KEY (seq_maquineta)
);

-- set table ownership
ALTER TABLE sec_maquineta owner TO labse_sc_lse
;
/*==============================================================*/
/* Index: ix_maquineta                                          */
/*==============================================================*/
CREATE UNIQUE INDEX ix_maquineta ON sec_maquineta (
seq_maquineta
);

/*==============================================================*/
/* Index: ix_maquineta_empresaadq                               */
/*==============================================================*/
CREATE  INDEX ix_maquineta_empresaadq ON sec_maquineta (
seq_empresa_adquirente
);

/*==============================================================*/
/* Index: ix_maquineta_pessoa                                   */
/*==============================================================*/
CREATE  INDEX ix_maquineta_pessoa ON sec_maquineta (
seq_pessoa
);

ALTER TABLE sec_maquineta
   ADD CONSTRAINT fk_maquineta_empresaadquirente FOREIGN KEY (seq_empresa_adquirente)
      REFERENCES sec_empresa_adquirente (seq_empresa_adquirente)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

CREATE SEQUENCE sq_loja
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;

/*==============================================================*/
/* Table: sec_loja                                              */
/*==============================================================*/
CREATE TABLE sec_loja (
   seq_loja             INT8                 NOT NULL DEFAULT NEXTVAL('sc_lse.sq_loja'::regclass),
   seq_pessoa           INT8                 NULL,
   seq_maquineta        INT8                 NULL,
   num_ordem            INT4                 NULL,
   dsc_loja             VARCHAR(120)         NOT NULL,
   dsc_dvr              VARCHAR(30)          NULL,
   dsc_internet         VARCHAR(50)          NULL,
   dsc_ip_internet      VARCHAR(20)          NULL,
   dat_abertura         DATE                 NULL,
   dat_abertura_oficial DATE                 NULL,
   dat_fechamento       DATE                 NULL,
   dat_fechamento_oficial DATE                 NULL,
   tip_emitir_nfe       CHAR(1)              NOT NULL
      CONSTRAINT ck_loja_emitir_nfe CHECK (tip_emitir_nfe IN ('T','O','P','C','N','X')),
   val_fundo_caixa      NUMERIC(10,2)        NULL,
   ind_ativo            BOOL                 NOT NULL,
   ind_receber_nf_remessa BOOL                 NOT NULL,
   dsc_certificado      VARCHAR(50)          NULL,
   dsc_senha_certificado VARCHAR(10)          NULL,
   dsc_idtoken          VARCHAR(10)          NULL,
   dsc_csctoken         VARCHAR(50)          NULL,
   qtd_limitador_produtos NUMERIC(5)           NULL,
   dsc_observacao       VARCHAR(400)         NULL,
   CONSTRAINT pk_loja PRIMARY KEY (seq_loja)
);

comment ON COLUMN sec_loja.tip_emitir_nfe IS
'Valores possíveis:
T - Todas as vendas
O - Vendas obrigatórias como: Cartão, produtos com garantia externa e etc
P - Produtos com garantia externa
C - Em contingência
N - Não emitir
X - Não permitir emissão'
;

-- set table ownership
ALTER TABLE sec_loja owner TO labse_sc_lse
;
/*==============================================================*/
/* Index: ix_loja                                               */
/*==============================================================*/
CREATE UNIQUE INDEX ix_loja ON sec_loja (
seq_loja
);

/*==============================================================*/
/* Index: ix_loja_pessoa                                        */
/*==============================================================*/
CREATE  INDEX ix_loja_pessoa ON sec_loja (
seq_pessoa
);

/*==============================================================*/
/* Index: ix_loja_maquineta                                     */
/*==============================================================*/
CREATE  INDEX ix_loja_maquineta ON sec_loja (
seq_maquineta
);

ALTER TABLE sec_loja
   ADD CONSTRAINT fk_loja_maquineta FOREIGN KEY (seq_maquineta)
      REFERENCES sec_maquineta (seq_maquineta)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

ALTER TABLE sec_loja
   ADD CONSTRAINT fk_loja_pessoa FOREIGN KEY (seq_pessoa)
      REFERENCES sec_pessoa (seq_pessoa)
      ON DELETE RESTRICT ON UPDATE RESTRICT;


/*==============================================================*/
/* Table: sec_usuario_loja                                      */
/*==============================================================*/
CREATE TABLE sec_usuario_loja (
   seq_usuario          INT8                 NOT NULL,
   seq_loja             INT8                 NOT NULL,
   CONSTRAINT pk_usuario_loja PRIMARY KEY (seq_usuario, seq_loja)
);

-- set table ownership
ALTER TABLE sec_usuario_loja owner TO labse_sc_lse
;
/*==============================================================*/
/* Index: ix_usuarioloja                                        */
/*==============================================================*/
CREATE UNIQUE INDEX ix_usuarioloja ON sec_usuario_loja (
seq_usuario,
seq_loja
);

/*==============================================================*/
/* Index: ix_usuarioloja_usuario                                */
/*==============================================================*/
CREATE  INDEX ix_usuarioloja_usuario ON sec_usuario_loja (
seq_usuario
);

/*==============================================================*/
/* Index: ix_usuarioloja_loja                                   */
/*==============================================================*/
CREATE  INDEX ix_usuarioloja_loja ON sec_usuario_loja (
seq_loja
);

ALTER TABLE sec_usuario_loja
   ADD CONSTRAINT fk_usuarioloja_loja FOREIGN KEY (seq_loja)
      REFERENCES sec_loja (seq_loja)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

ALTER TABLE sec_usuario_loja
   ADD CONSTRAINT fk_usuarioloja_usuario FOREIGN KEY (seq_usuario)
      REFERENCES sec_usuario (seq_usuario)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

CREATE SEQUENCE sq_vendedor
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;

/*==============================================================*/
/* Table: sec_vendedor                                          */
/*==============================================================*/
CREATE TABLE sec_vendedor (
   seq_vendedor         INT8                 NOT NULL DEFAULT NEXTVAL('sc_lse.sq_vendedor'::regclass),
   seq_pessoa           INT8                 NULL,
   seq_loja             INT8                 NULL,
   dsc_nome             VARCHAR(120)         NULL,
   ind_ativo            BOOL                 NOT NULL,
   ind_colaborador      BOOL                 NOT NULL,
   CONSTRAINT pk_vendedor PRIMARY KEY (seq_vendedor)
);

-- set table ownership
ALTER TABLE sec_vendedor owner TO labse_sc_lse
;
/*==============================================================*/
/* Index: ix_vendedor                                           */
/*==============================================================*/
CREATE UNIQUE INDEX ix_vendedor ON sec_vendedor (
seq_vendedor
);

/*==============================================================*/
/* Index: ix_vendedor_pessoa                                    */
/*==============================================================*/
CREATE  INDEX ix_vendedor_pessoa ON sec_vendedor (
seq_pessoa
);

/*==============================================================*/
/* Index: ix_vendedor_loja                                      */
/*==============================================================*/
CREATE  INDEX ix_vendedor_loja ON sec_vendedor (
seq_loja
);

ALTER TABLE sec_vendedor
   ADD CONSTRAINT fk_vendedor_pessoa FOREIGN KEY (seq_pessoa)
      REFERENCES sec_pessoa (seq_pessoa)
      ON DELETE RESTRICT ON UPDATE RESTRICT;
         
/*==============================================================*/
/* Table: sec_dre                                               */
/*==============================================================*/
CREATE TABLE sec_dre (
   cod_dre              INT8                 NOT NULL,
   dsc_dre              VARCHAR(120)         NOT NULL,
   num_ordem            INT2                 NULL,
   ind_ativo            BOOL                 NOT NULL,
   CONSTRAINT pk_dre PRIMARY KEY (cod_dre)
);

-- set table ownership
ALTER TABLE sec_dre owner TO labse_sc_lse
;
/*==============================================================*/
/* Index: ix_dre                                                */
/*==============================================================*/
CREATE UNIQUE INDEX ix_dre ON sec_dre (
cod_dre
);

         
CREATE SEQUENCE sq_categoria
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;

/*==============================================================*/
/* Table: sec_categoria                                         */
/*==============================================================*/
CREATE TABLE sec_categoria (
   seq_categoria        INT8                 NOT NULL DEFAULT NEXTVAL('sc_lse.sq_categoria'::regclass),
   seq_categoria_pai    INT8                 NULL,
   cod_dre              INT8                 NULL,
   dsc_categoria        VARCHAR(120)         NULL,
   tip_categoria        CHAR(1)              NULL
      CONSTRAINT ck_categoria_tipo CHECK (tip_categoria IS NULL OR (tip_categoria IN ('C','D'))),
   ind_ativo            BOOL                 NULL,
   CONSTRAINT pk_categoria PRIMARY KEY (seq_categoria)
);

comment ON COLUMN sec_categoria.tip_categoria IS
'Valores possíveis:
C - Crédito
D - Débito'
;

-- set table ownership
ALTER TABLE sec_categoria owner TO labse_sc_lse
;
/*==============================================================*/
/* Index: ix_categoria                                          */
/*==============================================================*/
CREATE UNIQUE INDEX ix_categoria ON sec_categoria (
seq_categoria
);

/*==============================================================*/
/* Index: ix_categoria_categoriapai                             */
/*==============================================================*/
CREATE  INDEX ix_categoria_categoriapai ON sec_categoria (
seq_categoria_pai
);

ALTER TABLE sec_categoria
   ADD CONSTRAINT fk_categoria_categoriapai FOREIGN KEY (seq_categoria_pai)
      REFERENCES sec_categoria (seq_categoria)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

ALTER TABLE sec_categoria
   ADD CONSTRAINT fk_categoria_dre FOREIGN KEY (cod_dre)
      REFERENCES sec_dre (cod_dre)
      ON DELETE RESTRICT ON UPDATE RESTRICT;




SET search_path = public;


-- PERMISSÕES
GRANT USAGE ON SCHEMA sc_lse TO labse_sc_lse;

GRANT SELECT, INSERT, UPDATE, DELETE
ON ALL TABLES IN SCHEMA sc_lse
TO labse_sc_lse;

ALTER DEFAULT PRIVILEGES IN SCHEMA sc_lse
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO labse_sc_lse;