# frozen_string_literal: true
require_relative "publication_acronym"
require_relative "isbn"
require_relative "copyright_group"
require_relative "publisher"
require_relative "address"
require_relative "pub_sponsoring_committee_set"
require_relative "pub_topical_browse_set"
require_relative "pub_sponsor"
require_relative "standard_modifier_set"
require_relative "standard_relationship"
require_relative "standard_bundle"
require_relative "package_member_set"
require_relative "standard_package_set"
require_relative "ics_codes"
require_relative "product_number"
require_relative "conf_group"
module Ieee
module Idams
# Contains detailed metadata about an IEEE publication
class PublicationInfo < Lutaml::Model::Serializable
# System ID
# @return [String] IDAMS internal ID
attribute :idamsid, :string
# Inventory part number
# @return [String] inventory part number
attribute :invpartnumber, :string
# Standard number
# @return [String] standard identifier
attribute :stdnumber, :string
# Publication type
# @return [String] type of publication
attribute :publicationtype, :string
# Publication subtype
# @return [String] subtype of publication
attribute :publicationsubtype, :string
# Standard subtype
# @return [String] subtype of standard
attribute :standard_subtype, :string
# IEEE abbreviation
# @return [String] IEEE abbreviation
attribute :ieeeabbrev, :string
# IEEE publication acronym
# @return [String] IEEE publication acronym
attribute :acronym, PublicationAcronym
# Publication status
# @return [String] Active or Inactive
attribute :pubstatus, :string, values: %w[Active Inactive]
# Open access status
# @return [String] open access indicator
attribute :publicationopenaccess, :string
# Standard ID
# @return [String] standard identifier
attribute :standard_id, :string
# Associated PU number
# @return [String] associated PU number
attribute :associated_punumber, :string
# Standard status
# @return [String] standard status
attribute :standard_status, :string
# Standard relationship
# @return [String] standard relationship
attribute :standard_relationship, StandardRelationship, collection: true
# Standard modifier set
# @return [StandardModifierSet] standard modifier details
attribute :standard_modifier_set, StandardModifierSet
# Standard bundle
# @return [StandardBundle] standard bundle details
attribute :standard_bundle, StandardBundle
# Package member set
# @return [PackageMemberSet] package member details
attribute :package_member_set, PackageMemberSet
# ISBN information
# @return [Isbn] ISBN details
attribute :isbn, Isbn, collection: true
# ISBN information
# @return [PubSponsor] sponsor details
attribute :pubsponsor, PubSponsor
# Standard family
# @return [String] family of standards
attribute :standard_family, :string
# Standard package set
# @return [String] package of standards
attribute :standard_package_set, StandardPackageSet
# ICS codes
# @return [IcsCodes] ICS codes
attribute :ics_codes, IcsCodes
# Sponsoring committees
# @return [PubSponsoringCommitteeSet] committee information
attribute :pubsponsoringcommitteeset, PubSponsoringCommitteeSet
# Topical browse categories
# @return [PubTopicalBrowseSet] subject classifications
attribute :pubtopicalbrowseset, PubTopicalBrowseSet
# Copyright information
# @return [CopyrightGroup] copyright details
attribute :copyrightgroup, CopyrightGroup
# Publisher information
# @return [Publisher] publisher details
attribute :publisher, Publisher
# Product number
# @return [ProductNumber] product number
attribute :productnumber, ProductNumber
# Publication approval date
# @return [String] approval date
attribute :pubapprovaldate, :string
# Hold status
# @return [String] Publish or Hold
attribute :holdstatus, :string
#
# F
#
attribute :confgroup, ConfGroup
# 4322
attribute :amsid, :string
xml do
root "publicationinfo"
map_element "idamsid", to: :idamsid
map_element "invpartnumber", to: :invpartnumber
map_element "stdnumber", to: :stdnumber
map_element "publicationtype", to: :publicationtype
map_element "publicationsubtype", to: :publicationsubtype
map_element "standard_subtype", to: :standard_subtype
map_element "ieeeabbrev", to: :ieeeabbrev
map_element "acronym", to: :acronym
map_element "pubstatus", to: :pubstatus
map_element "publicationopenaccess", to: :publicationopenaccess
map_element "standard_id", to: :standard_id
map_element "associated_punumber", to: :associated_punumber
map_element "standard_status", to: :standard_status
map_element "standardmodifierset", to: :standard_modifier_set
map_element "standard_bundle", to: :standard_bundle
map_element "standard_relationship", to: :standard_relationship
map_element "packagememberset", to: :package_member_set
map_element "isbn", to: :isbn
map_element "pubsponsor", to: :pubsponsor
map_element "standard_family", to: :standard_family
map_element "standardpackageset", to: :standard_package_set
map_element "icscodes", to: :ics_codes
map_element "pubsponsoringcommitteeset", to: :pubsponsoringcommitteeset
map_element "pubtopicalbrowseset", to: :pubtopicalbrowseset
map_element "copyrightgroup", to: :copyrightgroup
map_element "publisher", to: :publisher
map_element "productnumber", to: :productnumber
map_element "PubApprovalDate", to: :pubapprovaldate
map_element "holdstatus", to: :holdstatus
map_element "confgroup", to: :confgroup
map_element "amsid", to: :amsid
end
end
end
end