-- Table: public.movimientos_inventario

CREATE TABLE IF NOT EXISTS public.movimientos_inventario
(
    id bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 9223372036854775807 CACHE 1 ),
    articulo_id integer NOT NULL,
    tipo_movimiento character varying(50) COLLATE pg_catalog."default" NOT NULL,
    fecha timestamp without time zone NOT NULL DEFAULT (now() AT TIME ZONE 'utc'::text),
    ubicacion_origen_id integer,
    ubicacion_destino_id integer,
    estado_anterior_id integer,
    estado_nuevo_id integer,
    observacion character varying(500) COLLATE pg_catalog."default",
    usuario_id character varying(100) COLLATE pg_catalog."default",
    CONSTRAINT movimientos_inventario_pkey PRIMARY KEY (id),
    CONSTRAINT fk_movimientos_articulos FOREIGN KEY (articulo_id)
        REFERENCES public.articulos (id) MATCH SIMPLE
        ON UPDATE NO ACTION
        ON DELETE CASCADE,
    CONSTRAINT fk_movimientos_origen FOREIGN KEY (ubicacion_origen_id)
        REFERENCES public.ubicaciones (id) MATCH SIMPLE
        ON UPDATE NO ACTION
        ON DELETE SET NULL,
    CONSTRAINT fk_movimientos_destino FOREIGN KEY (ubicacion_destino_id)
        REFERENCES public.ubicaciones (id) MATCH SIMPLE
        ON UPDATE NO ACTION
        ON DELETE SET NULL,
    CONSTRAINT fk_movimientos_estado_ant FOREIGN KEY (estado_anterior_id)
        REFERENCES public.estados_articulos (id) MATCH SIMPLE
        ON UPDATE NO ACTION
        ON DELETE SET NULL,
    CONSTRAINT fk_movimientos_estado_new FOREIGN KEY (estado_nuevo_id)
        REFERENCES public.estados_articulos (id) MATCH SIMPLE
        ON UPDATE NO ACTION
        ON DELETE SET NULL
)
TABLESPACE pg_default;

ALTER TABLE IF EXISTS public.movimientos_inventario
    OWNER to postgres;

-- Indexes

CREATE INDEX IF NOT EXISTS ix_movimientos_articulo_id
    ON public.movimientos_inventario USING btree
    (articulo_id ASC NULLS LAST)
    TABLESPACE pg_default;

CREATE INDEX IF NOT EXISTS ix_movimientos_fecha
    ON public.movimientos_inventario USING btree
    (fecha DESC NULLS LAST)
    TABLESPACE pg_default;
