login as:
~/abapcraft.dev — code, crafted in SAP
florin@abapcraft:~/abap/posts/todo-list-100/src/zr_todo_100.bdef.asbdef $ cat zr_todo_100.bdef.asbdef
todo-list-100 / src / zr_todo_100.bdef.asbdef
ABAP 54 lines
managed implementation in class ZBP_TODO_100 unique;
strict ( 2 );
with draft;

define behavior for ZR_TODO_100
persistent table ztodo_100
draft table ztodo_100_d
etag master LocalLastChangedAt
lock master total etag LastChangedAt
authorization master ( global )
early numbering

{

  field ( readonly )
  TaskUUID,
  CreatedAt,
  CreatedBy,
  LastChangedAt,
  LocalLastChangedAt,
  LocalLastChangedBy;

  field ( mandatory ) Title;

  validation validateTitle on save { create; update; }

  create;
  update;
  delete;

  determination setDefaultStatus on modify { create; }

  draft action Edit;
  draft action Activate optimized;
  draft action Discard;
  draft action Resume;
  draft determine action Prepare;

  mapping for ztodo_100
    {
      TaskUUID           = task_uuid;
      Title              = title;
      Description        = description;
      Status             = status;
      Priority           = priority;
      DueDate            = due_date;
      CompletedAt        = completed_at;
      CreatedBy          = created_by;
      CreatedAt          = created_at;
      LocalLastChangedBy = local_last_changed_by;
      LocalLastChangedAt = local_last_changed_at;
      LastChangedAt      = last_changed_at;
    }
}