All systems / SYS-023

MeetingRoom

ระบบจองห้องประชุม

system.yml

151 lines
# Skeleton created by `sysforge import-excel` (SPEC §13) for SYS-023.
# Core modules: • โมดูลการจอง/นัดหมาย • โมดูลปฏิทิน/ตารางเวลา/แจ้งเตือน • โมดูลแจ้งเตือน
# TODO(sysforge): replace the default fields below with the real fields of each entity.
#                 Every field shown in a form needs a default or a placeholder (R-UI-1). Then run: sysforge validate

system:
  code: SYS-023
  name: MeetingRoom
  title: { th: "ระบบจองห้องประชุม", en: "Meeting room" }
  description: { th: "ระบบจองห้องประชุม" }
  domain: Enterprise & Business
  package: com.sysforge.meetingroom
  version: 1.0.0
  locale: { default: th }
  timezone: Asia/Bangkok

database:
  targets: [sqlserver, oracle, mysql, postgresql]
  default: postgresql
  tablePrefix: me_

theme: {}

roles:
  - code: ADMIN
    title: { th: ผู้ดูแลระบบ, en: Administrator }
    permissions: ["*"]
  - code: STAFF
    title: { th: เจ้าหน้าที่, en: Staff }
    permissions:
      - "Resource:create"
      - "Resource:read"
      - "Resource:update"
      - "Resource:export"
      - "TimeSlot:create"
      - "TimeSlot:read"
      - "TimeSlot:update"
      - "TimeSlot:export"
      - "Booking:create"
      - "Booking:read"
      - "Booking:update"
      - "Booking:export"
      - "BookingStatus:create"
      - "BookingStatus:read"
      - "BookingStatus:update"
      - "BookingStatus:export"
      - "Calendar:create"
      - "Calendar:read"
      - "Calendar:update"
      - "Calendar:export"
      - "ScheduleItem:create"
      - "ScheduleItem:read"
      - "ScheduleItem:update"
      - "ScheduleItem:export"
      - "NotificationTemplate:create"
      - "NotificationTemplate:read"
      - "NotificationTemplate:update"
      - "NotificationTemplate:export"
      - "NotificationLog:create"
      - "NotificationLog:read"
      - "NotificationLog:update"
      - "NotificationLog:export"

entities:
  - name: Resource
    title: { th: "Resource", en: "Resource" }
    display: name
    fields:
      - { name: code, type: string, length: 30, required: true, unique: true, searchable: true, label: { th: รหัส, en: Code }, placeholder: { th: "เช่น RE-0001", en: "e.g. RE-0001" } }
      - { name: name, type: string, length: 200, required: true, searchable: true, label: { th: ชื่อ, en: Name }, placeholder: { th: "เช่น Resource", en: "e.g. Resource name" } }
      - { name: description, type: text, label: { th: รายละเอียด, en: Description }, placeholder: { th: "รายละเอียดเพิ่มเติม", en: "Additional details" } }
      - { name: active, type: boolean, default: true, searchable: true, label: { th: ใช้งาน, en: Active } }
      - { name: startDate, type: date, required: true, default: "@today", searchable: true, label: { th: วันที่เริ่ม, en: Start date } }
      - { name: endDate, type: date, default: "@today", label: { th: วันที่สิ้นสุด, en: End date } }
    # TODO(sysforge): ระบุ field เฉพาะของ Resource
  - name: TimeSlot
    title: { th: "Time slot", en: "Time slot" }
    display: name
    fields:
      - { name: code, type: string, length: 30, required: true, unique: true, searchable: true, label: { th: รหัส, en: Code }, placeholder: { th: "เช่น TS-0001", en: "e.g. TS-0001" } }
      - { name: name, type: string, length: 200, required: true, searchable: true, label: { th: ชื่อ, en: Name }, placeholder: { th: "เช่น TimeSlot", en: "e.g. Time slot name" } }
      - { name: description, type: text, label: { th: รายละเอียด, en: Description }, placeholder: { th: "รายละเอียดเพิ่มเติม", en: "Additional details" } }
      - { name: active, type: boolean, default: true, searchable: true, label: { th: ใช้งาน, en: Active } }
    # TODO(sysforge): ระบุ field เฉพาะของ TimeSlot
  - name: Booking
    title: { th: "Booking", en: "Booking" }
    display: name
    fields:
      - { name: code, type: string, length: 30, required: true, unique: true, searchable: true, label: { th: รหัส, en: Code }, placeholder: { th: "เช่น BO-0001", en: "e.g. BO-0001" } }
      - { name: name, type: string, length: 200, required: true, searchable: true, label: { th: ชื่อ, en: Name }, placeholder: { th: "เช่น Booking", en: "e.g. Booking name" } }
      - { name: description, type: text, label: { th: รายละเอียด, en: Description }, placeholder: { th: "รายละเอียดเพิ่มเติม", en: "Additional details" } }
      - { name: active, type: boolean, default: true, searchable: true, label: { th: ใช้งาน, en: Active } }
    # TODO(sysforge): ระบุ field เฉพาะของ Booking
  - name: BookingStatus
    title: { th: "Booking status", en: "Booking status" }
    display: name
    fields:
      - { name: code, type: string, length: 30, required: true, unique: true, searchable: true, label: { th: รหัส, en: Code }, placeholder: { th: "เช่น BS-0001", en: "e.g. BS-0001" } }
      - { name: name, type: string, length: 200, required: true, searchable: true, label: { th: ชื่อ, en: Name }, placeholder: { th: "เช่น BookingStatus", en: "e.g. Booking status name" } }
      - { name: description, type: text, label: { th: รายละเอียด, en: Description }, placeholder: { th: "รายละเอียดเพิ่มเติม", en: "Additional details" } }
      - { name: active, type: boolean, default: true, searchable: true, label: { th: ใช้งาน, en: Active } }
    # TODO(sysforge): ระบุ field เฉพาะของ BookingStatus
  - name: Calendar
    title: { th: "Calendar", en: "Calendar" }
    display: name
    fields:
      - { name: code, type: string, length: 30, required: true, unique: true, searchable: true, label: { th: รหัส, en: Code }, placeholder: { th: "เช่น CA-0001", en: "e.g. CA-0001" } }
      - { name: name, type: string, length: 200, required: true, searchable: true, label: { th: ชื่อ, en: Name }, placeholder: { th: "เช่น Calendar", en: "e.g. Calendar name" } }
      - { name: description, type: text, label: { th: รายละเอียด, en: Description }, placeholder: { th: "รายละเอียดเพิ่มเติม", en: "Additional details" } }
      - { name: active, type: boolean, default: true, searchable: true, label: { th: ใช้งาน, en: Active } }
    # TODO(sysforge): ระบุ field เฉพาะของ Calendar
  - name: ScheduleItem
    title: { th: "Schedule item", en: "Schedule item" }
    display: name
    fields:
      - { name: code, type: string, length: 30, required: true, unique: true, searchable: true, label: { th: รหัส, en: Code }, placeholder: { th: "เช่น SI-0001", en: "e.g. SI-0001" } }
      - { name: name, type: string, length: 200, required: true, searchable: true, label: { th: ชื่อ, en: Name }, placeholder: { th: "เช่น ScheduleItem", en: "e.g. Schedule item name" } }
      - { name: description, type: text, label: { th: รายละเอียด, en: Description }, placeholder: { th: "รายละเอียดเพิ่มเติม", en: "Additional details" } }
      - { name: active, type: boolean, default: true, searchable: true, label: { th: ใช้งาน, en: Active } }
    # TODO(sysforge): ระบุ field เฉพาะของ ScheduleItem
  - name: NotificationTemplate
    title: { th: "Notification template", en: "Notification template" }
    display: name
    fields:
      - { name: code, type: string, length: 30, required: true, unique: true, searchable: true, label: { th: รหัส, en: Code }, placeholder: { th: "เช่น NT-0001", en: "e.g. NT-0001" } }
      - { name: name, type: string, length: 200, required: true, searchable: true, label: { th: ชื่อ, en: Name }, placeholder: { th: "เช่น NotificationTemplate", en: "e.g. Notification template name" } }
      - { name: description, type: text, label: { th: รายละเอียด, en: Description }, placeholder: { th: "รายละเอียดเพิ่มเติม", en: "Additional details" } }
      - { name: active, type: boolean, default: true, searchable: true, label: { th: ใช้งาน, en: Active } }
    # TODO(sysforge): ระบุ field เฉพาะของ NotificationTemplate
  - name: NotificationLog
    title: { th: "Notification log", en: "Notification log" }
    display: name
    fields:
      - { name: code, type: string, length: 30, required: true, unique: true, searchable: true, label: { th: รหัส, en: Code }, placeholder: { th: "เช่น NL-0001", en: "e.g. NL-0001" } }
      - { name: name, type: string, length: 200, required: true, searchable: true, label: { th: ชื่อ, en: Name }, placeholder: { th: "เช่น NotificationLog", en: "e.g. Notification log name" } }
      - { name: description, type: text, label: { th: รายละเอียด, en: Description }, placeholder: { th: "รายละเอียดเพิ่มเติม", en: "Additional details" } }
      - { name: active, type: boolean, default: true, searchable: true, label: { th: ใช้งาน, en: Active } }
    # TODO(sysforge): ระบุ field เฉพาะของ NotificationLog

screens:
  - { id: home, type: kpi-dashboard, title: { th: ภาพรวม, en: Overview } }
  - { id: resources, type: crud, entity: Resource, title: { th: "Resource", en: "Resource" }, defaultSort: { field: code, dir: asc } }
  - { id: time-slots, type: crud, entity: TimeSlot, title: { th: "Time slot", en: "Time slot" }, defaultSort: { field: code, dir: asc } }
  - { id: bookings, type: crud, entity: Booking, title: { th: "Booking", en: "Booking" }, defaultSort: { field: code, dir: asc } }
  - { id: booking-statuses, type: crud, entity: BookingStatus, title: { th: "Booking status", en: "Booking status" }, defaultSort: { field: code, dir: asc } }
  - { id: calendars, type: crud, entity: Calendar, title: { th: "Calendar", en: "Calendar" }, defaultSort: { field: code, dir: asc } }
  - { id: schedule-items, type: crud, entity: ScheduleItem, title: { th: "Schedule item", en: "Schedule item" }, defaultSort: { field: code, dir: asc } }
  - { id: notification-templates, type: crud, entity: NotificationTemplate, title: { th: "Notification template", en: "Notification template" }, defaultSort: { field: code, dir: asc } }
  - { id: notification-logs, type: crud, entity: NotificationLog, title: { th: "Notification log", en: "Notification log" }, defaultSort: { field: code, dir: asc } }
  - { id: resources-calendar, type: calendar, entity: Resource, title: { th: "ปฏิทินResource", en: "Resource calendar" }, options: { start: startDate, end: endDate, title: name } }

Details

Code
SYS-023
Domain
Enterprise & Business
Entities
8
Source
Excel import
Status
Has TODO — generates fine, replace the default fields before real use
Description
ระบบจองห้องประชุม

Theme

Sky Blue · Top menu + tabs · Light menu · home page Corporate · Rounded corners · Compact

Registered in salt "sysforge-v1": regenerating keeps this look.

Remove