from superdesk.base_model import BaseModel


def init_app(app):
    CoverageModel(app=app)


def rel(resource, embeddable=False):
    return {
        'type': 'objectid',
        'data_relation': {'resource': resource, 'field': '_id', 'embeddable': embeddable}
    }


class CoverageModel(BaseModel):
    endpoint_name = 'coverages'
    schema = {
        'headline': {'type': 'string'},
        'type': {'type': 'string'},
        'ed_note': {'type': 'string'},
        'scheduled': {'type': 'datetime'},
        'delivery': rel('archive'),
        'assigned_user': rel('users', True),
        'assigned_desk': rel('desks', True),
        'planning_item': rel('planning'),
    }

from superdesk.base_model import BaseModel


def init_app(app):
    CoverageModel(app=app)


def rel(resource, embeddable=False):
    return {
        'type': 'objectid',
        'data_relation': {'resource': resource, 'field': '_id', 'embeddable': embeddable}
    }


class CoverageModel(BaseModel):
    endpoint_name = 'coverages'
    schema = {
        'headline': {'type': 'string'},
        'type': {'type': 'string'},
        'ed_note': {'type': 'string'},
        'scheduled': {'type': 'datetime'},
        'delivery': {'type': 'string'},
        'assigned_user': rel('users', True),
        'assigned_desk': rel('desks', True),
        'planning_item': {'type': 'string'},
    }

Fix data relation not working for custom Guids
Fix data relation not working for custom Guids

  from superdesk.base_model import BaseModel
  
  
  def init_app(app):
      CoverageModel(app=app)
  
  
  def rel(resource, embeddable=False):
      return {
          'type': 'objectid',
          'data_relation': {'resource': resource, 'field': '_id', 'embeddable': embeddable}
      }
  
  
  class CoverageModel(BaseModel):
      endpoint_name = 'coverages'
      schema = {
          'headline': {'type': 'string'},
          'type': {'type': 'string'},
          'ed_note': {'type': 'string'},
          'scheduled': {'type': 'datetime'},
-         'delivery': rel('archive'),
+         'delivery': {'type': 'string'},
          'assigned_user': rel('users', True),
          'assigned_desk': rel('desks', True),
-         'planning_item': rel('planning'),
+         'planning_item': {'type': 'string'},
      }
  
Fix data relation not working for custom Guids
## Code Before:
from superdesk.base_model import BaseModel


def init_app(app):
    CoverageModel(app=app)


def rel(resource, embeddable=False):
    return {
        'type': 'objectid',
        'data_relation': {'resource': resource, 'field': '_id', 'embeddable': embeddable}
    }


class CoverageModel(BaseModel):
    endpoint_name = 'coverages'
    schema = {
        'headline': {'type': 'string'},
        'type': {'type': 'string'},
        'ed_note': {'type': 'string'},
        'scheduled': {'type': 'datetime'},
        'delivery': rel('archive'),
        'assigned_user': rel('users', True),
        'assigned_desk': rel('desks', True),
        'planning_item': rel('planning'),
    }

## Instruction:
Fix data relation not working for custom Guids
## Code After:
from superdesk.base_model import BaseModel


def init_app(app):
    CoverageModel(app=app)


def rel(resource, embeddable=False):
    return {
        'type': 'objectid',
        'data_relation': {'resource': resource, 'field': '_id', 'embeddable': embeddable}
    }


class CoverageModel(BaseModel):
    endpoint_name = 'coverages'
    schema = {
        'headline': {'type': 'string'},
        'type': {'type': 'string'},
        'ed_note': {'type': 'string'},
        'scheduled': {'type': 'datetime'},
        'delivery': {'type': 'string'},
        'assigned_user': rel('users', True),
        'assigned_desk': rel('desks', True),
        'planning_item': {'type': 'string'},
    }
