BEGIN;
CREATE TABLE "atencion_ciudadana_estado" (
    "id" serial NOT NULL PRIMARY KEY,
    "nombre" varchar(50) NOT NULL,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone,
    UNIQUE ("nombre")
)
;
CREATE TABLE "atencion_ciudadana_municipio" (
    "id" serial NOT NULL PRIMARY KEY,
    "nombre" varchar(50) NOT NULL,
    "estado_id" integer NOT NULL REFERENCES "atencion_ciudadana_estado" ("id") DEFERRABLE INITIALLY DEFERRED,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone,
    UNIQUE ("nombre", "estado_id")
)
;
CREATE TABLE "atencion_ciudadana_dependencia_usuarios" (
    "id" serial NOT NULL PRIMARY KEY,
    "dependencia_id" integer NOT NULL,
    "user_id" integer NOT NULL REFERENCES "auth_user" ("id") DEFERRABLE INITIALLY DEFERRED,
    UNIQUE ("dependencia_id", "user_id")
)
;
CREATE TABLE "atencion_ciudadana_dependencia" (
    "id" serial NOT NULL PRIMARY KEY,
    "clave" varchar(3) NOT NULL,
    "nombre" varchar(150) NOT NULL,
    "ejercicio" integer NOT NULL,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone,
    UNIQUE ("nombre")
)
;
ALTER TABLE "atencion_ciudadana_dependencia_usuarios" ADD CONSTRAINT "dependencia_id_refs_id_7a54f8e" FOREIGN KEY ("dependencia_id") REFERENCES "atencion_ciudadana_dependencia" ("id") DEFERRABLE INITIALLY DEFERRED;
CREATE TABLE "atencion_ciudadana_estatus" (
    "id" serial NOT NULL PRIMARY KEY,
    "clave" varchar(3) NOT NULL,
    "nombre" varchar(50) NOT NULL,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone,
    UNIQUE ("nombre")
)
;
CREATE TABLE "atencion_ciudadana_lugar" (
    "id" serial NOT NULL PRIMARY KEY,
    "padre_id" integer,
    "nombre" varchar(50) NOT NULL,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone,
    UNIQUE ("padre_id", "nombre")
)
;
ALTER TABLE "atencion_ciudadana_lugar" ADD CONSTRAINT "padre_id_refs_id_1cb54a77" FOREIGN KEY ("padre_id") REFERENCES "atencion_ciudadana_lugar" ("id") DEFERRABLE INITIALLY DEFERRED;
CREATE TABLE "atencion_ciudadana_solicitud" (
    "id" serial NOT NULL PRIMARY KEY,
    "nombre" varchar(50) NOT NULL,
    "apellido_paterno" varchar(50) NOT NULL,
    "apellido_materno" varchar(50) NOT NULL,
    "sexo" varchar(1) NOT NULL,
    "fecha_nacimiento" date,
    "curp" varchar(18) NOT NULL,
    "localidad_id" integer NOT NULL REFERENCES "atencion_ciudadana_lugar" ("id") DEFERRABLE INITIALLY DEFERRED,
    "direccion" text,
    "codigo_postal" integer,
    "identificacion" varchar(13) NOT NULL,
    "correo_electronico" varchar(100),
    "telefono" varchar(40),
    "celular" varchar(10),
    "solicitud" text NOT NULL,
    "dependencia_id" integer REFERENCES "atencion_ciudadana_dependencia" ("id") DEFERRABLE INITIALLY DEFERRED,
    "foto" varchar(100),
    "estatus_id" integer NOT NULL REFERENCES "atencion_ciudadana_estatus" ("id") DEFERRABLE INITIALLY DEFERRED,
    "asigna_id" integer REFERENCES "auth_user" ("id") DEFERRABLE INITIALLY DEFERRED,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone,
    "nota" text NOT NULL
)
;
CREATE TABLE "atencion_ciudadana_asignaciones" (
    "id" serial NOT NULL PRIMARY KEY,
    "solicitud_id" integer NOT NULL REFERENCES "atencion_ciudadana_solicitud" ("id") DEFERRABLE INITIALLY DEFERRED,
    "dependencia_id" integer NOT NULL REFERENCES "atencion_ciudadana_dependencia" ("id") DEFERRABLE INITIALLY DEFERRED,
    "nota" text NOT NULL,
    "asigna_id" integer NOT NULL REFERENCES "auth_user" ("id") DEFERRABLE INITIALLY DEFERRED,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone
)
;
CREATE TABLE "atencion_ciudadana_bitacora" (
    "id" serial NOT NULL PRIMARY KEY,
    "fecha" timestamp with time zone NOT NULL,
    "solicitud_id" integer NOT NULL REFERENCES "atencion_ciudadana_solicitud" ("id") DEFERRABLE INITIALLY DEFERRED,
    "estatus_id" integer NOT NULL REFERENCES "atencion_ciudadana_estatus" ("id") DEFERRABLE INITIALLY DEFERRED,
    "recibio_id" integer REFERENCES "auth_user" ("id") DEFERRABLE INITIALLY DEFERRED,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone,
    "dependencia_id" integer REFERENCES "atencion_ciudadana_dependencia" ("id") DEFERRABLE INITIALLY DEFERRED,
    "nota" text,
    UNIQUE ("solicitud_id", "estatus_id", "recibio_id", "dependencia_id", "nota")
)
;
CREATE INDEX "atencion_ciudadana_municipio_estado_id" ON "atencion_ciudadana_municipio" ("estado_id");
CREATE INDEX "atencion_ciudadana_lugar_padre_id" ON "atencion_ciudadana_lugar" ("padre_id");
CREATE INDEX "atencion_ciudadana_solicitud_localidad_id" ON "atencion_ciudadana_solicitud" ("localidad_id");
CREATE INDEX "atencion_ciudadana_solicitud_dependencia_id" ON "atencion_ciudadana_solicitud" ("dependencia_id");
CREATE INDEX "atencion_ciudadana_solicitud_estatus_id" ON "atencion_ciudadana_solicitud" ("estatus_id");
CREATE INDEX "atencion_ciudadana_solicitud_asigna_id" ON "atencion_ciudadana_solicitud" ("asigna_id");
CREATE INDEX "atencion_ciudadana_asignaciones_solicitud_id" ON "atencion_ciudadana_asignaciones" ("solicitud_id");
CREATE INDEX "atencion_ciudadana_asignaciones_dependencia_id" ON "atencion_ciudadana_asignaciones" ("dependencia_id");
CREATE INDEX "atencion_ciudadana_asignaciones_asigna_id" ON "atencion_ciudadana_asignaciones" ("asigna_id");
CREATE INDEX "atencion_ciudadana_bitacora_solicitud_id" ON "atencion_ciudadana_bitacora" ("solicitud_id");
CREATE INDEX "atencion_ciudadana_bitacora_estatus_id" ON "atencion_ciudadana_bitacora" ("estatus_id");
CREATE INDEX "atencion_ciudadana_bitacora_recibio_id" ON "atencion_ciudadana_bitacora" ("recibio_id");
CREATE INDEX "atencion_ciudadana_bitacora_dependencia_id" ON "atencion_ciudadana_bitacora" ("dependencia_id");
COMMIT;
BEGIN;
CREATE TABLE "atencion_ciudadana_dependencia_usuarios" (
    "id" serial NOT NULL PRIMARY KEY,
    "dependencia_id" integer NOT NULL,
    "user_id" integer NOT NULL REFERENCES "auth_user" ("id") DEFERRABLE INITIALLY DEFERRED,
    UNIQUE ("dependencia_id", "user_id")
)
;
CREATE TABLE "atencion_ciudadana_dependencia" (
    "id" serial NOT NULL PRIMARY KEY,
    "clave" varchar(3) NOT NULL,
    "nombre" varchar(150) NOT NULL,
    "ejercicio" integer NOT NULL,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone,
    UNIQUE ("nombre")
)
;
ALTER TABLE "atencion_ciudadana_dependencia_usuarios" ADD CONSTRAINT "dependencia_id_refs_id_7a54f8e" FOREIGN KEY ("dependencia_id") REFERENCES "atencion_ciudadana_dependencia" ("id") DEFERRABLE INITIALLY DEFERRED;
CREATE TABLE "atencion_ciudadana_estatus" (
    "id" serial NOT NULL PRIMARY KEY,
    "clave" varchar(3) NOT NULL,
    "nombre" varchar(50) NOT NULL,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone,
    UNIQUE ("nombre")
)
;
CREATE TABLE "atencion_ciudadana_lugar" (
    "id" serial NOT NULL PRIMARY KEY,
    "padre_id" integer,
    "nombre" varchar(50) NOT NULL,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone,
    UNIQUE ("padre_id", "nombre")
)
;
ALTER TABLE "atencion_ciudadana_lugar" ADD CONSTRAINT "padre_id_refs_id_1cb54a77" FOREIGN KEY ("padre_id") REFERENCES "atencion_ciudadana_lugar" ("id") DEFERRABLE INITIALLY DEFERRED;
CREATE TABLE "atencion_ciudadana_solicitud" (
    "id" serial NOT NULL PRIMARY KEY,
    "nombre" varchar(50) NOT NULL,
    "apellido_paterno" varchar(50) NOT NULL,
    "apellido_materno" varchar(50) NOT NULL,
    "sexo" varchar(1) NOT NULL,
    "fecha_nacimiento" date,
    "curp" varchar(18) NOT NULL,
    "localidad_id" integer NOT NULL REFERENCES "atencion_ciudadana_lugar" ("id") DEFERRABLE INITIALLY DEFERRED,
    "direccion" text,
    "codigo_postal" integer,
    "identificacion" varchar(13) NOT NULL,
    "correo_electronico" varchar(100),
    "telefono" varchar(40),
    "celular" varchar(10),
    "solicitud" text NOT NULL,
    "dependencia_id" integer NOT NULL REFERENCES "atencion_ciudadana_dependencia" ("id") DEFERRABLE INITIALLY DEFERRED,
    "foto" varchar(100),
    "estatus_id" integer NOT NULL REFERENCES "atencion_ciudadana_estatus" ("id") DEFERRABLE INITIALLY DEFERRED,
    "asigna_id" integer REFERENCES "auth_user" ("id") DEFERRABLE INITIALLY DEFERRED,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone,
    "nota" text NOT NULL,
    "bandera" boolean NOT NULL
)
;
CREATE TABLE "atencion_ciudadana_asignaciones" (
    "id" serial NOT NULL PRIMARY KEY,
    "solicitud_id" integer NOT NULL REFERENCES "atencion_ciudadana_solicitud" ("id") DEFERRABLE INITIALLY DEFERRED,
    "dependencia_id" integer NOT NULL REFERENCES "atencion_ciudadana_dependencia" ("id") DEFERRABLE INITIALLY DEFERRED,
    "nota" text NOT NULL,
    "asigna_id" integer NOT NULL REFERENCES "auth_user" ("id") DEFERRABLE INITIALLY DEFERRED,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone
)
;
CREATE TABLE "atencion_ciudadana_bitacora" (
    "id" serial NOT NULL PRIMARY KEY,
    "fecha" timestamp with time zone NOT NULL,
    "solicitud_id" integer NOT NULL REFERENCES "atencion_ciudadana_solicitud" ("id") DEFERRABLE INITIALLY DEFERRED,
    "estatus_id" integer NOT NULL REFERENCES "atencion_ciudadana_estatus" ("id") DEFERRABLE INITIALLY DEFERRED,
    "recibio_id" integer REFERENCES "auth_user" ("id") DEFERRABLE INITIALLY DEFERRED,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone,
    "dependencia_id" integer REFERENCES "atencion_ciudadana_dependencia" ("id") DEFERRABLE INITIALLY DEFERRED,
    "nota" text,
    UNIQUE ("solicitud_id", "estatus_id", "recibio_id", "dependencia_id", "nota")
)
;
CREATE INDEX "atencion_ciudadana_lugar_padre_id" ON "atencion_ciudadana_lugar" ("padre_id");
CREATE INDEX "atencion_ciudadana_solicitud_localidad_id" ON "atencion_ciudadana_solicitud" ("localidad_id");
CREATE INDEX "atencion_ciudadana_solicitud_dependencia_id" ON "atencion_ciudadana_solicitud" ("dependencia_id");
CREATE INDEX "atencion_ciudadana_solicitud_estatus_id" ON "atencion_ciudadana_solicitud" ("estatus_id");
CREATE INDEX "atencion_ciudadana_solicitud_asigna_id" ON "atencion_ciudadana_solicitud" ("asigna_id");
CREATE INDEX "atencion_ciudadana_asignaciones_solicitud_id" ON "atencion_ciudadana_asignaciones" ("solicitud_id");
CREATE INDEX "atencion_ciudadana_asignaciones_dependencia_id" ON "atencion_ciudadana_asignaciones" ("dependencia_id");
CREATE INDEX "atencion_ciudadana_asignaciones_asigna_id" ON "atencion_ciudadana_asignaciones" ("asigna_id");
CREATE INDEX "atencion_ciudadana_bitacora_solicitud_id" ON "atencion_ciudadana_bitacora" ("solicitud_id");
CREATE INDEX "atencion_ciudadana_bitacora_estatus_id" ON "atencion_ciudadana_bitacora" ("estatus_id");
CREATE INDEX "atencion_ciudadana_bitacora_recibio_id" ON "atencion_ciudadana_bitacora" ("recibio_id");
CREATE INDEX "atencion_ciudadana_bitacora_dependencia_id" ON "atencion_ciudadana_bitacora" ("dependencia_id");
COMMIT;
BEGIN;
CREATE TABLE "atencion_ciudadana_dependencia_usuarios" (
    "id" serial NOT NULL PRIMARY KEY,
    "dependencia_id" integer NOT NULL,
    "user_id" integer NOT NULL REFERENCES "auth_user" ("id") DEFERRABLE INITIALLY DEFERRED,
    UNIQUE ("dependencia_id", "user_id")
)
;
CREATE TABLE "atencion_ciudadana_dependencia" (
    "id" serial NOT NULL PRIMARY KEY,
    "clave" varchar(3) NOT NULL,
    "nombre" varchar(150) NOT NULL,
    "ejercicio" integer NOT NULL,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone,
    UNIQUE ("nombre")
)
;
ALTER TABLE "atencion_ciudadana_dependencia_usuarios" ADD CONSTRAINT "dependencia_id_refs_id_7a54f8e" FOREIGN KEY ("dependencia_id") REFERENCES "atencion_ciudadana_dependencia" ("id") DEFERRABLE INITIALLY DEFERRED;
CREATE TABLE "atencion_ciudadana_estatus" (
    "id" serial NOT NULL PRIMARY KEY,
    "clave" varchar(3) NOT NULL,
    "nombre" varchar(50) NOT NULL,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone,
    UNIQUE ("nombre")
)
;
CREATE TABLE "atencion_ciudadana_lugar" (
    "id" serial NOT NULL PRIMARY KEY,
    "padre_id" integer,
    "nombre" varchar(50) NOT NULL,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone,
    UNIQUE ("padre_id", "nombre")
)
;
ALTER TABLE "atencion_ciudadana_lugar" ADD CONSTRAINT "padre_id_refs_id_1cb54a77" FOREIGN KEY ("padre_id") REFERENCES "atencion_ciudadana_lugar" ("id") DEFERRABLE INITIALLY DEFERRED;
CREATE TABLE "atencion_ciudadana_solicitud" (
    "id" serial NOT NULL PRIMARY KEY,
    "nombre" varchar(50) NOT NULL,
    "apellido_paterno" varchar(50) NOT NULL,
    "apellido_materno" varchar(50) NOT NULL,
    "sexo" varchar(1) NOT NULL,
    "fecha_nacimiento" date,
    "curp" varchar(18) NOT NULL,
    "localidad_id" integer NOT NULL REFERENCES "atencion_ciudadana_lugar" ("id") DEFERRABLE INITIALLY DEFERRED,
    "direccion" text,
    "codigo_postal" integer,
    "identificacion" varchar(13) NOT NULL,
    "correo_electronico" varchar(100),
    "telefono" varchar(40),
    "celular" varchar(10),
    "solicitud" text NOT NULL,
    "dependencia_id" integer NOT NULL REFERENCES "atencion_ciudadana_dependencia" ("id") DEFERRABLE INITIALLY DEFERRED,
    "foto" varchar(100),
    "estatus_id" integer NOT NULL REFERENCES "atencion_ciudadana_estatus" ("id") DEFERRABLE INITIALLY DEFERRED,
    "asigna_id" integer REFERENCES "auth_user" ("id") DEFERRABLE INITIALLY DEFERRED,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone,
    "nota" text NOT NULL,
    "bandera" boolean NOT NULL
)
;
CREATE TABLE "atencion_ciudadana_asignaciones" (
    "id" serial NOT NULL PRIMARY KEY,
    "solicitud_id" integer NOT NULL REFERENCES "atencion_ciudadana_solicitud" ("id") DEFERRABLE INITIALLY DEFERRED,
    "dependencia_id" integer NOT NULL REFERENCES "atencion_ciudadana_dependencia" ("id") DEFERRABLE INITIALLY DEFERRED,
    "nota" text NOT NULL,
    "asigna_id" integer NOT NULL REFERENCES "auth_user" ("id") DEFERRABLE INITIALLY DEFERRED,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone
)
;
CREATE TABLE "atencion_ciudadana_bitacora" (
    "id" serial NOT NULL PRIMARY KEY,
    "fecha" timestamp with time zone NOT NULL,
    "solicitud_id" integer NOT NULL REFERENCES "atencion_ciudadana_solicitud" ("id") DEFERRABLE INITIALLY DEFERRED,
    "estatus_id" integer NOT NULL REFERENCES "atencion_ciudadana_estatus" ("id") DEFERRABLE INITIALLY DEFERRED,
    "recibio_id" integer REFERENCES "auth_user" ("id") DEFERRABLE INITIALLY DEFERRED,
    "fecha_registro" timestamp with time zone NOT NULL,
    "fecha_ultimo_cambio" timestamp with time zone,
    "dependencia_id" integer REFERENCES "atencion_ciudadana_dependencia" ("id") DEFERRABLE INITIALLY DEFERRED,
    "nota" text,
    UNIQUE ("solicitud_id", "estatus_id", "recibio_id", "dependencia_id", "nota")
)
;
CREATE INDEX "atencion_ciudadana_lugar_padre_id" ON "atencion_ciudadana_lugar" ("padre_id");
CREATE INDEX "atencion_ciudadana_solicitud_localidad_id" ON "atencion_ciudadana_solicitud" ("localidad_id");
CREATE INDEX "atencion_ciudadana_solicitud_dependencia_id" ON "atencion_ciudadana_solicitud" ("dependencia_id");
CREATE INDEX "atencion_ciudadana_solicitud_estatus_id" ON "atencion_ciudadana_solicitud" ("estatus_id");
CREATE INDEX "atencion_ciudadana_solicitud_asigna_id" ON "atencion_ciudadana_solicitud" ("asigna_id");
CREATE INDEX "atencion_ciudadana_asignaciones_solicitud_id" ON "atencion_ciudadana_asignaciones" ("solicitud_id");
CREATE INDEX "atencion_ciudadana_asignaciones_dependencia_id" ON "atencion_ciudadana_asignaciones" ("dependencia_id");
CREATE INDEX "atencion_ciudadana_asignaciones_asigna_id" ON "atencion_ciudadana_asignaciones" ("asigna_id");
CREATE INDEX "atencion_ciudadana_bitacora_solicitud_id" ON "atencion_ciudadana_bitacora" ("solicitud_id");
CREATE INDEX "atencion_ciudadana_bitacora_estatus_id" ON "atencion_ciudadana_bitacora" ("estatus_id");
CREATE INDEX "atencion_ciudadana_bitacora_recibio_id" ON "atencion_ciudadana_bitacora" ("recibio_id");
CREATE INDEX "atencion_ciudadana_bitacora_dependencia_id" ON "atencion_ciudadana_bitacora" ("dependencia_id");
COMMIT;
