<% const vars = {
  ControllerName: t.TheThing + 'Controller',
  ServiceName: t.TheThing + 'Service',
}; %>
---
outDir: <%= t.defaultOutDir %>
fileName: <%= t['the-thing'] + '-service.ts' %>
sourceName: <%= vars.ServiceName %>
---

import type { VovkBody, VovkParams } from 'vovk';
import type <%= vars.ControllerName %> from './<%= t['the-thing'] %>-controller<%= t.nodeNextResolutionExt.ts %>';

export default class <%= vars.ServiceName %> {
  static get<%= t.TheThings %> = () => {
    return { message: 'TODO: get <%= t.theThings %>' };
  };

  static getSingle<%= t.TheThing %> = (
    id: VovkParams<typeof <%= vars.ControllerName %>.getSingle<%= t.TheThing %>>['id']
  ) => {
    return { message: 'TODO: get single <%= t.theThing %>', id };
  }

  static update<%= t.TheThing %> = (
    id: VovkParams<typeof <%= vars.ControllerName %>.update<%= t.TheThing %>>['id'],
    body: VovkBody<typeof <%= vars.ControllerName %>.update<%= t.TheThing %>>
  ) => {
    return { message: `TODO: update <%= t.theThing %>`, id, body };
  };

  static create<%= t.TheThing %> = (
    body: VovkBody<typeof <%= vars.ControllerName %>.create<%= t.TheThing %>>
  ) => {
    return { message: `TODO: create <%= t.theThing %>`, body };
  };

  static delete<%= t.TheThing %> = (
    id: VovkParams<typeof <%= vars.ControllerName %>.delete<%= t.TheThing %>>['id']
  ) => {
    return { message: `TODO: delete <%= t.theThing %>`, id };
  };
}
