type PhysicalReportingTopOpenOrder {
    artistProduct: String!
    localProductCd: String!
    openOrderQt: Int!
    subaccount: Subaccount
    subaccountId: Int!
    subacctId: Int! @deprecated(reason: "Use subaccountId instead")
    vendor: Vendor!
    vendorId: Int!
}

type PhysicalReportingTopYesterdayShipment {
    artistProduct: String!
    localProductCd: String!
    subaccount: Subaccount
    subaccountId: Int!
    subacctId: Int! @deprecated(reason: "Use subaccountId instead")
    vendor: Vendor!
    vendorId: Int!
    yesterdayShipQt: Int!
}

type PhysicalReportingTopMtdShipment {
    artistProduct: String!
    localProductCd: String!
    mtdShipQt: Int!
    subaccount: Subaccount
    subaccountId: Int!
    subacctId: Int! @deprecated(reason: "Use subaccountId instead")
    vendor: Vendor!
    vendorId: Int!
}

type PhysicalReportingLabelSubaccountSummary {
    backorders: Int!
    backordersAmount: Float!
    cytdnetAmount: Float!
    cytdnetQty: Int!
    cytdrAmount: Float!
    cytdrQty: Int!
    cytdsAmount: Float!
    cytdsQty: Int!
    day1netAmount: Float!
    day1netQty: Int!
    day1rAmount: Float!
    day1rQty: Int!
    day1sAmount: Float!
    day1sQty: Int!
    labelName: String!
    mtdnetAmount: Float!
    mtdnetQty: Int!
    mtdrAmount: Float!
    mtdrQty: Int!
    mtdsAmount: Float!
    mtdsQty: Int!
    openOrders: Int!
    openOrdersAmount: Float!
    rtdnetAmount: Float!
    rtdnetQty: Int!
    rtdrAmount: Float!
    rtdrQty: Int!
    rtdsAmount: Float!
    rtdsQty: Int!
    subLabel: String! @deprecated(reason: "Use subaccountName instead")
    subaccount: Subaccount
    subaccountId: Int!
    subaccountName: String!
    subacctId: Int! @deprecated(reason: "Use subaccountId instead")
    vendor: Vendor!
    vendorId: Int!
}

type PhysicalReportingLabelSubaccountDetail {
    artistName: String!
    backorders: Int!
    backordersAmount: Float!
    cytdnetAmount: Float!
    cytdnetQty: Int!
    cytdrAmount: Float!
    cytdrQty: Int!
    cytdsAmount: Float!
    cytdsQty: Int!
    day1netAmount: Float!
    day1netQty: Int!
    day1rAmount: Float!
    day1rQty: Int!
    day1sAmount: Float!
    day1sQty: Int!
    displayConfiguration: String!
    exclusiveFor: String
    genreName: String!
    labelName: String!
    localProductCd: String!
    mtdnetAmount: Float!
    mtdnetQty: Int!
    mtdrAmount: Float!
    mtdrQty: Int!
    mtdsAmount: Float!
    mtdsQty: Int!
    openOrders: Int!
    openOrdersAmount: Float!
    priceCd: Float
    productCd: String!
    productName: String!
    releaseDate: String!
    rtdnetAmount: Float!
    rtdnetQty: Int!
    rtdrAmount: Float!
    rtdrQty: Int!
    rtdsAmount: Float!
    rtdsQty: Int!
    seriesCd: Float!
    statusName: String!
    subLabel: String! @deprecated(reason: "Use subaccountName instead")
    subaccount: Subaccount
    subaccountId: Int!
    subaccountName: String!
    subacctId: Int! @deprecated(reason: "Use subaccountId instead")
    subgenreName: String!
    unitsPerSet: Int!
    upcCd: String!
    vendor: Vendor!
    vendorId: Int!
}

type PhysicalReportingProductSalesRow {
    netAmount: String
    netNum: String
    returnAmount: String
    returnNum: String
    returnPercentage: String
    rowName: String!
    shipAmount: String
    shipNum: String
}

type PhysicalReportingProductSalesRowGroup {
    rows: [PhysicalReportingProductSalesRow!]!
}

type PhysicalReportingProductInformation {
    artistName: String
    displayConfiguration: String
    genre: String
    labelName: String
    orchardPrice: String
    productCode: String
    productName: String
    productStatus: String
    releaseDate: String
    subGenre: String
    upc: String
    wholesalePrice: String
}

type PhysicalReportingProductInventoryRow {
    rowName: String!
    total: String
}

type PhysicalReportingProductOverview {
    currentInventory: [PhysicalReportingProductInventoryRow!]!
    monthlySummary: [PhysicalReportingProductSalesRowGroup!]!
    productInformation: PhysicalReportingProductInformation!
    shipmentsAndSalesSummary: [PhysicalReportingProductSalesRowGroup!]!
    subaccount: Subaccount
    vendor: Vendor!
}

extend type Query {
    physicalReportingTopOpenOrders(
        vendorIds: [Int!]!
        subacctIds: [Int!]
    ): [PhysicalReportingTopOpenOrder!]! @cacheControl(scope: PRIVATE)
    physicalReportingTopYesterdayShipments(
        vendorIds: [Int!]!
        subacctIds: [Int!]
    ): [PhysicalReportingTopYesterdayShipment!]! @cacheControl(scope: PRIVATE)
    physicalReportingTopMtdShipments(
        vendorIds: [Int!]!
        subacctIds: [Int!]
    ): [PhysicalReportingTopMtdShipment!]! @cacheControl(scope: PRIVATE)
    physicalReportingLabelSubaccountSummary(
        vendorIds: [Int!]!
        subacctIds: [Int!]
    ): [PhysicalReportingLabelSubaccountSummary!]! @cacheControl(scope: PRIVATE)
    physicalReportingLabelSubaccountDetail(
        vendorIds: [Int!]!
        subacctIds: [Int!]
    ): [PhysicalReportingLabelSubaccountDetail!]! @cacheControl(scope: PRIVATE)
    physicalReportingProductOverview(
        localProductCd: String!
        territory: String!
    ): PhysicalReportingProductOverview @cacheControl(scope: PRIVATE)
}
