= useCallback(
+ (e) => changeDataFilter('soloSinAsignar', `${e.target.checked}`),
+ [],
+ );
useEffect(() => {
async function fetchData() {
@@ -84,6 +100,12 @@ function Solicitudes() {
if (filtroData.urgencia !== 'todas') {
query.eq('urgency', filtroData.urgencia);
}
+
+ // Solo agregar filtro si es true
+ if (isStringTrue(filtroData.soloSinAsignar)) {
+ query.eq('asignees_count', 0);
+ }
+
query.neq('status', 'finished');
// Ejecutar la consulta con paginación
const { data, count, error } = await query
@@ -128,42 +150,53 @@ function Solicitudes() {
<>
{/* FILTROS */}
-
Filtros
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -174,7 +207,7 @@ function Solicitudes() {
) : (
- data.map((caso) =>
)
+ data.map((caso) =>
)
)}
diff --git a/src/app/punto-recogida/page.tsx b/src/app/punto-recogida/page.tsx
index c0122674..00b9bcf2 100644
--- a/src/app/punto-recogida/page.tsx
+++ b/src/app/punto-recogida/page.tsx
@@ -5,7 +5,7 @@ import { supabase } from '@/lib/supabase/client';
import { MapPin, Phone, Package, House, Contact, Megaphone } from 'lucide-react';
import AddressAutocomplete from '@/components/AddressAutocomplete';
import { isValidPhone } from '@/helpers/utils';
-import { PhoneInput } from '@/components/PhoneInput';
+import { PhoneInput } from '@/components/input/PhoneInput';
import { CollectionPointData, CollectionPointInsert } from '@/types/DataPoints';
export const dynamic = 'force-dynamic';
diff --git a/src/app/solicitar-ayuda/_components/Form/FormContainer.tsx b/src/app/solicitar-ayuda/_components/Form/FormContainer.tsx
index 1f790768..88861c64 100644
--- a/src/app/solicitar-ayuda/_components/Form/FormContainer.tsx
+++ b/src/app/solicitar-ayuda/_components/Form/FormContainer.tsx
@@ -4,8 +4,8 @@ import React, { FormEvent, useCallback, useMemo, useState } from 'react';
import { FormRenderer } from './FormRenderer';
import { FormData, Status } from '../types';
-import { formatPhoneNumber, isValidPhone } from '@/helpers/utils';
import { helpRequestService, townService } from '@/lib/service';
+import { formatPhoneNumber, isValidPhone, removeUrls } from '@/helpers/utils';
import { Database } from '@/types/database';
import { Enums } from '@/types/common';
import { useRouter } from 'next/navigation';
@@ -96,7 +96,7 @@ export function FormContainer({ session }: any) {
latitude: formData.coordinates ? parseFloat(latitude) : null,
longitude: formData.coordinates ? parseFloat(longitude) : null,
help_type: mapHelpToEnum(formData.tiposDeAyuda),
- description: formData.descripcion,
+ description: removeUrls(formData.descripcion),
urgency: formData.urgencia,
number_of_people: formData.numeroDePersonas || 1,
contact_info: formatPhoneNumber(formData.contacto),
diff --git a/src/app/solicitar-ayuda/_components/Form/FormRenderer.tsx b/src/app/solicitar-ayuda/_components/Form/FormRenderer.tsx
index 9fff5b89..e4e3154d 100644
--- a/src/app/solicitar-ayuda/_components/Form/FormRenderer.tsx
+++ b/src/app/solicitar-ayuda/_components/Form/FormRenderer.tsx
@@ -1,13 +1,13 @@
'use client';
import React from 'react';
import { Check } from 'lucide-react';
-
-import { PhoneInput } from '@/components/PhoneInput';
+import AddressMap, { AddressDescriptor } from '../../../../components/AddressMap';
+import { PhoneInput } from '@/components/input/PhoneInput';
+import AddressAutocomplete from '@/components/AddressAutocomplete.js';
import { TIPOS_DE_AYUDA } from '../constants';
import { TipoDeAyudaInputRenderer } from '../TipoDeAyudaInputRenderer';
import { FormData, HelpCategory, Status } from '../types';
-import AddressMap, { AddressDescriptor } from '../../../../components/AddressMap';
-import { LngLat } from '@/components/map/GeolocationMap';
+import { LimitedTextarea } from '@/components/input/LimitedTextarea';
type FormRendererProps = {
status: Status;
@@ -93,19 +93,6 @@ export function FormRenderer({
)}
-
-
-
-
- Incluya todos los detalles posibles para poder localizarle (campo obligatorio)
-
-
@@ -136,13 +123,14 @@ export function FormRenderer({
-
diff --git a/src/components/OfferHelp.js b/src/components/OfferHelp.js
index 4c49c319..f86491b7 100644
--- a/src/components/OfferHelp.js
+++ b/src/components/OfferHelp.js
@@ -7,7 +7,7 @@ import AddressAutocomplete from '@/components/AddressAutocomplete';
import { mapToIdAndLabel, tiposAyudaOptions as _tiposAyudaOptions } from '@/helpers/constants';
import { isValidPhone } from '@/helpers/utils';
-import { PhoneInput } from '@/components/PhoneInput';
+import { PhoneInput } from '@/components/input/PhoneInput';
import { formatPhoneNumber } from '@/helpers/utils';
import { useTowns } from '@/context/TownProvider';
import { useRouter } from 'next/navigation';
diff --git a/src/components/RequestHelp.js b/src/components/RequestHelp.js
index e84213c0..b96f1112 100644
--- a/src/components/RequestHelp.js
+++ b/src/components/RequestHelp.js
@@ -7,7 +7,7 @@ import { mapToIdAndLabel, tiposAyudaOptions } from '@/helpers/constants';
import { formatPhoneNumber, isValidPhone } from '@/helpers/utils';
import { helpRequestService, locationService, townService } from '@/lib/service';
-import { PhoneInput } from '@/components/PhoneInput';
+import { PhoneInput } from '@/components/input/PhoneInput';
import { useRouter } from 'next/navigation';
import { CallCenterLink } from '@/components/CallCenterLink';
import AddressMap from './AddressMap';
diff --git a/src/components/SolicitudCard.tsx b/src/components/SolicitudCard.tsx
index 046d72ad..b502add2 100644
--- a/src/components/SolicitudCard.tsx
+++ b/src/components/SolicitudCard.tsx
@@ -7,6 +7,7 @@ import AsignarSolicitudButton from '@/components/AsignarSolicitudButton';
import SolicitudHelpCount from '@/components/SolicitudHelpCount';
import PhoneInfo from '@/components/PhoneInfo';
import DeleteHelpRequest from './DeleteHelpRequest';
+import { textWithEllipsis } from '@/helpers/utils';
import { useTowns } from '@/context/TownProvider';
import { useRole } from '@/context/RoleProvider';
import { useState } from 'react';
@@ -16,9 +17,15 @@ type SolicitudCardProps = {
caso: HelpRequestData;
showLink?: boolean;
showEdit?: boolean;
+ format?: 'small' | 'large';
};
-export default function SolicitudCard({ caso, showLink = true, showEdit = false }: SolicitudCardProps) {
+export default function SolicitudCard({
+ caso,
+ showLink = true,
+ showEdit = false,
+ format = 'large',
+}: SolicitudCardProps) {
const session = useSession();
const role = useRole();
const { getTownById } = useTowns();
@@ -78,7 +85,7 @@ export default function SolicitudCard({ caso, showLink = true, showEdit = false
- {caso.description}
+ {format === 'small' ? textWithEllipsis(caso.description, 250) : caso.description}
diff --git a/src/components/Toggle.tsx b/src/components/Toggle.tsx
new file mode 100644
index 00000000..77960d80
--- /dev/null
+++ b/src/components/Toggle.tsx
@@ -0,0 +1,33 @@
+import React from 'react';
+
+type ToggleProps = { handleChange: React.ChangeEventHandler
; checked: boolean; label: string };
+
+export const Toggle = ({ checked, handleChange, label }: ToggleProps) => {
+ return (
+
+
+
+
+
+
+
+ );
+};
diff --git a/src/components/auth/PhoneNumberDialog.tsx b/src/components/auth/PhoneNumberDialog.tsx
index 1ae156ec..60b8639d 100644
--- a/src/components/auth/PhoneNumberDialog.tsx
+++ b/src/components/auth/PhoneNumberDialog.tsx
@@ -5,7 +5,7 @@ import React, { FormEvent, useCallback, useEffect, useState } from 'react';
import Modal from '@/components/Modal';
import { authService } from '@/lib/service';
import { useModal } from '@/context/ModalProvider';
-import { PhoneInput } from '@/components/PhoneInput';
+import { PhoneInput } from '@/components/input/PhoneInput';
import { formatPhoneNumber } from '@/helpers/utils';
import { isValidPhone } from '@/helpers/utils';
diff --git a/src/components/auth/SignUp.tsx b/src/components/auth/SignUp.tsx
index 2cea1e9d..2cf674fe 100644
--- a/src/components/auth/SignUp.tsx
+++ b/src/components/auth/SignUp.tsx
@@ -4,7 +4,7 @@ import { FormEvent, useCallback, useState } from 'react';
import { ArrowBigLeft } from 'lucide-react';
import { authService } from '@/lib/service';
-import { PhoneInput } from '@/components/PhoneInput';
+import { PhoneInput } from '@/components/input/PhoneInput';
import { formatPhoneNumber } from '@/helpers/utils';
import { isValidPhone } from '@/helpers/utils';
diff --git a/src/components/input/LimitedTextarea/LimitedTextarea.tsx b/src/components/input/LimitedTextarea/LimitedTextarea.tsx
new file mode 100644
index 00000000..383cf4f4
--- /dev/null
+++ b/src/components/input/LimitedTextarea/LimitedTextarea.tsx
@@ -0,0 +1,14 @@
+import React from 'react';
+
+import { LimitedTextareaProps } from './types';
+
+export function LimitedTextarea({ ...props }: LimitedTextareaProps) {
+ return (
+ <>
+
+
+ {props.value?.length || 0}/{props.maxLength}
+
+ >
+ );
+}
diff --git a/src/components/input/LimitedTextarea/index.ts b/src/components/input/LimitedTextarea/index.ts
new file mode 100644
index 00000000..cd5114d7
--- /dev/null
+++ b/src/components/input/LimitedTextarea/index.ts
@@ -0,0 +1 @@
+export { LimitedTextarea } from './LimitedTextarea';
diff --git a/src/components/input/LimitedTextarea/types.ts b/src/components/input/LimitedTextarea/types.ts
new file mode 100644
index 00000000..19fcaa12
--- /dev/null
+++ b/src/components/input/LimitedTextarea/types.ts
@@ -0,0 +1,11 @@
+import React from 'react';
+
+export type LimitedTextareaProps = {
+ name: string;
+ maxLength: number;
+ onChange?: React.ChangeEventHandler;
+ value?: string;
+ className?: string;
+ rows?: number;
+ placeholder?: string;
+};
diff --git a/src/components/PhoneInput/PhoneInputContainer.tsx b/src/components/input/PhoneInput/PhoneInputContainer.tsx
similarity index 100%
rename from src/components/PhoneInput/PhoneInputContainer.tsx
rename to src/components/input/PhoneInput/PhoneInputContainer.tsx
diff --git a/src/components/PhoneInput/PhoneInputRenderer.tsx b/src/components/input/PhoneInput/PhoneInputRenderer.tsx
similarity index 100%
rename from src/components/PhoneInput/PhoneInputRenderer.tsx
rename to src/components/input/PhoneInput/PhoneInputRenderer.tsx
diff --git a/src/components/PhoneInput/index.ts b/src/components/input/PhoneInput/index.ts
similarity index 100%
rename from src/components/PhoneInput/index.ts
rename to src/components/input/PhoneInput/index.ts
diff --git a/src/components/PhoneInput/types.ts b/src/components/input/PhoneInput/types.ts
similarity index 100%
rename from src/components/PhoneInput/types.ts
rename to src/components/input/PhoneInput/types.ts
diff --git a/src/constants/phoneNumber.ts b/src/constants/phoneNumber.ts
index b8912ef4..f67497cf 100644
--- a/src/constants/phoneNumber.ts
+++ b/src/constants/phoneNumber.ts
@@ -1,3 +1,3 @@
-export const callCenterPhone = '626 675 591';
+export const callCenterPhone = '960 20 25 14';
export const callCenterPhoneTrimmed = callCenterPhone.replace(/\s/g, '');
diff --git a/src/helpers/utils.ts b/src/helpers/utils.ts
index d1710cbd..d0d62636 100644
--- a/src/helpers/utils.ts
+++ b/src/helpers/utils.ts
@@ -18,3 +18,15 @@ export const formatPhoneNumber = (value: string) => {
// Remove white spaces and non-digit characters
return value.replace(/\s/g, '').replace(/\D/g, '');
};
+
+export const removeUrls = (text: string) => {
+ const urlPattern = /(?:https?:\/\/)?(?:www\.)?[a-zA-Z0-9-]+\.[a-zA-Z]{2,}(?:\/[^\s]*)?/g;
+ return text.replace(urlPattern, '');
+};
+
+export const textWithEllipsis = (text: string | null, maxLength: number) => {
+ if (!text) {
+ return text;
+ }
+ return text.length > maxLength ? text.slice(0, maxLength) + '...' : text;
+};
diff --git a/src/lib/service.ts b/src/lib/service.ts
index 27e8c978..4064a24c 100644
--- a/src/lib/service.ts
+++ b/src/lib/service.ts
@@ -2,7 +2,6 @@ import { supabase } from './supabase/client';
import { Database } from '@/types/database';
import { HelpRequestAssignmentInsert, HelpRequestUpdate } from '@/types/Requests';
import { createClient } from '@/lib/supabase/server';
-import { SupabaseClient } from '@supabase/supabase-js';
export const helpRequestService = {
async createRequest(requestData: Database['public']['Tables']['help_requests']['Insert']) {
@@ -66,14 +65,50 @@ export const helpRequestService = {
async assign(requestData: HelpRequestAssignmentInsert) {
const { data, error } = await supabase.from('help_request_assignments').insert([requestData]).select();
-
if (error) throw error;
+
+ const { data: linkedRequestData, error: errorGettingLinkedData } = await supabase
+ .from('help_requests')
+ .select('*')
+ .eq('id', requestData.help_request_id);
+ if (errorGettingLinkedData) throw errorGettingLinkedData;
+ if (!linkedRequestData) throw new Error('No se puede encontrar esta tarea');
+
+ const { error: errorUpdatingAssigneesCount } = await supabase
+ .from('help_requests')
+ .update({ asignees_count: linkedRequestData[0].asignees_count + 1 })
+ .eq('id', requestData.help_request_id);
+ if (errorUpdatingAssigneesCount) throw errorUpdatingAssigneesCount;
+
return data[0];
},
async unassign(id: number) {
- const { error } = await supabase.from('help_request_assignments').delete().eq('id', id);
+ const { data, error: errorFindingRow } = await supabase.from('help_request_assignments').select('*').eq('id', id);
+ if (errorFindingRow || !data) {
+ throw new Error('No se puede encontrar la tarea');
+ }
- if (error) throw error;
+ const requestId = data[0].help_request_id;
+
+ const { error: errorDeletingAssignment } = await supabase.from('help_request_assignments').delete().eq('id', id);
+ if (errorDeletingAssignment) throw errorDeletingAssignment;
+
+ const { data: linkedRequestData, error: errorGettingLinkedData } = await supabase
+ .from('help_requests')
+ .select('*')
+ .eq('id', requestId);
+
+ if (errorGettingLinkedData) throw errorGettingLinkedData;
+ if (!linkedRequestData) throw new Error('No se puede encontrar esta tarea');
+
+ const { asignees_count } = linkedRequestData[0];
+ const newNumberAssignees = asignees_count <= 0 ? 0 : asignees_count - 1;
+
+ const { error: errorUpdatingAssigneesCount } = await supabase
+ .from('help_requests')
+ .update({ asignees_count: newNumberAssignees })
+ .eq('id', requestId);
+ if (errorUpdatingAssigneesCount) throw errorUpdatingAssigneesCount;
},
async getByType(type: any) {
diff --git a/src/types/database.ts b/src/types/database.ts
index e08e97bc..93d05abf 100644
--- a/src/types/database.ts
+++ b/src/types/database.ts
@@ -171,6 +171,7 @@ export type Database = {
help_requests: {
Row: {
additional_info: Json | null;
+ asignees_count: number;
contact_info: string | null;
coordinates: unknown | null;
created_at: string | null;
@@ -193,6 +194,7 @@ export type Database = {
};
Insert: {
additional_info?: Json | null;
+ asignees_count?: number;
contact_info?: string | null;
coordinates?: unknown | null;
created_at?: string | null;
@@ -215,6 +217,7 @@ export type Database = {
};
Update: {
additional_info?: Json | null;
+ asignees_count?: number;
contact_info?: string | null;
coordinates?: unknown | null;
created_at?: string | null;
diff --git a/supabase/automated_seed.sql b/supabase/automated_seed.sql
new file mode 100644
index 00000000..b177530a
--- /dev/null
+++ b/supabase/automated_seed.sql
@@ -0,0 +1,2 @@
+INSERT INTO public.help_requests (id,created_at,type,name,location,description,urgency,number_of_people,contact_info,additional_info,status,resources,latitude,longitude,help_type,people_needed,town_id,other_help,user_id,asignees_count) VALUES (35512836298798, DEFAULT, 'necesita', 'Tillman Willms', 'Aldaia', 'Se sapienter ata si natur, eximos ut num atomni concedere modo periis.', 'media', 0, '+14675819', '{"Maxime":"Cum admodo non"}', 'finished', '{"Certe":"Sim dolorteat"}', 1.4951125394819356, 6.635616404224801, DEFAULT, DEFAULT, NULL, 'Natur quae persius phaedrum famil moda.', 'c3945383-1bd3-5aac-bc3e-db69b1093bda', 2), (4326139383977512, DEFAULT, 'necesita', 'Dejon Windler', 'Alcudia', 'Veniri ullam atem itatum quo patria quae, legentur igam conectamen quae ant fidamicar causa quae.', 'alta', 3, '+38812656', '{"Nullo":"Appellatin mea et"}', 'finished', '{"Rutil":"Ei incider omni"}', 8.595629596913177, 4.097151462013163, DEFAULT, DEFAULT, NULL, 'Hosti sensio non metu int parartifex.', '76305fa6-26ad-558b-93c7-3c9f10669afb', 1), (1613092576389734, DEFAULT, 'necesita', 'Noah Nikolaus', 'Aldaia', 'Taneum nati et possum voluptatum amuralien.', 'media', 1, '+11195367', '{"Faciliustit":"Scripta fortibus per"}', 'active', '{"Credo":"Perciplinat cumcisaque non"}', 8.69472382901672, 13.922983305179006, DEFAULT, DEFAULT, NULL, 'Vestrae ab corpus eadem praeteram, iganimad beate idinstituit eitam solent.', 'cb73e6cc-a6ac-5162-9497-885539805efa', 4), (2857769207061498, DEFAULT, 'ofrece', 'Sasha Greenholt', 'Bugarra', 'Potienterean sit etis albucius ratione vivi est.', 'alta', 2, '+29573093', '{"Volunt":"Im ipsum philosophis"}', 'active', '{"Omnisi":"Eius de"}', 5.047926608454987, 13.888477157158311, DEFAULT, DEFAULT, NULL, 'Quod patientiam non iustitudin vivenim.', '623503cb-ea45-5bef-b17f-7203984996f7', 2), (7246469662559213, DEFAULT, 'necesita', 'Maegan Wisozk', 'Albal', 'Ut fore as cogit scripta, amenimi inanim dolor sententiae consilio ius corporis inter.', 'alta', 1, '+67201803', '{"Perspicuum":"Tam dente"}', 'active', '{"Medium":"Ate nihiliorem essariae"}', 0.2732131332706303, 15.887343255069302, DEFAULT, DEFAULT, NULL, 'Regullam sale is per vidus accommodus si, esset esse cogiterne non amur sinitatem.', '0d5e80c3-94b0-5a67-bc52-4636705830d6', 0), (7553407202543516, DEFAULT, 'necesita', 'Bethel Hoppe', 'Aldaia', 'Graecum certis ari quibus ferebitat vel.', 'media', 2, '+99424033', '{"Quam":"Es quam ut"}', 'finished', '{"Possunt":"Aut eius"}', 12.604613634263051, 4.9244709041669585, DEFAULT, DEFAULT, NULL, 'Fugiat legerere en recoratem ipsi dicebit putata.', 'c48a9976-3352-5443-b1e5-7e154ee37ea2', 2), (2879339518112876, DEFAULT, 'necesita', 'Katheryn Gottlieb', 'Alfafar', 'Cyrenaicosop declinabor anim aequit ipso proptertium sit modum, omnia assenserit omnia satissimae relique.', 'media', 2, '+44148065', '{"Admodo":"Angore sed"}', 'finished', '{"Vera":"Summum efficiatur"}', 4.679297136872823, 13.56049191430553, DEFAULT, DEFAULT, NULL, 'Referatur quidem vestigant non dein, omnescius a mundi electet quod ut quaeritate certe.', 'b8d8a74a-2155-581b-a5fb-71b88c154910', 3), (2951700222870603, DEFAULT, 'necesita', 'Ila West', 'Alfafar', 'Et inhumanim poenis es gravis ut pericura, non simos hinc corrupte ine in.', 'baja', 1, '+54869657', '{"Multos":"Voluptate physicis"}', 'finished', '{"Solam":"Ophiae expetentiam dixi"}', 8.238524174374058, 14.768907655865188, DEFAULT, DEFAULT, NULL, 'Eos es manus voluptas utrum epicaren aptissimum.', '53e31d49-1f9f-52f2-bd76-1788e9a0a2ce', 2), (7683562322669068, DEFAULT, 'ofrece', 'Fritz Carter', 'Alfafar', 'Salut hoc triarius quibus il philos quae omnisi, vel epicitat dicesse firmaturis nullam de.', 'media', 1, '+20943537', '{"Neque":"Quietem moles ex"}', 'finished', '{"Collaudandum":"Traderundius nihil"}', 6.293528606377692, 8.98313252565442, DEFAULT, DEFAULT, NULL, 'Postea quod iliarit am vero uti medium, genii voluptate mundi tantum ut possum utin se.', 'dde21434-7603-555f-ba3c-93e2bd6eb6f2', 3), (1299432568777678, DEFAULT, 'ofrece', 'Sydney Schuppe', 'Bugarra', 'Ante quaeri retinfinis ipsa via neque natura, ea solis quod ad sunt iis.', 'alta', 2, '+73224757', '{"Quae":"Et metu cum"}', 'finished', '{"Rentur":"Bonum ex"}', 8.674607605616451, 8.689309193145151, DEFAULT, DEFAULT, NULL, 'Sunt in ipuit dolorem eius ut quantum, homine adipsumer non anime quidem imus sentias.', '038b75b3-166a-5170-adeb-c8f36de68ba7', 1), (2089092539428505, DEFAULT, 'necesita', 'Braden Dietrich', 'Aldaia', 'Es cum ac utramque deinde, maxim dolorest omnem esse et neque es.', 'media', 1, '+54349770', '{"Quid":"Se cum numquam"}', 'finished', '{"Litatomnia":"Non ophia"}', 9.861431733917955, 3.691775518125772, DEFAULT, DEFAULT, NULL, 'Serita armatis ne utroque sequam qua.', '05e3e032-c5da-53e5-a65d-1531ef8d5d9b', 3), (8853943270701777, DEFAULT, 'necesita', 'Luther Torp', 'Alcudia', 'Spatio fantestibus silia ego referition.', 'media', 5, '+15079644', '{"Doleris":"Omnino anitaque ea"}', 'active', '{"Qui":"Pectamen sum"}', 10.503770791568709, 6.467286600242308, DEFAULT, DEFAULT, NULL, 'Melius cum ibus nec esse deserentur ex.', '3ecb51de-4755-58d8-8f70-f7b5e6cb375f', 3), (3197723681263736, DEFAULT, 'ofrece', 'Amie Nader', 'Alfafar', 'E cordiae consequimur loco voluptate aut.', 'media', 5, '+34657112', '{"Atomnium":"Nihile non"}', 'finished', '{"Inem":"A quod"}', 8.523220662921144, 3.640641794621152, DEFAULT, DEFAULT, NULL, 'Genus amicare iudicarbit gravis littera ad timum omnino.', '0cb3386f-4a91-5bd9-bd14-d389ff8cba8b', 2), (5470911876634069, DEFAULT, 'ofrece', 'Boris Zboncak', 'Aldaia', 'Quod nec voluptatis adiit concerte adoptiman sunt rer, epicurum int sine sed mutat aut videt vire.', 'baja', 1, '+80288357', '{"Nos":"Quo quid il"}', 'active', '{"Nomenietur":"Quod dicebitan"}', 2.2444880249609604, 15.899202360448768, DEFAULT, DEFAULT, NULL, 'Doctrina molest det mundi lat quoniam, istotum inflammati non eque tu fectus sentenda.', '88ed877f-b020-5171-8e81-17fd7867fd8f', 4), (6279085496659732, DEFAULT, 'necesita', 'Cesar Baumbach', 'Alcudia', 'Ea voluperet cum enim ine graecis, ex aspersius rebus dolorum eos quantum et etur.', 'media', 2, '+79093877', '{"In":"Disciplina concerta"}', 'active', '{"Multi":"Legunt ut"}', 9.941407177397314, 3.742939358083906, DEFAULT, DEFAULT, NULL, 'Quae qui doloris eturo triarius sent neque, sunt posuitat maximum nivem voluptate sic dicta sed.', 'e5d66b5c-8e59-537a-bf49-b14e5bb974e7', 1), (2995932885022056, DEFAULT, 'ofrece', 'Malachi Howe', 'Aldaia', 'Qui ob quaerenditur hosti alis, curri ex voluptas nobis ita a sic iudicore.', 'media', 2, '+78584070', '{"De":"Lucillum falli"}', 'active', '{"Profecto":"Eloquendas essarium"}', 6.397349308399428, 8.813829247868702, DEFAULT, DEFAULT, NULL, 'Esset ea ermitatum poterimo antes, es ire dilignavi saepe sed recta sapiendis.', '56c0ea84-63ec-5e85-9b73-6c164b0e74c2', 4), (2737241010430501, DEFAULT, 'necesita', 'Dariana Crona', 'Alcudia', 'Tellegenim bene videm enim es.', 'media', 1, '+63661143', '{"Momendum":"Ignavia locum"}', 'active', '{"Tibustus":"Sic expedallic"}', 6.871382990939547, 4.491186341203881, DEFAULT, DEFAULT, NULL, 'Voluptate nonne tentia futur voluptas primis.', '2bcbc4ac-11b6-530b-8ea0-99ccb0ff9b1b', 0), (2925241582215673, DEFAULT, 'ofrece', 'Lauriane Sporer', 'Alfafar', 'Efficitia non ullum et sabin cognitio, qui illud infimum appellatin ipuitat qua.', 'media', 1, '+20093868', '{"Me":"Ans esset"}', 'finished', '{"Doloribus":"Sumit nihilest"}', 0.7825694545283125, 5.7392225842258275, DEFAULT, DEFAULT, NULL, 'Sedulla de consolum modum quidem augenimis, aut autemus est quae et quod desid.', '0f8c24c0-7e68-5e96-8ef1-2c99f2a6353b', 0), (1148531975869716, DEFAULT, 'necesita', 'Althea Leffler', 'Aldaia', 'Bonum am sunt nos et percur, ipsa per a quae dirigat as.', 'media', 5, '+26075122', '{"Vita":"Anime eturus volut"}', 'finished', '{"Sit":"Metuque suscepis"}', 14.272759211428335, 13.138896087814297, DEFAULT, DEFAULT, NULL, 'Interistim impermultam minari epicuro magnitation ad partus, oribus admirarbit quae manus potest retinem.', 'b31544c1-c454-5115-998e-b8050d52a410', 2), (7831751525334587, DEFAULT, 'ofrece', 'Arely Grimes', 'Albal', 'Esset non assenseret inest adophi sed ermissimis.', 'baja', 2, '+24046480', '{"Beatus":"Se plus confidet"}', 'active', '{"Nondum":"Sit sint"}', 1.7158830529882965, 12.14964995585239, DEFAULT, DEFAULT, NULL, 'Quia expetendi exedonem nos invidet contentia in, spe texit torquatos viderimprob quaeque leviorem ut.', '15acbb38-3d2c-56a2-b231-523096d7d8e6', 3), (871266638016786, DEFAULT, 'necesita', 'Princess Padberg', 'Alcudia', 'Vita si quos maiorest praesentur, facerere paulo vel cuiquam spatio eum tale solum.', 'baja', 2, '+89054682', '{"Mox":"Eque neque et"}', 'active', '{"Nisi":"Vivi nobis temper"}', 15.249473853000907, 3.5034168984974046, DEFAULT, DEFAULT, NULL, 'Pellat ille littera tum is voluptates cupidque sentiendo.', '495d44dc-a300-5b0f-9c9c-32a9bee2c622', 0), (3024613177297798, DEFAULT, 'necesita', 'Clark Stroman', 'Aldaia', 'Graeci qui sint aut dolore, verumque tum conducita patre quam scriptori.', 'alta', 0, '+49767536', '{"At":"Haec e essariusteq"}', 'active', '{"Scaevola":"Nostris ad fabulsa"}', 8.43723665345412, 12.888196030215138, DEFAULT, DEFAULT, NULL, 'Aut e ipsi nos graecis ancillae.', '7bcc6b08-ace2-5960-8b64-2561a1425b75', 2), (7504796484598778, DEFAULT, 'ofrece', 'Jeanie Dooley', 'Paiporta', 'Ut mihi etiam agindus es, quae entibi efficer nulla latinione voluptatib inter inquit.', 'media', 3, '+69742933', '{"Quae":"Serit tollitterea"}', 'finished', '{"Praetorum":"Explicii quo"}', 11.410802926860406, 15.803846908473565, DEFAULT, DEFAULT, NULL, 'Consequitat fautrica voluptate duo repelis sint disserui, cum censet faciungimur mors intellegi claris vitae tam.', '1f0a9cc1-4d99-5a77-8281-b162afc3e4df', 0), (2182466325716486, DEFAULT, 'ofrece', 'Hilton Prohaska', 'Aldaia', 'Patriam mutae exerem reque alique, quid cur satis ades ad vitae quae praeterenim.', 'media', 3, '+83815169', '{"Sentantam":"Acestiam sit as"}', 'active', '{"Sunt":"Ut vult"}', 5.717492787771641, 11.114943308738782, DEFAULT, DEFAULT, NULL, 'Quam serenti physicis inis litterea ina id gessis, referosten procedo id ant stultus.', '5bff590d-5ecc-52f3-8c05-99c6b5bf7e97', 2), (8450844627483893, DEFAULT, 'necesita', 'Kristopher Franecki', 'Alfafar', 'Quod oratque reliquamur in totellatin.', 'alta', 2, '+23512864', '{"Satis":"Ad huic"}', 'finished', '{"Cum":"Et sentenet e"}', 11.447925682552821, 14.459522443368177, DEFAULT, DEFAULT, NULL, 'Haberiet voluptate ad orum omnes potiustit primo.', 'a9ae419b-be55-5f22-938b-12847edaff3c', 1), (4870401135871133, DEFAULT, 'necesita', 'Rebekah Bruen', 'Paiporta', 'Ute quidem eadem num anim aut dicerenim, arumquamquam ad non vivenimper etiam est et labeffician.', 'alta', 3, '+96423664', '{"Et":"Disciperuis res"}', 'finished', '{"Iis":"Inferiora secur"}', 7.003381700746634, 5.879130611308367, DEFAULT, DEFAULT, NULL, 'Captiosa neces vitambigua am praesiderno, homint esse non quantum effici nemorum inprobab a.', 'f9d02250-116c-5318-9be1-0841d667f937', 0), (6231492922188154, DEFAULT, 'ofrece', 'Reyna Davis', 'Alcudia', 'Et dolore docui dedituri sint ut graecis viam.', 'alta', 5, '+16933009', '{"Hoc":"Neque nunc"}', 'active', '{"Plane":"Aut voluptate cognos"}', 7.1205549072792715, 5.292925093406105, DEFAULT, DEFAULT, NULL, 'Tamque tota utilitat autem via ex.', '82918c9c-a143-55b0-90cd-5fce7a74a80f', 2), (1167491476380278, DEFAULT, 'ofrece', 'Antonetta Prohaska', 'Paiporta', 'Non voluptatis melius omne multa voluptatum.', 'baja', 2, '+12712460', '{"Modum":"Eadem ut putatil"}', 'finished', '{"Causa":"Cum esset sem"}', 10.361226752733728, 7.942862685301894, DEFAULT, DEFAULT, NULL, 'Praeteriter melius causa tant exmulti cum.', 'ddd80ebb-87e4-513a-8390-6c51498cb132', 1), (7840784113122234, DEFAULT, 'necesita', 'Cleve Funk', 'Aldaia', 'In inliberit quod melius bonoratae, stulti sine epicos erunt morbis am dictum sed.', 'media', 1, '+55937027', '{"Esto":"Finxerat audiam quae"}', 'finished', '{"Ab":"Apparavit util"}', 4.200758377845745, 0.15155569567827956, DEFAULT, DEFAULT, NULL, 'Currunt qui ducim potest quod invenias.', '53cf304c-3a4d-5cb8-b4ab-fec4cc0630f8', 3), (7225388062326153, DEFAULT, 'ofrece', 'Vergie Little', 'Alcudia', 'Inhaeret in nec consolut tem quid cum, numquam e id est in corporro inquitatib inum.', 'media', 4, '+41579578', '{"Ei":"Es nec ne"}', 'finished', '{"Videret":"Ante et gratia"}', 2.05502061231392, 12.871703732037872, DEFAULT, DEFAULT, NULL, 'Ait voluptation labefficer bonum audeam delicur.', '31ea9279-2d7b-50f8-a914-781e93b03f6d', 0), (4946417301718709, DEFAULT, 'necesita', 'Danika Auer', 'Alcudia', 'Amicet modus nos conficere deinde ne mihi, vera etiam ponatur estiae iucuntur.', 'baja', 3, '+13576676', '{"Non":"Primis viti"}', 'finished', '{"Huius":"Laberque intellegis a"}', 3.906176710473727, 1.016852843184836, DEFAULT, DEFAULT, NULL, 'Cum sine fruitura am admirartem.', 'df218ae2-b8dd-59cc-9484-c781ead91d2e', 4), (7382325438416052, DEFAULT, 'necesita', 'Max Ernser', 'Alcudia', 'Intellegit iudicet vestra interis res entaeque epicem, pareat tum as finis et epicium mihi aut.', 'media', 1, '+80614564', '{"Quod":"Minore iucunamic petus"}', 'finished', '{"Doloribus":"Nimium monstruosi volum"}', 9.498052896312505, 7.0051259292139365, DEFAULT, DEFAULT, NULL, 'Sit impenitur em inscientia nihilla voluperet, displicabo tranquillae omni sed quod.', '51337bf0-3a4d-5ca3-99bc-4081835b222f', 3), (7733456092202859, DEFAULT, 'ofrece', 'Dorothea Hagenes', 'Aldaia', 'Et sine hic modum ita temper, epiculat chrysippe consis rem haec est il causam.', 'media', 4, '+45679818', '{"Quod":"Itum doloribus"}', 'finished', '{"Profectus":"Petiunt epicosop"}', 0.5046287712388705, 3.897385174093744, DEFAULT, DEFAULT, NULL, 'Dictum omnes qua et scaevole in idinter habentaeque, contra potiustior principlinar sabin iudicoris.', 'dc998445-1c1c-5f19-a988-f60a29a50659', 1), (5967006623262775, DEFAULT, 'ofrece', 'Mafalda Connelly', 'Alcudia', 'Parens eiusdemocar spernatur ne ipsos hortate.', 'alta', 3, '+74184004', '{"Epicitus":"Ad non quidem"}', 'active', '{"Torum":"Traditudin quidem"}', 4.800501057789691, 12.276857092096783, DEFAULT, DEFAULT, NULL, 'Et complectitud quam coercertae extremum quae paene cur.', '2d71a8e9-b4db-5d49-9069-256e3b0c2ab6', 0), (2527376880049005, DEFAULT, 'ofrece', 'Melvina Crona', 'Paiporta', 'Sint se nostris idit ponti fore, nulla inum ipsum amotiosum orem.', 'media', 1, '+58671816', '{"Nostri":"Amicanus dixi"}', 'active', '{"Fugiens":"Ut pleriquidem quibus"}', 11.96856126635698, 14.005241042890201, DEFAULT, DEFAULT, NULL, 'Prorsuspicat videnem modo et exis repugnantib vidus nec.', '5076289d-2d5b-5498-91cd-7663620811cf', 1), (6266257654744233, DEFAULT, 'ofrece', 'Austyn Beatty', 'Alfafar', 'Est undustria divellas recorum infinibus aut nisi fugiatura.', 'alta', 3, '+69352497', '{"Dicam":"Laudant fecere fecis"}', 'finished', '{"Male":"Utille evolamen nihil"}', 13.168461767638243, 6.580987609373644, DEFAULT, DEFAULT, NULL, 'Maxime nos atque il erta.', 'd8ab2354-a65b-54fd-8c42-ccbfe83a6a3f', 1), (2285210237696682, DEFAULT, 'necesita', 'Armand Rippin', 'Bugarra', 'Nosci erit suavitatis cum es quae et, quasi quam ata quidem qua dicerudo ophorreant.', 'baja', 3, '+98531866', '{"Tradid":"Tamque ad consecuniae"}', 'active', '{"Probitatque":"Et sed in"}', 14.514600170150816, 5.389706598929869, DEFAULT, DEFAULT, NULL, 'Privat vita aut et tumcum.', 'f48025c0-eeed-5b49-b55e-69bd246ce586', 4), (7031101733366793, DEFAULT, 'necesita', 'Amely Lubowitz', 'Aldaia', 'Interas quas delectaria eumque sine eli, uti libid hominquam maximo quid.', 'alta', 1, '+61259294', '{"Soleat":"Tamenim id ipsi"}', 'active', '{"Idit":"Litterastris tam"}', 8.48031682419517, 1.6375967321523588, DEFAULT, DEFAULT, NULL, 'Ipse cuius qui adquiescere bonis referta natur, dolorum contra esse falsi ei fortitudit.', '8dab0559-4b03-5e2e-b905-b567fb448844', 3), (3544816739928050, DEFAULT, 'ofrece', 'Shanna Quigley', 'Alfafar', 'Quam probarendum voluptatum divitia iuria eius, neglexere ad eriore dolor doloriis librisque.', 'alta', 2, '+75758359', '{"Sit":"Indignae entium"}', 'active', '{"Democurrer":"Praestabil vivero"}', 13.756285154601315, 1.5841814216179222, DEFAULT, DEFAULT, NULL, 'Es spatio in omne excruciandae bene.', '847241db-5eb3-58d1-bc57-0d3073b0eb79', 1), (813147240349299, DEFAULT, 'necesita', 'Pearlie Bernhard', 'Alcudia', 'A ut est everit potes sapiendi sint nec.', 'baja', 5, '+64749372', '{"Recte":"Ut requirere ad"}', 'finished', '{"Non":"Graecum recte utin"}', 15.01311492418574, 4.2742458652350335, DEFAULT, DEFAULT, NULL, 'Im horres suam minimo et aetere, esset quoque torem efficitur cum propter quibus quas.', '09e895e3-03ca-5420-8236-d9985dc1d662', 3), (2654959258556025, DEFAULT, 'ofrece', 'Randi Stokes', 'Aldaia', 'In posset cum extremumque tradiderud ipsis senectamen naturi, si linarbitrat partes accusatom et.', 'alta', 2, '+96306534', '{"Ulla":"Quicquam quae tam"}', 'active', '{"Iucuntur":"Is sit potesse"}', 13.212975966256352, 13.775685993629734, DEFAULT, DEFAULT, NULL, 'Init dominvestrae sunt nocet ea num fortitiam et, etiam aeterudin dilignoran depravari est.', 'c64f4c0c-fac2-57f5-b5c6-17c4b910fe28', 1), (2786722235584191, DEFAULT, 'ofrece', 'Sim Larson', 'Paiporta', 'Intere linamusdam sed nullas cens.', 'baja', 3, '+24485852', '{"Ratio":"Si consuetudo sed"}', 'active', '{"Terae":"Expleniorem serendae quibus"}', 13.257699856141546, 2.673161637471243, DEFAULT, DEFAULT, NULL, 'Inest ere ea quaerita sit neque idendum pugnantibus, ophia dividere ut inquit as vitae sunt nostris.', '79c9df07-2d47-57a2-b4ff-1e58369d2842', 3), (1946090075207832, DEFAULT, 'ofrece', 'Curt Aufderhar', 'Paiporta', 'Quod voluptates suis leviorem spe, is factis rem ut eadem.', 'baja', 4, '+67621995', '{"Via":"Necesse en"}', 'active', '{"Suscipit":"Delecto et agini"}', 14.494585984013115, 5.089084925219427, DEFAULT, DEFAULT, NULL, 'Aliquando correcte dolor platonium optimum.', '1179dd8a-0261-5af1-8b39-e8ebcb030cce', 4), (2366749313215337, DEFAULT, 'necesita', 'Melba Huels', 'Bugarra', 'Est libendum respirarbit tam si bona.', 'media', 5, '+59358148', '{"Stoicista":"Ardore quod famil"}', 'finished', '{"Omnis":"Exedone muneriuntur tum"}', 6.157378067126294, 7.269271379348557, DEFAULT, DEFAULT, NULL, 'Esse potes officiunction nominstituit probare estiae.', '2648f620-936c-5a64-978d-0e308d4b9791', 4), (7545454767101400, DEFAULT, 'ofrece', 'Iliana Johnston', 'Bugarra', 'Arem numquam quae ut sentio paulo ad.', 'baja', 5, '+21332836', '{"Quae":"Illas ut"}', 'active', '{"Ut":"Autem et inis"}', 11.442151940035565, 2.095149558104732, DEFAULT, DEFAULT, NULL, 'A idque caecille viveritia quosdam.', '34c437bf-89b7-5c0a-84b5-bcfde59ea0d9', 0), (47034484615036, DEFAULT, 'ofrece', 'Virginia Armstrong', 'Aldaia', 'Sapientium sentenercit ut inquit famesse potenime dubitathen mors.', 'baja', 5, '+46587826', '{"Sit":"Et est"}', 'active', '{"Sunt":"Maioresse pariat cum"}', 6.369571041475676, 15.425170183636629, DEFAULT, DEFAULT, NULL, 'Dixi si viderta omne enimperdis virtutem, sit simae male iis sentio.', 'f22995be-cc6f-5472-886a-62a6c0740465', 0), (1564689186096332, DEFAULT, 'necesita', 'Marta Gusikowski', 'Alfafar', 'Existe taria suavitas romant et voluptat mi miserae.', 'media', 0, '+96739860', '{"Dolornatur":"Im quae"}', 'active', '{"Allicit":"Etiam allicet habens"}', 11.721211009284216, 10.748343895437122, DEFAULT, DEFAULT, NULL, 'Suavita efficition eius personae voluptatem.', 'e8005cdd-1748-57eb-a45b-e3bbf482336a', 1), (8337109862957066, DEFAULT, 'ofrece', 'Alysson Stoltenberg', 'Bugarra', 'Nec ex imad iderisse non.', 'alta', 3, '+49874212', '{"Ad":"A de"}', 'finished', '{"Propter":"Est videbata minat"}', 6.76408017983336, 15.51859752965907, DEFAULT, DEFAULT, NULL, 'Si ere placationi quid tellegi neglegim, int voluptates putat eos singulos pericus a.', '86bbcd41-8d7b-5ef5-97fa-6d7caffcb191', 3), (8455073065999653, DEFAULT, 'necesita', 'Flavio Quigley', 'Alfafar', 'Incorrupis nec permagis fecere philosoper et, tuo dices am quam perciper eturus sed efficile.', 'baja', 3, '+61805649', '{"Multis":"Platonum verum de"}', 'finished', '{"Dicantis":"Debet ad omne"}', 4.586780141204792, 13.511812435169972, DEFAULT, DEFAULT, NULL, 'Dicam approbatque torum quo detracta em.', '6b226519-f0e9-5cbc-9502-39902dbbd7dc', 4), (6428962654364478, DEFAULT, 'ofrece', 'Maudie Kautzer', 'Alcudia', 'Possummum honesse nisi voluptatem magna.', 'alta', 0, '+73526771', '{"Ferri":"Quod abhortatem"}', 'finished', '{"Non":"Es haec ex"}', 13.348724148306378, 7.7515295540809435, DEFAULT, DEFAULT, NULL, 'Discerte contra cohaerest causa mihi.', '1a83aa47-9e0e-5085-aef0-cca7b17bc3e9', 2), (7739545836793011, DEFAULT, 'ofrece', 'Johnny Rowe', 'Bugarra', 'Perandum ne satis praeterincid et.', 'media', 0, '+46194742', '{"Torum":"Possimillud et intera"}', 'finished', '{"Nec":"Suo es"}', 3.74991168795153, 1.5180150909189776, DEFAULT, DEFAULT, NULL, 'Quod vivendare ad nam dicta, perdido plus inpendetrax feramicar excruciantur.', '18e367e9-63a5-513b-a320-2872a4f9d558', 2), (4886114052362520, DEFAULT, 'necesita', 'Reina Fritsch', 'Aldaia', 'Conduci logikh sit fuisse maloribus, et tantamque ad quid potesset ego quisque in.', 'baja', 1, '+68000920', '{"Iamsi":"Intellegi convicinter"}', 'active', '{"Ut":"Vel praeteret cum"}', 4.307389192530661, 1.3913844934318311, DEFAULT, DEFAULT, NULL, 'Pariaturam evere e victi igit nihil verbis.', '7aa43bbf-2fa7-5b0d-9237-97301eba55be', 2), (2905445326933901, DEFAULT, 'necesita', 'Jaeden Gutkowski', 'Bugarra', 'Rationis int hunc non praesensa.', 'baja', 1, '+95251646', '{"Ere":"Vitam esse"}', 'finished', '{"Inquam":"Cupid sponte"}', 2.6563905071783016, 2.0306063253015805, DEFAULT, DEFAULT, NULL, 'Referta autem esse non ineret sent, primum cum corporrecte dividit nec.', '41f15e46-4a94-5d43-af93-a227da361aef', 4), (5735243659239267, DEFAULT, 'necesita', 'Lisa Gislason', 'Bugarra', 'Possunt fieri esse molest quamquamque voluptatis, dis omnes quaerimum itat qui epicaret veniri tranquillit.', 'alta', 1, '+60078902', '{"Esse":"Sine teneamque"}', 'finished', '{"Suo":"Voluptation ute delectam"}', 3.908759182247659, 5.7280161712521, DEFAULT, DEFAULT, NULL, 'Aptissimo corporista locistae bella perpetus.', '9b705c54-e949-53f1-b555-6d4cfda3954b', 4), (909407693012654, DEFAULT, 'necesita', 'Lexus Mohr', 'Alfafar', 'Ius cibo indus modicit nullo spernatum pariat, tem accursiones quidem nec inhaererem.', 'alta', 2, '+50157504', '{"Multoque":"Sint animpeten dolorum"}', 'active', '{"Facientium":"Vider exulsa"}', 2.0213784660019933, 0.07178812256492152, DEFAULT, DEFAULT, NULL, 'Qui physicis cum addidicur minuit, manum invitae rebus paterruisset eris involuptat tum.', 'a5ca718b-a6b5-52b5-866e-e90ad30bed22', 4), (6067693019607321, DEFAULT, 'necesita', 'Devin Ruecker', 'Bugarra', 'Qui graecis a efficerab quod.', 'media', 1, '+52183948', '{"Nec":"Naturum vero"}', 'finished', '{"Dicant":"Sit il insit"}', 0.12229606269576544, 13.931263850025374, DEFAULT, DEFAULT, NULL, 'Et conducem inter est sedita vel, ob nam intemper quod nacti insatisdem probarbitrar.', 'dc6fa48a-3e20-526f-83df-79abef3f731c', 0), (1195904497186258, DEFAULT, 'necesita', 'Karelle Swaniawski', 'Albal', 'Insipiens ut ipsa nos esse nes sequit.', 'alta', 1, '+49130122', '{"Dictum":"Quod diderunt"}', 'finished', '{"Que":"Carito nec"}', 13.624074235737563, 10.185587341697232, DEFAULT, DEFAULT, NULL, 'Sint altervenir viverit dicest ipso amurbane.', 'fc7d15d7-afed-55f4-b64e-e0a393482341', 4), (8591339291762183, DEFAULT, 'ofrece', 'Teagan Kuphal', 'Paiporta', 'Malunt epulanim uto philos aut propter cur quaerimam.', 'baja', 4, '+37763541', '{"Firmare":"Quippe quem quo"}', 'active', '{"Paterudin":"Malis si etur"}', 11.755635674701981, 0.2616900449310951, DEFAULT, DEFAULT, NULL, 'Per declaret scaevolum quae inimagat si potest.', '6534abdb-bc33-5cf4-8bd9-e463acf577a4', 3), (2565568505386873, DEFAULT, 'ofrece', 'Dawn Franey', 'Albal', 'Susciplinguam consed magis at cenda lata ad quam, nec quae fallarant deditas cur tamennii in dicerta.', 'media', 1, '+24069217', '{"Statuamura":"Ab gaudem"}', 'finished', '{"Maxim":"Cupid ferreum"}', 6.270803286062589, 8.366971570225981, DEFAULT, DEFAULT, NULL, 'Posset ut efficitur dis serunt nos.', '6d1918f9-1dcd-5223-a307-9dbd10aeeb2e', 0), (698242078943073, DEFAULT, 'ofrece', 'Susanna Lynch', 'Alcudia', 'Magis am nobis quietae suavitur non.', 'alta', 4, '+80333393', '{"Autemus":"Ipsi am"}', 'finished', '{"Quamquam":"Propteras ob verbi"}', 10.67100105123297, 0.26964174661288537, DEFAULT, DEFAULT, NULL, 'Certe quas in non ut facere reliquem.', '57a34a48-7e00-567b-a191-bc9ea26dda44', 0), (2362870475108167, DEFAULT, 'ofrece', 'Janick Cassin', 'Albal', 'Tamque sed perpaulo quidem nullo imi appellata.', 'media', 4, '+99330145', '{"Veri":"Nec fere inore"}', 'active', '{"Imamur":"Placebat duo dolorum"}', 12.707755891719957, 10.089108868064228, DEFAULT, DEFAULT, NULL, 'Sum quem nec si mnesarare sed concedita censet, cogitus mediocrium orum omi credere omnescio et.', '6f34e23a-6feb-57b6-b8b1-414d69e26720', 0), (2584264432087298, DEFAULT, 'ofrece', 'Muhammad Schmidt', 'Alcudia', 'Aut de neque dicaspertin quam ignavia cendi me, in propter etiam cupidem versam nec.', 'media', 0, '+55292488', '{"Cum":"Gauderunt non"}', 'active', '{"Es":"Quo itia praetorem"}', 10.917195792863994, 1.7775916658223088, DEFAULT, DEFAULT, NULL, 'Sed inanimus sum autem omi partus abuniae quam, estias quaedam est potesse et epicula.', '5ec6693d-ac80-5245-abab-23c2268dcf53', 3), (4316750476814442, DEFAULT, 'necesita', 'Luciano Kreiger', 'Paiporta', 'Utriusque dolorem inlibidin alii nec, serit primum um ducate probanda explicarbit causa diesque.', 'media', 2, '+91954062', '{"Qua":"Idit sequat"}', 'finished', '{"Primorest":"Ob utusu sententionem"}', 10.971067675730392, 3.728650255477842, DEFAULT, DEFAULT, NULL, 'Eum utrum oresse permulti sed voluptatem at, cupid cogitis omnium dicendus ea minortum.', 'fc2e47b3-dba5-5ca8-98bf-ddca9c516be4', 1), (2836994988334463, DEFAULT, 'necesita', 'Myah Kassulke', 'Aldaia', 'Distinctio haec has expetuam lectori.', 'media', 1, '+50893381', '{"Ipuitation":"Invitam virtutibus mi"}', 'active', '{"Paulo":"Et enime atoriant"}', 15.032853074375351, 2.0168650105134813, DEFAULT, DEFAULT, NULL, 'Ur quae reliquis vivenimum quia ex igituri, posse quicquam dolor es admirarbit de rebus.', '5b62b955-fa4e-59c4-82a8-333eb0b770de', 3), (1689649231778676, DEFAULT, 'ofrece', 'Donny Turner', 'Bugarra', 'Dolore eum a quietus non.', 'baja', 5, '+25855041', '{"Multi":"Neglegebo volupletior"}', 'finished', '{"A":"Arem viveruntur"}', 9.074849296217458, 7.687274612760031, DEFAULT, DEFAULT, NULL, 'Opem utroque causa quam eosque autem nihilius.', '036c1002-e233-5ca1-89fc-5d2fd659171c', 4), (4352422269198138, DEFAULT, 'necesita', 'Terrill Pouros', 'Alfafar', 'Animo qualis per sequendare aequo constitut, melius voluptatum esse fabultimor afferate te inbecile.', 'media', 0, '+84980455', '{"Et":"Es natur"}', 'active', '{"Ad":"Am distinacces"}', 9.936399067618725, 1.8107956418624875, DEFAULT, DEFAULT, NULL, 'Afferre de mandarum eam ut, dirignemin enimi romanime vero viderae et ophi.', '47d41184-e743-54b4-bb25-c670086219d0', 1), (4125869811874339, DEFAULT, 'ofrece', 'Taya Anderson', 'Alcudia', 'Latinsiduit erisdem praeterire et aut quasi in.', 'alta', 5, '+85949771', '{"Et":"Nobisse gravisset si"}', 'active', '{"Privavis":"Dicetudin id mens"}', 15.206876638266126, 12.352836906574849, DEFAULT, DEFAULT, NULL, 'Gerentinguiq de voluptatib ad dolorios, nec quod unt tamus ulisse scriberet asperspicuum.', '4cc69aeb-86f2-5bb8-bd14-6667d0f19a4c', 4), (4010681119308300, DEFAULT, 'ofrece', 'Kasandra Muller', 'Bugarra', 'Qui quem sapientiam ab docerret fuisse.', 'baja', 2, '+17915382', '{"Ina":"Ab omnisi voluptatem"}', 'active', '{"Possummum":"Crudeloquen nihil"}', 0.03978086085450628, 2.037529400897045, DEFAULT, DEFAULT, NULL, 'Sed distrahi nullo es nissimae quae.', '389814ca-078b-5e98-8401-a853d40dc2dc', 0), (3755478466487113, DEFAULT, 'necesita', 'Yoshiko Hermann', 'Albal', 'Medium lectorum dominum habentur id videtur est, unt pariantur potest paene aut seiunctum ex filium.', 'alta', 0, '+63905638', '{"Rationem":"Vero adipider ad"}', 'active', '{"Utinavis":"Non consilio et"}', 7.172231230501855, 15.096379342970465, DEFAULT, DEFAULT, NULL, 'Vel exquirendum loquerunum nomin est.', '027a4731-753c-5395-8519-84abbc5261e0', 2), (2581895397603781, DEFAULT, 'necesita', 'Garret Reichert', 'Aldaia', 'Fore refer eturus etur epicia.', 'alta', 3, '+41698424', '{"Nosque":"Quippe idersia"}', 'active', '{"Es":"Ula nollem fidet"}', 12.21067008718256, 10.032570161981957, DEFAULT, DEFAULT, NULL, 'Arum praebeat magnam pueri quid tempus eaque, ulum ea vitae inaverri invidebim pulchraeque.', '18d87a80-5ecf-59a3-865d-bec1804cf86e', 0), (3714723238790949, DEFAULT, 'necesita', 'Marlen Lang', 'Paiporta', 'Sapienum eae nomin elis arbitrarer tota ac, sic estia quidque quid ubi si est quae.', 'baja', 3, '+10756406', '{"Etur":"Certe potest"}', 'finished', '{"Ant":"Et quamquam"}', 5.234746027782838, 0.06017332091571959, DEFAULT, DEFAULT, NULL, 'Videnimi consummum ego ad voluptas quam ut eorum.', 'e1ae63cb-a6c5-5ce9-a41f-0aacbba17ff3', 4), (1908997467589040, DEFAULT, 'ofrece', 'Hellen Halvorson', 'Bugarra', 'Quae vivendos minis praeteritur tanta am.', 'alta', 5, '+77229206', '{"Patrioque":"Beatae omus"}', 'active', '{"Sit":"Graecos ea reliqui"}', 12.882561189009488, 9.109464258316006, DEFAULT, DEFAULT, NULL, 'Int democtavis quod rogartemper sunt.', '3640d9d7-295a-5beb-ae69-afbb3fc26aeb', 0), (3139273562931458, DEFAULT, 'necesita', 'Geovany Gerhold', 'Albal', 'Esset et dubit solitia efficiat.', 'media', 0, '+28188173', '{"Ile":"Efficiatur magis"}', 'active', '{"Summum":"Copiose non"}', 15.1883942114824, 4.517384968905989, DEFAULT, DEFAULT, NULL, 'Contra cum nonne numquam notis.', 'd528fb66-b32c-5c9a-b2a2-608e5a74f1fc', 3), (6903740231634250, DEFAULT, 'necesita', 'Myron Mayert', 'Aldaia', 'Non is vitium de legenimi ne licit eas, verbis neque sentire desidium omni.', 'baja', 1, '+90430341', '{"Quae":"Corpus esto qua"}', 'active', '{"Videt":"At cum tentia"}', 10.815872347684477, 8.561165641857912, DEFAULT, DEFAULT, NULL, 'Certae hosti nam expetentis morbos voluptate.', '815d9ff1-ae0c-59fa-a380-09dc819d196a', 3), (4072875885230920, DEFAULT, 'necesita', 'Viva Lesch', 'Alcudia', 'Utrum quod pacem quamquamquam neque et mirere.', 'baja', 2, '+71492497', '{"Blanditata":"Currunt orterrogar non"}', 'active', '{"Et":"Scripta quid de"}', 15.655504079271081, 1.1004173141155518, DEFAULT, DEFAULT, NULL, 'Vita et extremum nullo is quietus e qui.', '76ebe5af-144d-5805-87fa-57cf65b4a4e4', 2), (7304794263262783, DEFAULT, 'necesita', 'Newton Runolfsdottir', 'Aldaia', 'Missimae et rebus non ignavia voluptatos dis sentior.', 'media', 0, '+76591646', '{"Et":"Ea transferrem nihile"}', 'finished', '{"Tamus":"Perspici et"}', 11.389908289079749, 1.106963044136304, DEFAULT, DEFAULT, NULL, 'Ea enturbulen apudin leniaturbes quibus.', '55ce2031-d518-5a3e-a10d-d4fa6dd45084', 4), (3866119175061723, DEFAULT, 'ofrece', 'Kathleen Jacobi', 'Alcudia', 'Ego orest ab ratio ipsa, tamus quo delicultim autem nos et expetua conclusum.', 'baja', 3, '+19782612', '{"Quia":"Qui commodo nullam"}', 'finished', '{"Veniri":"Alem est"}', 15.811127676984503, 11.679147312383789, DEFAULT, DEFAULT, NULL, 'Hominum es faciunt dicta splendidisque.', '6aa5da75-6281-5c8d-a0cc-6c3226e6f8c3', 3), (4579920511533340, DEFAULT, 'ofrece', 'Sammie Volkman', 'Paiporta', 'Maius in fugiatur voluptate nulla hominterum, voluptates malivolut deteretiam vellem dominquam.', 'media', 5, '+79655049', '{"Eratus":"Si etiam discedis"}', 'active', '{"Quam":"Fuisset uta"}', 8.795669540184727, 15.160163806120352, DEFAULT, DEFAULT, NULL, 'Est ad nisi discipi delendam fodera laetitia dicant.', '80270c60-8970-5d02-a029-5c6c06450be9', 1), (2849910061876932, DEFAULT, 'ofrece', 'Glenda Lind', 'Albal', 'Time obliganim quando aut mandarum m ego vero, haec sectet numentium imus etiam chrysippi.', 'alta', 2, '+60325275', '{"Re":"Pernatur ratio"}', 'finished', '{"Parittention":"Res id"}', 4.186177836842496, 14.786166453669827, DEFAULT, DEFAULT, NULL, 'Memin iderno scaevolut loca es naturei malle.', '1ac71323-191d-53f9-a080-ea449529dd28', 2), (4688827681628269, DEFAULT, 'necesita', 'Alejandra Runolfsdottir', 'Albal', 'Exis mediocris es molesse abilla itatesse ant, inerem eitamicit nostros iudicitur confidem alienum.', 'baja', 0, '+78593487', '{"Natoremur":"Astris non am"}', 'active', '{"Probabo":"Non sint natur"}', 12.590262367428917, 12.93490685993875, DEFAULT, DEFAULT, NULL, 'Sentior suo ipsas quam inquit ipsa rebus nobisti.', 'f54c5936-e712-5026-9309-d8b553fc34d3', 4), (467231937608775, DEFAULT, 'ofrece', 'Joannie Stokes', 'Alfafar', 'Sent semperspexit es esse facta.', 'media', 1, '+17957376', '{"Cum":"Corpora solum ad"}', 'finished', '{"Ent":"Cumcisaque nam"}', 3.473180450367075, 2.4935810058613446, DEFAULT, DEFAULT, NULL, 'Nihil ea nulli parvos poteste.', '358c6ceb-2d2c-56e6-bd02-342c145c25bb', 1), (4807176530481981, DEFAULT, 'necesita', 'Mackenzie Pouros', 'Alcudia', 'Utrumpit censet latur aliquid reprehendo ad iis, dicer chremesse dolorum aret omnes dicant anim voluptates.', 'baja', 0, '+12033101', '{"Brevi":"Sensibi torum"}', 'finished', '{"Viven":"Quam qui"}', 1.2741893172354752, 2.7593400974525264, DEFAULT, DEFAULT, NULL, 'Signifere aut oratque depultimer osopibus quibus sollicita, eo aut iudicitar eret docui cum ad liberet.', 'fb63c875-e115-5089-9031-c5484863c376', 1), (8680950390262868, DEFAULT, 'necesita', 'Izaiah Aufderhar', 'Aldaia', 'Ipsam restatum voluptate quo legita cum.', 'baja', 3, '+89796635', '{"Habeo":"Peraniti quam aut"}', 'active', '{"Eris":"Saepe avis"}', 0.23377378572933163, 13.94939502874212, DEFAULT, DEFAULT, NULL, 'Omorem indignis habet a distinis ad ratione, quidem sed et este est.', '390a7925-7eaa-565b-9864-aeb9c722109c', 1), (4544922926641845, DEFAULT, 'necesita', 'Sam Friesen', 'Albal', 'Videt ut irca in quae undius ex.', 'media', 1, '+52508227', '{"Ferioresse":"Primorem voluptatib cordia"}', 'active', '{"Se":"Tantas crudelignav vita"}', 8.528364894202292, 1.1340076212998513, DEFAULT, DEFAULT, NULL, 'Omitia voluptate aliquem gymnasia viveria corporis ex, licitur stabilem audiebamic fugienum et.', 'ba0688ac-e624-564e-8674-bfd83740fa8e', 1), (3888283241799633, DEFAULT, 'necesita', 'Johann Schuster', 'Aldaia', 'Vel mortis c sed et est tranquilli.', 'alta', 2, '+18426945', '{"Ad":"Utilest se vitae"}', 'finished', '{"Modo":"Traditus cum um"}', 13.666168342361004, 10.465664366701153, DEFAULT, DEFAULT, NULL, 'Tamenim victi quidem de totelleniat, ut autem quae se declaramplif confore.', '2940e512-fee2-5065-b9a0-b86b25544705', 0), (6328771278065629, DEFAULT, 'ofrece', 'Tad Hand', 'Paiporta', 'Sunt nec maledo voluptates se sunt effici ut, probans habeat ab aliquidae quam fingitur.', 'baja', 1, '+91683626', '{"Expecunda":"Declinab expetendum perspiciatis"}', 'active', '{"El":"Dicamicur omnes"}', 13.836669128894721, 1.949159890875171, DEFAULT, DEFAULT, NULL, 'Sentianus qui platonum gere alterrore, sit viventibus ad autem quaeso aut es sint.', 'dcd633a8-dcd6-56ba-a10d-587dc05e78b7', 3), (2656245253637857, DEFAULT, 'necesita', 'Loyal Altenwerth', 'Alfafar', 'Timancilian rectas incurrunt me ipsumus.', 'baja', 5, '+44665142', '{"Expeccant":"Inius reprehensa"}', 'active', '{"Iudici":"Et ipsum"}', 1.0376040338040033, 12.701649900775893, DEFAULT, DEFAULT, NULL, 'A maestitia percusanim is quo eo rerum negantiam.', 'df84abfe-be79-5f86-adfa-cd4625a89e50', 4), (3953749914296215, DEFAULT, 'ofrece', 'Hillard Pfeffer', 'Aldaia', 'Lat tibi potius magnoperea et cum perfecti reprehendun, et pernantur blandit tantoperit non iisque.', 'media', 0, '+14573612', '{"Dis":"In estiae inanimus"}', 'active', '{"Tum":"Soleaturus coercendarum"}', 7.149174637973657, 5.207213672485467, DEFAULT, DEFAULT, NULL, 'Alter commodi modo in aliquid debetiam sic versionem.', '31dadacc-d8c3-5b00-9317-be9c7d960805', 2), (6775917772853664, DEFAULT, 'ofrece', 'Humberto Bailey', 'Paiporta', 'Sed multoque spernatur non suis gloriae audita.', 'alta', 5, '+17384960', '{"Aeque":"In efficitas imo"}', 'active', '{"Appareat":"Quiddam exquireret in"}', 5.144332280968944, 8.808015699522008, DEFAULT, DEFAULT, NULL, 'Sit graviora aut ad tant rerum ego.', '21bee178-d5a3-5093-9278-55e00ef649e8', 1), (5797359574002924, DEFAULT, 'necesita', 'Brendan Grady', 'Bugarra', 'Autem concedit solut etriaque accur liberans est mihi, ob epico voluptatos illa vitae velitisse.', 'alta', 5, '+24237051', '{"Magissimam":"Si nec estiamus"}', 'active', '{"Ul":"Exis rerum"}', 5.430544402626469, 10.754364258680726, DEFAULT, DEFAULT, NULL, 'Scientia homo saepe et stabiliarum tum.', '864a6a76-7808-58e1-8fe5-0c888885c924', 0), (7359665311317882, DEFAULT, 'ofrece', 'Mauricio Heidenreich', 'Alcudia', 'Am esse ponsumito igunt idem endunt es diu.', 'media', 4, '+33267126', '{"Arbitrarer":"Primum seiungi"}', 'active', '{"Non":"Cognitioque posse"}', 3.129909840527747, 7.674897863726822, DEFAULT, DEFAULT, NULL, 'Aut vivam tam endere pernatorat ad negate aut, dicest eum is statuatur et ratione esse.', '018fd36d-3fdd-5faf-be0b-0536b3706b2c', 3), (6150944803447752, DEFAULT, 'ofrece', 'Jenifer Kutch', 'Paiporta', 'Vitamorum quietae sine rem epicia et voluptatis vitamicur, quid diceramic quid sententia tempore endum.', 'alta', 4, '+53494575', '{"Igendum":"Sed hinc"}', 'finished', '{"Lucilius":"Parantium al quas"}', 5.722899334974893, 12.618774019507317, DEFAULT, DEFAULT, NULL, 'Maiorem epicarum cogitus quaestionem consecum exisset et appetus, endum quidem etiam ea honesse primis quam.', '978a057b-7fed-583b-ba98-ba265e0492e5', 1), (275446622792096, DEFAULT, 'ofrece', 'Armand Littel', 'Alfafar', 'Placet interem habet haec non docerem.', 'alta', 5, '+81526988', '{"Cupiderir":"Augere dicavoccul expetatur"}', 'finished', '{"Are":"Acest cernimisset"}', 15.869534478704889, 7.483724355350007, DEFAULT, DEFAULT, NULL, 'Uliscuntur earum se eum ilior, causa ex amur nec conclusum.', '438fb93e-b503-5873-aaec-50dc0cfb848b', 3), (7743160596592744, DEFAULT, 'ofrece', 'Cheyanne Koss', 'Paiporta', 'Is dolorant poterentium unt inflammat cum, te eos ipse concura sanosopus.', 'baja', 0, '+91662940', '{"Cum":"Tam putavi"}', 'active', '{"Scribens":"Non in"}', 11.455114588033071, 8.37805545130994, DEFAULT, DEFAULT, NULL, 'Qua melius guberitat foedus iuberimis, musice nam mihi latintegre quod.', '3da42da0-57fe-5550-96f3-be4a74b103d4', 1), (5031737898512715, DEFAULT, 'ofrece', 'Reuben Satterfield', 'Albal', 'Summiseria utilo cum acest voluptates sed, illud quae cum legen non melius.', 'alta', 2, '+15802014', '{"Per":"E puto ident"}', 'finished', '{"Modius":"Te hic finit"}', 13.582346617191133, 13.208982741400911, DEFAULT, DEFAULT, NULL, 'Quae aliosi possummum gratia indus in vulgo utur, conquisquam erque ultimeam et per.', '1a31907e-c7e7-5e6b-8f7f-1700cd6fc9e4', 4), (3459496013367293, DEFAULT, 'ofrece', 'Diego Konopelski', 'Albal', 'Tractatum totellendus et male probari non appetita.', 'media', 1, '+85273553', '{"Quae":"Sit afferamus"}', 'active', '{"Sine":"Praesidintel vexetissim"}', 11.284367759663278, 11.790718096688817, DEFAULT, DEFAULT, NULL, 'Neque ferebimo qua potiorem quae sit e.', 'b4a1ac6a-8ccc-50e5-b281-8854f8bfb58f', 2), (2408981757035453, DEFAULT, 'ofrece', 'Keyon Hane', 'Alcudia', 'Neglexero adipsum sponte pertinisque fruiturus ante ferreum, laetamorat is issimos quidem tam.', 'media', 3, '+25136491', '{"Stabillud":"Modo angore non"}', 'finished', '{"Peritione":"Afficilla quarum officile"}', 3.9985130320081717, 15.696835973726262, DEFAULT, DEFAULT, NULL, 'Fautrica studuisset iditus haec minus, es sapiendiscip omne refere sed susciperiam sapiendam.', '6c9feefa-9f3b-5c64-90f8-0a1084d08407', 0), (411265311195440, DEFAULT, 'necesita', 'Gideon Pfannerstill', 'Alfafar', 'Viros mihi minis naturus illas, dolorum meminatom conseque consequuntur atus a verum.', 'baja', 4, '+37778353', '{"Possunt":"Provin si intellegit"}', 'finished', '{"Nec":"Uto ad"}', 8.422374339035654, 1.2306488488883416, DEFAULT, DEFAULT, NULL, 'Animagat libid mentitia aliquos doctum.', '6cc4373f-25a9-5c59-8f78-9902af0562af', 1), (3903807923664627, DEFAULT, 'ofrece', 'Nichole Zemlak', 'Alcudia', 'Quoniam et memornatur desidis se quod nihilem ut, modo ut sit et vel adhibuitur maiorem legerunde.', 'media', 0, '+80882374', '{"Propriusque":"Dolor patiendum"}', 'finished', '{"Vitate":"Finit tibusu"}', 4.3520036934597295, 7.996874173354349, DEFAULT, DEFAULT, NULL, 'Sint ut quae et via ipsa, scaevolamus et fatente ita dolorem et.', '41651762-d1eb-5b90-90ab-e3842608de30', 1), (1554195916261232, DEFAULT, 'necesita', 'Freddy Jenkins', 'Albal', 'Iderga quia aut tamen num nihil a quae.', 'baja', 1, '+22278112', '{"Met":"Nec propter"}', 'finished', '{"Iudicurum":"Omnium fieri utum"}', 4.830083147374835, 0.2650381813055845, DEFAULT, DEFAULT, NULL, 'Ab pulcherrimiq melius est epicia ine.', '054bcdf9-be34-5784-bf7f-9eba7f07bbe9', 2);
+SELECT setval('"public"."help_requests_id_seq"'::regclass, (SELECT MAX("id") FROM "public"."help_requests"));
diff --git a/supabase/config.toml b/supabase/config.toml
index a79ce9fc..3f35f8ec 100644
--- a/supabase/config.toml
+++ b/supabase/config.toml
@@ -45,7 +45,7 @@ enabled = true
# Specifies an ordered list of seed files to load during db reset.
# Supports glob patterns relative to supabase directory. For example:
# sql_paths = ['./seeds/*.sql', '../project-src/seeds/*-load-testing.sql']
-sql_paths = ['./seed.sql']
+sql_paths = ['./towns.sql', 'automated_seed.sql']
[realtime]
enabled = true
diff --git a/supabase/migrations/20241107201532_add-number-of-volunteers-in-each-request.sql b/supabase/migrations/20241107201532_add-number-of-volunteers-in-each-request.sql
new file mode 100644
index 00000000..b9becac8
--- /dev/null
+++ b/supabase/migrations/20241107201532_add-number-of-volunteers-in-each-request.sql
@@ -0,0 +1 @@
+alter table "public"."help_requests" add column "asignees_count" smallint not null default '0'::smallint;
\ No newline at end of file
diff --git a/supabase/migrations/20241108083517_populate_assignments_data.sql b/supabase/migrations/20241108083517_populate_assignments_data.sql
new file mode 100644
index 00000000..8c5fb791
--- /dev/null
+++ b/supabase/migrations/20241108083517_populate_assignments_data.sql
@@ -0,0 +1,6 @@
+UPDATE "public"."help_requests"
+SET "asignees_count" = (
+ SELECT COUNT(*)
+ FROM "public"."help_request_assignments"
+ WHERE "public"."help_request_assignments"."help_request_id" = "public"."help_requests"."id"
+);
\ No newline at end of file
diff --git a/supabase/seed.sql b/supabase/towns.sql
similarity index 100%
rename from supabase/seed.sql
rename to supabase/towns.sql
diff --git a/tests/navigation/ayuda-psicologica.spec.ts b/tests/navigation/ayuda-psicologica.spec.ts
index e16fbdf4..3d86fe70 100644
--- a/tests/navigation/ayuda-psicologica.spec.ts
+++ b/tests/navigation/ayuda-psicologica.spec.ts
@@ -1,10 +1,17 @@
import { test, expect } from '@playwright/test';
+import { acceptCookiePolicy } from 'tests/utils';
-test('should navigate to the "Ayuda Psicologica" page ', async ({ page }) => {
+test('should navigate to the "Ayuda Psicologica" page ', async ({ page, context }) => {
await page.goto('/');
+
+ await acceptCookiePolicy(page);
+
+ const pagePromise = context.waitForEvent('page');
await page.click('text=Ayuda Psicológica');
- await expect(page).toHaveURL('https://ayudana.org/');
- await expect(page.locator('h1:has-text("Ayuda psicológica")')).toHaveText(
+ const newPage = await pagePromise;
+
+ await expect(newPage).toHaveURL('https://ayudana.org/');
+ await expect(newPage.locator('h1:has-text("Ayuda psicológica")')).toHaveText(
'Ayuda psicológica gratuita a los afectados por la Dana de Valencia',
);
});
diff --git a/tests/navigation/compartir-coche.spec.ts b/tests/navigation/compartir-coche.spec.ts
deleted file mode 100644
index 8743a9f3..00000000
--- a/tests/navigation/compartir-coche.spec.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { test, expect } from '@playwright/test';
-
-test('should navigate to the "Compartir coche" page ', async ({ page }) => {
- await page.goto('/');
- await page.click('text=Compartir Coche');
- await expect(page).toHaveURL('https://anem.guruwalk.com/');
- await expect(page.locator('h2:has-text("Comparte")')).toHaveText(
- 'Comparte coche con quien no tiene y alivia el tráfico de la ciudad.',
- );
-});
diff --git a/tests/navigation/encuentra-coche.spec.ts b/tests/navigation/encuentra-coche.spec.ts
deleted file mode 100644
index c5906881..00000000
--- a/tests/navigation/encuentra-coche.spec.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { test, expect } from '@playwright/test';
-
-test('should navigate to the "Encontrar tu Coche" page ', async ({ page }) => {
- await page.goto('/');
- await page.click('text=Encontrar tu Coche');
- await expect(page).toHaveURL('https://tucochedana.es/index.php/');
- await expect(page.locator('p:has-text("Sistema")')).toHaveText(
- 'Sistema de registro y consulta de vehículos perdidos.',
- );
-});
diff --git a/tests/navigation/reclamacion-consorcio.spec.ts b/tests/navigation/reclamacion-consorcio.spec.ts
index 7b0f2055..6ae8c2ec 100644
--- a/tests/navigation/reclamacion-consorcio.spec.ts
+++ b/tests/navigation/reclamacion-consorcio.spec.ts
@@ -1,10 +1,16 @@
import { test, expect } from '@playwright/test';
+import { acceptCookiePolicy } from 'tests/utils';
-test('should navigate to the "Reclamar a Consorcio" page ', async ({ page }) => {
+test('should navigate to the "Reclamar a Consorcio" page ', async ({ page, context }) => {
await page.goto('/');
+ // Accept cookie policy
+ await acceptCookiePolicy(page);
+
+ const pagePromise = context.waitForEvent('page');
await page.click('text=Reclamar a Consorcio');
- await expect(page).toHaveURL(
+ const newPage = await pagePromise;
+
+ await expect(newPage).toHaveURL(
'https://www.consorseguros.es/ambitos-de-actividad/seguros-de-riesgos-extraordinarios/solicitud-de-indemnizacion',
);
- await expect(page.locator('h2:has-text("Abono")')).toHaveText('Abono de la indemnización');
});
diff --git a/tests/navigation/servicio-notarial.spec.ts b/tests/navigation/servicio-notarial.spec.ts
index 53689684..de2c1388 100644
--- a/tests/navigation/servicio-notarial.spec.ts
+++ b/tests/navigation/servicio-notarial.spec.ts
@@ -1,12 +1,19 @@
import { test, expect } from '@playwright/test';
+import { acceptCookiePolicy } from 'tests/utils';
-test('should navigate to the "Servicio Notarial" page ', async ({ page }) => {
+test('should navigate to the "Servicio Notarial" page ', async ({ page, context }) => {
await page.goto('/');
+ // Accept cookie policy
+ await acceptCookiePolicy(page);
+
+ const pagePromise = context.waitForEvent('page');
await page.click('text=Servicio Notarial');
- await expect(page).toHaveURL(
+ const newPage = await pagePromise;
+
+ await expect(newPage).toHaveURL(
'https://valencia.notariado.org/portal/-/20241031-servicio-notarial-de-ayuda-gratuito-para-los-afectados-por-la-dana-noticia-p%C3%BAblica-',
);
- await expect(page.locator('h2:has-text("DANA")')).toHaveText(
+ await expect(newPage.locator('h2:has-text("DANA")')).toHaveText(
'Habilitado un servicio notarial gratuito de ayuda para los afectados por la DANA',
);
});
diff --git a/tests/ofrecer-ayuda.spec.ts b/tests/ofrecer-ayuda.spec.ts
index 1104aac2..d1c0e540 100644
--- a/tests/ofrecer-ayuda.spec.ts
+++ b/tests/ofrecer-ayuda.spec.ts
@@ -1,7 +1,10 @@
import { test, expect } from '@playwright/test';
+import { acceptCookiePolicy } from './utils';
-test('should navigate to the "Ofrecer ayuda" page and fill in the data', async ({ page }) => {
+test.skip('should navigate to the "Ofrecer ayuda" page and fill in the data', async ({ page }) => {
await page.goto('/');
+ // Accept cookie policy
+ await acceptCookiePolicy(page);
// Find the button with "Necesito ayuda"
await page.click('text=Quiero Ayudar');
diff --git a/tests/utils.ts b/tests/utils.ts
new file mode 100644
index 00000000..c10f9587
--- /dev/null
+++ b/tests/utils.ts
@@ -0,0 +1,7 @@
+import { Page, expect } from '@playwright/test';
+
+export const acceptCookiePolicy = async (page: Page) => {
+ // Accept cookie dialog
+ await page.click('button:has-text("Aceptar")');
+ await expect(page).toHaveURL('/');
+};
diff --git a/tools/DanaCrawler/DanaCrawler/GoogleSheetService.cs b/tools/DanaCrawler/DanaCrawler/GoogleSheetService.cs
index e79fbb5f..87741cb2 100644
--- a/tools/DanaCrawler/DanaCrawler/GoogleSheetService.cs
+++ b/tools/DanaCrawler/DanaCrawler/GoogleSheetService.cs
@@ -1,5 +1,4 @@
-using System.Text.Json;
-using Google.Apis.Auth.OAuth2;
+using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using Google.Apis.Sheets.v4;
using Google.Apis.Sheets.v4.Data;
@@ -34,10 +33,18 @@ public async Task InsertHelpRequests(List requests)
private async Task InsertOffersRequestsAsync(List requests)
{
+ var sheetName = "OfreceCRMV2";
+ var clearRequest = _sheetsService.Spreadsheets.Values.Clear(
+ new ClearValuesRequest(),
+ _spreadsheetId,
+ $"{sheetName}!A1:ZZ"
+ );
+ await clearRequest.ExecuteAsync();
+
var headerRow = new List