From d7d26e199fd9bf65cf29fcffdc6aafd7b1b9aeee Mon Sep 17 00:00:00 2001 From: vini-haa Date: Fri, 12 Jun 2026 17:08:34 -0300 Subject: [PATCH 1/6] chore: setup do projeto (conexao isolada, env, dependencias) --- .env.example | 5 +++++ .gitignore | 26 ++++++++++++++++++++++++++ db.py | 19 +++++++++++++++++++ requirements.txt | 5 +++++ 4 files changed, 55 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 db.py create mode 100644 requirements.txt diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..ffdd5d9 --- /dev/null +++ b/.env.example @@ -0,0 +1,5 @@ +DB_HOST=your_host_here +DB_PORT=3306 +DB_USER=your_user_here +DB_PASSWORD=your_password_here +DB_NAME=your_database_here diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dc86d77 --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# Credenciais — NUNCA versionar +.env + +# Python +__pycache__/ +*.py[cod] +*.egg-info/ +.venv/ +venv/ +env/ + +# Jupyter +.ipynb_checkpoints/ + +# Scratch / saídas temporárias +output/ +scratch/ + +# PDF da solução (entregue via formulário, não versionado) +*.pdf + +# OS / Editor +.DS_Store +Thumbs.db +.vscode/ +.idea/ diff --git a/db.py b/db.py new file mode 100644 index 0000000..92d445d --- /dev/null +++ b/db.py @@ -0,0 +1,19 @@ +import os +from dotenv import load_dotenv +from sqlalchemy import create_engine +from sqlalchemy.engine import URL + +load_dotenv() + +def get_engine(): + url = URL.create( + drivername="mysql+pymysql", + username=os.getenv("DB_USER"), + password=os.getenv("DB_PASSWORD"), + host=os.getenv("DB_HOST"), + port=int(os.getenv("DB_PORT", 3306)), + database=os.getenv("DB_NAME"), + ) + return create_engine(url, pool_pre_ping=True) + + diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..a79ff7e --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +pandas +sqlalchemy +pymysql +python-dotenv +matplotlib From 256c5d04ede3984e66c8624c75ae57481945f6e6 Mon Sep 17 00:00:00 2001 From: vini-haa Date: Fri, 12 Jun 2026 17:08:34 -0300 Subject: [PATCH 2/6] feat: SQL test (3 queries) --- sql_test/query1.sql | 11 +++++++++++ sql_test/query2.sql | 10 ++++++++++ sql_test/query3.sql | 17 +++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 sql_test/query1.sql create mode 100644 sql_test/query2.sql create mode 100644 sql_test/query3.sql diff --git a/sql_test/query1.sql b/sql_test/query1.sql new file mode 100644 index 0000000..b3eaf9c --- /dev/null +++ b/sql_test/query1.sql @@ -0,0 +1,11 @@ +-- Query 1 — Os 10 produtos mais caros da empresa +-- Decisão: desempate determinístico por PRODUCT_COD. +-- O 10º e 11º produtos empatam em preço (R$ 315,90). Mantive LIMIT 10 +-- conforme o enunciado e adicionei PRODUCT_COD no ORDER BY para garantir +-- resultado reproduzível (sem o critério, o MySQL poderia retornar +-- produtos diferentes entre execuções no caso de empate). + +SELECT dp.PRODUCT_COD, dp.PRODUCT_NAME, dp.PRODUCT_VAL +FROM `looqbox-challenge`.data_product dp +ORDER BY dp.PRODUCT_VAL DESC, dp.PRODUCT_COD ASC +LIMIT 10; diff --git a/sql_test/query2.sql b/sql_test/query2.sql new file mode 100644 index 0000000..6a7ada4 --- /dev/null +++ b/sql_test/query2.sql @@ -0,0 +1,10 @@ +-- Query 2 — Seções dos departamentos BEBIDAS e PADARIA +-- DISTINCT elimina a duplicação (cada seção se repete por produto). +-- Verificação prévia: confirmei a lista completa de departamentos para +-- garantir que não havia variações de nome (ex.: "BEBES" é um departamento +-- distinto de "BEBIDAS"). Apenas "BEBIDAS" e "PADARIA" correspondem ao pedido. + +SELECT DISTINCT dp.DEP_NAME, dp.SECTION_NAME +FROM `looqbox-challenge`.data_product dp +WHERE dp.DEP_NAME IN ('BEBIDAS', 'PADARIA') +ORDER BY dp.DEP_NAME; diff --git a/sql_test/query3.sql b/sql_test/query3.sql new file mode 100644 index 0000000..d7d700b --- /dev/null +++ b/sql_test/query3.sql @@ -0,0 +1,17 @@ +-- Query 3 — Venda total (em $) por Business Area no 1º trimestre de 2019 +-- JOIN entre as vendas de produto (data_product_sales) e o cadastro de loja +-- (data_store_cad), que contém a Business Area. +-- Decisão técnica: STORE_CODE é varchar em data_product_sales e int em +-- data_store_cad. Apliquei CAST(... AS UNSIGNED) para alinhar os tipos no JOIN. +-- DATE é tipo DATE (sem hora), então BETWEEN inclui o dia 31/03 integralmente. +-- INNER JOIN é adequado: uma venda sem loja cadastrada não tem Business Area +-- atribuível, logo deve ficar de fora da agregação por área. + +SELECT dsc.BUSINESS_NAME, + SUM(dps.SALES_VALUE) AS TOTAL_VENDA +FROM `looqbox-challenge`.data_product_sales dps +JOIN `looqbox-challenge`.data_store_cad dsc + ON CAST(dps.STORE_CODE AS UNSIGNED) = dsc.STORE_CODE +WHERE dps.`DATE` BETWEEN '2019-01-01' AND '2019-03-31' +GROUP BY dsc.BUSINESS_NAME +ORDER BY TOTAL_VENDA DESC; From 720f65d9378a88a4d40e5b875afe32b00f69a165 Mon Sep 17 00:00:00 2001 From: vini-haa Date: Fri, 12 Jun 2026 17:08:34 -0300 Subject: [PATCH 3/6] feat: case 1 - funcao dinamica retrieve_data --- case1_retrieve_data.py | 45 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 case1_retrieve_data.py diff --git a/case1_retrieve_data.py b/case1_retrieve_data.py new file mode 100644 index 0000000..0d99a3f --- /dev/null +++ b/case1_retrieve_data.py @@ -0,0 +1,45 @@ +import pandas as pd +from sqlalchemy import text +from db import get_engine + +engine = get_engine() # criado UMA vez, reusado em toda chamada + + +def retrieve_data(product_code=None, store_code=None, date=None): + # STORE_CODE é varchar na tabela; convertemos para str para garantir o match. + store_code_param = None if store_code is None else str(store_code) + + filtros = [ + (product_code, "PRODUCT_CODE = :pcode", {"pcode": product_code}), + (store_code, "STORE_CODE = :scode", {"scode": store_code_param}), + ] + + ativos = [f for f in filtros if f[0] is not None] + + if date is not None: + if not isinstance(date, (list, tuple)) or len(date) != 2: + raise ValueError( + "date deve ser uma lista com exatamente 2 elementos: [inicio, fim]." + ) + ativos.append( + (date, "DATE BETWEEN :ini AND :fim", {"ini": date[0], "fim": date[1]}) + ) + + if not ativos: + raise ValueError( + "Informe ao menos um filtro: product_code, store_code ou date." + ) + + where = "WHERE " + " AND ".join(trecho for _, trecho, _ in ativos) + + params = {} + for _, _, p in ativos: + params.update(p) + + query = f"SELECT * FROM data_product_sales {where}" + return pd.read_sql(text(query), engine, params=params) + +if __name__ == "__main__": + print(retrieve_data(product_code=67108).head()) + print(retrieve_data(store_code=1, date=['2019-10-01','2019-12-31']).head()) + From f9d4fc2a1dcbf8188b2da5f80494070be11708b6 Mon Sep 17 00:00:00 2001 From: vini-haa Date: Fri, 12 Jun 2026 17:08:34 -0300 Subject: [PATCH 4/6] feat: case 2 - ticket medio por loja --- case2_visualization.py | 59 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 case2_visualization.py diff --git a/case2_visualization.py b/case2_visualization.py new file mode 100644 index 0000000..d4b5bc0 --- /dev/null +++ b/case2_visualization.py @@ -0,0 +1,59 @@ +import pandas as pd +from sqlalchemy import text +from db import get_engine + +engine = get_engine() + +query_lojas = text(""" +SELECT + STORE_CODE, + STORE_NAME, + START_DATE, + END_DATE, + BUSINESS_NAME, + BUSINESS_CODE +FROM data_store_cad +""") + +query_vendas = text(""" +SELECT + STORE_CODE, + DATE, + SALES_VALUE, + SALES_QTY +FROM data_store_sales +WHERE DATE BETWEEN '2019-01-01' AND '2019-12-31' +""") + +df_lojas = pd.read_sql(query_lojas, engine) +df_vendas = pd.read_sql(query_vendas, engine) + +# 1. Garantir datetime +df_vendas["DATE"] = pd.to_datetime(df_vendas["DATE"]) + +# 2. Filtrar Q4 (restrição: não modificar a query, filtra aqui) +q4 = df_vendas[ + (df_vendas["DATE"] >= "2019-10-01") & + (df_vendas["DATE"] <= "2019-12-31") +] + +# 3. Agregar por loja +agg = q4.groupby("STORE_CODE").agg( + valor_total=("SALES_VALUE", "sum"), + qtd_total=("SALES_QTY", "sum"), +).reset_index() + +# 4. Ticket Médio +agg["TM"] = (agg["valor_total"] / agg["qtd_total"]).round(2) + +# 5. Merge com lojas +final = agg.merge(df_lojas, on="STORE_CODE") + +# 6. Tabela final +resultado = final[["STORE_NAME", "BUSINESS_NAME", "TM"]] +resultado.columns = ["Loja", "Categoria", "TM"] + +# 7. Ordenar por Loja +resultado = resultado.sort_values("Loja").reset_index(drop=True) + +print(resultado) From 3576df0088be4b69731afa6dc426ee2177d3829e Mon Sep 17 00:00:00 2001 From: vini-haa Date: Fri, 12 Jun 2026 17:08:34 -0300 Subject: [PATCH 5/6] feat: case 3 - visualizacoes IMDB --- case3_imdb.py | 90 +++++++++++++++++++++++++++++++++++ case3_publico_vs_critica.png | Bin 0 -> 41424 bytes case3_rating_vs_receita.png | Bin 0 -> 51018 bytes case3_receita_por_genero.png | Bin 0 -> 59981 bytes 4 files changed, 90 insertions(+) create mode 100644 case3_imdb.py create mode 100644 case3_publico_vs_critica.png create mode 100644 case3_rating_vs_receita.png create mode 100644 case3_receita_por_genero.png diff --git a/case3_imdb.py b/case3_imdb.py new file mode 100644 index 0000000..f275041 --- /dev/null +++ b/case3_imdb.py @@ -0,0 +1,90 @@ +import pandas as pd +import matplotlib.pyplot as plt +from sqlalchemy import text +from db import get_engine + +engine = get_engine() +df = pd.read_sql(text("SELECT * FROM IMDB_movies"), engine) + +# --- Gráfico 1 — Receita média por gênero --- +df1 = df.dropna(subset=["RevenueMillions"]) + +df1 = df1.assign(Genre=df1["Genre"].str.split(",")).explode("Genre") +df1["Genre"] = df1["Genre"].str.strip() + +receita_genero = ( + df1.groupby("Genre")["RevenueMillions"] + .mean() + .sort_values(ascending=False) + .head(10) +) +contagem_genero = df1.groupby("Genre").size() + +plt.figure(figsize=(10, 6)) +plot_genero = receita_genero.sort_values() +ax = plot_genero.plot(kind="barh") +ax.set_axisbelow(True) +ax.grid(axis="x", linestyle="--", alpha=0.7) +rotulos_genero = [ + f"{media:.1f} (n={contagem_genero[genero]})" + for genero, media in plot_genero.items() +] +ax.bar_label(ax.containers[0], labels=rotulos_genero, padding=3) +plt.xlabel("Receita média (milhões $)") +plt.title("Receita média por gênero (Top 10)") +plt.figtext(0.99, 0.01, "n = quantidade de filmes do gênero", ha="right", fontsize=9, style="italic") +plt.tight_layout() +plt.savefig("case3_receita_por_genero.png", dpi=120) +plt.close() + +# --- Gráfico 2 — Rating × Receita (receita média por nota) --- +df2 = df.dropna(subset=["RevenueMillions", "Rating"]) +receita_por_nota = df2.groupby("Rating")["RevenueMillions"].mean() +contagem_nota = df2.groupby("Rating").size() + +corr_receita = df2["Rating"].corr(df2["RevenueMillions"], method="spearman") + +plt.figure(figsize=(9, 6)) +ax = receita_por_nota.plot(kind="bar") +ax.set_axisbelow(True) +ax.grid(axis="y", linestyle="--", alpha=0.7) +rotulos_nota = [ + f"{media:.1f}\n(n={contagem_nota[nota]})" + for nota, media in receita_por_nota.items() +] +ax.bar_label(ax.containers[0], labels=rotulos_nota, padding=3) +plt.xlabel("Rating (nota)") +plt.ylabel("Receita média (milhões $)") +plt.title( + f"Receita média por nota — filme bem avaliado fatura mais? " + f"(Spearman ρ={corr_receita:.2f})" +) +plt.xticks(rotation=0) +plt.figtext(0.99, 0.01, "n = quantidade de filmes com aquela nota", ha="right", fontsize=9, style="italic") +plt.tight_layout() +plt.savefig("case3_rating_vs_receita.png", dpi=120) +plt.close() + +# --- Gráfico 3 — Público (Rating) × Crítica (Metascore) --- +df3 = df.dropna(subset=["Rating", "Metascore"]) +notas = sorted(df3["Rating"].unique()) +dados_por_nota = [df3.loc[df3["Rating"] == nota, "Metascore"] for nota in notas] + +corr_critica = df3["Rating"].corr(df3["Metascore"], method="spearman") + +plt.figure(figsize=(9, 6)) +ax = plt.gca() +ax.set_axisbelow(True) +ax.grid(axis="y", linestyle="--", alpha=0.7) +rotulos_box = [f"{int(nota)}\nn={len(metascores)}" for nota, metascores in zip(notas, dados_por_nota)] +plt.boxplot(dados_por_nota, tick_labels=rotulos_box) +plt.xlabel("Rating (público)") +plt.ylabel("Metascore (crítica)") +plt.title( + f"Metascore por nota do público — público e crítica concordam? " + f"(Spearman ρ={corr_critica:.2f})" +) +plt.figtext(0.99, 0.01, "n = quantidade de filmes com aquela nota", ha="right", fontsize=9, style="italic") +plt.tight_layout() +plt.savefig("case3_publico_vs_critica.png", dpi=120) +plt.close() diff --git a/case3_publico_vs_critica.png b/case3_publico_vs_critica.png new file mode 100644 index 0000000000000000000000000000000000000000..268cf55f5a7374a5651afe617cb919804d70841a GIT binary patch literal 41424 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

N3Q!jH!Ly)(-@c-QV)gO2vfHN==+9q( zW(|j+SZg40>w>RD2MDgcJMQlUQe`hK@Vh9~!(=UjgHb!b`~_oQ6iI0C0e>L| z01|hzUv6_9S&{RgAa|!=Fm~Np4WG|%6tZm;TrU|!8an{xYL&(!2|dV8&Gc&g3n7_f zv4idpc!~7fl?VN*Yu^H>fH-ySAdF{1mxXfj<8$2gpiDIa%z=!Q`vdd>AblWRP@`$j z)$NZ8MRu9x5IwtEfyI7oiil7B?%m@@`1$!bM~wu;#(5B~70mY*_d+d7v-p%m7$iuB zw+$K|H?_d>f{|}aeZR~GBHkjGoz49Y0YHq0ht~%ja|C}4y(aE~eDi4MjAydWnJY4V z^G;A@o+{%EHUW$5aBXmKNUjNnSGN ztr~S{yk@>fxU%jjt{@XL<$wIiMtR>>*{;mmvQ}A4>~`n(xDbVv684SjS7a~LUUk4z zOGq8zDbt`$iL&z6w5TLOAm%OTY|#89DwxE&m|A?A;B$XPCMeubz_5vV7L4bIcYG;dz>`?+2>~bzFK1%?>NKXXnmaNsw^Lzm3>fo|N>>P%BJ-WL01}DiO(T zuJx5?{H#$^+{@nS$^R(cIJmu#+Ku7^!T~TmYaT5)1hMkljyBh`ZPK?C7g%gVV_i0l z!WmRYF>b~T3B_6E3WHfT+7&L&UrP{~=Bh=$-J))>^EQR>wnb;z11?N~=1u{z=Lk>~ z#gN)b_+~(gsFa~x52iOxS+^-K6LO~JOpO9x)OuOu?dVC~1r~GO4eAe3iVXvY&aI#R zt}e4!GT7>@z9Pu9KaUBdc~e_sishW^+2=N+=Ozhug2Ed)Z|_}A`K%RdJJ&V*iph)h ziXeZ@BQH5jDl17Dn2~L}l1eFg68TK&QtdTOv>(f(u&!T=qghbat$|j!3ly#NiyH`; z0bsAO{aEo4Nx+T4ryHS3L6CUeW-#y=mlP_Ihp3sqOtraf8kxbb@en_Z+z4p*?R3QRUOCqhu={i#%M!P>4-a5b$JIX;%RzUecMGw+IPi9I}h$xKAtZ#xJr|NNoX!%#yA$M8BV3KlrinX`~y zDpovhzuu44v|%WG1bS~mCTyd%4s~c) z5fQBMslmQ3KwqF$p)SY*--gER?rf<;PLgTAJOTcSJN(8t00PBe1*I{n`!^A}@!>f+ z#rV)WXv|^&C@eeWtvb52>V=t-$S4TUJ--R@qx*Qm14dyCh2W67ahPdcptp4HheKix zuQ6Hhwm)(0AiVm4PEkl`o_hXa{|#oKT-!93kj>UoFcV zpWDtp_3yAo`@1Ilm3mjSo(!qig zZj1W{eF+u$d3hrxV#qW#U;O_}`sE({E2ZLh5Hzs25Ajxjn3DxvB2_}#ajf-`+?+Z! ziaL%3*HYgcr%{7c@A@CRq6&UR=OFUnZ|LAySLiD!_ad7?rS&ChUT`QxFt+2WM;N#e zFy4(vkokiGr=ph~o}9`XxpaW-8`1xU6-yf3c>`TDMGxOz?k=-mHm#4~Qce&% zhQtjdG3og5@Qg{;bo6Xb@%Tj<^eD=z;MB%VmGJCNZOLB6C}O^sdC-hVR?=Y8qZ;^*U>UC`d31BrdDWd!KdsH!se z6Lb+;Z^tvC2q=cMv35o`0rWq0i+s?kj=cjQ#tbb2jset9Y5rjkn+R; z;mW`K<2I7-e{RmSlRESH^XDal$O2TX z1GqNZQ<7Lh8F?IM{t^I$D;iqF#A;rezN>}TC!`d zJO7Jotlfwg$Mh5=TN-hrN#R;~0O{BK`%(f;DAH*nmWZ%JaFH6I(MW6=M(ebjzWDWX zcrk{3|F#eGEKgc!fLf4P(^_DpPzO*Q^d70FJxR)h1fp$d|02|Ph9S=+xS=h?B$}Gc z{a+%}NZ}80V65kncQqLCwSPX7KX4tLz+Hro{@UAJuRxHW|1_D&vax7j$*ufHxriX= z@LV_jvo=1CZh8QcDB~~2X56{l{g}72EaT8Pn+Lj@YGddL za);)SK3ig+QMjh<`{M}W1FuVFZi$euLPe4D6uP3!VA7CYDef|`-~EPdFsu>5NBh?X zPK+=P{fu&$N&91|%ocyb9qORU>rv>EwAHKtC2k`i1jD<^w?q33oosDwbqs!|_NQV| zl0e^Se!72;VsCK&j;NQ%EXshkD&75aNeMkYWKxAyJ~Wd&yTyYp*8h4Wx6#^bIR((# z0&hUUfc^Iy7pcg``CNcYg4qmOmH9J=avB%NttWouLL&QSFNVi5!3;2m@M)yLfmVuy z_8e_t#y@84sqLl*$U{epEYrH{YTOb6)W)g;xn*v(ALCGNW5+EJW(sLo?i5IZ9?1@< z|M+J!^DiXJ4<+hWc`FyAH6svI41Da^F$<@S@o?K8H)~X(^yv%mWfC5s;GetE3snAS zq3`b}7Y~1qnQ2Sw_^2ZanC25ZRhXJ%=-+o3Y8xt9Zs6CHiqbkHu-wm+lzS{=VS{saxs# zY{uCapmy`DQTcra0hKJdzb7Z#(-wgBo+HNO$0*3BrTu&U6v zfFL|jv#DRGe|Pf>IARmn@I_?QY+a`%>2<&{KK^<~DzFDA2=4O#R1W{xA3XChV+#$- zDryd<8m>-_(N`ou*jP!cB;dWG1s#j1lMw%mcvz%^5Ncs(q@+}}wJq8KGZ{AezZb(L zmWUtUL5lNkgIMb6CD@S6g}-yL>za^?At{VV^AR3J^#ouUJL2vgdK3aZAvFL)nIfJL zntPf^G<4w`9g(hnOTmgc_!-@GkCfp#(tUnBumGm(UHI=T4_Zzxp2K-LBYoTnt>8uR zL)G9fG}$R#<3#TTa#n1&pb4uT78asZe>H!EzOdLo5Z`pf>x<`n>9`w6*u&V>Cyawr z?Y(!20|dO;Kv}o+GSHMb`tu;O()emn7jjh(*pq_yw+${EB4{wA8=p-q%7ETotD@2F z0<}A%^)|2?Mo8nICZ<_jSusRZw9?0Rz6WW0pNsckwBmY%IDT;8(dyL*JZ5ClmYQ2P z$z?k7)e9fp2z^L8;N1NGLdf8CM`%P`160A?!vNfVEYg$3By1iPW)Dou=~1b0j`>#{ z{I+u+frJ(FMOxrP+12lMTJmFwCrE7s(!W2+)+p7e*{3v{OBKqT*l1IXfJwR|(`x7v zkrO+SvN3U22FT16q+GV9OPN0xJ*V8O(92bv7Z=5vf)R`pFR zJ8k(sORrKN)^BetU)*n4MY>ochJHXAryFJEle*?@y9q*nG2aYm*nR<=#JCS*$`bG9 zRAT=DYC#$PXVA9)`FFLPfbipcdr-gQ=RVP<98#P;MKD{9-b80@K}5V*%>bPp*&dPL zHu3YLSb$^k5xmf{Yt!2>k=q_&8xP95R-ZTY@=J1e7FSNb4(-feBD#X%VQ820<1!!U8?YNCSD9kq!&rQg5!x8@Y`pd>ftFs2Jz%?I$Z)Wn07Osy zyvV%(s;$#klcSzoeez?G3V*$9xdS$%2yfC)`$m(PG^+_ag!{bqfES8r5B3H}829dc zG)HHOUVz};k%*ullY$j-G3(otL`8y7(*1pCpvnM+i*i_^1kS!P|N(K~(`U`G-|E(4mS4GuxVFXo5{$*tqIlQ9*m$okbscg84UjORusDuFDDg`Two$k*{=~FWjIC!8s$3? zE`bA|;b4x?xEJyo{lS+41FQo*MH%XMbJU;i-z#w90EPVeZ5j=Wmn`0tQOM~U#4Fs8 z=H)}(Lfvb%?@iq<{iuu=!kk(B{Ta6s5*}nLFKIrG=HqINeGe#u4Y9AAf_E(N->JQ{ zB0?BLjg|-LdGmNF&wN3v2HFP^;6UVI3fEXcq!CDWmd*Fg!M)v1o56G~Wu$!Y-X9t2 zlF+B-5=%Wge%nkKPaVq&J+IY=Ep`^E5Q_@xvA{zVJfBuG6KI*h^gbFhR;RJwrgb|e5)hE3=YZHl78xi^hQ6**^0A9sT|&Zr>*3)n^9!%|P^U0n z0@##S7jh~WAtv^MCQS!GSGJj_2fF+|i&+y`t(29|_MSs6r6C};&F*8xtkb9mN2WDi zUtj^~{pXjH9niXopzca(PpZmyH%+*mU=lmvIE2U>I``#&{3&?Spy0VI8-o<5`PwcU zReUxx&ygqO-=Yf8fxOxm&xC{dEqk9?^O|`u7=`k2m$I_enY^DbZcfQAl(_U=2V1 znbgF8TueK3^v!)h(j81%K6ur~3J*dyHIDO9lA$2sR(y@r4U17M`*#*`Iz$i2Lm|N6 zc%se%XkwwbkKfwgK44xH6gK1t%)U;ye>L;RhY~p@BV-7dmr?)wqEp{4B}y{de{kMj ztU-i7uNaW?EkZf9UBai~#^1T@2V~7S%72ag+_RpcQ1+6*&UKw$_?-;9-JxDb z)c_njx)ZwpMW`yeAw%e5EUTdWv^U*boP%tZ^Su}O`FnSim-EG@x^fd&iT(WNmywMS z=>AY*2WA)mg|+uv&3gx^{Qpof`aiyXvk>-*vyoAJh7{={5gkK;K(_Rl75D4=&~WLuLM5H;opw%H$)y0-99un$?KP zA;x~tu%jrGJm2=(=dY4T6Sz5a)VX}uOzd^8H6IY#*RXhHRo>%3*V1@w^>eU4=W zvM!LJ8y%uIj(`@LxAZmKW<70a=)3<}DCNb!{6=qvh~ zPLNhZHhp%X`#1M_=j=L45)cTD@Q=J3plmdS?fuV3aZ3b!7^2(hhWr3~j$5z#gdk{<$xt+c`E3`5BWQvKw9|sPNvi7> zN<`}NIcJb}&H-@l_ZLzy_d;@I3co3WdbJVO`qV$?wg$=+G@K%FVowlCQ<@K;5Y%qcs=%zGsZHZ3gqZE1boO0Ac?z9zbp_z+{k~jc5s=>P(}P4 zM7YQN2EIBH?lEwe#n3h__@59OB;bPgoP-`D-F9b1c-k+cDnJ-5S?*gF03c^VO|na? z5fNA?O^LBFa`v&kt9GhWJqvam-$u(#&F6M(5P=foX)!>C}nGO zbEzLdjmcD!b1g!NrIm|L2N?GeRaQ<%NQ(Rsj-jKp9)~6M#4KT<~Qy zjGSdx>jK6z6I7gQNI99UgJ7sgC?f3uA?Tll6p&1C2;dA_IzofMf|xkenrh zq__Uf+;iu?`_=cIdhe@O?^QjkPMvXdV6%Jg|61#pmR{Q7EoK?|y&}-ikC!}n18GR& zzkq+hEl-n~*eh~KYW35DKln>Ms)MdutjCo z4jO95ulLS^uxe}Xb6@Bp)QsF>$mD{{DSkUoHJpGhJRr>vVm32wt7eO;@-g*-=A}bV zp(P`UnvI0OQFz(9V630Q2Z@bA@YC_=aW??%h{aC`dL&Rg0_5p;I_it?ZW=r1sUPRB zEkM2E(y%z{yCm~E7Wy0cKk1T7p@gC)6yZ2kz8ULyI7o_5QUoNKX#L}5hm!RW)$=}h zIg2$?P3E`8A2>6vu&_)VT85Z|+ItYbH%PjKZiAn>5S+@O@1B{zJEZs207P!)pRt}4 z3Wxi(LPG#z9TwRF4dpv%d1GwJ8tU_D>DwTI9d%6PZd7!BF6Zku-ux+~!&!8AoT6F1 zCpOK!UdK`GxDi0K_*Vcu$>=b3V&8Tya2kn`8MUM3Cu9 zD)|>c<%gU-&gPYbLWZz^NNlP_KhD8R)&+fkl`ja4djYd8R?7;7%G?Eg8S^~{s3^%| zZMVL7IzD;()OG(@1BjmmduZb5qG>87W!t~%Dx2niitKh%XuLox5rHzQ-ea-=`3 ztgJeLCO{0rdo3;oj3MM3p;C%sI{yoPejhqB*TE2Br2ilA)Ce{Js@}BB{oX&Ch21Q* zxwv>eN2Jt*#3Zl(@<&K(jev9!pQ#@?t^iW}1Id^Ch_qc^AnirR=D-FsmH@r;@ltq$ zr%|9!dB)BqSF71P&5gDH(8=*fIShNq3gTMTnp6uI`FKnUNHW1A0w=Hx27*d=1bbO! zjexBjFLI6c)JIj{4}w4SOa}oD%K^VskJQF5xpl~ZybG0PW?%&WRN%d?hA2mG?jEfJ zkl6U60e#O&r7)QUJ1M~#d8QQG6On?fBH4)nzqtXIDcK-D6D;5@jZt~{_ zYr28)M=U`un)OTy?%HIRFUMqox*d~?zK&lWN@In2#vgbbrJ2I5y;_e{kQ~EKuzWEb z)gu==Q;>a>f>P*ipZ7{W+{nIz-4K&jc8kn3ajQQ#P%ZE$B$+Am@biZ+tnX2K+LnG7!c zT7_y|=)VwWfm(a+B7)F@me#{TonYZSE$`)nG zx_={+EjnG$Z<<~7ZEFrXWaoa#Y!CuQ2U4gHr=I0OO*s4~-2fp^V{P5lwaKc`>o%=v z^xb3y0UmB#`z8@aB4YQBu8{qQ-chAWp2*vOt0+bH7HL(BinKByo{Bh$?|F3P6ms!Q z|HxstAU{NY5x79puMG_iE+qiSDEt}LzxQ&4lR|xno>NWI@gtxDbQ3k)=ge@!ZxD{4 zr!}B}hI6v3C3YQ7sZt4MQOTYOoYCOY;mmRRsb0s3E?H6iR<%&<3|G!Z| zvnw7R;v!Piz$<_W%SMl&UtX%;XLK}U>>@!W+?0lSf@H$YyFhOkM%_n|R2b*ye3X1- za-C@F`5x=#LM49fuRV zn{9luLYEfVGP_tN-pm6~@8)|)r2e>nNU!71upNQK^JLjjRF;HS7KtxB$M`w7b~NlV z;nZR#5Pv%MNhYqzRAZw_p8Q4q_AEyw-BQZ=ZmO|G)@i~!DqB9xbuBaeiz2n?M)|O{ z*pX*57#W`!v_3_ zmto|~Fv|HUF!R2(q5{bJtLg>p>$(LZbSNma4s)~iYlVa$vxG}A>YZjTZ2ePucfJf9 zOJwd!)allFfgNs$D=oqfKM%2FCDnXD$2}EAYW9JtyrxTtMJV>!{vWdlig~HcVZSeg z&h-6YPQ6+O3?2LDNCERMDl>*mI3(4oi@*zH4FBZBTIe*Y0X(!*brHyGO^O|d9a$M^ z0(!(&xmE7Klvg$Rzu*zlrzcXU)2CxhjkPo)bn#)FnqsV)y`B@Z&Z4v97n2&yti%%} zx3+!lzlNtsUQPWVI3d2|{hNDCq+XCA^_~I#Q6%5TB2f02fTm}+zD58dA|^htnG-ef zOUr$<9A2WIm>44*pX8V8F1gb?#7y!jO>_1oI* z^fOE<>pK8=2f75eUdC&weDaKHgUn?3Tou z?8q}UH#FUCGUHq9C5+; zTJlXlIrB1%%YQ_=k>*R}zIg!pU^-b6=` zSX94tphy;+-M~4imRx<)vU@lV)0`7`Gm)>y-NB}49Engm2dLv-I?P?b0bJj3ajmfBi~4Po{RuG6D+&oS^o+qYN^1=%cK_At z;F3bYrm#~y{n$EswQ?CC1mKWe&{n$xOiaPwig%wmx>L%Y%SW8l5*5}{V^1C71pg1H zo!JuDe)(GC$t6Wae#hz1{!|qt*kEdCCOZS59G<4R{sri}OpxD-F5}+=s1gLj-rw@M z@F1+UUbY2^<1h)%UP!Tt0MLU<{E{TuafKS%)(tZFf;2G1KWbspvp&Y7w=WD(y6)*O z>|uG(zZipJbL{N#Rq57#ba(vDfUgNWSODUPGFFR#z1HlCHkG*E!y8|opF$2LVT%@< z-*MqDD90b|P~vCkIT+0Iv5_RGQ=s&)iGB#^l>{~l-@^h%+Cl__kDEec@ZD-}_^us0 zy7Fm@Y%a*SD@3!sUFq~?gx=XAI578?Iv_!@ciztf4xt1iG1;sG&`hF*9?CQU^TlAk%gY0|9^Z=|K@Lco~puQXZBsLD$-9+RIK$`0DKYU9ls%|2A=A?* zffhJpxUPG$k^Z$E!gX4~>Q{fIz)2-O_z;D#tqv`_|Kn;Dgf2s1vzRGBf#8aEiT+Q6 z349(q5)_%{@y^^-gy$mhK1ekYU<>vISF#0Zazh69nP$^+tDA`66&iYCp=3^#H7Yw0}aQ`4;CRWz-aR58#L%(8v3^)36N(5e*JrUI4s8H;ab=V{)_S#a0>VW`?z-0 zvJ`$FlR!XwhWlSY!Ryz-7JJaQI6)R@LIeN*wlyGdasU4{!7bRa#JPfAL1IPx;>BDe z;YMgeduGAT#^{v;B<6P*y9~kp<0pUTZ{6_fLho%_&-%3gvy~O;g$o|pB6FMTl(G$l zjFi>QoA2r={NSWJlM1rj=WCw!+elP;!Iwf=sWl$7$ZY>J{qW97_3wJ7cFt3Zf7pX{ zE_^%>MstJ|pjMH`Ak!Lwu*k-6oX_Z8U7qyj;!7yIT>u!;fq(qHxof8t@C*}=_=Ms4 z0EF>XbCf^W)2xwK5Mj26y5cn?=7CJA0UUuh0hcdFLzGBI*O4-WXwRh+q3EkS_=n{o#(A3Q#v7C#w*J(X;eChpxl~ zP?l+Eu?5?$cHkSTXfQ+>UBNwv4b2O(p zV$-ToEh$Y@M7>cTiixivYpC*=3S6g60CstbR8TdudVXibPK^V7Lz)F$ODCXr%$Rr( zO!~k>L3SOXY6keE;xk_JlDv!%D8`2hC48WZcdU!`3$3Bh2x=OqA}Tx8t>B1;0Vy=L$er)~g{lex?+>ZlrVe?4N0_TBrU>`O5$C z{J%U!6FHwMZm_ubKM-(03m_oow(oQbD&eF?fH$oGTBaXFxgdz_-2{N@vhUVL&^)@oU3(F-Ayiv=RI4W{ zI$LCuV+8THWSYd^eIDPd15&Bolj2JxlNIO$l%DB^|3K11SfD^!o)ZT;&K5|&Jb(>L zU^aB=xNP*{ezDqxNkb5H0%sVL(Uc^g>jVC*h?$y~0)Li#UyY6)=LN ztL>pG07#@?C{Y^q@`whXWNM#*90Sj$3`*IMmhC@A3uq)xAeK^nt}QOVk`l*SsWbhz6KYkTyjV{WF?xyf(i*NkS-7T+RZ`vTaVrEFP>M6QMUwJTHKO-vR)}XK2_-ip2 zg3#R`?@mPTNG%u?RhRL2tNwU`I8iz95bKkB z!8_vw3^)fv0a7FZC^L+8NE40#`3~>(`>7gldS+q4L=BY;Bund|MNr5@B(U-s9S?v9 zTKPxqXzal^xmN_q7JQ%|>)MoGpk$$Daq#m7YTC8iw$QjSUeY}LB`9Ej00$O-$5ESn zWIQ)RCnEIy5}Fxj&H{L;@Iru0TTpPBaKHY$bx3CX8$bF-yaF13;47pj!T}GHI@m=# z6Ldf1_!FQ6Oujw@c6f3h_uL<_)g$E)V8g&m{vs+*x{iYFi1lBQN%Z~X3;Ex$3v8!u z{ml5s71e$F#`j;uJJ63qEYdEDeRW^HT)hL|ne92CZ8A@Ad(mvxO#eT-EKw015Q1>r zwOe@-Wf$t>kqbg=NnkM0^(&wIN8h9L1k@x^p#^lRi$~BOQiSjN|7_1gHV9F$Z6h@^ zoMBX5&b^}$Cq-K}4r2vb67_2o?!eCwRBLU{va_=z(=o+iH`J)^W5a5~Z{+`{IRO86 zOZpC43JvFfS9JY96AO~wv8b8{lnp4d^Wf6E0du+uF5Rn7Q=VsL@=e0p zu(ovF8i1p(0>_#U#MLL*=JjSwL5?1wCrA!}{GkOdPhJ5_#M@#d4b7J~o{{d}WstI< zE)~fS-c-2oNrN)u?kIyJ=!S;e|C~gd(t<7ItG|N4^7=OHB)bc?0=Jq4(6nKZNezDL zXxq3e$ld~-3feEz0t&;M&@8H|`k8jV3R z*b{PrP9c2&EFQT~mb(G_wgY6{nX!4GDzG$mB-+CBD@Ya~Nkg7~6&f>JXcPt9gIk@D zS01{sljk!5@!W5UsqTYWZyLU6{*6%4&yZLvg%l}#0JX4oE3L3 zEl`ASAn*dVm;3?!67=kFQ)=oerl9K zlYi7yC;$XewF=Q728kY1kfmP*ac_@Y6Ho`AmesEjUgyK-FE6GC?+vVZ3AW&?evQ4`0|vZy zV2TZyY17BS5ac}VRTs%SigiZ1s$h#V)gYN2G+X1@_9tA*_}ej&;Styh>eb6$$Qq-@ zC8RBj1>7ZIo%B|XF*;0E-2fDtw*t7*}BQSO;%Foho`o*uK1LvsRQikDvje+=0}#Ix>7v#nPg1)aB06k?G(xueJ}ahbY4;_xxVTfCsKxq2n~;9Qbl-u#IPtCv`{r2kuK5D2+{KfDT2W1nQ{znhwGx<~LC z)#M*hfVY5zHb~}@bo~hDc~9jXQTHrQ;o{12Dxhrh+>bl^R=IwJ8`3<8hT_S`+rDTE zy3*)m?5_eP;RGcHMqsyKCHni|S9+6SllpNHGWUjKj`R4vm0)=f;W6l)fxwo46pS8f zh6##1^J%@8pLaz}Dce&X(>E}++>;56YLz2*=gJn_ArAP>CC|8GK1MlSigWF#F;F7PSD zSR-F2xpHUF(5cAx?%flO9hQLEVdk}JE3WGG?f7v=9;C;EkeY-sg#&vW9TK%*caA+W zdG%Bgd$;I&l<7Pt#bHWz%Td7U*}$I6XmeAGwr1lp_ndWYFK_dkOTJb%N?4udtK}p^ zBI}+6H`Y)M$8RtS*Tsz|h%86W|mPdx_8oLDcBy_n< zP!cF=;Lu>%(mu$_+V@+!*hQxULTk+a(&k8#|CP=>Yc!pItc)Qh@vR-^5^I&`m;$zG zcXrHPrG?)47Ip)yc60^IBea}ehSMfgg@+^;zsn1nTt(k@Ouic^{|?Iqlx**4&$a}G z_vCrOv;{G zi3>NCtAD{7DpOGPRY_i8%MZ1c+=I5x5o@TDkCzu4@`sF>S=trRE$ z%I4JRC$!lON*iFOYwc!A{cWt4mdOJZ4kmpkswF%=Ma7fN6K>f2J*} zjg~qxXPyb|R3$RL0c{E#?~Gh${!n-@cJTR;SHl24=2+>T$%*Wxgi8w}Mu(vJb)pfr zg|W9?Z2{r~%kU>fF)Sq~bz8KTOyG^uyGUCZ{pQWIr_Ss1Hy$I=h}maA zQcOkG#OKLjVdSoasfWx9{9kAipL}|Ettt})6RuD^jG+I|1dRXg8bgv#Cv3~p79R%g z3PdgiP?);W#)Dc+y6+UqItmF}T7ZJixbDcl-JWe}4}oOSh+8r!xND4#BXfvaCVR_L zjiFW{g%_IekVT5uGE&mtOR8Zu2fQH$D3KIJ>L3CECdAE508^I17|PhvRXK}t9pJz; zMp}z20W{z@59~yHh#|7)hm{=J{fBrm6wM=?Rr}7q?*n~J(KA-@cEk`VvD|xvY9Q(r zE_?dTWTTb4lAeq2VubFP0C_Nt1oY4tIYy5oStBsEIS5^M`rsoC5iH{Gy5W*N?8&C(Ea2v_i1gx)~#2dEK|=g5r{n;efu;u%;4C=M~0XoVmm zIGCmG7nQyS`YXOP==4$;39ZakpM*awKW%oUx(Zr3TZja3qf1BZ7((N)v0!s8HEyqZ z4!m$53X8IP9}2CATMxTXLyd>1>yk|J)z7F^0q;!#%2)yGtzhg0t0&!oi~Y}jf`;!B zTJAiJ3hS;^@Dp~SC_SL^b0Hu8vue~vU+Fg#!VCY#7V&v#RiosFwRBU}^M*NgrO*Su zqbTVflg1#@BzM8zMZyxKI%MSmY#;vF(B}EE?RHJrNqcnKXr@w+Ahjs5WP%6w_YRuL zEFel8<*9%!E6z_y;o9sc$fX?gk3vu+q{xVQTgp80yZ#QMguVk3*s~3sfE?U`+oh?m z;Nc56E@;7W9_hGnEgItd?YwPhobgS6dEd;Mh;+>i2teha#^HeQWccdHE`?%|4O5^tn!6iqZ*7v^0idGz zXE!7O3g1V&6R&}Ame!V3(zaOv4K6*7Uxe|;Nm_Wc975^V~LZSa&zZGY&8 zp!LxL^BEKNPv$2>WSrYR`HR3>#J}w6pT`VmVy8jEb+!6jeFjPtIQR<+0ZsAZzS^9O zltX&=4r+)(uwnzO5*0FZlB>yyVHj{TL#zPhC4{YKomKEbtkmc#^t+D&)7ur{*9$&Vf@;*Dv5;_Urt+v$ z7kF)Z+S#x)*Z8#KK?z%j08uqz}6Hkd|il*J0-7-`e)-2^$eE zXSr4pem@!FABA(E9m$Jh*tteO1D-sExuppJr5ChmS)kNmuw;r0b90*_@N6K#S1yC3 zL^()91x}=-sM6f$5~Mw%+dy-f`xS2fmAD)6&gaCd$&}id{LYTD#l(!W2lWYh_tZo5 zmdxv40z$4l_x9sl=2=zLqQd}m@w$n<bNp3IAs3v%}|X<=_WP802Du1W{nTW4D%6cKfrnL7+E1to2EKP z^VQ6N6733@)MTxJ9mRq1rkc z40)iG3qa-TJN(Eu1dgifg%|$0;3U;BnX?W#&jBkhwC3_ZCOH^1|g60U0fT( zCuwz%&t1RF3ackA)9$a$)3-n~RbD(Jd`WwM`&{N^UJOwlViX+v){)+)B9QLn%$5)6 zjM!6J+z(3s3}T-z8c}W^O|!A-kq=;E337lbOK~HsPz1sv9rT%x9fZv*HRe}xNT;~< z9eG0?+nM{34WeA%6RvgeeUEbQjY6>CL0&_Ft*IfijJ+4!61#N>7vTPIhW~bUA(eji zCLCjb*@uLRj=XZT^+(aYq>M=1o}?Vuh|+RwsrnugK*Ct!^E-W#UP-?z(w(7FIv(sMLowXd1p59E zMh;f}+-S6Hysb+Fm=N>#S2-@~AJMfJ+cRl#U>l-2=_6b^>|tcNSK)GQ;$!Rn!q91Y*4PaVMr$lCq^!83;2RUrU)O{*J?X6@b@8;Sy3-oU-%ILn?Zdx zxnoVFJ!f*76ONOE)WT)MhK&cNID>g_dw+n03s|5dyyTDXBb=U%T!9Z}H0C(J(L1)D z?t19lXE9N2Z^w{E+#j=Vc`kGClEEPkA-ToRUc2b1idvJe>=M+zD*vDs?C32Lrvqj_ zHA6nA{Fm`v^7{jC!le;IMrX$M5QfB*8yyYSdtvG=CQb-|x>AJiyuatvgsk#HTkNN? z%azKZj?29a3Y;ey@>v_|y3Z!}u8I8qK_dC!O<0vfo$@FddG1gNl~G@v-c5)+MvBbF zPNgwxM0~Pn%f6F@2w%eFMY|!TU^)amBcWaVx+O&uW^qa$HQ?F(06v-V?W*a8jn!uZH@qp zw9ow_l}AeTnq_l7*qAh#z}skxY~QIL`j^~8c`$oKo(tx&s?kyLkHVQ!e0K`V{2OBS z7zU1w3U}*0_JT_4_Cb^wHukl zQrhGdwpWnNpZF}&i3*<8Na<048FEpg)o{lzN{b1a4d_*ZtSyeKdk7R2rHG*Ux|4E;6I>)M|^hB*{<8rh(X< zzQuDmAu@8<2W?OxW*BR)MC@xvWtMnEhlf7v$kT~yYRGzqm__7a2ry}MhV;951X@u` zwqhK=oFY!F!*V0@8HnwNW{V+y8T9XYkUIa3LsIXG_B1n%fei`>W5=XH0^J}b+JSn- zP3l*u7nNLOHuYBz3Em*GdW&rp)F}>Y&aH13fC93GhFfSU2*6zwV=I_gMWVjY7loTNVdO&T8E}AGo8p)=K<{i z4nD3xm;(k&eA{v|1kMOGg41#8!X|{OUV+pHgEY8O*zf&J3%~?9Fr?4{8^AyE{#f#Q zvvVY0O)hMg<90?{dmIG-I30twl+GJr8~0~XBLvkst=qnp!yN<`a*(#j_scOQ_hvEU zOK5Y>)z}Q)%Ran^V^I_TkdKUZQUuIZJpS8&xeKKPqhJ4?h61xA+@bhi$DsL1tin+@ z4O__HK>|?$BWS3C5ZKOjgl2C9m-cC#=?XwF1@MWMeD8y`_KM=rx=e$cxDaqf#b;jd zfss7705vMzj0YLH2w~-jMQK+6NM@Go;dPlna8;Au1KXl8{Uj)dG-ZLD295_4w?1tvjv!q_PROw8V$Z$^WK)S0hHUXNNW zRLh1VPY7Z4%tn*0%7CDjj~*%MQBveIbY?t@ZfG41)g7b=m`jPd)TM~RFY%60Dt`cP zZsxa_!cUJJ1bqo@qA%^+8hVXX#4frl#;<+mB{kuABLA(FDFl#CN^QKWzJ;`7wo# zW(vBPkXN^m55efI2Y2IRY{q@~{7S#wfYv@AjYNu}EUzcu16AWZmxZ#)D3$0s-@`%k zC=k)pMAsTrSHqnN9#zjz$xVH`*htna0QpF&TA>vz>z~(+15`s`f9lvZF=6PvvXD8$ z6%v7s;m%C~&~z{V0CEfX@9wQComWCe1S(C`2gJ0y?}{X$FoAUep83h2 z(wH#YJ_tjClWe5_S;deJw}#gjYp7l#cLv;Qfkb?N3q+Y^`EGC7#Q-ZH9OBQ6hU!>@ zU2GiZHqkZ}R0LKvs0a*tln`T#s71E=4QNN96fs3R-KdS=7Vt}qVL+=h+?lAv8CJOf zP;`Gq$%)6z<(c{LG>*XPbS3Cl3_5e zB2pp)3@7fZFm|$RRm6O|3x9*^DLU64r+*H@dRoWRIIh|-MHa`*q$$G7o*r}-gd)j* z2z6_z2O*aX6&FLA)>a7oY|;`T{!l|84)Q|u@X`-$ z8Q6wEnv*d^bXHX!)PAoe^!3YAM1JEHRWG$Y`$b8QXA5zB3>HhM!p9P3_1uV9DJO^k zRoEk3ok4}4PU^ju=UvwSIIW-#?Wgz05FQMU+R{=%i1kh=v+_llEz7(CEF{mt$S{KO z)PKm{1=9Kff4bTSxDgD^6RyGltRI8o;=@wd^)Q^F#lL%r??}eV%Z0$XbDLqs67;F(2TfXyn^Q&%rV!b_3R+LBy`1}?) zlBclOgRr|$&S&|WVedZ4h^Hl?`lr=HDnL?Wp1Zeg!X3P|r^80yI`7BT7D9$7$?_gj9GT0v{<4{Vt`( z3+rVJLShLG^|>;W<69=jRF!{2{*%Ie1G=swtoyhQ)SFf^Ed9oPd@5Zu2lst=TpWp2 z4DVFlnWvwIYjIT(lbislhT?{(R0OB|+Bv**wC=&sviqYmTom_exl@0jcEB@oZlU%{ zcPjLW#BM|1g=qMPPK0t`hqzLM``~;gUET$671@VUbc+j8Y~BH3NdhmhNk`HXNF`tI z0C_IZ2o9}Pqg&uLY5;QIHEzMaxTE+0>-KSG=yvT zS@77l+ev3z8Te~*@aoSuS`&irL2p)FpI%KX3oa>*RP6oQi&NPj-`(lGg)vd;O zTclVBt(Taef8&9(b6P3}EUefHp;P8;a%-ApF20afV2(Mao;u^2Pn-xZP%$>!9ULWXuY|0l6`(q4aofqt~)EhKH78PG$Za zs$V)w-Rv1#n;bI~A60w}Dfu)F#_Ehu_kcbsWefACnQ%!-?0d~PabX1ozX^%z(aLxG zf@_NYK{yNz2=t;|O$&Ze@>{4;Q4Nt(Ki3)3bdDHPS@`KCC-y?i#r`;bIVu!Z z^rZ~{Hm0IoXnDpbOz=o?x~;7>t89|+*O@EJY5U_!MtgxK>~Whg!!JxgT|M0NP4mI6 zJ>5`ZNJ45I$v1I{rOW)A0yG>~=Dv*qqpkHQV(}6$@15xTj5%W|=Joaw(SJ=2$P0U* zm3dxc!N)RH6i_l*_aRNGwVObK2Z=9Dkg+Ew4H~Rx>s^hS4>5h*g6bN2a%!^XLcvd! z9B)wFgw&ejPYc1F+D@f8_(H;1R*&id8i0W;*rof%P{_fEi?c*+;7crJ9&bcB~l8`}CP4cmz^HEJUGpc=^3&$wq87>+V4VP|nBcP!j zy8q0t-pDWC=vEbySRAQHYp42jdwHr8#s9^GpQWAlB?##=R35|y!}+1CI-xCZf8tmi zD2Ss=cM0mIJVQHhJhl!AIjMB?Kh6Vn;qaf@jhFUamUNhSAXDt%EP<@}#NY=pIyPqa zzRTszf8hF+7AH=Vm~I>u;}H}-MG$R;qQg8_jDpq9I$(yM6a$N z$Vk0$gKi#nyXIvq;V6Q`mw2{AvHtR--A%>m@HW{o30+$U9HB>K+YQh%O@YD}QKtFg zFq%Z9KKiCQmPwHnrE5=GBEeGn3R5d$^>>2zK-*tG%=sDWD`23W*%nK{da1`tbPkK^ zd|(fA+_Ww)OA)WlNgn!)-J5(%gy$kvMBbmCwAm6eCeo2NG8eL9gbAIvs9fkE?M^Q1 zW-+vRYJWH-6xsA4%Zl^{feY`O=edM+Ao~7vK{htgx-7=p`U8P#P#8FPlwgGy8e;k_T)U}Cx`O(la>x0!s22r& zKyAFv_Pz?3EOBoj@eTggDYVeECP^x3?&{u_Vf{$gsZ;8q0Y)A=4?F%yXp3kpamVUK`y!#b7+#R(=-#L z?Be0ClruvY^X%7UQJ6O5UtzVQ9rEZjxBq zV5{bB31OM;B``FU4*vldgf)N#IAlh4hMz_$Gi)S%xNU6+nov5FndTk+*dvc0j^r>c z7%WK39$8L@Ev-!z|u!@b%$q3 z4jvoVNf6x*YC&G^6*`Guex`dPbE2FO9NyRqzVjItVqc76OB76FivVXlP8EfWh%20N z4p+vYL38Wggl_O4iqtK(;|%F=Me^w}*mblIseN&f>A{-^Nif1&KsmbA;n&j3s1KYt z%wzoiCK=oGtwAp>NOMilwCc9d-UzKds~9w^B&j8EXq60R!Z3z|+b^6a?$PNcP}J|Q z1(!y0ZFPj9d>jX|gh%i{hWL@Pg$7zgJJBZ~M00%t&e4T@x;W5J;OYcQ`8HM%`ijIB zV~D-2=|ydRyYXZUvuy@kb0ESWzk{vm*l!p(uK;@_KL&m|8qEa=3@Gu&!`p5rerMB} z)LyW#yx+Wv4rrx9U$6Ckm_vJt;QSK51ioiO3wUhqb;~A@!12f>y(2VI(U3hL**{iU zuSur_u>{}doRAKCy=TS;vc+BvLh?~g6&2H>)=xKhib@*=z@N976(}yLr%3(h;>RTF zrnnELEt5DkI;D8dc=x}&SAGptRaGq}CP9@rNK2>dFc5Qx7`&<>`KOJTCbTsa$MJiO{ z6^GGnJF2~xNHCP%u%nfXI|;zeOl4a(_}OQW6Yk-2ubz#eykX)?b>w=J+qkSH-A^A7o!gB)yV$UAJ1fwM3JW~`Y|zJ&sLpLt z7j^!#t&i$?kcO;`pqkWhHDxKf05c)0Tz4QpAE!3hv-bfS5z$pqBR3IKCHK6((rF+ zok#`RR|TYZHiw)M%{Mj7UjgFml*FHcy!sr{sl=xWZMAM4FN4yUyzJD=BT8k1C6Z!a zq>Fus2@E3OC%sy2bEKm~=RdMQbo9Wr-vUcdlH+B4ATQW((?V~FRPh1+)vqD#P};fd zSpc_+)aYa_pewr_;3=Y`yC-|?NgB2+oG!ySprhqQj4Bd65Jyif8Q@bc;g_^qn6=;c z0-IKHRtzJQuI1vJy+7EIirXfY(CamM)*|;IQbtc~Hjy>DcNHr(FA4HLjA09k(pGoS z3+U_1lj%!0V=Hbd&^}5P7ITA3JEJfwPt%6U*Z$mZ(|T{vPWkc-$g0odXE3K(E~Bp#|8z9d?6f#Ghav3D~Jp=W}V#{Y!W}-wm1S) z0m4Msf3E5|9ksQDh3j|K`WWA6Dvs_KI;C@zWyvo&MF1njS_|+gU|KTaEf32uTV(}{ z;Xt)x4wO;%8MPKj3zl=PK0ML{Nj$vKCuQk^d}uUQPwFimKEB!ilOuBx^CJ)A$%P`- zytLZna-+1%c~&3t#b}VODEUUaPiCx5p5pb4|DB0>A89Gm>OBwd*B~Zk(;(A`zCjX4 z&BOn)2da<22^{rB$pZvV8gB!-oLZYi>U+{u`}7X=y0$Nej|s#|Zc$^U`BNz=xB7z% z<4iENoK$&06%AniT>8$M1p`CWQAvr(f$oa(ysT>8lagjwF?;hxUn*G*@#(yvS)K24 zvJ}3;KWHYbNfEx4-G@wijq1|PFnBYDT4r3?(TNfRU*6GLAij>~KDCW}&~CYA=!hql z=g-RfTF`a=_R)Slfs<(WT6ssFGt3t#3*?Zj{tP`{pC7Nx;WyTXm8ZNd_Fou= zpcw}`M-xNIRgX&{N0go%(NtY@L-L}{L}}(7H3b>lahZX=)S%SLBNth zyrNdlhbt}X0bAN)x>oc^^Lv{h9 zpF1=Ff3@&b5~M#Kc^dV#LUXn7X@^j5L9x93%KoEgi~4$t6}shR>3!d6kM2`vB;|(r z8+94F876Tukzrl7;PFZ|bw>Qjvc-3a)TfrLwIbB@^yOOjiSjEOTOHpzKrn(QmK zy}hK08=l8ZwC)bZ>bqBB?AKb)j36cF#`oRn6>bqm-FiZLdJpCE70TvJgtvDWVs0%x zXWi7A+7|G(sQ*K+!NXi5E7r4L>*|-jyqZQYKZDMU5m`RZ!ED=+)Ogdp9%M#vH`agp z@y`4U)0Lu_<&;>v+Iz(dxwF=%0dR_a^ONWUwHD0J+Q^C!|AW)R&a} zv6P*JHRN(2qlF%mm6pYaTOY|)o)F~1Nzm4ECK5H4l5QzLIBXA-=l2Hg+fSl&yNxRk zcn8j(;c`E1@lJ^pg%xwj&2Z_c!ee}nm3`k0CUNWaSW)-9EbvdA+%oMOq~o(GTRsmT zS;u0fYs1fdVYt57ImQl~lv-Hf9s>PjmoiZxin20w>pwFI~FQG%@hD+d-r3RH+Yn>X zBLx!UbNv>ENPD{n(JaHf9Nci+`CWh8D~<9=JSBhW+S5+d<3-X81A)P7bm4~m2Zkjx zENxF8mONhESgF`{DfdfTZ$SC9E*$Ccj2q=;z^_XasSmn{6J}1gMP`&7)(<-y4`6<& zg(==kU&}3N!lEUqmm5@)vn4m$ZiI{!LR{6#HmGDCrRrvLOmJV3Owr3SY2&Xbi3^Dj zj7kE90uH3%MVRYl@poEV0+q^B)1v9KlA^XjvFJ<+`dw-q3CKvbi#Nf8Kz+nzcZ{y) z1pvjCoVty7K(|;U{wkQ>s#?;7>0DF@wi&kgzKN3diiR9((Irve>`N1`tNM6DJde$} zWoHmIk~-8Sd(sLINZXhC!iYI=txLF7Jak!?Kh<+X+mOh^Y5eZ$gKoxFTf*l%y%YFl z=$O8^NTSRNPu8ZDbQZnPiM>Dim_tHoy|Y7^r=Lz#e%2h^nB+!qS8TiHy7QvcVKs|o z)+HMJ1+7MQ6j>UpSmCui^+!%ZhNc+#cj9skBBC*=a{hl)OX`) z$=kM#{CejDFt-ll;15Ph>~dg(+>LNgg}F3gj-@lno95lJ=5>np!b?GpXc2tl#0J{+ zEo??=!zSoN|C(r0C>K+h)%4K6vOOfthva)~=IO^DVr9qpCHywleWyv4`zg-v+w(EP zW;^oH=E%{Z`4_R=vcK4gXGdOyyr?cGsO~>GZaxM7q0j8MmED_T#@8{w$M|=HQ95yW z*_g6uMaym|&i=ugA~{*-L?e0Q&$;+rfVWfp{eSOLy3GPQ7DlcllJl`t6g1?CSFZa1 EA9S(dD*ylh literal 0 HcmV?d00001 diff --git a/case3_rating_vs_receita.png b/case3_rating_vs_receita.png new file mode 100644 index 0000000000000000000000000000000000000000..9d9f8d89da890202e3467fc53f598e655e1c530f GIT binary patch literal 51018 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 literal 0 HcmV?d00001 diff --git a/case3_receita_por_genero.png b/case3_receita_por_genero.png new file mode 100644 index 0000000000000000000000000000000000000000..41367f86768d474739469773bb7fa108b5a00e4a GIT binary patch literal 59981 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 literal 0 HcmV?d00001 From 0df52d12492ce5eaa81fd7cdfcdb5146d7eacadf Mon Sep 17 00:00:00 2001 From: vini-haa Date: Fri, 12 Jun 2026 17:08:34 -0300 Subject: [PATCH 6/6] docs: documentacao da solucao --- SOLUCAO.md | 301 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 301 insertions(+) create mode 100644 SOLUCAO.md diff --git a/SOLUCAO.md b/SOLUCAO.md new file mode 100644 index 0000000..4151b9c --- /dev/null +++ b/SOLUCAO.md @@ -0,0 +1,301 @@ +# Desafio Técnico Looqbox — Analista de Dados e BI + +**Candidato:** Vinicius Henrique Albino Andrade + +--- + +## Como executar + +- **Stack:** Python 3.14, MySQL, SQLAlchemy + PyMySQL, pandas, matplotlib +- **Credenciais:** carregadas de um arquivo `.env` (template em `.env.example`); nunca versionadas (`.gitignore`) +- **Instalação:** `pip install -r requirements.txt` +- **Conexão isolada:** `db.py` centraliza a criação do engine via `URL.create` (escapa caracteres especiais do nome do schema/usuário) com `pool_pre_ping=True` como safeguard + +``` +data-challenge/ +├── db.py # conexão isolada (engine único, reutilizável) +├── .env.example # template das variáveis +├── requirements.txt +├── sql_test/ +│ ├── query1.sql +│ ├── query2.sql +│ └── query3.sql +├── case1_retrieve_data.py +├── case2_visualization.py +└── case3_imdb.py +``` + +--- + +## SQL Test + +### Query 1 — Os 10 produtos mais caros + +```sql +SELECT dp.PRODUCT_COD, dp.PRODUCT_NAME, dp.PRODUCT_VAL +FROM `looqbox-challenge`.data_product dp +ORDER BY dp.PRODUCT_VAL DESC, dp.PRODUCT_COD ASC +LIMIT 10; +``` + +**Resultado:** + +| PRODUCT_COD | PRODUCT_NAME | PRODUCT_VAL | +| ----------- | --------------------------------------------------------------- | ----------- | +| 301409 | Whisky Escoces THE MACALLAN Ruby Garrafa 700ml com Caixa | 741.99 | +| 176185 | Whisky Escoces JOHNNIE WALKER Blue Label Garrafa 750ml | 735.90 | +| 315481 | Cafeteira Expresso 3 CORACOES Tres Modo Vermelho | 499.00 | +| 100280 | Vinho Portugues Tinto Vintage QUINTA DO CRASTO Garrafa 750ml | 445.90 | +| 320046 | Escova Dental Eletrica ORAL B D34 Professional Care 5000 110v | 399.90 | +| 190817 | Champagne Rose VEUVE CLICQUOT PONSARDIM Garrafa 750ml | 366.90 | +| 153795 | Champagne Frances Brut Imperial MOET Rose Garrafa 750ml | 359.90 | +| 311397 | Conjunto de Panelas Allegra em Inox TRAMONTINA 5 Pecas | 359.00 | +| 147706 | Whisky Escoces CHIVAS REGAL 18 Anos Garrafa 750ml | 329.90 | +| 44311 | Champagne Frances Demi Sec Nectar Imperial MOET & CHANDON 750ml | 315.90 | + +**Decisão de design — desempate determinístico:** +O 10º e o 11º produtos empatam em preço (R$ 315,90 — há duas Champagnes MOET). Mantive `LIMIT 10` conforme o enunciado e adicionei `PRODUCT_COD` como critério de desempate no `ORDER BY`. Sem esse critério, o MySQL poderia retornar produtos diferentes entre execuções; no caso de empate o desempate garante **resultado reproduzível**. + +Caso o requisito fosse incluir todos os empatados no 10º valor, usaria `DENSE_RANK() <= 10`. + +--- + +### Query 2 — Seções dos departamentos BEBIDAS e PADARIA + +```sql +SELECT DISTINCT dp.DEP_NAME, dp.SECTION_NAME +FROM `looqbox-challenge`.data_product dp +WHERE dp.DEP_NAME IN ('BEBIDAS', 'PADARIA') +ORDER BY dp.DEP_NAME; +``` + +**Resultado:** + +| DEP_NAME | SECTION_NAME | +| -------- | ------------------ | +| BEBIDAS | BEBIDAS | +| BEBIDAS | CERVEJAS | +| BEBIDAS | REFRESCOS | +| BEBIDAS | VINHOS | +| PADARIA | DOCES-E-SOBREMESAS | +| PADARIA | GESTANTE | +| PADARIA | PADARIA | +| PADARIA | QUEIJOS-E-FRIOS | + +**Decisões:** + +- `DISTINCT` elimina a duplicação: cada seção se repete uma vez por produto, então sem o `DISTINCT` a mesma seção apareceria várias vezes. +- **Verificação prévia:** antes de finalizar, listei todos os departamentos para garantir que não havia variações de nome que deveriam ser incluídas. + +--- + +### Query 3 — Venda total por Business Area no 1º trimestre de 2019 + +```sql +SELECT dsc.BUSINESS_NAME, + SUM(dps.SALES_VALUE) AS TOTAL_VENDA +FROM `looqbox-challenge`.data_product_sales dps +JOIN `looqbox-challenge`.data_store_cad dsc + ON CAST(dps.STORE_CODE AS UNSIGNED) = dsc.STORE_CODE +WHERE dps.`DATE` BETWEEN '2019-01-01' AND '2019-03-31' +GROUP BY dsc.BUSINESS_NAME +ORDER BY TOTAL_VENDA DESC; +``` + +**Resultado:** + +| BUSINESS_NAME | TOTAL_VENDA | +| ------------- | ------------- | +| Farma | 81.776.691,73 | +| Varejo | 81.032.347,65 | +| Atacado | 80.384.884,60 | +| Proximidade | 80.171.122,80 | +| Posto | 32.072.326,40 | + +**Decisões técnicas:** + +- **Mismatch de tipo no JOIN:** `STORE_CODE` é `varchar` em `data_product_sales` e `int` em `data_store_cad`. Apliquei `CAST(dps.STORE_CODE AS UNSIGNED)` para alinhar os tipos no JOIN. +- **Filtro de período:** `DATE` é tipo `DATE` (sem hora), então `BETWEEN '2019-01-01' AND '2019-03-31'` inclui o dia 31/03 integralmente. +- **INNER JOIN:** adequado aqui, uma venda cujo `STORE_CODE` não exista no cadastro não tem Business Area atribuível, logo deve ficar de fora da agregação por área. +- Observação de negócio: "Posto" fatura bem menos que as demais áreas (~32M vs ~80M), coerente com o menor mix de produtos de um posto. + +--- + +## Case 1 — Função dinâmica `retrieve_data` + +```python +import pandas as pd +from sqlalchemy import text +from db import get_engine + +engine = get_engine() + +def retrieve_data(product_code=None, store_code=None, date=None): + store_code_param = None if store_code is None else str(store_code) + + filtros = [ + (product_code, "PRODUCT_CODE = :pcode", {"pcode": product_code}), + (store_code, "STORE_CODE = :scode", {"scode": store_code_param}), + ] + + ativos = [f for f in filtros if f[0] is not None] + + if date is not None: + if not isinstance(date, (list, tuple)) or len(date) != 2: + raise ValueError( + "date deve ser uma lista com exatamente 2 elementos: [inicio, fim]." + ) + ativos.append( + (date, "DATE BETWEEN :ini AND :fim", {"ini": date[0], "fim": date[1]}) + ) + + if not ativos: + raise ValueError( + "Informe ao menos um filtro: product_code, store_code ou date." + ) + + where = "WHERE " + " AND ".join(trecho for _, trecho, _ in ativos) + + params = {} + for _, _, p in ativos: + params.update(p) + + query = f"SELECT * FROM data_product_sales {where}" + return pd.read_sql(text(query), engine, params=params) +``` + +**Exemplos de uso e resultados (linhas retornadas):** + +| Chamada | Resultado | +| ----------------------------------------------------------------------------------- | ----------------------------------------- | +| `retrieve_data(product_code=67108)` | 35.762 linhas | +| `retrieve_data(store_code=1)` | 136.729 linhas | +| `retrieve_data(date=['2019-01-01','2019-01-31'])` | 39.401 linhas | +| `retrieve_data(product_code=67108, store_code=1, date=['2019-01-01','2019-03-31'])` | combinação dos filtros | +| `retrieve_data()` | levanta `ValueError` (ver decisão abaixo) | +| `retrieve_data(product_code=301409)` | 0 linhas (ver insight) | + +**Decisões de design:** + +- **Filtros opcionais declarativos:** construo a cláusula `WHERE` iterando sobre uma lista de filtros, em vez de uma cadeia de `if`. Evita repetição e facilita adicionar novos filtros. +- **`is not None`:** `if product_code:` trataria `0` como ausente; `is not None` checa literalmente se o filtro foi informado, independente do valor. +- **Query parametrizada:** uso placeholders (`:pcode`, etc.) e passo os valores separadamente. Como o enunciado diz que "outros times vão usar a função", isso protege contra SQL Injection. +- **Exige ao menos um filtro:** sem nenhum filtro, levanto `ValueError`. `data_product_sales` é uma tabela transacional grande; retornar tudo sem filtro seria arriscado (memória/performance). Forçar uso intencional é o comportamento mais seguro para quem chama. +- **Tratamento do varchar:** `STORE_CODE` é `varchar` na tabela; converto o parâmetro para `str` para garantir o match. +- **Conexão reutilizável:** o engine é criado uma vez (nível de módulo) e reutilizado, em vez de recriado a cada chamada. + +**Insight de negócio:** o produto mais caro da empresa (THE MACALLAN, código 301409) tem **zero vendas**, enquanto produtos de baixo valor (ex.: 67108) vendem mais de 35 mil vezes — coerente com o comportamento de um item de luxo. + +--- + +## Case 2 — Ticket Médio por Loja/Categoria + +As duas queries fornecidas foram usadas **exatamente como recebidas** (sem modificação). Como a Query 2 traz o ano inteiro e o pedido é o período `['2019-10-01','2019-12-31']`, o **filtro do 4º trimestre é feito no pandas** — respeitando a restrição de não alterar a query. + +```python +import pandas as pd +from sqlalchemy import text +from db import get_engine + +engine = get_engine() + +query_lojas = text(""" +SELECT STORE_CODE, STORE_NAME, START_DATE, END_DATE, BUSINESS_NAME, BUSINESS_CODE +FROM data_store_cad +""") + +query_vendas = text(""" +SELECT STORE_CODE, DATE, SALES_VALUE, SALES_QTY +FROM data_store_sales +WHERE DATE BETWEEN '2019-01-01' AND '2019-12-31' +""") + +df_lojas = pd.read_sql(query_lojas, engine) +df_vendas = pd.read_sql(query_vendas, engine) + +# Filtro do 4º trimestre no pandas (a query não pode ser modificada) +df_vendas["DATE"] = pd.to_datetime(df_vendas["DATE"]) +q4 = df_vendas[(df_vendas["DATE"] >= "2019-10-01") & (df_vendas["DATE"] <= "2019-12-31")] + +# Agregação por loja e Ticket Médio = soma(valor) / soma(qtd) +agg = q4.groupby("STORE_CODE").agg( + valor_total=("SALES_VALUE", "sum"), + qtd_total=("SALES_QTY", "sum"), +).reset_index() +agg["TM"] = (agg["valor_total"] / agg["qtd_total"]).round(2) + +final = agg.merge(df_lojas, on="STORE_CODE") +resultado = final[["STORE_NAME", "BUSINESS_NAME", "TM"]] +resultado.columns = ["Loja", "Categoria", "TM"] +resultado = resultado.sort_values("Loja").reset_index(drop=True) +print(resultado) +``` + +**Resultado (confere 100% com a tabela esperada do enunciado):** + +| Loja | Categoria | TM | +| -------------- | ----------- | ----- | +| Bahia | Atacado | 15.39 | +| Bangkok | Posto | 13.67 | +| Belem | Proximidade | 15.37 | +| Berlin | Proximidade | 15.39 | +| Buenos Aires | Atacado | 15.39 | +| Chicago | Varejo | 15.53 | +| Dubai | Atacado | 15.39 | +| Hong Kong | Farma | 26.35 | +| London | Farma | 28.99 | +| Madri | Farma | 29.03 | +| Miami | Posto | 13.67 | +| New York | Proximidade | 15.39 | +| Paris | Proximidade | 15.39 | +| Rio de Janeiro | Farma | 29.59 | +| Roma | Varejo | 15.39 | +| Salvador | Atacado | 15.39 | +| Sao Paulo | Varejo | 15.39 | +| Sidney | Posto | 13.67 | +| Tokio | Varejo | 15.39 | +| Vancouver | Posto | 13.67 | + +**Decisões:** + +- **Restrição respeitada:** as queries foram usadas sem qualquer alteração; o recorte do trimestre acontece na camada de aplicação. +- **Ticket Médio = soma(valor) / soma(qtd)** sobre o período, **não** a média das razões diárias. A média das médias daria peso igual a dias de volume diferente, distorcendo o ticket. O agregado (soma/soma) é o ticket médio correto. +- **Merge por `STORE_CODE`:** ambos são `int` nas duas tabelas, então o merge é direto (sem o problema de tipo do Case 1). + +--- + +## Case 3 — Visualizações (tabela `IMDB_movies`) + +Os três gráficos respondem, juntos, a uma pergunta: **o que se relaciona com o sucesso de um filme?** Em todos, valores ausentes (`NULL`) são removidos antes da análise, e a quantidade de filmes (`n`) é exibida para evitar conclusões a partir de amostras pequenas. + +### Gráfico 1 — Receita média por gênero + +![Receita média por gênero](case3_receita_por_genero.png) + +**Por quê:** gráfico de barras compara categorias discretas (gêneros). A coluna `Genre` é multivalorada ("Action,Adventure,Sci-Fi"); apliquei `split` + `explode` para gerar uma linha por gênero e analisar cada um individualmente. O `n` ao lado de cada barra evita interpretar uma média baseada em poucos filmes como representativa. + +### Gráfico 2 — Receita média por nota (Rating) + +![Receita média por nota](case3_rating_vs_receita.png) + +**Por quê:** `Rating` contém apenas valores inteiros, então agreguei a receita média por nota. Incluí o coeficiente de **Spearman** (correlação de postos, apropriada para variável ordinal inteira) para quantificar a relação entre nota e receita e o `n` por nota para sinalizar onde a média é frágil. + +**Spearman ρ = 0,15** — correlação **fraca**: a nota de um filme tem pouca relação com a receita. Ou seja, filme bem avaliado não necessariamente fatura mais, outros fatores como marketing, franquia ou distribuição podem pesar mais na bilheteria. + +### Gráfico 3 — Público (Rating) vs Crítica (Metascore) + +![Público vs Crítica](case3_publico_vs_critica.png) + +**Por quê:** boxplot do `Metascore` (crítica) para cada nota do público mostra, pela forma, se as avaliações sobem juntas. O **Spearman** quantifica a concordância, e o `n` por caixa evita interpretar uma caixa de um único filme como tendência. + +**Spearman ρ = 0,62**, correlação **moderada-positiva**: público e crítica concordam razoavelmente (notas altas do público tendem a ter Metascore alto), mas a concordância não é perfeita, há filmes amados pelo público e mornos para a crítica, e vice-versa. + +**Nota analítica (receita):** usei **média** de receita. Estou ciente de que receita é assimétrica (poucos blockbusters inflam a média); em uma análise de produção, consideraria a **mediana** para representar a receita típica. + +--- + +## Uso de Inteligência Artificial + +Utilizei assistência de IA (Claude) como **apoio de mentoria**: para esclarecer conceitos, revisar minha lógica e apontar bugs. + +As queries SQL, a função `retrieve_data`, as transformações em pandas e as visualizações foram **escritas e compreendidas por mim**. Testei cada etapa diretamente contra o banco e validei os resultados. Onde já tinha conhecimento (SQL, pandas) apliquei diretamente; onde tive dúvida conceitual, pesquisei e confirmei o entendimento antes de implementar.