Envio SQL

This commit is contained in:
levelcode developed 2026-03-22 23:32:02 -03:00
parent 3c3a0eb2f3
commit cb7b6fc209
2 changed files with 450 additions and 0 deletions

447
DB.sql Normal file
View File

@ -0,0 +1,447 @@
USE [master]
GO
/****** Object: Database [LevelcodeSGI] Script Date: 22/03/2026 23:26:54 ******/
CREATE DATABASE [LevelcodeSGI]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'LevelcodeSGI', FILENAME = N'/var/opt/mssql/data/LevelcodeSGI.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
LOG ON
( NAME = N'LevelcodeSGI_log', FILENAME = N'/var/opt/mssql/data/LevelcodeSGI_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )
WITH CATALOG_COLLATION = DATABASE_DEFAULT, LEDGER = OFF
GO
ALTER DATABASE [LevelcodeSGI] SET COMPATIBILITY_LEVEL = 170
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [LevelcodeSGI].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
ALTER DATABASE [LevelcodeSGI] SET ANSI_NULL_DEFAULT OFF
GO
ALTER DATABASE [LevelcodeSGI] SET ANSI_NULLS OFF
GO
ALTER DATABASE [LevelcodeSGI] SET ANSI_PADDING OFF
GO
ALTER DATABASE [LevelcodeSGI] SET ANSI_WARNINGS OFF
GO
ALTER DATABASE [LevelcodeSGI] SET ARITHABORT OFF
GO
ALTER DATABASE [LevelcodeSGI] SET AUTO_CLOSE OFF
GO
ALTER DATABASE [LevelcodeSGI] SET AUTO_SHRINK OFF
GO
ALTER DATABASE [LevelcodeSGI] SET AUTO_UPDATE_STATISTICS ON
GO
ALTER DATABASE [LevelcodeSGI] SET CURSOR_CLOSE_ON_COMMIT OFF
GO
ALTER DATABASE [LevelcodeSGI] SET CURSOR_DEFAULT GLOBAL
GO
ALTER DATABASE [LevelcodeSGI] SET CONCAT_NULL_YIELDS_NULL OFF
GO
ALTER DATABASE [LevelcodeSGI] SET NUMERIC_ROUNDABORT OFF
GO
ALTER DATABASE [LevelcodeSGI] SET QUOTED_IDENTIFIER OFF
GO
ALTER DATABASE [LevelcodeSGI] SET RECURSIVE_TRIGGERS OFF
GO
ALTER DATABASE [LevelcodeSGI] SET ENABLE_BROKER
GO
ALTER DATABASE [LevelcodeSGI] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
GO
ALTER DATABASE [LevelcodeSGI] SET DATE_CORRELATION_OPTIMIZATION OFF
GO
ALTER DATABASE [LevelcodeSGI] SET TRUSTWORTHY OFF
GO
ALTER DATABASE [LevelcodeSGI] SET ALLOW_SNAPSHOT_ISOLATION OFF
GO
ALTER DATABASE [LevelcodeSGI] SET PARAMETERIZATION SIMPLE
GO
ALTER DATABASE [LevelcodeSGI] SET READ_COMMITTED_SNAPSHOT OFF
GO
ALTER DATABASE [LevelcodeSGI] SET HONOR_BROKER_PRIORITY OFF
GO
ALTER DATABASE [LevelcodeSGI] SET RECOVERY FULL
GO
ALTER DATABASE [LevelcodeSGI] SET MULTI_USER
GO
ALTER DATABASE [LevelcodeSGI] SET PAGE_VERIFY CHECKSUM
GO
ALTER DATABASE [LevelcodeSGI] SET DB_CHAINING OFF
GO
ALTER DATABASE [LevelcodeSGI] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF )
GO
ALTER DATABASE [LevelcodeSGI] SET TARGET_RECOVERY_TIME = 60 SECONDS
GO
ALTER DATABASE [LevelcodeSGI] SET DELAYED_DURABILITY = DISABLED
GO
ALTER DATABASE [LevelcodeSGI] SET ACCELERATED_DATABASE_RECOVERY = OFF
GO
ALTER DATABASE [LevelcodeSGI] SET OPTIMIZED_LOCKING = OFF
GO
EXEC sys.sp_db_vardecimal_storage_format N'LevelcodeSGI', N'ON'
GO
ALTER DATABASE [LevelcodeSGI] SET QUERY_STORE = ON
GO
ALTER DATABASE [LevelcodeSGI] SET QUERY_STORE (OPERATION_MODE = READ_WRITE, CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 30), DATA_FLUSH_INTERVAL_SECONDS = 900, INTERVAL_LENGTH_MINUTES = 60, MAX_STORAGE_SIZE_MB = 1000, QUERY_CAPTURE_MODE = AUTO, SIZE_BASED_CLEANUP_MODE = AUTO, MAX_PLANS_PER_QUERY = 200, WAIT_STATS_CAPTURE_MODE = ON)
GO
USE [LevelcodeSGI]
GO
/****** Object: Table [dbo].[Pessoas] Script Date: 22/03/2026 23:26:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Pessoas](
[Id] [int] IDENTITY(1,1) NOT NULL,
[NomeCompleto] [nvarchar](150) NOT NULL,
[Email] [nvarchar](150) NULL,
[Telefone] [nvarchar](20) NULL,
[DataNascimento] [date] NULL,
[Sexo] [nvarchar](10) NULL,
[CPF] [nvarchar](20) NULL,
[RG] [nvarchar](20) NULL,
[DataCadastro] [datetime] NULL,
[Ativo] [bit] NULL,
[Cidade] [nvarchar](100) NULL,
[Cargo] [nvarchar](100) NULL,
PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: View [dbo].[vw_CadastrosHoje] Script Date: 22/03/2026 23:26:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[vw_CadastrosHoje]
AS
SELECT COUNT(*) AS TotalHoje
FROM Pessoas
WHERE CAST(DataCadastro AS DATE) = CAST(GETDATE() AS DATE);
GO
/****** Object: View [dbo].[vw_ResumoCadastros] Script Date: 22/03/2026 23:26:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[vw_ResumoCadastros]
AS
SELECT
COUNT(*) AS TotalCadastros,
SUM(CASE
WHEN CAST(DataCadastro AS DATE) = CAST(GETDATE() AS DATE)
THEN 1 ELSE 0 END) AS CadastrosHoje,
SUM(CASE
WHEN CAST(DataCadastro AS DATE) = CAST(DATEADD(DAY,-1,GETDATE()) AS DATE)
THEN 1 ELSE 0 END) AS CadastrosOntem,
CASE
WHEN SUM(CASE
WHEN CAST(DataCadastro AS DATE) = CAST(DATEADD(DAY,-1,GETDATE()) AS DATE)
THEN 1 ELSE 0 END) = 0
THEN 100
ELSE
(
(SUM(CASE
WHEN CAST(DataCadastro AS DATE) = CAST(GETDATE() AS DATE)
THEN 1 ELSE 0 END) * 100.0)
/
SUM(CASE
WHEN CAST(DataCadastro AS DATE) = CAST(DATEADD(DAY,-1,GETDATE()) AS DATE)
THEN 1 ELSE 0 END)
)
END AS CrescimentoPercentual
FROM Pessoas;
GO
/****** Object: View [dbo].[vw_StatusPessoas] Script Date: 22/03/2026 23:26:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[vw_StatusPessoas]
AS
SELECT
SUM(CASE WHEN Ativo = 1 THEN 1 ELSE 0 END) AS Ativos,
SUM(CASE WHEN Ativo = 0 THEN 1 ELSE 0 END) AS Inativos
FROM Pessoas;
GO
/****** Object: View [dbo].[vw_DistribuicaoSexo] Script Date: 22/03/2026 23:26:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[vw_DistribuicaoSexo]
AS
SELECT
SUM(CASE WHEN Sexo = 'Masculino' THEN 1 ELSE 0 END) AS Masculino,
SUM(CASE WHEN Sexo = 'Feminino' THEN 1 ELSE 0 END) AS Feminino,
SUM(CASE WHEN Sexo NOT IN ('Masculino','Feminino') OR Sexo IS NULL THEN 1 ELSE 0 END) AS Outros,
COUNT(*) AS Total,
CAST(
SUM(CASE WHEN Sexo = 'Masculino' THEN 1 ELSE 0 END) * 100.0 /
NULLIF(COUNT(*),0)
AS DECIMAL(5,2)) AS PercentMasculino,
CAST(
SUM(CASE WHEN Sexo = 'Feminino' THEN 1 ELSE 0 END) * 100.0 /
NULLIF(COUNT(*),0)
AS DECIMAL(5,2)) AS PercentFeminino,
CAST(
SUM(CASE WHEN Sexo NOT IN ('Masculino','Feminino') OR Sexo IS NULL THEN 1 ELSE 0 END) * 100.0 /
NULLIF(COUNT(*),0)
AS DECIMAL(5,2)) AS PercentOutros
FROM Pessoas;
GO
/****** Object: Table [dbo].[Configuracoes] Script Date: 22/03/2026 23:26:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Configuracoes](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Chave] [nvarchar](100) NULL,
[Valor] [nvarchar](500) NULL,
[Descricao] [nvarchar](200) NULL,
PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Empresas] Script Date: 22/03/2026 23:26:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Empresas](
[Id] [int] IDENTITY(1,1) NOT NULL,
[RazaoSocial] [nvarchar](200) NULL,
[NomeFantasia] [nvarchar](200) NULL,
[CNPJ] [nvarchar](20) NULL,
[Telefone] [nvarchar](20) NULL,
[Email] [nvarchar](150) NULL,
[DataCadastro] [datetime] NULL,
[Ativo] [bit] NULL,
PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Enderecos] Script Date: 22/03/2026 23:26:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Enderecos](
[Id] [int] IDENTITY(1,1) NOT NULL,
[PessoaId] [int] NOT NULL,
[CEP] [nvarchar](10) NULL,
[Rua] [nvarchar](200) NULL,
[Numero] [nvarchar](20) NULL,
[Bairro] [nvarchar](100) NULL,
[Cidade] [nvarchar](100) NULL,
[Estado] [nvarchar](50) NULL,
[Complemento] [nvarchar](200) NULL,
PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Estatisticas] Script Date: 22/03/2026 23:26:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Estatisticas](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Nome] [nvarchar](100) NULL,
[Valor] [int] NULL,
[DataReferencia] [date] NULL,
PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[LogsSistema] Script Date: 22/03/2026 23:26:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[LogsSistema](
[Id] [int] IDENTITY(1,1) NOT NULL,
[UsuarioId] [int] NULL,
[Acao] [nvarchar](200) NULL,
[Descricao] [nvarchar](500) NULL,
[DataHora] [datetime] NULL,
[IP] [nvarchar](50) NULL,
PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Notificacoes] Script Date: 22/03/2026 23:26:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Notificacoes](
[Id] [int] IDENTITY(1,1) NOT NULL,
[UsuarioId] [int] NULL,
[Mensagem] [nvarchar](300) NULL,
[Lida] [bit] NULL,
[DataCriacao] [datetime] NULL,
PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[PerfilPermissoes] Script Date: 22/03/2026 23:26:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[PerfilPermissoes](
[PerfilId] [int] NOT NULL,
[PermissaoId] [int] NOT NULL,
PRIMARY KEY CLUSTERED
(
[PerfilId] ASC,
[PermissaoId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Perfis] Script Date: 22/03/2026 23:26:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Perfis](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Nome] [nvarchar](100) NOT NULL,
[Descricao] [nvarchar](200) NULL,
PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Permissoes] Script Date: 22/03/2026 23:26:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Permissoes](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Nome] [nvarchar](100) NOT NULL,
[Descricao] [nvarchar](200) NULL,
PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Relatorios] Script Date: 22/03/2026 23:26:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Relatorios](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Nome] [nvarchar](150) NULL,
[Categoria] [nvarchar](100) NULL,
[CaminhoArquivo] [nvarchar](300) NULL,
[GeradoPor] [int] NULL,
[DataGeracao] [datetime] NULL,
PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Usuarios] Script Date: 22/03/2026 23:26:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Usuarios](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Nome] [nvarchar](150) NOT NULL,
[Email] [nvarchar](150) NOT NULL,
[SenhaHash] [nvarchar](255) NOT NULL,
[TipoConta] [nvarchar](50) NOT NULL,
[EmailVerificado] [bit] NULL,
[TelefoneVerificado] [bit] NULL,
[UltimoLogin] [datetime] NULL,
[CriadoEm] [datetime] NULL,
[AtualizadoEm] [datetime] NULL,
[Status] [bit] NULL,
PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
UNIQUE NONCLUSTERED
(
[Email] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Empresas] ADD DEFAULT (getdate()) FOR [DataCadastro]
GO
ALTER TABLE [dbo].[Empresas] ADD DEFAULT ((1)) FOR [Ativo]
GO
ALTER TABLE [dbo].[LogsSistema] ADD DEFAULT (getdate()) FOR [DataHora]
GO
ALTER TABLE [dbo].[Notificacoes] ADD DEFAULT ((0)) FOR [Lida]
GO
ALTER TABLE [dbo].[Notificacoes] ADD DEFAULT (getdate()) FOR [DataCriacao]
GO
ALTER TABLE [dbo].[Pessoas] ADD DEFAULT (getdate()) FOR [DataCadastro]
GO
ALTER TABLE [dbo].[Pessoas] ADD DEFAULT ((1)) FOR [Ativo]
GO
ALTER TABLE [dbo].[Relatorios] ADD DEFAULT (getdate()) FOR [DataGeracao]
GO
ALTER TABLE [dbo].[Usuarios] ADD DEFAULT ((0)) FOR [EmailVerificado]
GO
ALTER TABLE [dbo].[Usuarios] ADD DEFAULT ((0)) FOR [TelefoneVerificado]
GO
ALTER TABLE [dbo].[Usuarios] ADD DEFAULT (getdate()) FOR [CriadoEm]
GO
ALTER TABLE [dbo].[Usuarios] ADD DEFAULT ((1)) FOR [Status]
GO
ALTER TABLE [dbo].[Enderecos] WITH CHECK ADD FOREIGN KEY([PessoaId])
REFERENCES [dbo].[Pessoas] ([Id])
GO
ALTER TABLE [dbo].[LogsSistema] WITH CHECK ADD FOREIGN KEY([UsuarioId])
REFERENCES [dbo].[Usuarios] ([Id])
GO
ALTER TABLE [dbo].[Notificacoes] WITH CHECK ADD FOREIGN KEY([UsuarioId])
REFERENCES [dbo].[Usuarios] ([Id])
GO
ALTER TABLE [dbo].[PerfilPermissoes] WITH CHECK ADD FOREIGN KEY([PerfilId])
REFERENCES [dbo].[Perfis] ([Id])
GO
ALTER TABLE [dbo].[PerfilPermissoes] WITH CHECK ADD FOREIGN KEY([PermissaoId])
REFERENCES [dbo].[Permissoes] ([Id])
GO
ALTER TABLE [dbo].[Relatorios] WITH CHECK ADD FOREIGN KEY([GeradoPor])
REFERENCES [dbo].[Usuarios] ([Id])
GO
USE [master]
GO
ALTER DATABASE [LevelcodeSGI] SET READ_WRITE
GO

View File

@ -1,3 +1,6 @@
<Solution> <Solution>
<Folder Name="/SQL/">
<File Path="DB.sql" />
</Folder>
<Project Path="UI.csproj" /> <Project Path="UI.csproj" />
</Solution> </Solution>