1import{r as l,j as e,a as k,L as Z,B as g,s as p,t as i,b as ee}from"./index-CowhCOWN.js";import{u as te}from"./useAdherent-D8uiKs--.js";import{C,a as N}from"./card-BLbw1ekn.js";import{I as d}from"./input-D2OO1sCJ.js";import{L as n}from"./label-CQeSIlgo.js";import{T as ae}from"./textarea-DDMwI1YU.js";import{B as z}from"./badge-DUOqbc8O.js";import{D as M,a as V,b as G,c as H,e as re}from"./dialog-DuVWCFQP.js";import{S as se,a as ie,b as ne,c as le,d as oe}from"./select-BrmKvK-X.js";import{I as de}from"./ImageUploader-BkUJgma0.js";import{P as ce,a as ue}from"./PaymentTestModeBanner-BgE0k4-2.js";import{A as me,a as xe,b as pe,c as ge,d as he,e as je,f as fe,g as _e}from"./alert-dialog-D7RhGaIx.js";import{a as ve}from"./contests-BeMym_qG.js";import{A as be}from"./arrow-left-Jkal33Te.js";import{P as we}from"./plus-Brwqy4y8.js";import{I as Ce}from"./info-CQ6EH6n8.js";import{T as J}from"./trophy-AEjWAohW.js";import{C as Ne}from"./circle-x-BNnZx8sk.js";import{C as ye}from"./circle-check-B0WB3a9Z.js";import{C as Se}from"./clock-SM1Ry1rl.js";import{P as De}from"./pencil-BlgVpXJc.js";import{C as Pe}from"./credit-card-HiaBf5z_.js";import{T as Le}from"./trash-2-D9kxAHen.js";import"./useAuth-DGucJKcr.js";import"./index-CvFYP4_A.js";import"./index-Bl2K_kVK.js";import"./index-BDJ43p2d.js";import"./index-DNauxUwX.js";import"./index-R4QDO2ZY.js";import"./index-DRz5Di7l.js";import"./index-DmKQT1G3.js";import"./index-CuHniv-8.js";import"./index-C5FsXfzk.js";import"./chevron-down-DFXQwo6o.js";import"./upload-http-BFb09Ope.js";import"./image-CTtByhsV.js";import"./upload-Bud1puEv.js";import"./external-link-QAbIUs5A.js";import"./index-B3MKYc2C.js";import"./useServerFn-D2gARKP5.js";import"./auth-middleware-BzIwszNl.js";const Ie=["cine","restaurant","spectacle","loisir","high_tech","autre"],F={title:"",subtitle:"",description:"",category:"autre",category_label:"",location:"",event_date:"",image_url:"",partner_url:"",prize_label:"",winners_count:1,draw_date:"",draw_time:"20:00"};function Te(r){return{title:r.title||"",subtitle:r.subtitle||"",description:r.description||"",category:r.category||"autre",category_label:r.category_label||"",location:r.location||"",event_date:r.event_date||"",image_url:r.image_url||"",partner_url:r.partner_url||"",prize_label:r.prize_label||"",winners_count:r.winners_count||1,draw_date:r.draw_date||"",draw_time:(r.draw_time||"20:00").slice(0,5)}}function vt(){const{user:r,loading:h}=te(),[_,y]=l.useState([]),[R,c]=l.useState(!0),[S,o]=l.useState(!1),[u,j]=l.useState(null),[a,s]=l.useState(F),[q,O]=l.useState(!1),[D,P]=l.useState(null),[L,I]=l.useState(null),[T,$]=l.useState(!1),[E,U]=l.useState(8400),[f,Y]=l.useState(!1),A=async()=>{c(!0);const[{data:t,error:m},{data:x},{data:v}]=await Promise.all([p.rpc("partner_list_my_submissions"),p.from("app_settings").select("value").eq("key","contest_publication_price").maybeSingle(),p.rpc("partner_is_radio_peinard")]);m&&i.error(m.message),y(t??[]);const b=x?.value?.price_cents;typeof b=="number"&&U(b),Y(!!v),c(!1)};l.useEffect(()=>{if(!h){if(!r?.email){c(!1);return}A()}},[h,r?.email]);const K=()=>{j(null),s(F),o(!0)},X=t=>{j(t.id),s(Te(t)),o(!0)},Q=async()=>{if(!L)return;$(!0);const{data:t,error:m}=await p.rpc("partner_delete_contest_submission",{_contest_id:L});if($(!1),m){i.error(m.message);return}const x=t;if(!x?.success){i.error(x?.error??"Erreur");return}i.success("Jeu supprimé"),I(null),A()},W=async()=>{if(!a.title.trim()){i.error("Le titre est obligatoire");return}if(!a.draw_date){i.error("La date du tirage au sort est obligatoire");return}const t=new Date(`${a.draw_date}T${a.draw_time||"20:00"}:00`).getTime(),m=Date.now()+10080*60*1e3,x=Date.now()+336*60*60*1e3;if(t<m){i.error("La date du tirage doit être au minimum dans 7 jours.");return}if(t>x){i.error("La date du tirage doit être au maximum dans 14 jours après la soumission.");return}O(!0);const v={_title:a.title,_subtitle:a.subtitle||null,_description:a.description||null,_category:a.category,_category_label:a.category_label||null,_location:a.location||null,_event_date:a.event_date||null,_image_url:a.image_url||null,_partner_url:a.partner_url||null,_prize_label:a.prize_label||null,_winners_count:a.winners_count||1,_draw_date:a.draw_date,_draw_time:a.draw_time||"20:00"},{data:b,error:B}=u?await p.rpc("partner_update_contest",{_contest_id:u,...v}):await p.rpc("partner_submit_contest",v);if(O(!1),B){i.error(B.message);return}const w=b;if(!w?.success){i.error(w?.error??"Erreur");return}o(!1),j(null),s(F),await A(),u?i.success("Modifications enregistrées."):f?i.success("Jeu soumis ! Publication gratuite (partenaire Radio Peinard). En attente de validation."):(i.success("Jeu soumis ! Procédez au paiement pour qu'il soit validé."),w.id&&P(w.id))};return h||R?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx(k,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):e.jsxs("div",{className:"space-y-6",children:[e.jsx(ce,{}),e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{children:[e.jsxs(Z,{to:"/espace/partenaire",className:"mb-1 inline-flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground",children:[e.jsx(be,{className:"h-3 w-3"})," Retour à l'espace partenaire"]}),e.jsx("h1",{className:"text-2xl font-bold",children:"Proposer un jeu"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:f?e.jsxs(e.Fragment,{children:["Publication d'un jeu : ",e.jsx("strong",{className:"text-emerald-700",children:"Gratuite"})," (partenaire Radio Peinard). Le jeu reste en ligne au moins 5 jours avant le tirage automatique."]}):e.jsxs(e.Fragment,{children:["Publication d'un jeu : ",e.jsxs("strong",{children:[(E/100).toFixed(2)," ⬠TTC"]}
1),". Le jeu reste en ligne au moins 5 jours avant le tirage automatique."]})})]}),e.jsxs(g,{onClick:K,children:[e.jsx(we,{className:"h-4 w-4"})," Nouveau jeu"]})]}),e.jsx(C,{className:"border-blue-200 bg-blue-50/50",children:e.jsxs(N,{className:"flex gap-3 py-4 text-sm text-blue-900",children:[e.jsx(Ce,{className:"mt-0.5 h-4 w-4 flex-shrink-0"}),e.jsxs("div",{children:[f?e.jsxs(e.Fragment,{children:["En tant que ",e.jsx("strong",{children:"partenaire Radio Peinard"}),", la publication est ",e.jsx("strong",{children:"gratuite"}),". Le Club valide votre jeu sous 48h. "]}):e.jsxs(e.Fragment,{children:["Après soumission, vous procédez au ",e.jsx("strong",{children:"paiement sécurisé"})," (",(E/100).toFixed(2)," ⬠TTC). Le Club valide ensuite votre jeu sous 48h. "]}),"La date du tirage doit se situer ",e.jsx("strong",{children:"entre 7 et 14 jours après la soumission"})," (48h de validation + au moins 5 jours en ligne, dans une limite de 2 semaines). Le tirage au sort est ",e.jsx("strong",{children:"automatique"})," à la date et l'heure prévues. Le jeu reste ensuite visible ",e.jsx("strong",{children:"2 semaines"})," avec les noms des gagnants, puis est automatiquement archivé (4 semaines maximum au total)."]})]})}),!f&&e.jsx(C,{className:"border-emerald-200 bg-emerald-50/50",children:e.jsxs(N,{className:"py-4 text-sm text-emerald-900",children:[e.jsxs("p",{children:["Si vous êtes clients de Radio Peinard Skyrock, ce service vous est offert. Merci d'adresser vos demandes de mise en ligne de cadeaux à l'adresse email : ",e.jsx("a",{href:"mailto:[email protected]",className:"font-semibold underline",children:"[email protected]"}),"."]}),e.jsx("p",{className:"mt-1",children:"Bien amicalement."})]})}),_.length===0?e.jsx(C,{children:e.jsxs(N,{className:"flex flex-col items-center gap-2 py-12 text-center text-sm text-muted-foreground",children:[e.jsx(J,{className:"h-10 w-10 text-muted-foreground/50"}),"Vous n'avez encore proposé aucun jeu."]})}):e.jsx("div",{className:"grid gap-3",children:_.map(t=>e.jsx(Ee,{s:t,onEdit:X,onPay:()=>P(t.id),onDelete:()=>I(t.id)},t.id))}),e.jsx(M,{open:S,onOpenChange:o,children:e.jsxs(V,{className:"max-h-[90vh] max-w-2xl overflow-y-auto",children:[e.jsx(G,{children:e.jsx(H,{children:u?"Modifier le jeu":"Proposer un nouveau jeu"})}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx(n,{children:"Titre *"}),e.jsx(d,{value:a.title,onChange:t=>s({...a,title:t.target.value}),placeholder:"Ex : 2 places de cinéma à gagner"})]}),e.jsxs("div",{children:[e.jsx(n,{children:"Sous-titre"}),e.jsx(d,{value:a.subtitle,onChange:t=>s({...a,subtitle:t.target.value})})]}),e.jsxs("div",{children:[e.jsx(n,{children:"Description"}),e.jsx(ae,{value:a.description,onChange:t=>s({...a,description:t.target.value}),rows:4})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{children:[e.jsx(n,{children:"Catégorie"}),e.jsxs(se,{value:a.category,onValueChange:t=>s({...a,category:t}),children:[e.jsx(ie,{children:e.jsx(ne,{})}),e.jsx(le,{children:Ie.map(t=>e.jsxs(oe,{value:t,children:[ve[t]," ",t]},t))})]})]}),e.jsxs("div",{children:[e.jsx(n,{children:"Libellé catégorie (optionnel)"}),e.jsx(d,{value:a.category_label,onChange:t=>s({...a,category_label:t.target.value})})]})]}),e.jsxs("div",{children:[e.jsx(n,{children:"Lot à gagner"}),e.jsx(d,{value:a.prize_label,onChange:t=>s({...a,prize_label:t.target.value}),placeholder:"Ex : 2 places adulte"})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{children:[e.jsx(n,{children:"Lieu"}),e.jsx(d,{value:a.location,onChange:t=>s({...a,location:t.target.value})})]}),e.jsxs("div",{children:[e.jsx(n,{children:"Date / horaire de l'évènement"}),e.jsx(d,{value:a.event_date,onChange:t=>s({...a,event_date:t.target.value}),placeholder:"Ex : Vendredi 12 juillet 20h"})]})]}),e.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[e.jsxs("div",{children:[e.jsxs(n,{children:["Date du tirage * ",e.jsx("span",{className:"text-xs font-normal text-muted-foreground",children:"(min. dans 7 jours)"})]}),e.jsx(d,{type:"date",min:new Date(Date.now()+10080*60*1e3).toISOString().slice(0,10),value:a.draw_date,onChange:t=>s({...a,draw_date:t.target.value})})]}),e.jsxs("div",{children:[e.jsx(n,{children:"Heure du tirage"}),e.jsx(d,{type:"time",value:a.draw_time,onChange:t=>s({...a,draw_time:t.target.value})})]}),e.jsxs("div",{children:[e.jsx(n,{children:"Nombre de gagnants"}),e.jsx(d,{type:"number",min:1,value:a.winners_count,onChange:t=>s({...a,winners_count:parseInt(t.target.value)||1})})]})]}),e.jsxs("div",{children:[e.jsx(n,{children:"Lien partenaire (optionnel)"}),e.jsx(d,{value:a.partner_url,onChange:t=>s({...a,partner_url:t.target.value}),placeholder:"https://..."})]}),e.jsxs("div",{children:[e.jsx(n,{children:"Image du jeu"}),e.jsx(de,{value:a.image_url,onChange:t=>s({...a,image_url:t??""})}),e.jsxs("p",{className:"mt-1 text-xs text-muted-foreground",children:["Format recommandé : ",e.jsx("strong",{children:"1200 à 800 px"})," (ratio 3:2), JPG ou PNG. L'image sera ",e.jsx("strong",{children:"redimensionnée automatiquement"})," pour s'adapter aux différents affichages."]})]}),e.jsxs("div",{className:"rounded-md border bg-muted/30 p-3 text-xs text-muted-foreground",children:["âï¸ Le tirage au sort sera ",e.jsx("strong",{children:"automatique"})," à la date et à l'heure indiquées.",u?" Vos modifications seront prises en compte immédiatement (le jeu reste en attente de validation).":" Votre jeu sera visible pour les adhérents après validation par le Club."]})]}),e.jsxs(re,{children:[e.jsx(g,{variant:"outline",onClick:()=>o(!1),children:"Annuler"}),e.jsx(g,{onClick:W,disabled:q,children:q?e.jsx(k,{className:"h-4 w-4 animate-spin"}):u?"Enregistrer":f?"Soumettre (gratuit)":`Soumettre â ${(E/100).toFixed(2)} â¬`})]})]})}),e.jsx(M,{open:!!D,onOpenChange:t=>!t&&P(null),children:e.jsxs(V,{className:"max-h-[90vh] overflow-y-auto sm:max-w-2xl",children:[e.jsx(G,{children:e.jsx(H,{children:"Paiement de la publication"})}),D&&e.jsx(ue,{contestId:D,returnUrl:`${window.location.origin}/espace/partenaire-jeux?paid=1&session_id={CHECKOUT_SESSION_ID}`})]})}),e.jsx(me,{open:!!L,onOpenChange:t=>!t&&I(null),children:e.jsxs(xe,{children:[e.jsxs(pe,{children:[e.jsx(ge,{children:"Supprimer ce jeu ?"}),e.jsx(he,{children:"Seuls les jeux non payés et en attente de validation peuvent être supprimés."})]}),e.jsxs(je,{children:[e.jsx(fe,{disabled:T,children:"Annuler"}),e.jsxs(_e,{onClick:Q,disabled:T,children:[T&&e.jsx(k,{className:"h-4 w-4 animate-spin"})," Supprimer"]})]})]})})]})}function Ee({s:r,onEdit:h,onPay:_,onDelete:y}){const c={pending:{label:"En attente de validation",icon:Se,variant:"secondary",color:"text-amber-700"},approved:{label:"Approuvé",icon:ye,variant:"default",color:"text-emerald-700"},rejected:{label:"Rejeté",icon:Ne,variant:"destructive",color:"text-red-700"}}[r.submission_status],S=c.icon,o=r.payment_status==="paid",u=r.submission_status==="pending"&&!
1o,j=r.submission_status==="pending"&&!o,a=r.submission_status==="pending"&&!o;return e.jsx(C,{children:e.jsxs(N,{className:"flex items-start gap-3 p-4",children:[e.jsx("div",{className:"flex h-14 w-14 flex-shrink-0 items-center justify-center overflow-hidden rounded-lg bg-muted",children:r.image_url?e.jsx("img",{src:ee(r.image_url),alt:"",className:"h-full w-full object-cover"}):e.jsx(J,{className:"h-6 w-6 text-muted-foreground"})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("h3",{className:"truncate font-semibold",children:r.title}),e.jsxs(z,{variant:c.variant,className:"gap-1",children:[e.jsx(S,{className:"h-3 w-3"})," ",c.label]}),o?e.jsx(z,{variant:"secondary",children:"ð¶ Payé"}):r.submission_status==="pending"?e.jsx(z,{variant:"outline",className:"border-amber-400 text-amber-700",children:"à payer"}):null]}),r.prize_label&&e.jsxs("p",{className:"mt-0.5 text-sm text-primary",children:["ð ",r.prize_label]}),e.jsxs("p",{className:"mt-1 text-xs text-muted-foreground",children:["Tirage : ",r.draw_date?new Date(r.draw_date).toLocaleDateString("fr-FR"):"â",r.draw_time?` à ${r.draw_time.slice(0,5)}`:"",r.winners_count?` · ${r.winners_count} gagnant(s)`:"",r.price_cents?` · ${(r.price_cents/100).toFixed(2)} â¬`:""]}),r.admin_review_note&&e.jsxs("p",{className:`mt-2 rounded-md bg-muted p-2 text-xs ${c.color}`,children:[e.jsx("strong",{children:"Note du Club :"})," ",r.admin_review_note]})]}),e.jsxs("div",{className:"flex flex-shrink-0 flex-col gap-1 sm:flex-row",children:[u&&e.jsxs(g,{size:"sm",variant:"outline",onClick:()=>h(r),children:[e.jsx(De,{className:"h-3.5 w-3.5"})," Modifier"]}),j&&e.jsxs(g,{size:"sm",onClick:_,children:[e.jsx(Pe,{className:"h-3.5 w-3.5"})," Payer"]}),a&&e.jsx(g,{size:"sm",variant:"destructive",onClick:y,children:e.jsx(Le,{className:"h-3.5 w-3.5"})})]})]})})}export{vt as component};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.