def METHOD_NAME(self):
    """
    Return details for all line items in a given item collection.
    Also return the associated assignee (if any), discount policy (if any),
    discount coupon (if any), item, order and order session (if any)
    as a tuple of (keys, rows).
    """
    line_item_join = (
        db.outerjoin(
            LineItem,
            Assignee,
            db.and_(
                LineItem.id == Assignee.line_item_id, Assignee.current.is_(True)
            ),
        )
        .outerjoin(DiscountCoupon, LineItem.discount_coupon_id == DiscountCoupon.id)
        .outerjoin(DiscountPolicy, LineItem.discount_policy_id == DiscountPolicy.id)
        .join(Item)
        .join(Order)
        .outerjoin(OrderSession)
    )
    line_item_query = (
        db.select(
            LineItem.id,
            LineItem.customer_order_id,
            Order.invoice_no,
            Item.title,
            LineItem.base_amount,
            LineItem.discounted_amount,
            LineItem.final_amount,
            DiscountPolicy.title,
            DiscountCoupon.code,
            Order.buyer_fullname,
            Order.buyer_email,
            Order.buyer_phone,
            Assignee.fullname,
            Assignee.email,
            Assignee.phone,
            Order.access_token,
            Assignee.details,
            OrderSession.utm_campaign,
            OrderSession.utm_source,
            OrderSession.utm_medium,
            OrderSession.utm_term,
            OrderSession.utm_content,
            OrderSession.utm_id,
            OrderSession.gclid,
            OrderSession.referrer,
            OrderSession.host,
            Order.paid_at,
        )
        .select_from(line_item_join)
        .where(LineItem.status == LINE_ITEM_STATUS.CONFIRMED)
        .where(Order.item_collection == self)
        .order_by(LineItem.ordered_at)
    )
    # TODO: Use label() instead of this hack https://github.com/hasgeek/boxoffice/pull/236#discussion_r223341927
    return HeadersAndDataTuple(
        [
            'ticket_id',
            'order_id',
            'receipt_no',
            'ticket_type',
            'base_amount',
            'discounted_amount',
            'final_amount',
            'discount_policy',
            'discount_code',
            'buyer_fullname',
            'buyer_email',
            'buyer_phone',
            'attendee_fullname',
            'attendee_email',
            'attendee_phone',
            'assignee_url',
            'attendee_details',
            'utm_campaign',
            'utm_source',
            'utm_medium',
            'utm_term',
            'utm_content',
            'utm_id',
            'gclid',
            'referrer',
            'host',
            'date',
        ],
        db.session.execute(line_item_query).fetchall(),
    )