from calendar import c
from pydoc import cli
import psycopg2

try:
    connection = psycopg2.connect(user="postgres",
                                  password="eco123",
                                  host="localhost",
                                  port="5432",
                                  database="econexoes")
    cur = connection.cursor()
    cur.execute("INSERT INTO diretorio(id,path, id_parent, nome, removido, cliente_id, pasta_fixa)VALUES (1,'/', '', 'Clientes', false, null, null)")
    clientes = cur.execute('SELECT id,nome FROM cliente')
    clientes = cur.fetchall()
    clientes_ordenados = sorted(clientes)
    count = 2
    for cliente in clientes_ordenados:
        cur.execute("INSERT INTO diretorio (id, path, id_parent, nome, removido, cliente_id, pasta_fixa) VALUES ({},'/Clientes/{}', '1', '{}', false, {}, 1)".format(count,cliente[1], cliente[1], cliente[0]))
        connection.commit()
        diretorios = cur.execute("SELECT id,path FROM diretorio WHERE cliente_id = {}".format(cliente[0]))
        diretorios = cur.fetchall()
        for diretorio in diretorios:
            reg = [(1, '/Clientes/'+cliente[1], '1.'+str(diretorio[0]), 'Documentos Ambientais', 2),
                   (2, '/Clientes/'+cliente[1], '1.'+str(diretorio[0]), 'Documentos Gerais', 3),
                   (3, '/Clientes/'+cliente[1], '1.'+str(diretorio[0]), 'Servicos Contratados', 4),
                   (4, '/Clientes/'+cliente[1], '1.'+str(diretorio[0]), 'Servicos em Andamento', 5),

                   (5, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+1), 'Estudos', 'null'),
                   (6, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+1), 'Projetos', 'null'),

                   (7, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+1)+'.'+str(diretorio[0]+6), 'DWG', 'null'),
                   (8, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+1)+'.'+str(diretorio[0]+6), 'PDF', 'null'),

                   (9, '/Clientes/'+cliente[1]+'/Serviços Contratados/IBAMA', '1.'+str(diretorio[0])+'.'+str(diretorio[0]+3), 'IBAMA', 'null'),
                   (10, '/Clientes/'+cliente[1]+'/Serviços Contratados/SEMACE', '1.'+str(diretorio[0])+'.'+str(diretorio[0]+3), 'SEMACE', 'null'),
                   (11, '/Clientes/'+cliente[1]+'/Serviços Contratados/COGERH', '1.'+str(diretorio[0])+'.'+str(diretorio[0]+3), 'COGERH', 'null'),
                   (12, '/Clientes/'+cliente[1]+'/Serviços Contratados/OUTROS', '1.'+str(diretorio[0])+'.'+str(diretorio[0]+3), 'OUTROS', 'null'),
                   (13, '/Clientes/'+cliente[1]+'/Serviços Contratados/DIVERSOS', '1.'+str(diretorio[0])+'.'+str(diretorio[0]+3), 'DIVERSOS', 'null'),
                   (14, '/Clientes/'+cliente[1]+'/Serviços Contratados/SEUMA', '1.'+str(diretorio[0])+'.'+str(diretorio[0]+3), 'SEUMA', 'null'),

                   (15, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4), 'Dep. Técnico', 'null'),
                   (16, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4), 'Dep. Regulatório', 'null'),
                   (17, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+15), 'Estudos Ambientais', 'null'),

                   (18, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+15)+'.'+str(diretorio[0]+17), 'Nome Estudo', 'null'),
                   (19, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+15)+'.'+str(diretorio[0]+17)+'.'+str(diretorio[0]+18), 'Anexos', 'null'),
                   (20, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+15)+'.'+str(diretorio[0]+17)+'.'+str(diretorio[0]+18), 'Doc Auxiliares', 'null'),
                   (21, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+15)+'.'+str(diretorio[0]+17)+'.'+str(diretorio[0]+18), 'Geoprocessamento', 'null'),
                   (22, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+15)+'.'+str(diretorio[0]+17)+'.'+str(diretorio[0]+18), 'Minuta', 'null'),
                   (23, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+15)+'.'+str(diretorio[0]+17)+'.'+str(diretorio[0]+18), 'Registro Fotográfico', 'null'),

                   (24, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+15)+'.'+str(diretorio[0]+17)+'.'+str(diretorio[0]+18)+'.'+str(diretorio[0]+21), 'DWG', 'null'),
                   (25, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+15)+'.'+str(diretorio[0]+17)+'.'+str(diretorio[0]+18)+'.'+str(diretorio[0]+21), 'GIS', 'null'),
                   (26, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+15)+'.'+str(diretorio[0]+17)+'.'+str(diretorio[0]+18)+'.'+str(diretorio[0]+21), 'KMZ', 'null'),
                   (27, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+15)+'.'+str(diretorio[0]+17)+'.'+str(diretorio[0]+18)+'.'+str(diretorio[0]+21), 'JPEG', 'null'),
                   (28, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+15)+'.'+str(diretorio[0]+17)+'.'+str(diretorio[0]+18)+'.'+str(diretorio[0]+21), 'PDF', 'null'),
                   (29, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+15)+'.'+str(diretorio[0]+17)+'.'+str(diretorio[0]+18)+'.'+str(diretorio[0]+21), 'SHP', 'null'),

                   (30, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+1), 'Diversos', 'null'),
                   (31, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+1)+'.'+str(diretorio[0]+6), 'SHP e KMZ', 'null'),
                   (32, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+16), 'Pontual', 'null'),
                   (33, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+16), 'Continuo', 'null'),
                   (34, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+16)+'.'+str(diretorio[0]+32), 'Diversos', 'null'),
                   (35, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+16)+'.'+str(diretorio[0]+32), 'Registro Fotográfico', 'null'),
                   (36, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+16)+'.'+str(diretorio[0]+32), 'Relatórios', 'null'),

                   (37, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+16)+'.'+str(diretorio[0]+33), 'Diversos', 'null'),
                   (38, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+16)+'.'+str(diretorio[0]+33), 'Registro Fotográfico', 'null'),
                   (39, '/Clientes/'+cliente[1], '1.'+str(diretorio[0])+'.'+str(diretorio[0]+4)+'.'+str(diretorio[0]+16)+'.'+str(diretorio[0]+33), 'Relatórios', 'null'),

                   (40, '/Clientes/'+cliente[1]+'/Serviços Contratados/SEMA', '1.'+str(diretorio[0])+'.'+str(diretorio[0]+3), 'SEMA', 'null'),
                   (41, '/Clientes/'+cliente[1]+'/Serviços Contratados/IMAC', '1.'+str(diretorio[0])+'.'+str(diretorio[0]+3), 'IMAC', 'null'),
                   (42, '/Clientes/'+cliente[1]+'/Serviços Contratados/SEMACE - Fortaleza', '1.'+str(diretorio[0])+'.'+str(diretorio[0]+3), 'SEMACE - Fortaleza', 'null'),
                   (43, '/Clientes/'+cliente[1]+'/Serviços Contratados/AMMA', '1.'+str(diretorio[0])+'.'+str(diretorio[0]+3), 'AMMA', 'null'),
                   ]
            for r in reg:
                cur.execute("INSERT INTO diretorio (id,path, id_parent, nome, removido, cliente_id, pasta_fixa) VALUES ({},'{}', '{}', '{}', false, {}, {})".format(r[0]+diretorio[0], r[1], r[2],r[3], cliente[0], r[4]))
                connection.commit()
        count += 45
except (Exception, psycopg2.Error) as error:
    print("Failed to insert record into mobile table", error)

finally:
    # closing database connection.
    if connection:
        cur.close()
        connection.close()
        print("PostgreSQL connection is closed")
