diff --git a/bizmatch-server/broker.json b/bizmatch-server/broker.json
new file mode 100644
index 0000000..71c2bd9
--- /dev/null
+++ b/bizmatch-server/broker.json
@@ -0,0 +1,1326 @@
+[
+ {
+ "id": "9c8d7e6f-5g4h-3i2j-1k0l-9m8n7o6p5q4r",
+ "firstname": "Robert",
+ "lastname": "Jackson",
+ "email": "robert.jackson@texasbizbrokers.com",
+ "licensedIn": [
+ {
+ "name": "Texas",
+ "value": "654321"
+ }
+ ],
+ "phoneNumber": "(214) 555-7890",
+ "companyLocation": "Dallas - TX",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Texas Business Brokers",
+ "companyWebsite": "https://www.texasbizbrokers.com",
+ "description": "Experienced business brokers helping clients buy and sell businesses throughout Texas.",
+ "companyOverview": "
Texas Business Brokers is a leading business brokerage firm dedicated to serving clients throughout the state of Texas. With a team of seasoned professionals and a deep understanding of the Texas business landscape, we strive to deliver exceptional results for our clients in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Dallas County, TX",
+ "Tarrant County, TX",
+ "Collin County, TX",
+ "Denton County, TX",
+ "Harris County, TX",
+ "Bexar County, TX",
+ "Travis County, TX"
+ ],
+ "offeredServices": "Services Offered
- Business valuation
- Market analysis
- Buyer and seller representation
- Due diligence assistance
- Negotiations and closing support
"
+ },
+ {
+ "id": "1s2t3u4v-5w6x-7y8z-9a0b-1c2d3e4f5g6h",
+ "firstname": "Amanda",
+ "lastname": "Taylor",
+ "email": "amanda.taylor@lonestarbizbrokers.com",
+ "licensedIn": [
+ {
+ "name": "Texas",
+ "value": "987654"
+ }
+ ],
+ "phoneNumber": "(512) 555-4321",
+ "companyLocation": "Austin - TX",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Lone Star Business Brokers",
+ "companyWebsite": "https://www.lonestarbizbrokers.com",
+ "description": "Helping business owners in Texas sell their businesses and assisting buyers in finding the perfect opportunity.",
+ "companyOverview": "Lone Star Business Brokers is a trusted business brokerage firm serving the Texas market. Our team of experienced brokers is committed to providing personalized service and expert guidance to ensure a smooth and successful transaction for our clients.
",
+ "areasServed": [
+ "Travis County, TX",
+ "Williamson County, TX",
+ "Hays County, TX",
+ "Bastrop County, TX",
+ "Caldwell County, TX"
+ ],
+ "offeredServices": "Services Offered
- Business listings
- Buyer search and qualification
- Due diligence support
- Financing assistance
- Closing coordination
"
+ },
+ {
+ "id": "7i8j9k0l-1m2n-3o4p-5q6r-7s8t9u0v1w2x",
+ "firstname": "William",
+ "lastname": "Anderson",
+ "email": "william@biztexas.com",
+ "licensedIn": [
+ {
+ "name": "Texas",
+ "value": "210987"
+ }
+ ],
+ "phoneNumber": "(210) 555-6543",
+ "companyLocation": "San Antonio - TX",
+ "hasCompanyLogo": false,
+ "hasProfile": true,
+ "companyName": "BizTexas",
+ "companyWebsite": "https://www.biztexas.com",
+ "description": "Experienced business brokers specializing in the sale of businesses in the San Antonio area.",
+ "companyOverview": "BizTexas is a leading business brokerage firm serving the San Antonio market. With a team of seasoned professionals and a proven track record of success, we are dedicated to helping our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Bexar County, TX",
+ "Comal County, TX",
+ "Guadalupe County, TX",
+ "Kendall County, TX",
+ "Medina County, TX"
+ ],
+ "offeredServices": "Services Offered
- Business valuation
- Marketing and advertising
- Buyer screening and qualification
- Negotiations and deal structuring
- Due diligence coordination
- Closing support
"
+ },
+ {
+ "id": "3y4z5a6b-7c8d-9e0f-1g2h-3i4j5k6l7m8n",
+ "firstname": "Elizabeth",
+ "lastname": "Martinez",
+ "email": "elizabeth.martinez@texasbusinesssales.com",
+ "licensedIn": [
+ {
+ "name": "Texas",
+ "value": "543210"
+ }
+ ],
+ "phoneNumber": "(281) 555-9012",
+ "companyLocation": "Houston - TX",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Texas Business Sales",
+ "companyWebsite": "https://www.texasbusinesssales.com",
+ "description": "Helping business owners in the Houston area sell their businesses and assisting buyers in finding the perfect acquisition opportunity.",
+ "companyOverview": "Texas Business Sales is a trusted business brokerage firm serving the Houston market. Our team of experienced brokers is dedicated to providing expert guidance and personalized service to help our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Harris County, TX",
+ "Fort Bend County, TX",
+ "Montgomery County, TX",
+ "Brazoria County, TX",
+ "Galveston County, TX"
+ ],
+ "offeredServices": "Services Offered
- Business valuation
- Market analysis
- Buyer search and qualification
- Due diligence coordination
- Financing assistance
- Closing support
"
+ },
+ {
+ "id": "9o0p1q2r-3s4t-5u6v-7w8x-9y0z1a2b3c4d",
+ "firstname": "Daniel",
+ "lastname": "Thompson",
+ "email": "daniel@bizbrokersdfw.com",
+ "licensedIn": [
+ {
+ "name": "Texas",
+ "value": "876543"
+ }
+ ],
+ "phoneNumber": "(817) 555-3456",
+ "companyLocation": "Fort Worth - TX",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Business Brokers DFW",
+ "companyWebsite": "https://www.bizbrokersdfw.com",
+ "description": "Experienced business brokers helping clients buy and sell businesses in the Dallas-Fort Worth area.",
+ "companyOverview": "Business Brokers DFW is a leading business brokerage firm serving the Dallas-Fort Worth market. With a team of seasoned professionals and a commitment to client satisfaction, we strive to deliver exceptional results for our clients in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Tarrant County, TX",
+ "Dallas County, TX",
+ "Collin County, TX",
+ "Denton County, TX",
+ "Johnson County, TX"
+ ],
+ "offeredServices": "Services Offered
- Business valuation
- Market analysis
- Buyer and seller representation
- Due diligence assistance
- Negotiations and closing support
"
+ },
+ {
+ "id": "5e6f7g8h-9i0j-1k2l-3m4n-5o6p7q8r9s0t",
+ "firstname": "Olivia",
+ "lastname": "Harris",
+ "email": "olivia@businessbrokerstx.com",
+ "licensedIn": [
+ {
+ "name": "Texas",
+ "value": "109876"
+ }
+ ],
+ "phoneNumber": "(903) 555-7890",
+ "companyLocation": "Tyler - TX",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Business Brokers of Texas",
+ "companyWebsite": "https://www.businessbrokerstx.com",
+ "description": "Helping business owners in East Texas sell their businesses and assisting buyers in finding the perfect opportunity.",
+ "companyOverview": "Business Brokers of Texas is a trusted business brokerage firm serving the East Texas market. Our team of experienced brokers is committed to providing personalized service and expert guidance to ensure a smooth and successful transaction for our clients.
",
+ "areasServed": [
+ "Smith County, TX",
+ "Gregg County, TX",
+ "Henderson County, TX",
+ "Cherokee County, TX",
+ "Rusk County, TX"
+ ],
+ "offeredServices": "Services Offered
- Business listings
- Buyer search and qualification
- Due diligence support
- Financing assistance
- Closing coordination
"
+ },
+ {
+ "id": "1u2v3w4x-5y6z-7a8b-9c0d-1e2f3g4h5i6j",
+ "firstname": "Matthew",
+ "lastname": "Lee",
+ "email": "matthew.lee@texasbizadvisors.com",
+ "licensedIn": [
+ {
+ "name": "Texas",
+ "value": "432109"
+ }
+ ],
+ "phoneNumber": "(806) 555-1234",
+ "companyLocation": "Lubbock - TX",
+ "hasCompanyLogo": false,
+ "hasProfile": true,
+ "companyName": "Texas Business Advisors",
+ "companyWebsite": "https://www.texasbizadvisors.com",
+ "description": "Experienced business brokers specializing in the sale of businesses in the Lubbock area.",
+ "companyOverview": "Texas Business Advisors is a leading business brokerage firm serving the Lubbock market. With a team of seasoned professionals and a proven track record of success, we are dedicated to helping our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Lubbock County, TX",
+ "Hale County, TX",
+ "Hockley County, TX",
+ "Terry County, TX",
+ "Lynn County, TX"
+ ],
+ "offeredServices": "Services Offered
- Business valuation
- Marketing and advertising
- Buyer screening and qualification
- Negotiations and deal structuring
- Due diligence coordination
- Closing support
"
+ },
+ {
+ "id": "7k8l9m0n-1o2p-3q4r-5s6t-7u8v9w0x1y2z",
+ "firstname": "Sophia",
+ "lastname": "Wright",
+ "email": "sophia.wright@texasbizconnection.com",
+ "licensedIn": [
+ {
+ "name": "Texas",
+ "value": "765432"
+ }
+ ],
+ "phoneNumber": "(956) 555-5678",
+ "companyLocation": "McAllen - TX",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Texas Business Connection",
+ "companyWebsite": "https://www.texasbizconnection.com",
+ "description": "Helping business owners in the Rio Grande Valley sell their businesses and assisting buyers in finding the perfect acquisition opportunity.",
+ "companyOverview": "Texas Business Connection is a trusted business brokerage firm serving the Rio Grande Valley market. Our team of experienced brokers is dedicated to providing expert guidance and personalized service to help our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Hidalgo County, TX",
+ "Cameron County, TX",
+ "Starr County, TX",
+ "Willacy County, TX",
+ "Zapata County, TX"
+ ],
+ "offeredServices": "Services Offered
- Business valuation
- Market analysis
- Buyer search and qualification
- Due diligence coordination
- Financing assistance
- Closing support
"
+ },
+ {
+ "id": "3a4b5c6d-7e8f-9g0h-1i2j-3k4l5m6n7o8p",
+ "firstname": "Ethan",
+ "lastname": "Walker",
+ "email": "ethan@elpasobizbrokers.com",
+ "licensedIn": [
+ {
+ "name": "Texas",
+ "value": "098765"
+ }
+ ],
+ "phoneNumber": "(915) 555-2109",
+ "companyLocation": "El Paso - TX",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "El Paso Business Brokers",
+ "companyWebsite": "https://www.elpasobizbrokers.com",
+ "description": "Experienced business brokers helping clients buy and sell businesses in the El Paso area.",
+ "companyOverview": "El Paso Business Brokers is a leading business brokerage firm serving the El Paso market. With a team of seasoned professionals and a commitment to client satisfaction, we strive to deliver exceptional results for our clients in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "El Paso County, TX",
+ "Hudspeth County, TX",
+ "Culberson County, TX",
+ "Jeff Davis County, TX",
+ "Presidio County, TX"
+ ],
+ "offeredServices": "Services Offered
- Business valuation
- Market analysis
- Buyer and seller representation
- Due diligence assistance
- Negotiations and closing support
"
+ },
+ {
+ "id": "9q0r1s2t-3u4v-5w6x-7y8z-9a0b1c2d3e4f",
+ "firstname": "Ava",
+ "lastname": "Cooper",
+ "email": "ava@texomabizsales.com",
+ "licensedIn": [
+ {
+ "name": "Texas",
+ "value": "432109"
+ }
+ ],
+ "phoneNumber": "(903) 555-8765",
+ "companyLocation": "Sherman - TX",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Texoma Business Sales",
+ "companyWebsite": "https://www.texomabizsales.com",
+ "description": "Helping business owners in the Texoma area sell their businesses and assisting buyers in finding the perfect opportunity.",
+ "companyOverview": "Texoma Business Sales is a trusted business brokerage firm serving the Texoma area. Our team of experienced brokers is committed to providing personalized service and expert guidance to ensure a smooth and successful transaction for our clients.
",
+ "areasServed": [
+ "Grayson County, TX",
+ "Fannin County, TX",
+ "Cooke County, TX",
+ "Bryan County, OK",
+ "Marshall County, OK"
+ ],
+ "offeredServices": "Services Offered
- Business listings
- Buyer search and qualification
- Due diligence support
- Financing assistance
- Closing coordination
"
+ },
+ {
+ "id": "8a2b1c5d-7e6f-4g3h-9i1j-2k3l4m5n6o7p",
+ "firstname": "Sarah",
+ "lastname": "Thompson",
+ "email": "sarah.thompson@businessbrokers.com",
+ "licensedIn": [
+ {
+ "name": "California",
+ "value": "123456"
+ },
+ {
+ "name": "Nevada",
+ "value": "789012"
+ }
+ ],
+ "phoneNumber": "(310) 555-1234",
+ "companyLocation": "Los Angeles - CA",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Business Brokers Inc.",
+ "companyWebsite": "https://www.businessbrokers.com",
+ "description": "Experienced business brokers helping clients buy and sell businesses in California and Nevada.",
+ "companyOverview": "Business Brokers Inc. is a team of experienced professionals dedicated to helping clients navigate the complex process of buying and selling businesses. With a strong focus on client satisfaction and a deep understanding of the local markets in California and Nevada, we strive to deliver exceptional results for our clients.
",
+ "areasServed": [
+ "Los Angeles County, CA",
+ "Orange County, CA",
+ "San Diego County, CA",
+ "Clark County, NV",
+ "Washoe County, NV"
+ ],
+ "offeredServices": "Services Offered
- Business valuation
- Market analysis
- Buyer and seller representation
- Due diligence assistance
- Negotiations and closing support
"
+ },
+ {
+ "id": "4q5r6s7t-8u9v-0w1x-2y3z-4a5b6c7d8e9f",
+ "firstname": "Michael",
+ "lastname": "Johnson",
+ "email": "michael@bizbrokers.net",
+ "licensedIn": [
+ {
+ "name": "Florida",
+ "value": "654321"
+ }
+ ],
+ "phoneNumber": "(407) 555-9876",
+ "companyLocation": "Orlando - FL",
+ "hasCompanyLogo": false,
+ "hasProfile": true,
+ "companyName": "BizBrokers",
+ "companyWebsite": "https://www.bizbrokers.net",
+ "description": "Helping business owners in Florida sell their businesses and assisting buyers in finding the perfect opportunity.",
+ "companyOverview": "At BizBrokers, we understand the unique challenges of buying and selling businesses in the Florida market. Our team of experienced brokers is committed to providing personalized service and expert guidance to ensure a smooth and successful transaction for our clients.
",
+ "areasServed": [
+ "Orange County, FL",
+ "Seminole County, FL",
+ "Osceola County, FL",
+ "Brevard County, FL",
+ "Volusia County, FL"
+ ],
+ "offeredServices": "Services Offered
- Business listings
- Buyer search and qualification
- Due diligence support
- Financing assistance
- Closing coordination
"
+ },
+ {
+ "id": "1g2h3i4j-5k6l-7m8n-9o0p-1q2r3s4t5u6v",
+ "firstname": "Emily",
+ "lastname": "Davis",
+ "email": "emily.davis@bizsaleexperts.com",
+ "licensedIn": [
+ {
+ "name": "New York",
+ "value": "987654"
+ },
+ {
+ "name": "New Jersey",
+ "value": "210987"
+ }
+ ],
+ "phoneNumber": "(212) 555-4321",
+ "companyLocation": "New York City - NY",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Business Sale Experts",
+ "companyWebsite": "https://www.bizsaleexperts.com",
+ "description": "Experienced business brokers specializing in the sale of businesses in the New York and New Jersey area.",
+ "companyOverview": "Business Sale Experts is a leading business brokerage firm serving the New York and New Jersey markets. With a team of seasoned professionals and a proven track record of success, we are dedicated to helping our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "New York County, NY",
+ "Kings County, NY",
+ "Queens County, NY",
+ "Bronx County, NY",
+ "Hudson County, NJ",
+ "Bergen County, NJ",
+ "Essex County, NJ"
+ ],
+ "offeredServices": "Services Offered
- Business valuation
- Marketing and advertising
- Buyer screening and qualification
- Negotiations and deal structuring
- Due diligence coordination
- Closing support
"
+ },
+ {
+ "id": "7w8x9y0z-1a2b-3c4d-5e6f-7g8h9i0j1k2l",
+ "firstname": "David",
+ "lastname": "Wilson",
+ "email": "david.wilson@bizacquisitions.com",
+ "licensedIn": [
+ {
+ "name": "Texas",
+ "value": "543210"
+ }
+ ],
+ "phoneNumber": "(713) 555-8765",
+ "companyLocation": "Houston - TX",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Business Acquisitions Ltd.",
+ "companyWebsite": "https://www.bizacquisitions.com",
+ "description": "Helping business owners in Texas sell their businesses and assisting buyers in finding the perfect acquisition opportunity.",
+ "companyOverview": "Business Acquisitions Ltd. is a leading business brokerage firm serving the Texas market. Our team of experienced brokers is dedicated to providing expert guidance and personalized service to help our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Harris County, TX",
+ "Dallas County, TX",
+ "Tarrant County, TX",
+ "Bexar County, TX",
+ "Travis County, TX"
+ ],
+ "offeredServices": "Services Offered
- Business valuation
- Market analysis
- Buyer search and qualification
- Due diligence coordination
- Financing assistance
- Closing support
"
+ },
+ {
+ "id": "3m4n5o6p-7q8r-9s0t-1u2v-3w4x5y6z7a8b",
+ "firstname": "Jessica",
+ "lastname": "Brown",
+ "email": "jessica@bizbrokerexperts.com",
+ "licensedIn": [
+ {
+ "name": "Illinois",
+ "value": "876543"
+ },
+ {
+ "name": "Wisconsin",
+ "value": "109876"
+ }
+ ],
+ "phoneNumber": "(312) 555-2109",
+ "companyLocation": "Chicago - IL",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Business Broker Experts",
+ "companyWebsite": "https://www.bizbrokerexperts.com",
+ "description": "Experienced business brokers helping clients buy and sell businesses in Illinois and Wisconsin.",
+ "companyOverview": "Business Broker Experts is a leading business brokerage firm serving the Illinois and Wisconsin markets. With a team of seasoned professionals and a commitment to client satisfaction, we strive to deliver exceptional results for our clients in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Cook County, IL",
+ "DuPage County, IL",
+ "Lake County, IL",
+ "Milwaukee County, WI",
+ "Dane County, WI"
+ ],
+ "offeredServices": "Services Offered
- Business valuation
- Market analysis
- Buyer and seller representation
- Due diligence assistance
- Negotiations and closing support
"
+ },
+ {
+ "id": "5g6h7i8j-9k0l-1m2n-3o4p-5q6r7s8t9u0v",
+ "firstname": "Liam",
+ "lastname": "Patel",
+ "email": "liam.patel@sunbeltbizbrokers.com",
+ "licensedIn": [
+ {
+ "name": "Texas",
+ "value": "765432"
+ },
+ {
+ "name": "Louisiana",
+ "value": "987654"
+ }
+ ],
+ "phoneNumber": "(504) 555-1234",
+ "companyLocation": "New Orleans - LA",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Sunbelt Business Brokers",
+ "companyWebsite": "https://www.sunbeltbizbrokers.com",
+ "description": "Experienced business brokers helping clients buy and sell businesses in Texas and Louisiana.",
+ "companyOverview": "Sunbelt Business Brokers is a leading business brokerage firm serving the Texas and Louisiana markets. With a team of seasoned professionals and a commitment to client satisfaction, we strive to deliver exceptional results for our clients in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Orleans Parish, LA",
+ "Jefferson Parish, LA",
+ "St. Tammany Parish, LA",
+ "Harris County, TX",
+ "Dallas County, TX"
+ ],
+ "offeredServices": "Services Offered
- Business valuation
- Market analysis
- Buyer and seller representation
- Due diligence assistance
- Negotiations and closing support
"
+ },
+ {
+ "id": "1w2x3y4z-5a6b-7c8d-9e0f-1g2h3i4j5k6l",
+ "firstname": "Emma",
+ "lastname": "Gonzalez",
+ "email": "emma@newmexicobusinessbrokers.com",
+ "licensedIn": [
+ {
+ "name": "New Mexico",
+ "value": "543210"
+ }
+ ],
+ "phoneNumber": "(505) 555-7890",
+ "companyLocation": "Albuquerque - NM",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "New Mexico Business Brokers",
+ "companyWebsite": "https://www.newmexicobusinessbrokers.com",
+ "description": "Helping business owners in New Mexico sell their businesses and assisting buyers in finding the perfect opportunity.",
+ "companyOverview": "New Mexico Business Brokers is a trusted business brokerage firm serving the New Mexico market. Our team of experienced brokers is committed to providing personalized service and expert guidance to ensure a smooth and successful transaction for our clients.
",
+ "areasServed": [
+ "Bernalillo County, NM",
+ "Sandoval County, NM",
+ "Santa Fe County, NM",
+ "Doña Ana County, NM",
+ "San Juan County, NM"
+ ],
+ "offeredServices": "Services Offered
- Business listings
- Buyer search and qualification
- Due diligence support
- Financing assistance
- Closing coordination
"
+ },
+ {
+ "id": "7m8n9o0p-1q2r-3s4t-5u6v-7w8x9y0z1a2b",
+ "firstname": "Noah",
+ "lastname": "Kim",
+ "email": "noah@oklahomabizsales.com",
+ "licensedIn": [
+ {
+ "name": "Oklahoma",
+ "value": "876543"
+ }
+ ],
+ "phoneNumber": "(405) 555-4321",
+ "companyLocation": "Oklahoma City - OK",
+ "hasCompanyLogo": false,
+ "hasProfile": true,
+ "companyName": "Oklahoma Business Sales",
+ "companyWebsite": "https://www.oklahomabizsales.com",
+ "description": "Experienced business brokers specializing in the sale of businesses in the Oklahoma City area.",
+ "companyOverview": "Oklahoma Business Sales is a leading business brokerage firm serving the Oklahoma City market. With a team of seasoned professionals and a proven track record of success, we are dedicated to helping our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Oklahoma County, OK",
+ "Cleveland County, OK",
+ "Canadian County, OK",
+ "Logan County, OK",
+ "Pottawatomie County, OK"
+ ],
+ "offeredServices": "Services Offered
- Business valuation
- Marketing and advertising
- Buyer screening and qualification
- Negotiations and deal structuring
- Due diligence coordination
- Closing support
"
+ },
+ {
+ "id": "3c4d5e6f-7g8h-9i0j-1k2l-3m4n5o6p7q8r",
+ "firstname": "Isabella",
+ "lastname": "Garcia",
+ "email": "isabella.garcia@arkansasbizconnect.com",
+ "licensedIn": [
+ {
+ "name": "Arkansas",
+ "value": "210987"
+ }
+ ],
+ "phoneNumber": "(501) 555-6543",
+ "companyLocation": "Little Rock - AR",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Arkansas Business Connect",
+ "companyWebsite": "https://www.arkansasbizconnect.com",
+ "description": "Helping business owners in Arkansas sell their businesses and assisting buyers in finding the perfect acquisition opportunity.",
+ "companyOverview": "Arkansas Business Connect is a trusted business brokerage firm serving the Arkansas market. Our team of experienced brokers is dedicated to providing expert guidance and personalized service to help our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Pulaski County, AR",
+ "Faulkner County, AR",
+ "Saline County, AR",
+ "Garland County, AR",
+ "Washington County, AR"
+ ],
+ "offeredServices": "Services Offered
- Business valuation
- Market analysis
- Buyer search and qualification
- Due diligence coordination
- Financing assistance
- Closing support
"
+ },
+ {
+ "id": "9s0t1u2v-3w4x-5y6z-7a8b-9c0d1e2f3g4h",
+ "firstname": "Mason",
+ "lastname": "Johnson",
+ "email": "mason@msbizbrokers.com",
+ "licensedIn": [
+ {
+ "name": "Mississippi",
+ "value": "543210"
+ }
+ ],
+ "phoneNumber": "(601) 555-9012",
+ "companyLocation": "Jackson - MS",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Mississippi Business Brokers",
+ "companyWebsite": "https://www.msbizbrokers.com",
+ "description": "Experienced business brokers helping clients buy and sell businesses in Mississippi.",
+ "companyOverview": "Mississippi Business Brokers is a leading business brokerage firm serving the Mississippi market. With a team of seasoned professionals and a commitment to client satisfaction, we strive to deliver exceptional results for our clients in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Hinds County, MS",
+ "Rankin County, MS",
+ "Madison County, MS",
+ "DeSoto County, MS",
+ "Harrison County, MS"
+ ],
+ "offeredServices": "Services Offered
- Business valuation
- Market analysis
- Buyer and seller representation
- Due diligence assistance
- Negotiations and closing support
"
+ },
+ {
+ "id": "5i6j7k8l-9m0n-1o2p-3q4r-5s6t7u8v9w0x",
+ "firstname": "Evelyn",
+ "lastname": "Davis",
+ "email": "evelyn.davis@azbizsales.com",
+ "licensedIn": [
+ {
+ "name": "Arizona",
+ "value": "876543"
+ }
+ ],
+ "phoneNumber": "(602) 555-3456",
+ "companyLocation": "Phoenix - AZ",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Arizona Business Sales",
+ "companyWebsite": "https://www.azbizsales.com",
+ "description": "Helping business owners in Arizona sell their businesses and assisting buyers in finding the perfect opportunity.",
+ "companyOverview": "Arizona Business Sales is a trusted business brokerage firm serving the Arizona market. Our team of experienced brokers is committed to providing personalized service and expert guidance to ensure a smooth and successful transaction for our clients.
",
+ "areasServed": [
+ "Maricopa County, AZ",
+ "Pima County, AZ",
+ "Pinal County, AZ",
+ "Yavapai County, AZ",
+ "Mohave County, AZ"
+ ],
+ "offeredServices": "Services Offered
- Business listings
- Buyer search and qualification
- Due diligence support
- Financing assistance
- Closing coordination
"
+ },
+ {
+ "id": "1y2z3a4b-5c6d-7e8f-9g0h-1i2j3k4l5m6n",
+ "firstname": "Harper",
+ "lastname": "Anderson",
+ "email": "harper@bamabizsales.com",
+ "licensedIn": [
+ {
+ "name": "Alabama",
+ "value": "210987"
+ }
+ ],
+ "phoneNumber": "(205) 555-7890",
+ "companyLocation": "Birmingham - AL",
+ "hasCompanyLogo": false,
+ "hasProfile": true,
+ "companyName": "Alabama Business Sales",
+ "companyWebsite": "https://www.bamabizsales.com",
+ "description": "Experienced business brokers specializing in the sale of businesses in the Birmingham area.",
+ "companyOverview": "Alabama Business Sales is a leading business brokerage firm serving the Birmingham market. With a team of seasoned professionals and a proven track record of success, we are dedicated to helping our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Jefferson County, AL",
+ "Shelby County, AL",
+ "Tuscaloosa County, AL",
+ "Madison County, AL",
+ "Mobile County, AL"
+ ],
+ "offeredServices": "Services Offered
- Business valuation
- Marketing and advertising
- Buyer screening and qualification
- Negotiations and deal structuring
- Due diligence coordination
- Closing support
"
+ },
+ {
+ "id": "7o8p9q0r-1s2t-3u4v-5w6x-7y8z9a0b1c2d",
+ "firstname": "Abigail",
+ "lastname": "Martinez",
+ "email": "abigail.martinez@georgiabizconnect.com",
+ "licensedIn": [
+ {
+ "name": "Georgia",
+ "value": "543210"
+ }
+ ],
+ "phoneNumber": "(404) 555-1234",
+ "companyLocation": "Atlanta - GA",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Georgia Business Connect",
+ "companyWebsite": "https://www.georgiabizconnect.com",
+ "description": "Helping business owners in Georgia sell their businesses and assisting buyers in finding the perfect acquisition opportunity.",
+ "companyOverview": "Georgia Business Connect is a trusted business brokerage firm serving the Georgia market. Our team of experienced brokers is dedicated to providing expert guidance and personalized service to help our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Fulton County, GA",
+ "Gwinnett County, GA",
+ "Cobb County, GA",
+ "DeKalb County, GA",
+ "Chatham County, GA"
+ ],
+ "offeredServices": "Services Offered
- Business valuation
- Market analysis
- Buyer search and qualification
- Due diligence coordination
- Financing assistance
- Closing support
"
+ },
+ {
+ "id": "3e4f5g6h-7i8j-9k0l-1m2n-3o4p5q6r7s8t",
+ "firstname": "Benjamin",
+ "lastname": "Robinson",
+ "email": "benjamin.robinson@gulfcoastbizbrokers.com",
+ "licensedIn": [
+ {
+ "name": "Louisiana",
+ "value": "876543"
+ },
+ {
+ "name": "Mississippi",
+ "value": "210987"
+ }
+ ],
+ "phoneNumber": "(228) 555-5678",
+ "companyLocation": "Gulfport - MS",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Gulf Coast Business Brokers",
+ "companyWebsite": "https://www.gulfcoastbizbrokers.com",
+ "description": "Experienced business brokers helping clients buy and sell businesses along the Gulf Coast of Louisiana and Mississippi.",
+ "companyOverview": "Gulf Coast Business Brokers is a leading business brokerage firm serving the Louisiana and Mississippi Gulf Coast markets. With a team of seasoned professionals and a commitment to client satisfaction, we strive to deliver exceptional results for our clients in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Harrison County, MS",
+ "Jackson County, MS",
+ "Hancock County, MS",
+ "St. Tammany Parish, LA",
+ "Jefferson Parish, LA"
+ ],
+ "offeredServices": "Services Offered
- Business valuation
- Market analysis
- Buyer and seller representation
- Due diligence assistance
- Negotiations and closing support
"
+ },
+ {
+ "id": "9u0v1w2x-3y4z-5a6b-7c8d-9e0f1g2h3i4j",
+ "firstname": "Charlotte",
+ "lastname": "Hernandez",
+ "email": "charlotte@oklabizsales.com",
+ "licensedIn": [
+ {
+ "name": "Oklahoma",
+ "value": "543210"
+ }
+ ],
+ "phoneNumber": "(918) 555-9012",
+ "companyLocation": "Tulsa - OK",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Oklahoma Business Sales",
+ "companyWebsite": "https://www.oklabizsales.com",
+ "description": "Helping business owners in the Tulsa area sell their businesses and assisting buyers in finding the perfect opportunity.",
+ "companyOverview": "Oklahoma Business Sales is a trusted business brokerage firm serving the Tulsa market. Our team of experienced brokers is committed to providing personalized service and expert guidance to ensure a smooth and successful transaction for our clients.
",
+ "areasServed": [
+ "Tulsa County, OK",
+ "Rogers County, OK",
+ "Wagoner County, OK",
+ "Creek County, OK",
+ "Osage County, OK"
+ ],
+ "offeredServices": "Services Offered
- Business listings
- Buyer search and qualification
- Due diligence support
- Financing assistance
- Closing coordination
"
+ },
+ {
+ "id": "5k6l7m8n-9o0p-1q2r-3s4t-5u6v7w8x9y0z",
+ "firstname": "Elijah",
+ "lastname": "Nguyen",
+ "email": "elijah.nguyen@lonestarbizsales.com",
+ "licensedIn": [
+ {
+ "name": "Texas",
+ "value": "109876"
+ }
+ ],
+ "phoneNumber": "(281) 555-3456",
+ "companyLocation": "Sugar Land - TX",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Lone Star Business Sales",
+ "companyWebsite": "https://www.lonestarbizsales.com",
+ "description": "Experienced business brokers specializing in the sale of businesses in the Houston metropolitan area.",
+ "companyOverview": "Lone Star Business Sales is a leading business brokerage firm serving the Houston metropolitan area. With a team of seasoned professionals and a proven track record of success, we are dedicated to helping our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Fort Bend County, TX",
+ "Harris County, TX",
+ "Montgomery County, TX",
+ "Brazoria County, TX",
+ "Galveston County, TX"
+ ],
+ "offeredServices": "- Comprehensive business valuation
- Targeted marketing and advertising
- Thorough buyer screening and qualification
- Skilled negotiations and deal structuring
- Detailed due diligence coordination
- Professional closing support
"
+ },
+ {
+ "id": "1a2b3c4d-5e6f-7g8h-9i0j-1k2l3m4n5o6p",
+ "firstname": "Avery",
+ "lastname": "Brown",
+ "email": "avery.brown@nmbizsales.com",
+ "licensedIn": [
+ {
+ "name": "New Mexico",
+ "value": "432109"
+ }
+ ],
+ "phoneNumber": "(575) 555-7890",
+ "companyLocation": "Las Cruces - NM",
+ "hasCompanyLogo": false,
+ "hasProfile": true,
+ "companyName": "New Mexico Business Sales",
+ "companyWebsite": "https://www.nmbizsales.com",
+ "description": "Helping business owners in southern New Mexico sell their businesses and assisting buyers in finding the perfect opportunity.",
+ "companyOverview": "New Mexico Business Sales is a trusted business brokerage firm serving the southern New Mexico market. Our team of experienced brokers is committed to providing personalized service and expert guidance to ensure a smooth and successful transaction for our clients.
",
+ "areasServed": [
+ "Doña Ana County, NM",
+ "Otero County, NM",
+ "Luna County, NM",
+ "Sierra County, NM",
+ "Grant County, NM"
+ ],
+ "offeredServices": "What We Offer
- Business listings
- Buyer search and qualification
- Due diligence support
- Financing assistance
- Closing coordination
"
+ },
+ {
+ "id": "7q8r9s0t-1u2v-3w4x-5y6z-7a8b9c0d1e2f",
+ "firstname": "Scarlett",
+ "lastname": "Patel",
+ "email": "scarlett@arkanbizsales.com",
+ "licensedIn": [
+ {
+ "name": "Arkansas",
+ "value": "765432"
+ }
+ ],
+ "phoneNumber": "(479) 555-1234",
+ "companyLocation": "Fayetteville - AR",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Arkansas Business Sales",
+ "companyWebsite": "https://www.arkanbizsales.com",
+ "description": "Experienced business brokers helping clients buy and sell businesses in northwest Arkansas.",
+ "companyOverview": "Arkansas Business Sales is a leading business brokerage firm serving the northwest Arkansas market. With a team of seasoned professionals and a commitment to client satisfaction, we strive to deliver exceptional results for our clients in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Washington County, AR",
+ "Benton County, AR",
+ "Madison County, AR",
+ "Carroll County, AR",
+ "Boone County, AR"
+ ],
+ "offeredServices": "- Comprehensive business valuation services
- Detailed market analysis
- Dedicated buyer and seller representation
- Thorough due diligence assistance
- Skilled negotiations and closing support
"
+ },
+ {
+ "id": "3g4h5i6j-7k8l-9m0n-1o2p-3q4r5s6t7u8v",
+ "firstname": "Levi",
+ "lastname": "Kim",
+ "email": "levi.kim@magnoliabizconnect.com",
+ "licensedIn": [
+ {
+ "name": "Mississippi",
+ "value": "098765"
+ }
+ ],
+ "phoneNumber": "(662) 555-5678",
+ "companyLocation": "Oxford - MS",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Magnolia Business Connect",
+ "companyWebsite": "https://www.magnoliabizconnect.com",
+ "description": "Helping business owners in northern Mississippi sell their businesses and assisting buyers in finding the perfect acquisition opportunity.",
+ "companyOverview": "Magnolia Business Connect is a trusted business brokerage firm serving the northern Mississippi market. Our team of experienced brokers is dedicated to providing expert guidance and personalized service to help our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Lafayette County, MS",
+ "Lee County, MS",
+ "Pontotoc County, MS",
+ "Union County, MS",
+ "Tate County, MS"
+ ],
+ "offeredServices": "Our Services Include
- Business valuation
- Market analysis
- Buyer search and qualification
- Due diligence coordination
- Financing assistance
- Closing support
"
+ },
+ {
+ "id": "9w0x1y2z-3a4b-5c6d-7e8f-9g0h1i2j3k4l",
+ "firstname": "Mila",
+ "lastname": "Singh",
+ "email": "mila.singh@pelicanstatebiz.com",
+ "licensedIn": [
+ {
+ "name": "Louisiana",
+ "value": "432109"
+ }
+ ],
+ "phoneNumber": "(337) 555-9012",
+ "companyLocation": "Lafayette - LA",
+ "hasCompanyLogo": false,
+ "hasProfile": true,
+ "companyName": "Pelican State Business",
+ "companyWebsite": "https://www.pelicanstatebiz.com",
+ "description": "Experienced business brokers specializing in the sale of businesses in the Acadiana region of Louisiana.",
+ "companyOverview": "Pelican State Business is a leading business brokerage firm serving the Acadiana region of Louisiana. With a team of seasoned professionals and a proven track record of success, we are dedicated to helping our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Lafayette Parish, LA",
+ "St. Martin Parish, LA",
+ "Iberia Parish, LA",
+ "Vermilion Parish, LA",
+ "St. Landry Parish, LA"
+ ],
+ "offeredServices": "- Comprehensive business valuation
- Targeted marketing and advertising
- Thorough buyer screening and qualification
- Skilled negotiations and deal structuring
- Detailed due diligence coordination
- Professional closing support
"
+ },
+ {
+ "id": "5m6n7o8p-9q0r-1s2t-3u4v-5w6x7y8z9a0b",
+ "firstname": "Ezra",
+ "lastname": "Garcia",
+ "email": "ezra.garcia@grandcanyonbiz.com",
+ "licensedIn": [
+ {
+ "name": "Arizona",
+ "value": "765432"
+ }
+ ],
+ "phoneNumber": "(928) 555-3456",
+ "companyLocation": "Flagstaff - AZ",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Grand Canyon Business",
+ "companyWebsite": "https://www.grandcanyonbiz.com",
+ "description": "Helping business owners in northern Arizona sell their businesses and assisting buyers in finding the perfect opportunity.",
+ "companyOverview": "Grand Canyon Business is a trusted business brokerage firm serving the northern Arizona market. Our team of experienced brokers is committed to providing personalized service and expert guidance to ensure a smooth and successful transaction for our clients.
",
+ "areasServed": [
+ "Coconino County, AZ",
+ "Yavapai County, AZ",
+ "Navajo County, AZ",
+ "Apache County, AZ",
+ "Mohave County, AZ"
+ ],
+ "offeredServices": "Services We Provide
- Business listings
- Buyer search and qualification
- Due diligence support
- Financing assistance
- Closing coordination
"
+ },
+ {
+ "id": "1c2d3e4f-5g6h-7i8j-9k0l-1m2n3o4p5q6r",
+ "firstname": "Nora",
+ "lastname": "Lee",
+ "email": "nora@alabamabizconnect.com",
+ "licensedIn": [
+ {
+ "name": "Alabama",
+ "value": "098765"
+ }
+ ],
+ "phoneNumber": "(251) 555-7890",
+ "companyLocation": "Mobile - AL",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Alabama Business Connect",
+ "companyWebsite": "https://www.alabamabizconnect.com",
+ "description": "Experienced business brokers helping clients buy and sell businesses in southern Alabama.",
+ "companyOverview": "Alabama Business Connect is a leading business brokerage firm serving the southern Alabama market. With a team of seasoned professionals and a commitment to client satisfaction, we strive to deliver exceptional results for our clients in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Mobile County, AL",
+ "Baldwin County, AL",
+ "Escambia County, AL",
+ "Monroe County, AL",
+ "Clarke County, AL"
+ ],
+ "offeredServices": "- Comprehensive business valuation services
- Detailed market analysis
- Dedicated buyer and seller representation
- Thorough due diligence assistance
- Skilled negotiations and closing support
"
+ },
+ {
+ "id": "7s8t9u0v-1w2x-3y4z-5a6b-7c8d9e0f1g2h",
+ "firstname": "Lucas",
+ "lastname": "Patel",
+ "email": "lucas.patel@peachtreebiz.com",
+ "licensedIn": [
+ {
+ "name": "Georgia",
+ "value": "432109"
+ }
+ ],
+ "phoneNumber": "(912) 555-1234",
+ "companyLocation": "Savannah - GA",
+ "hasCompanyLogo": false,
+ "hasProfile": true,
+ "companyName": "Peachtree Business",
+ "companyWebsite": "https://www.peachtreebiz.com",
+ "description": "Helping business owners in coastal Georgia sell their businesses and assisting buyers in finding the perfect acquisition opportunity.",
+ "companyOverview": "Peachtree Business is a trusted business brokerage firm serving the coastal Georgia market. Our team of experienced brokers is dedicated to providing expert guidance and personalized service to help our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Chatham County, GA",
+ "Glynn County, GA",
+ "Liberty County, GA",
+ "McIntosh County, GA",
+ "Bryan County, GA"
+ ],
+ "offeredServices": "What We Offer
- Business valuation
- Market analysis
- Buyer search and qualification
- Due diligence coordination
- Financing assistance
- Closing support
"
+ },
+ {
+ "id": "3i4j5k6l-7m8n-9o0p-1q2r-3s4t5u6v7w8x",
+ "firstname": "Penelope",
+ "lastname": "Gupta",
+ "email": "penelope@soonestatebiz.com",
+ "licensedIn": [
+ {
+ "name": "Oklahoma",
+ "value": "765432"
+ }
+ ],
+ "phoneNumber": "(405) 555-5678",
+ "companyLocation": "Norman - OK",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Sooner State Business",
+ "companyWebsite": "https://www.soonestatebiz.com",
+ "description": "Experienced business brokers specializing in the sale of businesses in the Oklahoma City metropolitan area.",
+ "companyOverview": "Sooner State Business is a leading business brokerage firm serving the Oklahoma City metropolitan area. With a team of seasoned professionals and a proven track record of success, we are dedicated to helping our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Cleveland County, OK",
+ "Oklahoma County, OK",
+ "Canadian County, OK",
+ "McClain County, OK",
+ "Pottawatomie County, OK"
+ ],
+ "offeredServices": "- Comprehensive business valuation
- Targeted marketing and advertising
- Thorough buyer screening and qualification
- Skilled negotiations and deal structuring
- Detailed due diligence coordination
- Professional closing support
"
+ },
+ {
+ "id": "9y0z1a2b-3c4d-5e6f-7g8h-9i0j1k2l3m4n",
+ "firstname": "Asher",
+ "lastname": "Chavez",
+ "email": "asher.chavez@desertbizgroup.com",
+ "licensedIn": [
+ {
+ "name": "New Mexico",
+ "value": "098765"
+ }
+ ],
+ "phoneNumber": "(505) 555-9012",
+ "companyLocation": "Santa Fe - NM",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Desert Business Group",
+ "companyWebsite": "https://www.desertbizgroup.com",
+ "description": "Helping business owners in northern New Mexico sell their businesses and assisting buyers in finding the perfect opportunity.",
+ "companyOverview": "Desert Business Group is a trusted business brokerage firm serving the northern New Mexico market. Our team of experienced brokers is committed to providing personalized service and expert guidance to ensure a smooth and successful transaction for our clients.
",
+ "areasServed": [
+ "Santa Fe County, NM",
+ "Rio Arriba County, NM",
+ "Taos County, NM",
+ "Los Alamos County, NM",
+ "Sandoval County, NM"
+ ],
+ "offeredServices": "Services We Provide
- Business listings
- Buyer search and qualification
- Due diligence support
- Financing assistance
- Closing coordination
"
+ },
+ {
+ "id": "5s6t7u8v-9w0x-1y2z-3a4b-5c6d7e8f9g0h",
+ "firstname": "Daniel",
+ "lastname": "Hernandez",
+ "email": "daniel.hernandez@nationalbizsolutions.com",
+ "licensedIn": [
+ {
+ "name": "California",
+ "value": "135790"
+ },
+ {
+ "name": "Nevada",
+ "value": "086429"
+ }
+ ],
+ "phoneNumber": "(775) 555-1234",
+ "companyLocation": "Reno - NV",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "National Business Solutions",
+ "companyWebsite": "https://www.nationalbizsolutions.com",
+ "description": "Experienced business brokers helping clients buy and sell businesses in California and Nevada.",
+ "companyOverview": "National Business Solutions is a leading business brokerage firm serving the California and Nevada markets. Our team of seasoned professionals is dedicated to providing expert guidance and personalized service to help our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Los Angeles County, CA",
+ "Orange County, CA",
+ "San Diego County, CA",
+ "Clark County, NV",
+ "Washoe County, NV"
+ ],
+ "offeredServices": "Our Services
- Comprehensive business valuation
- Targeted marketing and advertising
- Extensive buyer network
- Thorough due diligence coordination
- Skilled negotiations and deal structuring
- Professional closing support
"
+ },
+ {
+ "id": "1i2j3k4l-5m6n-7o8p-9q0r-1s2t3u4v5w6x",
+ "firstname": "Olivia",
+ "lastname": "Patel",
+ "email": "olivia.patel@bizusasolutions.com",
+ "licensedIn": [
+ {
+ "name": "Texas",
+ "value": "753951"
+ },
+ {
+ "name": "Louisiana",
+ "value": "159753"
+ }
+ ],
+ "phoneNumber": "(504) 555-5678",
+ "companyLocation": "New Orleans - LA",
+ "hasCompanyLogo": false,
+ "hasProfile": true,
+ "companyName": "BizUSA Solutions",
+ "companyWebsite": "https://www.bizusasolutions.com",
+ "description": "Helping business owners in Texas and Louisiana sell their businesses and assisting buyers in finding the perfect opportunity.",
+ "companyOverview": "BizUSA Solutions is a trusted business brokerage firm serving the Texas and Louisiana markets. Our team of experienced brokers is committed to providing personalized service and expert guidance to ensure a smooth and successful transaction for our clients.
",
+ "areasServed": [
+ "Harris County, TX",
+ "Dallas County, TX",
+ "Tarrant County, TX",
+ "Orleans Parish, LA",
+ "Jefferson Parish, LA"
+ ],
+ "offeredServices": "- Comprehensive business valuation services
- Targeted marketing and advertising campaigns
- Extensive buyer database
- Thorough due diligence assistance
- Skilled negotiations and closing support
"
+ },
+ {
+ "id": "7y8z9a0b-1c2d-3e4f-5g6h-7i8j9k0l1m2n",
+ "firstname": "Liam",
+ "lastname": "Garcia",
+ "email": "liam.garcia@usabizadvisors.com",
+ "licensedIn": [
+ {
+ "name": "Florida",
+ "value": "369147"
+ },
+ {
+ "name": "Georgia",
+ "value": "258147"
+ }
+ ],
+ "phoneNumber": "(404) 555-9012",
+ "companyLocation": "Atlanta - GA",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "USA Business Advisors",
+ "companyWebsite": "https://www.usabizadvisors.com",
+ "description": "Experienced business brokers specializing in the sale of businesses in Florida and Georgia.",
+ "companyOverview": "USA Business Advisors is a leading business brokerage firm with a presence in the Florida and Georgia markets. With a team of seasoned professionals and a proven track record of success, we are dedicated to helping our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Miami-Dade County, FL",
+ "Broward County, FL",
+ "Palm Beach County, FL",
+ "Fulton County, GA",
+ "Gwinnett County, GA"
+ ],
+ "offeredServices": "What We Offer
- Comprehensive business valuation
- Targeted marketing and advertising
- Extensive buyer network
- Thorough due diligence coordination
- Skilled negotiations and deal structuring
- Professional closing support
"
+ },
+ {
+ "id": "3o4p5q6r-7s8t-9u0v-1w2x-3y4z5a6b7c8d",
+ "firstname": "Sophia",
+ "lastname": "Lee",
+ "email": "sophia.lee@americanbizsolutions.com",
+ "licensedIn": [
+ {
+ "name": "New York",
+ "value": "246810"
+ },
+ {
+ "name": "New Jersey",
+ "value": "135790"
+ }
+ ],
+ "phoneNumber": "(201) 555-3456",
+ "companyLocation": "Jersey City - NJ",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "American Business Solutions",
+ "companyWebsite": "https://www.americanbizsolutions.com",
+ "description": "Helping business owners in New York and New Jersey sell their businesses and assisting buyers in finding the perfect acquisition opportunity.",
+ "companyOverview": "American Business Solutions is a trusted business brokerage firm serving the New York and New Jersey markets. Our team of experienced brokers is dedicated to providing expert guidance and personalized service to help our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "New York County, NY",
+ "Kings County, NY",
+ "Queens County, NY",
+ "Hudson County, NJ",
+ "Bergen County, NJ"
+ ],
+ "offeredServices": "- Comprehensive business valuation services
- Targeted marketing and advertising campaigns
- Extensive buyer database
- Thorough due diligence assistance
- Skilled negotiations and closing support
"
+ },
+ {
+ "id": "9e0f1g2h-3i4j-5k6l-7m8n-9o0p1q2r3s4t",
+ "firstname": "Ava",
+ "lastname": "Kim",
+ "email": "ava.kim@bizamericaadvisors.com",
+ "licensedIn": [
+ {
+ "name": "Illinois",
+ "value": "753951"
+ },
+ {
+ "name": "Wisconsin",
+ "value": "159753"
+ }
+ ],
+ "phoneNumber": "(414) 555-7890",
+ "companyLocation": "Milwaukee - WI",
+ "hasCompanyLogo": false,
+ "hasProfile": true,
+ "companyName": "BizAmerica Advisors",
+ "companyWebsite": "https://www.bizamericaadvisors.com",
+ "description": "Experienced business brokers helping clients buy and sell businesses in Illinois and Wisconsin.",
+ "companyOverview": "BizAmerica Advisors is a leading business brokerage firm with a presence in the Illinois and Wisconsin markets. With a team of seasoned professionals and a commitment to client satisfaction, we strive to deliver exceptional results for our clients in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Cook County, IL",
+ "DuPage County, IL",
+ "Lake County, IL",
+ "Milwaukee County, WI",
+ "Dane County, WI"
+ ],
+ "offeredServices": "Services We Provide
- Comprehensive business valuation
- Targeted marketing and advertising
- Extensive buyer network
- Thorough due diligence coordination
- Skilled negotiations and deal structuring
- Professional closing support
"
+ },
+ {
+ "id": "5u6v7w8x-9y0z-1a2b-3c4d-5e6f7g8h9i0j",
+ "firstname": "Noah",
+ "lastname": "Nguyen",
+ "email": "noah.nguyen@nationwidebizadvisors.com",
+ "licensedIn": [
+ {
+ "name": "Washington",
+ "value": "357159"
+ },
+ {
+ "name": "Oregon",
+ "value": "086429"
+ }
+ ],
+ "phoneNumber": "(206) 555-1234",
+ "companyLocation": "Seattle - WA",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "Nationwide Business Advisors",
+ "companyWebsite": "https://www.nationwidebizadvisors.com",
+ "description": "Experienced business brokers helping clients buy and sell businesses in Washington and Oregon.",
+ "companyOverview": "Nationwide Business Advisors is a leading business brokerage firm serving the Washington and Oregon markets. Our team of seasoned professionals is dedicated to providing expert guidance and personalized service to help our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "King County, WA",
+ "Pierce County, WA",
+ "Snohomish County, WA",
+ "Multnomah County, OR",
+ "Washington County, OR"
+ ],
+ "offeredServices": "Our Services
- Comprehensive business valuation
- Targeted marketing and advertising
- Extensive buyer network
- Thorough due diligence coordination
- Skilled negotiations and deal structuring
- Professional closing support
"
+ },
+ {
+ "id": "1k2l3m4n-5o6p-7q8r-9s0t-1u2v3w4x5y6z",
+ "firstname": "Emma",
+ "lastname": "Patel",
+ "email": "emma.patel@americanbusinessadvisors.com",
+ "licensedIn": [
+ {
+ "name": "Arizona",
+ "value": "246810"
+ },
+ {
+ "name": "New Mexico",
+ "value": "135790"
+ }
+ ],
+ "phoneNumber": "(505) 555-5678",
+ "companyLocation": "Albuquerque - NM",
+ "hasCompanyLogo": false,
+ "hasProfile": true,
+ "companyName": "American Business Advisors",
+ "companyWebsite": "https://www.americanbusinessadvisors.com",
+ "description": "Helping business owners in Arizona and New Mexico sell their businesses and assisting buyers in finding the perfect opportunity.",
+ "companyOverview": "American Business Advisors is a trusted business brokerage firm serving the Arizona and New Mexico markets. Our team of experienced brokers is committed to providing personalized service and expert guidance to ensure a smooth and successful transaction for our clients.
",
+ "areasServed": [
+ "Maricopa County, AZ",
+ "Pima County, AZ",
+ "Bernalillo County, NM",
+ "Doña Ana County, NM",
+ "Santa Fe County, NM"
+ ],
+ "offeredServices": "- Comprehensive business valuation services
- Targeted marketing and advertising campaigns
- Extensive buyer database
- Thorough due diligence assistance
- Skilled negotiations and closing support
"
+ },
+ {
+ "id": "7a8b9c0d-1e2f-3g4h-5i6j-7k8l9m0n1o2p",
+ "firstname": "William",
+ "lastname": "Johnson",
+ "email": "william.johnson@bizusagroup.com",
+ "licensedIn": [
+ {
+ "name": "Colorado",
+ "value": "753951"
+ },
+ {
+ "name": "Utah",
+ "value": "159753"
+ }
+ ],
+ "phoneNumber": "(303) 555-9012",
+ "companyLocation": "Denver - CO",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "BizUSA Group",
+ "companyWebsite": "https://www.bizusagroup.com",
+ "description": "Experienced business brokers specializing in the sale of businesses in Colorado and Utah.",
+ "companyOverview": "BizUSA Group is a leading business brokerage firm with a presence in the Colorado and Utah markets. With a team of seasoned professionals and a proven track record of success, we are dedicated to helping our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Denver County, CO",
+ "Arapahoe County, CO",
+ "Jefferson County, CO",
+ "Salt Lake County, UT",
+ "Utah County, UT"
+ ],
+ "offeredServices": "What We Offer
- Comprehensive business valuation
- Targeted marketing and advertising
- Extensive buyer network
- Thorough due diligence coordination
- Skilled negotiations and deal structuring
- Professional closing support
"
+ },
+ {
+ "id": "3q4r5s6t-7u8v-9w0x-1y2z-3a4b5c6d7e8f",
+ "firstname": "Isabella",
+ "lastname": "Kim",
+ "email": "isabella.kim@nationalbusinesssolutions.com",
+ "licensedIn": [
+ {
+ "name": "Michigan",
+ "value": "369147"
+ },
+ {
+ "name": "Ohio",
+ "value": "258147"
+ }
+ ],
+ "phoneNumber": "(216) 555-3456",
+ "companyLocation": "Cleveland - OH",
+ "hasCompanyLogo": true,
+ "hasProfile": true,
+ "companyName": "National Business Solutions",
+ "companyWebsite": "https://www.nationalbusinesssolutions.com",
+ "description": "Helping business owners in Michigan and Ohio sell their businesses and assisting buyers in finding the perfect acquisition opportunity.",
+ "companyOverview": "National Business Solutions is a trusted business brokerage firm serving the Michigan and Ohio markets. Our team of experienced brokers is dedicated to providing expert guidance and personalized service to help our clients achieve their goals in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Wayne County, MI",
+ "Oakland County, MI",
+ "Macomb County, MI",
+ "Cuyahoga County, OH",
+ "Franklin County, OH"
+ ],
+ "offeredServices": "- Comprehensive business valuation services
- Targeted marketing and advertising campaigns
- Extensive buyer database
- Thorough due diligence assistance
- Skilled negotiations and closing support
"
+ },
+ {
+ "id": "9g0h1i2j-3k4l-5m6n-7o8p-9q0r1s2t3u4v",
+ "firstname": "Mia",
+ "lastname": "Hernandez",
+ "email": "mia.hernandez@usabusinessgroup.com",
+ "licensedIn": [
+ {
+ "name": "North Carolina",
+ "value": "753951"
+ },
+ {
+ "name": "South Carolina",
+ "value": "159753"
+ }
+ ],
+ "phoneNumber": "(704) 555-7890",
+ "companyLocation": "Charlotte - NC",
+ "hasCompanyLogo": false,
+ "hasProfile": true,
+ "companyName": "USA Business Group",
+ "companyWebsite": "https://www.usabusinessgroup.com",
+ "description": "Experienced business brokers helping clients buy and sell businesses in North and South Carolina.",
+ "companyOverview": "USA Business Group is a leading business brokerage firm with a presence in the North and South Carolina markets. With a team of seasoned professionals and a commitment to client satisfaction, we strive to deliver exceptional results for our clients in the sale or acquisition of businesses.
",
+ "areasServed": [
+ "Mecklenburg County, NC",
+ "Wake County, NC",
+ "Guilford County, NC",
+ "Greenville County, SC",
+ "Charleston County, SC"
+ ],
+ "offeredServices": "Services We Provide
- Comprehensive business valuation
- Targeted marketing and advertising
- Extensive buyer network
- Thorough due diligence coordination
- Skilled negotiations and deal structuring
- Professional closing support
"
+ }
+]
\ No newline at end of file
diff --git a/bizmatch-server/package.json b/bizmatch-server/package.json
index 34c39d3..7dcf006 100644
--- a/bizmatch-server/package.json
+++ b/bizmatch-server/package.json
@@ -23,7 +23,7 @@
"drop": "drizzle-kit drop",
"migrate": "tsx src/drizzle/migrate.ts",
"import": "tsx src/drizzle/import.ts",
- "generateTypes":"tsx src/drizzle/generateTypes.ts src/drizzle/schema.ts src/models/db.model.ts"
+ "generateTypes": "tsx src/drizzle/generateTypes.ts src/drizzle/schema.ts src/models/db.model.ts"
},
"dependencies": {
"@nestjs-modules/mailer": "^1.10.3",
@@ -34,6 +34,7 @@
"@nestjs/passport": "^10.0.3",
"@nestjs/platform-express": "^10.0.0",
"@nestjs/serve-static": "^4.0.1",
+ "cors": "^2.8.5",
"dotenv": "^16.4.5",
"drizzle-orm": "^0.30.8",
"handlebars": "^4.7.8",
@@ -80,6 +81,7 @@
"eslint-plugin-prettier": "^5.0.0",
"jest": "^29.5.0",
"kysely-codegen": "^0.15.0",
+ "pg-to-ts": "^4.1.1",
"prettier": "^3.0.0",
"source-map-support": "^0.5.21",
"supertest": "^6.3.3",
diff --git a/bizmatch-server/src/app.module.ts b/bizmatch-server/src/app.module.ts
index de87d90..69afd8e 100644
--- a/bizmatch-server/src/app.module.ts
+++ b/bizmatch-server/src/app.module.ts
@@ -31,7 +31,7 @@ const __dirname = path.dirname(__filename);
@Module({
imports: [ConfigModule.forRoot({isGlobal: true}), MailModule, AuthModule,
ServeStaticModule.forRoot({
- rootPath: join(__dirname, '..', 'pictures'), // `public` ist das Verzeichnis, wo Ihre statischen Dateien liegen
+ rootPath: join(__dirname, '../..', 'pictures'), // `public` ist das Verzeichnis, wo Ihre statischen Dateien liegen
}),
WinstonModule.forRoot({
transports: [
diff --git a/bizmatch-server/src/drizzle/import.ts b/bizmatch-server/src/drizzle/import.ts
index 96119c7..f2ae6fa 100644
--- a/bizmatch-server/src/drizzle/import.ts
+++ b/bizmatch-server/src/drizzle/import.ts
@@ -25,8 +25,8 @@ const generatedUserData = []
console.log(userData.length)
for (const user of userData) {
delete user.id
+ user.licensedIn=user.licensedIn.map(l=>`${l['name']}|${l['value']}`)
const u = await db.insert(schema.users).values(user).returning({ insertedId: schema.users.id });
- // console.log(`--> ${u[0].insertedId}`)
generatedUserData.push(u[0].insertedId);
}
//Business Listings
@@ -45,7 +45,10 @@ filePath = `./data/commercials.json`
data = readFileSync(filePath, 'utf8');
const commercialJsonData = JSON.parse(data) as CommercialPropertyListing[]; // Erwartet ein Array von Objekten
for (const commercial of commercialJsonData) {
+ const id = commercial.id;
delete commercial.id
+ commercial.imageOrder=['1.jpg'];
+ commercial.imagePath=id
commercial.created = getRandomDateWithinLastYear();
commercial.userId = getRandomItem(generatedUserData);
await db.insert(schema.commercials).values(commercial);
diff --git a/bizmatch-server/src/drizzle/migrations/0000_safe_natasha_romanoff.sql b/bizmatch-server/src/drizzle/migrations/0000_third_spacker_dave.sql
similarity index 98%
rename from bizmatch-server/src/drizzle/migrations/0000_safe_natasha_romanoff.sql
rename to bizmatch-server/src/drizzle/migrations/0000_third_spacker_dave.sql
index 074ecda..4c9c7bf 100644
--- a/bizmatch-server/src/drizzle/migrations/0000_safe_natasha_romanoff.sql
+++ b/bizmatch-server/src/drizzle/migrations/0000_third_spacker_dave.sql
@@ -46,7 +46,7 @@ CREATE TABLE IF NOT EXISTS "commercials" (
"website" varchar(255),
"phoneNumber" varchar(255),
"imageOrder" varchar(30)[],
- "imagePath" varchar(30)[],
+ "imagePath" varchar(50),
"created" timestamp,
"updated" timestamp,
"visits" integer,
diff --git a/bizmatch-server/src/drizzle/migrations/meta/0000_snapshot.json b/bizmatch-server/src/drizzle/migrations/meta/0000_snapshot.json
index 4febc17..ee3919b 100644
--- a/bizmatch-server/src/drizzle/migrations/meta/0000_snapshot.json
+++ b/bizmatch-server/src/drizzle/migrations/meta/0000_snapshot.json
@@ -1,5 +1,5 @@
{
- "id": "e8d0776a-ea8b-4c75-8a3a-e741620c4c4d",
+ "id": "f6d421f9-2394-4a1c-9268-9e46285f0a41",
"prevId": "00000000-0000-0000-0000-000000000000",
"version": "5",
"dialect": "pg",
@@ -300,7 +300,7 @@
},
"imagePath": {
"name": "imagePath",
- "type": "varchar(30)[]",
+ "type": "varchar(50)",
"primaryKey": false,
"notNull": false
},
diff --git a/bizmatch-server/src/drizzle/migrations/meta/_journal.json b/bizmatch-server/src/drizzle/migrations/meta/_journal.json
index 7c6811f..bddfc24 100644
--- a/bizmatch-server/src/drizzle/migrations/meta/_journal.json
+++ b/bizmatch-server/src/drizzle/migrations/meta/_journal.json
@@ -5,8 +5,8 @@
{
"idx": 0,
"version": "5",
- "when": 1713791559934,
- "tag": "0000_safe_natasha_romanoff",
+ "when": 1714913766996,
+ "tag": "0000_third_spacker_dave",
"breakpoints": true
}
]
diff --git a/bizmatch-server/src/drizzle/schema.ts b/bizmatch-server/src/drizzle/schema.ts
index 9d5b062..1b496cf 100644
--- a/bizmatch-server/src/drizzle/schema.ts
+++ b/bizmatch-server/src/drizzle/schema.ts
@@ -69,7 +69,7 @@ export const commercials = pgTable('commercials', {
website: varchar('website', { length: 255 }),
phoneNumber: varchar('phoneNumber', { length: 255 }),
imageOrder:varchar('imageOrder',{length:30}).array(),
- imagePath:varchar('imagePath',{length:30}).array(),
+ imagePath:varchar('imagePath',{length:50}),
created: timestamp('created'),
updated: timestamp('updated'),
visits: integer('visits'),
diff --git a/bizmatch-server/src/file/file.service.ts b/bizmatch-server/src/file/file.service.ts
index 5f504f6..47c3e83 100644
--- a/bizmatch-server/src/file/file.service.ts
+++ b/bizmatch-server/src/file/file.service.ts
@@ -56,14 +56,13 @@ export class FileService {
return fs.existsSync(`./pictures/logo/${userId}.avif`)?true:false
}
- async getPropertyImages(listingId: string): Promise {
- const result: ImageProperty[] = []
+ async getPropertyImages(listingId: string): Promise {
+ const result: string[] = []
const directory = `./pictures/property/${listingId}`
if (fs.existsSync(directory)) {
const files = await fs.readdir(directory);
files.forEach(f => {
- const image: ImageProperty = { name: f, id: '', code: '' };
- result.push(image)
+ result.push(f)
})
return result;
} else {
diff --git a/bizmatch-server/src/image/image.controller.ts b/bizmatch-server/src/image/image.controller.ts
index 9ce9c55..a27c544 100644
--- a/bizmatch-server/src/image/image.controller.ts
+++ b/bizmatch-server/src/image/image.controller.ts
@@ -7,6 +7,8 @@ import { SelectOptionsService } from '../select-options/select-options.service.j
import { ListingsService } from '../listings/listings.service.js';
import { Entity, EntityData } from 'redis-om';
+import { businesses, commercials } from 'src/drizzle/schema.js';
+import { CommercialPropertyListing } from 'src/models/db.model.js';
@Controller('image')
export class ImageController {
@@ -38,16 +40,16 @@ export class ImageController {
@Get(':id')
async getPropertyImagesById(@Param('id') id:string): Promise {
- // const result = await this.listingService.getCommercialPropertyListingById(id);
- // const listing = result as CommercialPropertyListing;
- // if (listing.imageOrder){
- // return listing.imageOrder
- // } else {
- // const imageOrder = await this.fileService.getPropertyImages(id);
- // listing.imageOrder=imageOrder;
- // this.listingService.saveListing(listing);
- // return imageOrder;
- // }
+ const result = await this.listingService.findById(id,commercials);
+ const listing = result as CommercialPropertyListing;
+ if (listing.imageOrder){
+ return listing.imageOrder
+ } else {
+ const imageOrder = await this.fileService.getPropertyImages(id);
+ listing.imageOrder=imageOrder;
+ this.listingService.updateListing(listing.id,listing,commercials);
+ return imageOrder;
+ }
}
@Get('profileImages/:userids')
async getProfileImagesForUsers(@Param('userids') userids:string): Promise {
diff --git a/bizmatch-server/src/listings/business-listings.controller.ts b/bizmatch-server/src/listings/business-listings.controller.ts
index 8444b5b..0858dac 100644
--- a/bizmatch-server/src/listings/business-listings.controller.ts
+++ b/bizmatch-server/src/listings/business-listings.controller.ts
@@ -42,6 +42,9 @@ export class BusinessListingsController {
deleteById(@Param('id') id:string){
this.listingsService.deleteListing(id,businesses)
}
-
+ @Get('states/all')
+ getStates(): any {
+ return this.listingsService.getStates(businesses);
+ }
}
diff --git a/bizmatch-server/src/listings/listings.service.ts b/bizmatch-server/src/listings/listings.service.ts
index 734f6a7..19c2a06 100644
--- a/bizmatch-server/src/listings/listings.service.ts
+++ b/bizmatch-server/src/listings/listings.service.ts
@@ -88,7 +88,9 @@ export class ListingsService {
async deleteListing(id: string, table: typeof businesses | typeof commercials): Promise {
await this.conn.delete(table).where(eq(table.id, id));
}
-
+ async getStates(table: typeof businesses | typeof commercials): Promise {
+ return await this.conn.select({state: table.state,count: sql`count(${table.id})`.mapWith(Number)}).from(table).groupBy(sql`${table.state}`).orderBy(sql`count desc`);
+ }
// ##############################################################
// Images for commercial Properties
// ##############################################################
diff --git a/bizmatch-server/src/main.ts b/bizmatch-server/src/main.ts
index 53b4522..b040e08 100644
--- a/bizmatch-server/src/main.ts
+++ b/bizmatch-server/src/main.ts
@@ -1,6 +1,10 @@
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module.js';
-
+import * as express from 'express';
+import path, { join } from 'path';
+import { fileURLToPath } from 'url';
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = path.dirname(__filename);
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.setGlobalPrefix('bizmatch');
diff --git a/bizmatch-server/src/models/db.model.ts b/bizmatch-server/src/models/db.model.ts
index e950f65..fdfc006 100644
--- a/bizmatch-server/src/models/db.model.ts
+++ b/bizmatch-server/src/models/db.model.ts
@@ -64,10 +64,9 @@ export interface CommercialPropertyListing {
website?: string;
phoneNumber?: string;
imageOrder?: string[];
- imagePath?: string[];
+ imagePath?: string;
created?: Date;
updated?: Date;
visits?: number;
lastVisit?: Date;
}
-
diff --git a/bizmatch-server/src/models/main.model.ts b/bizmatch-server/src/models/main.model.ts
index 9826416..53c7802 100644
--- a/bizmatch-server/src/models/main.model.ts
+++ b/bizmatch-server/src/models/main.model.ts
@@ -1,155 +1,163 @@
-import { BusinessListing, CommercialPropertyListing } from "./db.model";
+import { BusinessListing, CommercialPropertyListing, User } from './db.model';
+export interface StatesResult {
+ state: string;
+ count: number;
+}
export interface KeyValue {
- name: string;
- value: string;
+ name: string;
+ value: string;
}
export interface KeyValueRatio {
- label: string;
- value: number;
+ label: string;
+ value: number;
}
export interface KeyValueStyle {
- name: string;
- value: string;
- icon:string;
- bgColorClass:string;
- textColorClass:string;
+ name: string;
+ value: string;
+ icon: string;
+ bgColorClass: string;
+ textColorClass: string;
}
export type SelectOption = {
- value: T;
- label: string;
+ value: T;
+ label: string;
};
export type ImageType = {
- name:'propertyPicture'|'companyLogo'|'profile',upload:string,delete:string,
-}
+ name: 'propertyPicture' | 'companyLogo' | 'profile';
+ upload: string;
+ delete: string;
+};
export type ListingCategory = {
- name: 'business' | 'commercialProperty'
-}
+ name: 'business' | 'commercialProperty';
+};
-export type ListingType =
- | BusinessListing
- | CommercialPropertyListing;
+export type ListingType = BusinessListing | CommercialPropertyListing;
export type ResponseBusinessListingArray = {
- data:BusinessListing[],
- total:number
-}
+ data: BusinessListing[];
+ total: number;
+};
export type ResponseBusinessListing = {
- data:BusinessListing
-}
+ data: BusinessListing;
+};
export type ResponseCommercialPropertyListingArray = {
- data:CommercialPropertyListing[],
- total:number
-}
+ data: CommercialPropertyListing[];
+ total: number;
+};
export type ResponseCommercialPropertyListing = {
- data:CommercialPropertyListing
-}
+ data: CommercialPropertyListing;
+};
+export type ResponseUsersArray = {
+ data: User[];
+ total: number;
+};
export interface ListingCriteria {
- start:number,
- length:number,
- page:number,
- pageCount:number,
- type:number,
- state:string,
- minPrice:number,
- maxPrice:number,
- realEstateChecked:boolean,
- title:string,
- category:'professional|broker'
+ start: number;
+ length: number;
+ page: number;
+ pageCount: number;
+ type: number;
+ state: string;
+ minPrice: number;
+ maxPrice: number;
+ realEstateChecked: boolean;
+ title: string;
+ category: 'professional|broker';
}
export interface KeycloakUser {
- id: string
- createdTimestamp: number
- username: string
- enabled: boolean
- totp: boolean
- emailVerified: boolean
- firstName: string
- lastName: string
- email: string
- disableableCredentialTypes: any[]
- requiredActions: any[]
- notBefore: number
- access: Access
+ id: string;
+ createdTimestamp: number;
+ username: string;
+ enabled: boolean;
+ totp: boolean;
+ emailVerified: boolean;
+ firstName: string;
+ lastName: string;
+ email: string;
+ disableableCredentialTypes: any[];
+ requiredActions: any[];
+ notBefore: number;
+ access: Access;
}
export interface Access {
- manageGroupMembership: boolean
- view: boolean
- mapRoles: boolean
- impersonate: boolean
- manage: boolean
- }
+ manageGroupMembership: boolean;
+ view: boolean;
+ mapRoles: boolean;
+ impersonate: boolean;
+ manage: boolean;
+}
export interface Subscription {
- id: string;
- userId:string
- level: string;
- start: Date;
- modified: Date;
- end: Date;
- status: string;
- invoices: Array;
+ id: string;
+ userId: string;
+ level: string;
+ start: Date;
+ modified: Date;
+ end: Date;
+ status: string;
+ invoices: Array;
}
export interface Invoice {
- id: string,
- date: Date,
- price: number
+ id: string;
+ date: Date;
+ price: number;
}
export interface JwtToken {
- exp: number;
- iat: number;
- auth_time: number;
- jti: string;
- iss: string;
- aud: string;
- sub: string;
- typ: string;
- azp: string;
- nonce: string;
- session_state: string;
- acr: string;
- realm_access: Realmaccess;
- resource_access: Resourceaccess;
- scope: string;
- sid: string;
- email_verified: boolean;
- name: string;
- preferred_username: string;
- given_name: string;
- family_name: string;
- email: string;
- user_id: string;
+ exp: number;
+ iat: number;
+ auth_time: number;
+ jti: string;
+ iss: string;
+ aud: string;
+ sub: string;
+ typ: string;
+ azp: string;
+ nonce: string;
+ session_state: string;
+ acr: string;
+ realm_access: Realmaccess;
+ resource_access: Resourceaccess;
+ scope: string;
+ sid: string;
+ email_verified: boolean;
+ name: string;
+ preferred_username: string;
+ given_name: string;
+ family_name: string;
+ email: string;
+ user_id: string;
}
interface Resourceaccess {
- account: Realmaccess;
+ account: Realmaccess;
}
interface Realmaccess {
- roles: string[];
+ roles: string[];
}
export interface PageEvent {
- first: number;
- rows: number;
- page: number;
- pageCount: number;
+ first: number;
+ rows: number;
+ page: number;
+ pageCount: number;
}
export interface AutoCompleteCompleteEvent {
- originalEvent: Event;
- query: string;
+ originalEvent: Event;
+ query: string;
}
export interface MailInfo {
- sender: Sender;
- userId: string;
- }
- export interface Sender {
- name?: string;
- email?: string;
- phoneNumber?: string;
- state?: string;
- comments?: string;
- }
- export interface ImageProperty {
- id:string;
- code:string;
- name:string;
- }
\ No newline at end of file
+ sender: Sender;
+ userId: string;
+}
+export interface Sender {
+ name?: string;
+ email?: string;
+ phoneNumber?: string;
+ state?: string;
+ comments?: string;
+}
+export interface ImageProperty {
+ id: string;
+ code: string;
+ name: string;
+}
diff --git a/bizmatch-server/src/user/user.service.ts b/bizmatch-server/src/user/user.service.ts
index 156a959..275f53c 100644
--- a/bizmatch-server/src/user/user.service.ts
+++ b/bizmatch-server/src/user/user.service.ts
@@ -51,8 +51,11 @@ export class UserService {
const start = criteria.start ? criteria.start : 0;
const length = criteria.length ? criteria.length : 12;
const conditions = this.getConditions(criteria)
- const users = await this.conn.select().from(schema.users).where(and(...conditions)).offset(start).limit(length)
- return users
+ const [data, total] = await Promise.all([
+ this.conn.select().from(schema.users).where(and(...conditions)).offset(start).limit(length),
+ this.conn.select({ count: sql`count(*)` }).from(schema.users).where(and(...conditions)).then((result) => Number(result[0].count)),
+ ]);
+ return { total, data };
}
}
\ No newline at end of file
diff --git a/bizmatch/dbschema.ts b/bizmatch/dbschema.ts
new file mode 100644
index 0000000..79488ab
--- /dev/null
+++ b/bizmatch/dbschema.ts
@@ -0,0 +1,95 @@
+/* tslint:disable */
+/* eslint-disable */
+
+
+/**
+ * AUTO-GENERATED FILE - DO NOT EDIT!
+ *
+ * This file was automatically generated by pg-to-ts v.4.1.1
+ * $ pg-to-ts generate -c postgresql://username:password@localhost:5432/bizmatch -t businesses -s public
+ *
+ */
+
+
+export type Json = unknown;
+
+// Table businesses
+export interface Businesses {
+ id: string;
+ userId: string | null;
+ type: number | null;
+ title: string | null;
+ description: string | null;
+ city: string | null;
+ state: string | null;
+ price: number | null;
+ favoritesForUser: string[] | null;
+ draft: boolean | null;
+ listingsCategory: string | null;
+ realEstateIncluded: boolean | null;
+ leasedLocation: boolean | null;
+ franchiseResale: boolean | null;
+ salesRevenue: number | null;
+ cashFlow: number | null;
+ supportAndTraining: string | null;
+ employees: number | null;
+ established: number | null;
+ internalListingNumber: number | null;
+ reasonForSale: string | null;
+ brokerLicencing: string | null;
+ internals: string | null;
+ created: Date | null;
+ updated: Date | null;
+ visits: number | null;
+ lastVisit: Date | null;
+}
+export interface BusinessesInput {
+ id?: string;
+ userId?: string | null;
+ type?: number | null;
+ title?: string | null;
+ description?: string | null;
+ city?: string | null;
+ state?: string | null;
+ price?: number | null;
+ favoritesForUser?: string[] | null;
+ draft?: boolean | null;
+ listingsCategory?: string | null;
+ realEstateIncluded?: boolean | null;
+ leasedLocation?: boolean | null;
+ franchiseResale?: boolean | null;
+ salesRevenue?: number | null;
+ cashFlow?: number | null;
+ supportAndTraining?: string | null;
+ employees?: number | null;
+ established?: number | null;
+ internalListingNumber?: number | null;
+ reasonForSale?: string | null;
+ brokerLicencing?: string | null;
+ internals?: string | null;
+ created?: Date | null;
+ updated?: Date | null;
+ visits?: number | null;
+ lastVisit?: Date | null;
+}
+const businesses = {
+ tableName: 'businesses',
+ columns: ['id', 'userId', 'type', 'title', 'description', 'city', 'state', 'price', 'favoritesForUser', 'draft', 'listingsCategory', 'realEstateIncluded', 'leasedLocation', 'franchiseResale', 'salesRevenue', 'cashFlow', 'supportAndTraining', 'employees', 'established', 'internalListingNumber', 'reasonForSale', 'brokerLicencing', 'internals', 'created', 'updated', 'visits', 'lastVisit'],
+ requiredForInsert: [],
+ primaryKey: 'id',
+ foreignKeys: { userId: { table: 'users', column: 'id', $type: null as unknown /* users */ }, },
+ $type: null as unknown as Businesses,
+ $input: null as unknown as BusinessesInput
+} as const;
+
+
+export interface TableTypes {
+ businesses: {
+ select: Businesses;
+ input: BusinessesInput;
+ };
+}
+
+export const tables = {
+ businesses,
+}
diff --git a/bizmatch/proxy.conf.json b/bizmatch/proxy.conf.json
index b0c7ad0..85795bc 100644
--- a/bizmatch/proxy.conf.json
+++ b/bizmatch/proxy.conf.json
@@ -1,6 +1,11 @@
{
- "/api": {
- "target": "http://localhost:3000",
- "secure": false
- }
+ "/api": {
+ "target": "http://localhost:3000",
+ "secure": false
+ },
+ "/property": {
+ "target": "http://localhost:3000",
+ "secure": false,
+ "changeOrigin": true
+ }
}
\ No newline at end of file
diff --git a/bizmatch/src/app/pages/details/details-business-listing/details-business-listing.component.html b/bizmatch/src/app/pages/details/details-business-listing/details-business-listing.component.html
index 01493e8..adfc142 100644
--- a/bizmatch/src/app/pages/details/details-business-listing/details-business-listing.component.html
+++ b/bizmatch/src/app/pages/details/details-business-listing/details-business-listing.component.html
@@ -7,6 +7,7 @@
+ @if(listing){
+ }
diff --git a/bizmatch/src/app/pages/details/details-business-listing/details-business-listing.component.ts b/bizmatch/src/app/pages/details/details-business-listing/details-business-listing.component.ts
index 3247c0a..0d20b84 100644
--- a/bizmatch/src/app/pages/details/details-business-listing/details-business-listing.component.ts
+++ b/bizmatch/src/app/pages/details/details-business-listing/details-business-listing.component.ts
@@ -6,7 +6,7 @@ import { MessageService } from 'primeng/api';
import { GalleriaModule } from 'primeng/galleria';
import { lastValueFrom } from 'rxjs';
import { BusinessListing, User } from '../../../../../../bizmatch-server/src/models/db.model';
-import { ImageProperty, ListingCriteria, MailInfo } from '../../../../../../bizmatch-server/src/models/main.model';
+import { ListingCriteria, MailInfo } from '../../../../../../bizmatch-server/src/models/main.model';
import { environment } from '../../../../environments/environment';
import { ListingsService } from '../../../services/listings.service';
import { MailService } from '../../../services/mail.service';
@@ -43,11 +43,10 @@ export class DetailsBusinessListingComponent {
},
];
private id: string | undefined = this.activatedRoute.snapshot.params['id'] as string | undefined;
- private type: 'business' | 'commercialProperty' | undefined = this.activatedRoute.snapshot.params['type'] as 'business' | 'commercialProperty' | undefined;
listing: BusinessListing;
criteria: ListingCriteria;
mailinfo: MailInfo;
- propertyImages: ImageProperty[] = [];
+ propertyImages: string[] = [];
environment = environment;
user: User;
description: SafeHtml;
@@ -69,7 +68,7 @@ export class DetailsBusinessListingComponent {
}
async ngOnInit() {
- this.listing = await lastValueFrom(this.listingsService.getListingById(this.id, this.type));
+ this.listing = await lastValueFrom(this.listingsService.getListingById(this.id, 'business'));
this.propertyImages = await this.listingsService.getPropertyImages(this.listing.id);
this.description = this.sanitizer.bypassSecurityTrustHtml(this.listing.description);
}
diff --git a/bizmatch/src/app/pages/details/details-commercial-property-listing/details-commercial-property-listing.component.html b/bizmatch/src/app/pages/details/details-commercial-property-listing/details-commercial-property-listing.component.html
index a53b0dc..f2aa1f3 100644
--- a/bizmatch/src/app/pages/details/details-commercial-property-listing/details-commercial-property-listing.component.html
+++ b/bizmatch/src/app/pages/details/details-commercial-property-listing/details-commercial-property-listing.component.html
@@ -7,6 +7,7 @@
+ @if(listing){
-
+
diff --git a/bizmatch/src/app/pages/listings/commercial-property-listings/commercial-property-listings.component.ts b/bizmatch/src/app/pages/listings/commercial-property-listings/commercial-property-listings.component.ts
index 9c53190..e9860d6 100644
--- a/bizmatch/src/app/pages/listings/commercial-property-listings/commercial-property-listings.component.ts
+++ b/bizmatch/src/app/pages/listings/commercial-property-listings/commercial-property-listings.component.ts
@@ -10,13 +10,12 @@ import { InputTextModule } from 'primeng/inputtext';
import { PaginatorModule } from 'primeng/paginator';
import { StyleClassModule } from 'primeng/styleclass';
import { ToggleButtonModule } from 'primeng/togglebutton';
-import { CommercialPropertyListing, User } from '../../../../../../bizmatch-server/src/models/db.model';
+import { CommercialPropertyListing } from '../../../../../../bizmatch-server/src/models/db.model';
import { ListingCriteria, ListingType } from '../../../../../../bizmatch-server/src/models/main.model';
import { environment } from '../../../../environments/environment';
import { ImageService } from '../../../services/image.service';
import { ListingsService } from '../../../services/listings.service';
import { SelectOptionsService } from '../../../services/select-options.service';
-import { UserService } from '../../../services/user.service';
import { createGenericObject, getCriteriaStateObject, getSessionStorageHandler } from '../../../utils/utils';
@Component({
@@ -29,7 +28,6 @@ import { createGenericObject, getCriteriaStateObject, getSessionStorageHandler }
export class CommercialPropertyListingsComponent {
environment = environment;
listings: Array;
- users: Array;
filteredListings: Array;
criteria: ListingCriteria;
realEstateChecked: boolean;
@@ -48,7 +46,6 @@ export class CommercialPropertyListingsComponent {
constructor(
public selectOptions: SelectOptionsService,
private listingsService: ListingsService,
- private userService: UserService,
private activatedRoute: ActivatedRoute,
private router: Router,
private cdRef: ChangeDetectorRef,
@@ -67,41 +64,24 @@ export class CommercialPropertyListingsComponent {
}
async ngOnInit() {}
async init() {
- this.users = [];
- this.listings = await this.listingsService.getListings(this.criteria, 'commercialProperty');
+ const statesResult = await this.listingsService.getAllStates('business');
+ this.states = statesResult.map(s => s.state).map(ls => ({ name: this.selectOptions.getState(ls as string), value: ls }));
+ this.search();
+ }
- this.setStates();
- //this.filteredListings=[...this.listings];
- this.totalRecords = this.listings.length;
- //this.filteredListings=[...this.listings].splice(this.first,this.rows);
- this.cdRef.markForCheck();
- this.cdRef.detectChanges();
- }
- setStates() {
- this.statesSet = new Set();
- this.listings.forEach(l => {
- if (l.state) {
- this.statesSet.add(l.state);
- }
- });
- this.states = [...this.statesSet].map(ls => ({ name: this.selectOptions.getState(ls as string), value: ls }));
- }
async search() {
- this.listings = await this.listingsService.getListings(this.criteria, 'commercialProperty');
- this.setStates();
- this.totalRecords = this.listings.length;
- this.filteredListings = [...this.listings].splice(this.first, this.rows);
+ const listingReponse = await this.listingsService.getListings(this.criteria, 'commercialProperty');
+ this.listings = listingReponse.data;
+ this.totalRecords = listingReponse.total;
this.cdRef.markForCheck();
this.cdRef.detectChanges();
}
onPageChange(event: any) {
- //this.first = event.first;
- //this.rows = event.rows;
- //this.filteredListings=[...this.listings].splice(this.first,this.rows);
this.criteria.start = event.first;
this.criteria.length = event.rows;
this.criteria.page = event.page;
this.criteria.pageCount = event.pageCount;
+ this.search();
}
imageErrorHandler(listing: ListingType) {
// listing.hideImage = true; // Bild ausblenden, wenn es nicht geladen werden kann
diff --git a/bizmatch/src/app/pages/subscription/edit-business-listing/edit-business-listing.component.ts b/bizmatch/src/app/pages/subscription/edit-business-listing/edit-business-listing.component.ts
index 73045e0..7b0a055 100644
--- a/bizmatch/src/app/pages/subscription/edit-business-listing/edit-business-listing.component.ts
+++ b/bizmatch/src/app/pages/subscription/edit-business-listing/edit-business-listing.component.ts
@@ -61,7 +61,7 @@ export class EditBusinessListingComponent {
maxFileSize = 3000000;
uploadUrl: string;
environment = environment;
- propertyImages: ImageProperty[];
+ propertyImages: string[];
responsiveOptions = [
{
breakpoint: '1199px',
diff --git a/bizmatch/src/app/pages/subscription/edit-commercial-property-listing/edit-commercial-property-listing.component.html b/bizmatch/src/app/pages/subscription/edit-commercial-property-listing/edit-commercial-property-listing.component.html
index d3f753e..77d6a74 100644
--- a/bizmatch/src/app/pages/subscription/edit-commercial-property-listing/edit-commercial-property-listing.component.html
+++ b/bizmatch/src/app/pages/subscription/edit-commercial-property-listing/edit-commercial-property-listing.component.html
@@ -103,8 +103,8 @@
@for (image of propertyImages; track image) {
-

-
+

+
}
diff --git a/bizmatch/src/app/pages/subscription/edit-commercial-property-listing/edit-commercial-property-listing.component.ts b/bizmatch/src/app/pages/subscription/edit-commercial-property-listing/edit-commercial-property-listing.component.ts
index d16fb4f..f100ba4 100644
--- a/bizmatch/src/app/pages/subscription/edit-commercial-property-listing/edit-commercial-property-listing.component.ts
+++ b/bizmatch/src/app/pages/subscription/edit-commercial-property-listing/edit-commercial-property-listing.component.ts
@@ -63,7 +63,7 @@ export class EditCommercialPropertyListingComponent {
maxFileSize = 3000000;
uploadUrl: string;
environment = environment;
- propertyImages: ImageProperty[];
+ propertyImages: string[];
responsiveOptions = [
{
breakpoint: '1199px',
diff --git a/bizmatch/src/app/services/listings.service.ts b/bizmatch/src/app/services/listings.service.ts
index c5d2820..55d5a88 100644
--- a/bizmatch/src/app/services/listings.service.ts
+++ b/bizmatch/src/app/services/listings.service.ts
@@ -2,7 +2,7 @@ import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable, lastValueFrom } from 'rxjs';
import { BusinessListing } from '../../../../bizmatch-server/src/models/db.model';
-import { ImageProperty, ListingCriteria, ListingType, ResponseBusinessListingArray } from '../../../../bizmatch-server/src/models/main.model';
+import { ListingCriteria, ListingType, ResponseBusinessListingArray, ResponseCommercialPropertyListingArray, StatesResult } from '../../../../bizmatch-server/src/models/main.model';
import { environment } from '../../environments/environment';
@Injectable({
@@ -15,9 +15,9 @@ export class ListingsService {
// getAllListings():Observable{
// return this.http.get(`${this.apiBaseUrl}/bizmatch/business-listings`);
// }
- async getListings(criteria: ListingCriteria, listingsCategory: 'business' | 'professionals_brokers' | 'commercialProperty'): Promise {
- const result = await lastValueFrom(this.http.post(`${this.apiBaseUrl}/bizmatch/listings/${listingsCategory}/search`, criteria));
- return result.data;
+ async getListings(criteria: ListingCriteria, listingsCategory: 'business' | 'professionals_brokers' | 'commercialProperty'): Promise {
+ const result = await lastValueFrom(this.http.post(`${this.apiBaseUrl}/bizmatch/listings/${listingsCategory}/search`, criteria));
+ return result;
}
getListingById(id: string, listingsCategory?: 'business' | 'commercialProperty'): Observable {
const result = this.http.get(`${this.apiBaseUrl}/bizmatch/listings/${listingsCategory}/${id}`);
@@ -33,13 +33,17 @@ export class ListingsService {
return await lastValueFrom(this.http.post(`${this.apiBaseUrl}/bizmatch/listings/${listingsCategory}`, listing));
}
}
+ async getAllStates(listingsCategory?: 'business' | 'commercialProperty'): Promise {
+ const result = lastValueFrom(this.http.get(`${this.apiBaseUrl}/bizmatch/listings/${listingsCategory}/states/all`));
+ return result;
+ }
async deleteListing(id: string, listingsCategory: 'business' | 'professionals_brokers' | 'commercialProperty') {
await lastValueFrom(this.http.delete(`${this.apiBaseUrl}/bizmatch/listings/${listingsCategory}/${id}`));
}
- async getPropertyImages(id: string): Promise {
- return await lastValueFrom(this.http.get(`${this.apiBaseUrl}/bizmatch/image/${id}`));
+ async getPropertyImages(id: string): Promise {
+ return await lastValueFrom(this.http.get(`${this.apiBaseUrl}/bizmatch/image/${id}`));
}
- async changeImageOrder(id: string, propertyImages: ImageProperty[]): Promise {
- return await lastValueFrom(this.http.put(`${this.apiBaseUrl}/bizmatch/listings/commercialProperty/imageOrder/${id}`, propertyImages));
+ async changeImageOrder(id: string, propertyImages: string[]): Promise {
+ return await lastValueFrom(this.http.put(`${this.apiBaseUrl}/bizmatch/listings/commercialProperty/imageOrder/${id}`, propertyImages));
}
}
diff --git a/bizmatch/src/app/services/user.service.ts b/bizmatch/src/app/services/user.service.ts
index a9b56dd..d683696 100644
--- a/bizmatch/src/app/services/user.service.ts
+++ b/bizmatch/src/app/services/user.service.ts
@@ -4,7 +4,7 @@ import { jwtDecode } from 'jwt-decode';
import { Observable, distinctUntilChanged, filter, from, lastValueFrom, map } from 'rxjs';
import urlcat from 'urlcat';
import { User } from '../../../../bizmatch-server/src/models/db.model';
-import { JwtToken, ListingCriteria } from '../../../../bizmatch-server/src/models/main.model';
+import { JwtToken, ListingCriteria, ResponseUsersArray } from '../../../../bizmatch-server/src/models/main.model';
import { environment } from '../../environments/environment';
import { KeycloakService } from './keycloak.service';
@@ -116,7 +116,7 @@ export class UserService {
const url = urlcat(`${this.apiBaseUrl}/bizmatch/user`, { mail });
return await lastValueFrom(this.http.get(url));
}
- async search(criteria?: ListingCriteria) {
- return await lastValueFrom(this.http.post(`${this.apiBaseUrl}/bizmatch/user/search`, criteria));
+ async search(criteria?: ListingCriteria): Promise {
+ return await lastValueFrom(this.http.post(`${this.apiBaseUrl}/bizmatch/user/search`, criteria));
}
}