
# ----------------------------------------------------------
# LIST ALL (admin/debug)
# ----------------------------------------------------------
query listActivityLogs(
  $offset: Int
  $limit: Int
) @auth(level: USER) {
  activityLogs(offset: $offset, limit: $limit) {
    id
    userId

    date
    hourStart
    hourEnd
    totalhours
    iconType
    iconColor

    title
    description
    isRead
    activityType

    createdAt
    updatedAt
    createdBy
  }
}

# ----------------------------------------------------------
# GET BY ID
# ----------------------------------------------------------
query getActivityLogById($id: UUID!) @auth(level: USER) {
  activityLog(id: $id) {
    id
    userId

    date
    hourStart
    hourEnd
    totalhours
    iconType
    iconColor

    title
    description
    isRead
    activityType

    createdAt
    updatedAt
    createdBy
  }
}

# ----------------------------------------------------------
# LIST BY USER
# ----------------------------------------------------------
query listActivityLogsByUserId(
  $userId: String!
  $offset: Int
  $limit: Int
) @auth(level: USER) {
  activityLogs(
    where: { userId: { eq: $userId } }
    offset: $offset
    limit: $limit
    orderBy: { date: DESC }
  ) {
    id
    userId

    date
    hourStart
    hourEnd
    totalhours
    iconType
    iconColor

    title
    description
    isRead
    activityType

    createdAt
    updatedAt
    createdBy
  }
}

# ----------------------------------------------------------
# LIST UNREAD BY USER (common for notifications UI)
# ----------------------------------------------------------
query listUnreadActivityLogsByUserId(
  $userId: String!
  $offset: Int
  $limit: Int
) @auth(level: USER) {
  activityLogs(
    where: {
      userId: { eq: $userId }
      isRead: { eq: false }
    }
    offset: $offset
    limit: $limit
    orderBy: { date: DESC }
  ) {
    id
    userId

    date
    hourStart
    hourEnd
    totalhours
    iconType
    iconColor

    title
    description
    isRead
    activityType

    createdAt
    updatedAt
    createdBy
  }
}

# ----------------------------------------------------------
# FILTER (user + date range + read status + type)
# NOTE: Timestamp filter uses ge/le (NOT gte/lte)
# ----------------------------------------------------------
query filterActivityLogs(
  $userId: String
  $dateFrom: Timestamp
  $dateTo: Timestamp
  $isRead: Boolean
  $activityType: ActivityType
  $iconType: ActivityIconType
  $offset: Int
  $limit: Int
) @auth(level: USER) {
  activityLogs(
    where: {
      userId: { eq: $userId }
      date: { ge: $dateFrom, le: $dateTo }
      isRead: { eq: $isRead }
      activityType: { eq: $activityType }
      iconType: { eq: $iconType }
    }
    offset: $offset
    limit: $limit
    orderBy: { date: DESC }
  ) {
    id
    userId

    date
    hourStart
    hourEnd
    totalhours
    iconType
    iconColor

    title
    description
    isRead
    activityType

    createdAt
    updatedAt
    createdBy
  }
}
