DROP VIEW IF EXISTS v_animals_weight_trend;

CREATE VIEW v_animals_weight_trend AS
SELECT
  a.id AS animal_id,

  (
    SELECT m.value
    FROM measurements m
    WHERE m.animal_id = a.id AND m.type='weight'
    ORDER BY m.id DESC
    LIMIT 1
  ) AS last_weight,

  (
    SELECT m2.value
    FROM measurements m2
    WHERE m2.animal_id = a.id
      AND m2.type='weight'
      AND m2.value != (
        SELECT m3.value
        FROM measurements m3
        WHERE m3.animal_id = a.id AND m3.type='weight'
        ORDER BY m3.id DESC
        LIMIT 1
      )
    ORDER BY m2.id DESC
    LIMIT 1
  ) AS prev_weight
FROM animals a;
