001-view_public_events.sql 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. CREATE OR REPLACE VIEW view_public_events
  2. AS
  3. SELECT
  4. b.uuid,
  5. b.organization_id AS organizationId,
  6. b.name,
  7. b.description,
  8. b.url,
  9. b.datetimeStart,
  10. b.datetimeEnd,
  11. b.gender_id as gender,
  12. COALESCE(b.priceMini, 0) AS priceMini,
  13. COALESCE(b.priceMaxi, 0) AS priceMaxi,
  14. null as categoryCode,
  15. p.name AS placeName,
  16. p.description AS placeDescription,
  17. p.floorSize AS placeFloorSize,
  18. p.capacity AS placeCapacity,
  19. ap.addressCity AS city,
  20. ap.postalCode,
  21. TRIM(BOTH ' ' FROM CONCAT( IFNULL(ap.streetAddress, ''), ' ', IFNULL(ap.streetAddressSecond, ''), ' ', IFNULL(ap.streetAddressThird, ''))) AS streetAddress,
  22. ap.longitude,
  23. ap.latitude,
  24. r.name AS roomName,
  25. r.description AS roomDescription,
  26. r.localisation AS roomLocalisation,
  27. r.capacity AS roomCapacity,
  28. r.floorSize AS roomFloorSize,
  29. IF(b.image_id is not null, CONCAT('https://api.opentalent.fr/app.php/_internal/secure/files/', b.image_id, '/raw'), null) AS imageUrl,
  30. IF(b.image_id is not null, CONCAT('https://api.opentalent.fr/app.php/_internal/secure/files/', b.image_id, '/300x0'), null) AS thumbnailUrl,
  31. (SELECT GROUP_CONCAT(DISTINCT CONCAT(f.code))
  32. FROM event_categories AS ec
  33. LEFT JOIN Categories AS cs ON(cs.id = ec.categories_id)
  34. LEFT JOIN Familly AS f ON(f.id = cs.familly_id)
  35. WHERE ec.event_id = b.id
  36. ) AS categories,
  37. 'opentalent' as origin,
  38. b.id as entityId
  39. FROM Booking AS b
  40. INNER JOIN Organization o ON o.id = b.organization_id
  41. INNER JOIN Parameters par ON par.id = o.parameters_id
  42. LEFT JOIN Place AS p ON (p.id = b.place_id)
  43. LEFT JOIN AddressPostal AS ap ON (ap.id = p.addressPostal_id)
  44. LEFT JOIN Room AS r ON (r.id = b.room_id)
  45. WHERE b.discr = 'event'
  46. AND b.datetimeEnd >= NOW()
  47. AND b.visibility = 'PUBLIC_VISIBILITY'
  48. AND b.isCanceled = 0
  49. UNION
  50. SELECT
  51. aw.uuid,
  52. null AS organizationId,
  53. aw.name,
  54. aw.description,
  55. aw.deepLink AS url,
  56. aw.datetimeStart,
  57. aw.datetimeEnd,
  58. NULL as gender,
  59. aw.priceMini,
  60. aw.priceMaxi,
  61. aw.subCategory AS categoryCode,
  62. aw.place AS placeName,
  63. NULL AS placeDescription,
  64. NULL AS placeFloorSize,
  65. NULL AS placeCapacity,
  66. aw.city,
  67. aw.postalCode,
  68. aw.streetAddress,
  69. aw.longitude,
  70. aw.latitude,
  71. NULL AS roomName,
  72. NULL AS roomDescription,
  73. NULL AS roomLocalisation,
  74. NULL AS roomCapacity,
  75. NULL AS roomFloorSize,
  76. aw.largeimage AS imageUrl,
  77. aw.mediumimage as thumbnailUrl,
  78. aw.categoryCode AS categories,
  79. 'awin' as origin,
  80. aw.id as entityId
  81. FROM AwinProduct as aw
  82. WHERE
  83. aw.datetimeEnd >= NOW()
  84. AND aw.datetimeStart IS NOT NULL;