schema.ex (1313B)
1 # Zenflows is designed to implement the Valueflows vocabulary, 2 # written and maintained by srfsh <info@dyne.org>. 3 # Copyright (C) 2021-2023 Dyne.org foundation <foundation@dyne.org>. 4 # 5 # This program is free software: you can redistribute it and/or modify 6 # it under the terms of the GNU Affero General Public License as published by 7 # the Free Software Foundation, either version 3 of the License, or 8 # (at your option) any later version. 9 # 10 # This program is distributed in the hope that it will be useful, 11 # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 # GNU Affero General Public License for more details. 14 # 15 # You should have received a copy of the GNU Affero General Public License 16 # along with this program. If not, see <https://www.gnu.org/licenses/>. 17 18 defmodule Zenflows.DB.Schema do 19 @moduledoc """ 20 Just a wrapper around Ecto.Schema to customize it. 21 """ 22 23 @type t() :: Ecto.Schema.t() 24 @type id() :: Zenflows.DB.ID.t() 25 @type params() :: %{required(binary()) => term()} | %{required(atom()) => term()} 26 27 defmacro __using__(_) do 28 quote do 29 use Ecto.Schema 30 31 @primary_key {:id, Zenflows.DB.ID, autogenerate: true} 32 @foreign_key_type Zenflows.DB.ID 33 @timestamps_opts type: :utc_datetime_usec, inserted_at: false 34 end 35 end 36 end