Advertisement
Guest User

generateSQL.cpp

a guest
Jun 13th, 2017
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.08 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define FOR(cont,max) for(int (cont)=0;(cont)<(max);(cont)++)
  5.  
  6.  
  7. #define randomDay (1+(rand()%30))
  8. #define randomMonth (1+(rand()%12))
  9. #define randomCPF randomize("000.000.000-00")
  10. #define randomCNPJ randomize("00.000.000/0000-00")
  11. #define randomCEP randomize("00000-00")
  12. #define randomTel randomize("00-00000-0000")
  13. #define pass123 "pbkdf2_sha256$24000$3NgfFWJJVuc2$01ZkaEkM2s6/DrAFqKdEGXZ8icjLL4Dxx3LeGeUtkHU="//as senhas sao salvas ja criptografadas no banco de dados
  14.  
  15. #define loremIpsumTitl "Lorem Ipsum"
  16. #define loremIpsumSubT "Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..."
  17. #define loremIpsumDesc "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla in mi eget urna iaculis mollis et ut purus. Mauris quis felis sagittis, convallis diam eu, dictum eros. Fusce eget molestie velit. Maecenas sed turpis turpis. Aenean bibendum condimentum erat, sit amet congue ante accumsan eget. Sed mi est, luctus a augue sed, mollis suscipit tellus. Ut gravida arcu nec risus sollicitudin ultrices. Proin fermentum diam nec tempor placerat. Pellentesque quis dolor vel odio tincidunt."
  18.  
  19. #define volCount 10
  20. #define orgCount 10
  21. #define trabCount 10
  22. #define volPerTrab 5
  23.  
  24. string names[] = {"Miguel","Sophia","Davi","Alice","Arthur","Julia","Pedro","Isabella","Gabriel","Manuela","Bernardo","Laura","Lucas","Luiza","Matheus","Valentina","Rafael","Giovanna","Heitor","Maria Eduarda","Enzo","Helena","Guilherme","Beatriz","Nicolas","Maria Luiza","Lorenzo","Lara","Gustavo","Mariana","Felipe","Nicole","Samuel","Rafaela","João Pedro","Heloísa","Daniel","Isadora","Vitor","Lívia","Leonardo","Maria Clara","Henrique","Ana Clara","Theo","Lorena","Murilo","Gabriela","Eduardo","Yasmin","Pedro Henrique","Isabelly","Pietro","Sarah","Cauã","Ana Julia","Isaac","Letícia","Caio","Ana Luiza","Vinicius","Melissa","Benjamin","Marina","João","Clara","Lucca","Cecília","João Miguel","Esther","Bryan","Emanuelly","Joaquim","Rebeca","João Vitor","Ana Beatriz","Thiago","Lavínia","Antônio","Vitória","Davi Lucas","Bianca","Francisco","Catarina","Enzo Gabriel","Larissa","Bruno","Maria Fernanda","Emanuel","Fernanda","João Gabriel","Amanda","Ian","Alícia","Davi Luiz","Carolina","Rodrigo","Agatha","Otávio","Gabrielly"};
  25.  
  26. int idOffset;
  27.  
  28. string randomize(string s){
  29. for(auto &i:s)if(i=='0')i+=rand()%10;
  30. return s;
  31. }
  32.  
  33. struct vol{
  34. int id;
  35.  
  36. string username;
  37. string pass;
  38. string desc;
  39. string tel;
  40. string first_name;
  41. string last_name;
  42. string cpf;
  43. string email;
  44. string password;
  45. string endereco;
  46. string cep;
  47. int sexo;
  48.  
  49. static int vol_count;
  50.  
  51. vol(){
  52. vol_count++;
  53. id = vol_count;
  54. username = "_vol" + to_string(vol_count);
  55. pass = "123456";
  56. desc = "descricao";
  57. tel = randomTel;
  58. email = username + "@email.com";
  59. sexo = rand()%2;
  60. first_name = names[((rand()%50)*2)+sexo];
  61. last_name = "_";
  62. cpf = randomCPF;
  63. endereco = "endereco legal";
  64. cep = randomCEP;
  65. }
  66.  
  67. string strUser(){
  68. string s = (string)"insert into unbsolidaria_user(password,is_superuser,username,first_name,last_name,email,is_staff,is_active,date_joined,descricao,telefone,tipo)values(" +
  69. (string)"\"" + password + (string)"\"," +
  70. (string)"\"0\"," +
  71. (string)"\"" + username + (string)"\"," +
  72. (string)"\"" + first_name + (string)"\"," +
  73. (string)"\"" + last_name + (string)"\"," +
  74. (string)"\"" + email + (string)"\"," +
  75. (string)"\"0\"," +
  76. (string)"\"1\"," +
  77. (string)"\"0000-00-00\"," +
  78. (string)"\"" + desc + (string)"\"," +
  79. (string)"\"" + tel + (string)"\"," +
  80. (string)"\"0\");";
  81. return s;
  82. }
  83.  
  84. string strVol(int id){
  85. id+=this->id;
  86. string s = "insert into unbsolidaria_voluntario(cpf,sexo,voluntario_fk)values(" +
  87. (string)"\"" + cpf + (string)"\"," +
  88. (string)"\"" + (string)(sexo?"f":"m") + (string)"\"," +
  89. (string)"\"" + to_string(id) + (string)"\"," +
  90. (string)");";
  91. return s;
  92. }
  93. string strEnd(int id){
  94. id+=this->id;
  95. string s = "insert into unbsolidaria_endereco(endereco,usuario_fk,cep)values(" +
  96. (string)"\"" + endereco + (string)"\"," +
  97. (string)"\"" + to_string(id) + (string)"\"," +
  98. (string)"\"" + cep + (string)"\"," +
  99. (string)");";
  100. return s;
  101. }
  102. };
  103. struct org{
  104. int id;
  105.  
  106. string username;
  107. string pass;
  108. string desc;
  109. string tel;
  110. string first_name;
  111. string last_name;
  112. string cnpj;
  113. string email;
  114. string password;
  115. string endereco;
  116. string cep;
  117.  
  118. static int org_count;
  119.  
  120. org(){
  121. org_count++;
  122. id = org_count;
  123. username = "_org" + to_string(org_count);
  124. pass = "123456";
  125. desc = "descricao";
  126. tel = randomTel;
  127. email = username + "@email.com";
  128. first_name = username;
  129. last_name = "_";
  130. cnpj = randomCNPJ;
  131. endereco = "endereco legal";
  132. cep = randomCEP;
  133. }
  134.  
  135. string strUser(){
  136. string s = "insert into unbsolidaria_user(password,is_superuser,username,first_name,last_name,email,is_staff,is_active,date_joined,descricao,telefone,tipo)values(" +
  137. (string)"\"" + password + (string)"\"," +
  138. (string)"\"0\"," +
  139. (string)"\"" + username + (string)"\"," +
  140. (string)"\"" + first_name + (string)"\"," +
  141. (string)"\"" + last_name + (string)"\"," +
  142. (string)"\"" + email + (string)"\"," +
  143. (string)"\"0\"," +
  144. (string)"\"1\"," +
  145. (string)"\"0000-00-00\"," +
  146. (string)"\"" + desc + (string)"\"," +
  147. (string)"\"" + tel + (string)"\"," +
  148. (string)"\"1\");";
  149. return s;
  150. }
  151.  
  152. string strOrg(int id){
  153. id+=this->id;
  154. string s = "insert into unbsolidaria_organizacao(cpnj,organizacao_fk)values(" +
  155. (string)"\"" + cnpj + (string)"\"," +
  156. (string)"\"" + to_string(id) + (string)"\"," +
  157. (string)");";
  158. return s;
  159. }
  160. string strEnd(int id){
  161. id+=this->id;
  162. string s = "insert into unbsolidaria_endereco(endereco,usuario_fk,cep)values(" +
  163. (string)"\"" + endereco + (string)"\"," +
  164. (string)"\"" + to_string(id) + (string)"\"," +
  165. (string)"\"" + cep + (string)"\"," +
  166. (string)");";
  167. return s;
  168. }
  169. };
  170. struct trab{
  171. int id;
  172.  
  173. string titulo;
  174. string desc;
  175. string dataInicio;
  176. string dataFim;
  177. int vagas;
  178. int idOrg;
  179. int organizacao_id;
  180. set<int> idVol;
  181. string responsavel;
  182. string emailResponsavel;
  183.  
  184. static int trab_count;
  185.  
  186. trab():id{trab_count}{
  187. trab_count++;
  188. titulo = "trabalho " + to_string(trab_count);
  189. desc = loremIpsumDesc;
  190. int dI,dF,mI,mF;
  191. do{
  192. dI=randomDay;dF=randomDay;
  193. mI=randomMonth;mF=randomMonth;
  194. }while(mI>mF || (mI==mF && dI>=dF));
  195. char data[20];
  196. sprintf(data,"2017-%2d-%2d",mI,dI);
  197. dataInicio = data;
  198. sprintf(data,"2017-%2d-%2d",mF,dF);
  199. dataFim = data;
  200. vagas = 10 + (rand()%20);
  201. responsavel = names[rand()%100];
  202. emailResponsavel = responsavel + "@email.com";
  203. organizacao_id = 1 + (rand()%org::org_count);
  204. while(idVol.size()<volPerTrab)idVol.insert(1+(rand()%vol::vol_count));
  205. }
  206.  
  207. string strTrab(){
  208. string s = "insert into unbsolidaria_trabalho(titulo,descricao,vagas,organizacao_id,data_inicio,data_fim)values(" +
  209. (string)"\"" + titulo + (string)"\"," +
  210. (string)"\"" + desc + (string)"\"," +
  211. (string)"\"" + to_string(vagas) + (string)"\"," +
  212. (string)"\"" + to_string(organizacao_id) + (string)"\"," +
  213. (string)"\"" + dataInicio + (string)"\"," +
  214. (string)"\"" + dataFim + (string)"\");";
  215. return s;
  216. }
  217.  
  218. vector<string> strVols(){
  219. vector<string> v;
  220. for(auto i:idVol){
  221. string s = "insert into unbsolidaria_usuariotrabalho(trabalho_id,voluntario_id,organizacao_id)values(" +
  222. to_string(id+1) + "," +
  223. to_string(i) + "," +
  224. to_string(organizacao_id) +
  225. ");";
  226. v.push_back(s);
  227. }
  228. return v;
  229. }
  230. };
  231.  
  232. int vol::vol_count=0;
  233. int org::org_count=0;
  234. int trab::trab_count=0;
  235.  
  236.  
  237. int main(){
  238. srand(time(NULL));
  239.  
  240. vector<vol> voluntarios(volCount);
  241. vector<org> organizacoes(orgCount);
  242. vector<trab> trabalhos(trabCount);
  243.  
  244. cout << "Insira o numero de usuarios ja existentes:" << endl;
  245. cin >> idOffset;
  246.  
  247. string queryStr;
  248. ofstream file;
  249. file.open("populate.sql");
  250.  
  251. //voluntarios
  252. for(auto &i:voluntarios){
  253. file << i.strUser() << endl;
  254. file << i.strVol(idOffset) << endl;
  255. file << i.strEnd(idOffset) << endl;
  256. }
  257. file << endl;
  258.  
  259. //organizacoes
  260. for(auto &i:organizacoes){
  261. file << i.strUser() << endl;
  262. file << i.strOrg(vol::vol_count + idOffset) << endl;
  263. file << i.strEnd(vol::vol_count + idOffset) << endl;
  264. }
  265. file << endl;
  266.  
  267.  
  268. //trabalhos
  269. for(auto &i:trabalhos){
  270. file << i.strTrab() << endl;
  271. auto v=i.strVols();
  272. for(auto &s:v){
  273. file << s << endl;
  274. }
  275. }
  276. file << endl;
  277.  
  278. //noticias
  279. FOR(i,orgCount){
  280. queryStr = "insert into unbsolidaria_noticia(titulo,subtitulo,texto,dataCadastro,dataNoticia)values(\"noticia " + to_string(i+1) + "\",\"" + loremIpsumSubT + "\",\"" + loremIpsumDesc + "\",\"2016-01-01\",\"2016-02-02\");";
  281. file << queryStr << endl;
  282. }
  283. file << endl;
  284.  
  285. //faq
  286. file << "insert into unbsolidaria_faq(pergunta,resposta)values(\"O que é UnBSolidária? Qual a proposta? Vantagens? Quem pode participar? É gratuito?\",\"É uma plataforma social gratuita de integração entre organizações de trabalho voluntário e pessoas que tem interesse em realizar trablho voluntário.\");" << endl;
  287. file << "insert into unbsolidaria_faq(pergunta,resposta)values(\"Organização: como elaborar uma proposta?\",\"Para criar uma oportunidade, faça login com uma conta de organização, clique em meus trabalhos e em seguida novo trabalho.\");" << endl;
  288. file << "insert into unbsolidaria_faq(pergunta,resposta)values(\"Voluntário: como participar de uma atividade?\",\"Faça login com uma conta de usuario, clique em trabalhos, escolha um que o interessa e clique em inscreva-se.\");" << endl;
  289. //file << "insert into unbsolidaria_faq(pergunta,resposta)values(\"Como a plataforma garante comodidade e segurança dos envolvidos?\",\"\");" << endl;
  290. file << "insert into unbsolidaria_faq(pergunta,resposta)values(\"Qual a equipe por trás do aplicativo?\",\"A turma de linguagens de programação da UnB no semestre 2016/2 \");" << endl;
  291. file << "insert into unbsolidaria_faq(pergunta,resposta)values(\"Mais dúvidas?\",\"Envie uma mensagem para a equipe.\");" << endl;
  292.  
  293. file.close();
  294. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement