-- Tabla para el catálogo de pedimentos (previos)
-- Esta tabla almacena los pedimentos registrados por los importadores

CREATE TABLE [dbo].[previos] (
    [IdPrevio] [int] IDENTITY(1,1) NOT NULL,
    [Pedimento] [nvarchar](50) NOT NULL,
    [ClienteRFC] [nvarchar](13) NOT NULL,
    [ClienteNombre] [nvarchar](255) NOT NULL,
    [ClavePed] [nvarchar](10) NOT NULL,
    [TipoOperacion] [int] DEFAULT 1, -- 1=importación, 2=exportación
    [TipoPedimento] [int] DEFAULT 1, -- 1=normal, 2=complementario, etc.
    [Regimen] [nvarchar](100) NULL,
    [Destino] [nvarchar](100) NULL,
    [FechaPedimento] [int] NULL, -- Formato YYYYMMDD
    [FechaInicio] [int] NULL,    -- Formato YYYYMMDD
    [FechaFinal] [int] NULL,     -- Formato YYYYMMDD
    [ArchivoFinalPrevio] [nvarchar](255) NULL,
    [AcuseCons] [nvarchar](100) NULL,
    [Tipo] [nvarchar](50) NULL,
    [Status] [int] DEFAULT 1, -- 1=activo, 0=inactivo
    [Timestamp] [datetime] DEFAULT GETDATE(),
    
    CONSTRAINT [PK_previos] PRIMARY KEY CLUSTERED ([IdPrevio] ASC)
);

-- Índices para mejorar el rendimiento
CREATE INDEX [IX_previos_cliente] ON [dbo].[previos] ([ClienteRFC]);
CREATE INDEX [IX_previos_pedimento] ON [dbo].[previos] ([Pedimento]);
CREATE INDEX [IX_previos_status] ON [dbo].[previos] ([Status]);
CREATE INDEX [IX_previos_timestamp] ON [dbo].[previos] ([Timestamp] DESC);

-- Comentarios para documentación
EXEC sys.sp_addextendedproperty 
    @name=N'MS_Description', 
    @value=N'Tabla principal para el catálogo de pedimentos de importadores', 
    @level0type=N'SCHEMA', @level0name=N'dbo', 
    @level1type=N'TABLE', @level1name=N'previos';

EXEC sys.sp_addextendedproperty 
    @name=N'MS_Description', 
    @value=N'Número de pedimento aduanero', 
    @level0type=N'SCHEMA', @level0name=N'dbo', 
    @level1type=N'TABLE', @level1name=N'previos',
    @level2type=N'COLUMN', @level2name=N'Pedimento';

EXEC sys.sp_addextendedproperty 
    @name=N'MS_Description', 
    @value=N'RFC del cliente/importador', 
    @level0type=N'SCHEMA', @level0name=N'dbo', 
    @level1type=N'TABLE', @level1name=N'previos',
    @level2type=N'COLUMN', @level2name=N'ClienteRFC';

EXEC sys.sp_addextendedproperty 
    @name=N'MS_Description', 
    @value=N'Clave de pedimento utilizada', 
    @level0type=N'SCHEMA', @level0name=N'dbo', 
    @level1type=N'TABLE', @level1name=N'previos',
    @level2type=N'COLUMN', @level2name=N'ClavePed';