defmodule Yousign.Document do
@doc """
Models a document to be signed
"""
use TypedStruct
@type document_nature :: :attachment | :signable_document
@type intials :: %{
alignement: :left | :center | :right,
y: non_neg_integer()
}
typedstruct do
field :id, String.t(), enforce: true
field :filename, String.t(), enforce: true
field :nature, document_nature(), enforce: true
field :content_type, String.t(), enforce: true
field :sha256, String.t(), enforce: true
field :is_protected, boolean(), enforce: true
field :is_signed, boolean(), enforce: true
field :created_at, DateTime.t(), enforce: true
field :total_pages, non_neg_integer(), enforce: true
field :is_locked, boolean(), enforce: true
field :initials, intials(), enforce: true
field :total_anchors, non_neg_integer(), enforce: true
end
end