namespace org.accordproject.copyrightlicense

import org.accordproject.contract.* from https://models.accordproject.org/accordproject/contract.cto
import org.accordproject.party.* from https://models.accordproject.org/accordproject/party.cto
import org.accordproject.runtime.* from https://models.accordproject.org/accordproject/runtime.cto
import org.accordproject.obligation.* from https://models.accordproject.org/accordproject/obligation.cto

import org.accordproject.money.MonetaryAmount from https://models.accordproject.org/money@0.2.0.cto
import org.accordproject.organization.Organization from https://models.accordproject.org/organization.cto

/* Requesting a payment */
transaction PaymentRequest extends Request {
}

/* PayOut response */
transaction PayOut extends Response {
  o MonetaryAmount amount
}

/* The template model  */
asset CopyrightLicenseContract extends Contract {
  /* the effective date */
  o DateTime effectiveDate

  /* licensee */
  --> Party licensee
  o String licenseeState
  o String licenseeEntityType
  o String licenseeAddress

  /* licensor */
  --> Party licensor
  o String licensorState
  o String licensorEntityType
  o String licensorAddress

  /* territory where license is granted */
  o String territory

  /* descriptions */
  o String purposeDescription
  o String workDescription

  /* payment */
  o PaymentClause paymentClause
}

asset PaymentClause extends Clause {
  o String amountText
  o MonetaryAmount amount
  o String paymentProcedure
}
