-- inserccion de candidatos para el partido administrable
INSERT INTO candidato (
    IdPartido,
    IdPersona,
    Estado,
    FechaRegistro,
    FechaModifica
)
SELECT
    5 AS IdPartido,
    p.IdPersona,
    'Activo',
    NOW(),
    NOW()
FROM (
    SELECT p.IdPersona FROM persona p
    LEFT JOIN usuario u ON p.IdPersona = u.IdPersona
    WHERE u.IdUsuario IS NULL AND p.IdPersona >= 1961
    ORDER BY p.IdPersona LIMIT 53
    ) p, (SELECT @i := 0) init;



-- Toma solo personas que no están en usuario.
ALTER TABLE candidato auto_increment 54;
INSERT INTO candidato (
    IdPartido,
    IdPersona,
    Estado,
    FechaRegistro,
    FechaModifica
)
SELECT
    ((@i := @i + 1) % 4) + 1 AS IdPartido,
    p.IdPersona,
    'Activo',
    NOW(),
    NOW()
FROM (
    SELECT p.IdPersona FROM persona p
    LEFT JOIN usuario u ON p.IdPersona = u.IdPersona
    WHERE u.IdUsuario IS NULL AND p.IdPersona >= 2014
    ORDER BY p.IdPersona
    LIMIT 5498
    ) p, (SELECT @i := 0) init;





-- Insertar ElectoralCandidato
-- Asegurarse de tener una variable inicial
-- # SET @row := 0;
-- # INSERT INTO electoralcandidato (
-- #     IdElectoral,
-- #     IdCandidato,
-- #     IdTipoPostulacion,
-- #     IdDistrito,
-- #     IdProvincia,
-- #     IdDepartamento,
-- #     Estado,
-- #     FechaRegistro,
-- #     FechaModifica
-- # )
-- # SELECT
-- #     1 AS IdElectoral,
-- #     c.IdCandidato,
-- #     3 AS IdTipoPostulacion,
-- #     1833 - ROW_NUMBER() OVER (PARTITION BY c.IdPartido ORDER BY c.IdCandidato) + 1 AS IdDistrito,
-- #     NULL AS IdProvincia,
-- #     NULL AS IdDepartamento,
-- #     'Activo' AS Estado,
-- #     NOW() AS FechaRegistro,
-- #     NOW() AS FechaModifica
-- # FROM (
-- #          SELECT *
-- #          FROM candidato
-- #          WHERE Estado = 'Activo'
-- #      ) c
-- # WHERE (
-- #           SELECT COUNT(*)
-- #           FROM candidato c2
-- #           WHERE c2.IdPartido = c.IdPartido AND c2.IdCandidato <= c.IdCandidato
-- #       ) <= 1833;
