All systems / SYS-027

ClientPortal

ระบบลูกค้าออนไลน์

system.yml

162 lines
# Skeleton created by `sysforge import-excel` (SPEC §13) for SYS-027.
# Core modules: • โมดูลลูกค้าสัมพันธ์ (CRM) • โมดูล Self-service Portal/Mobile App • โมดูลข้อมูลหลัก (Master Data)
# 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-027
  name: ClientPortal
  title: { th: "ระบบลูกค้าออนไลน์", en: "Client portal" }
  description: { th: "ระบบลูกค้าออนไลน์" }
  domain: Enterprise & Business
  package: com.sysforge.clientportal
  version: 1.0.0
  locale: { default: th }
  timezone: Asia/Bangkok

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

theme: {}

roles:
  - code: ADMIN
    title: { th: ผู้ดูแลระบบ, en: Administrator }
    permissions: ["*"]
  - code: STAFF
    title: { th: เจ้าหน้าที่, en: Staff }
    permissions:
      - "Customer:create"
      - "Customer:read"
      - "Customer:update"
      - "Customer:export"
      - "Contact:create"
      - "Contact:read"
      - "Contact:update"
      - "Contact:export"
      - "Interaction:create"
      - "Interaction:read"
      - "Interaction:update"
      - "Interaction:export"
      - "Opportunity:create"
      - "Opportunity:read"
      - "Opportunity:update"
      - "Opportunity:export"
      - "Campaign:create"
      - "Campaign:read"
      - "Campaign:update"
      - "Campaign:export"
      - "UserAccount:create"
      - "UserAccount:read"
      - "UserAccount:update"
      - "UserAccount:export"
      - "Device:create"
      - "Device:read"
      - "Device:update"
      - "Device:export"
      - "PushToken:create"
      - "PushToken:read"
      - "PushToken:update"
      - "PushToken:export"
      - "UserPreference:create"
      - "UserPreference:read"
      - "UserPreference:update"
      - "UserPreference:export"

entities:
  - name: Customer
    title: { th: "Customer", en: "Customer" }
    display: name
    fields:
      - { name: code, type: string, length: 30, required: true, unique: true, searchable: true, label: { th: รหัส, en: Code }, placeholder: { th: "เช่น CU-0001", en: "e.g. CU-0001" } }
      - { name: name, type: string, length: 200, required: true, searchable: true, label: { th: ชื่อ, en: Name }, placeholder: { th: "เช่น Customer", en: "e.g. Customer 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 เฉพาะของ Customer
  - name: Contact
    title: { th: "Contact", en: "Contact" }
    display: name
    fields:
      - { name: code, type: string, length: 30, required: true, unique: true, searchable: true, label: { th: รหัส, en: Code }, placeholder: { th: "เช่น CO-0001", en: "e.g. CO-0001" } }
      - { name: name, type: string, length: 200, required: true, searchable: true, label: { th: ชื่อ, en: Name }, placeholder: { th: "เช่น Contact", en: "e.g. Contact 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 เฉพาะของ Contact
  - name: Interaction
    title: { th: "Interaction", en: "Interaction" }
    display: name
    fields:
      - { name: code, type: string, length: 30, required: true, unique: true, searchable: true, label: { th: รหัส, en: Code }, placeholder: { th: "เช่น IN-0001", en: "e.g. IN-0001" } }
      - { name: name, type: string, length: 200, required: true, searchable: true, label: { th: ชื่อ, en: Name }, placeholder: { th: "เช่น Interaction", en: "e.g. Interaction 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 เฉพาะของ Interaction
  - name: Opportunity
    title: { th: "Opportunity", en: "Opportunity" }
    display: name
    fields:
      - { name: code, type: string, length: 30, required: true, unique: true, searchable: true, label: { th: รหัส, en: Code }, placeholder: { th: "เช่น OP-0001", en: "e.g. OP-0001" } }
      - { name: name, type: string, length: 200, required: true, searchable: true, label: { th: ชื่อ, en: Name }, placeholder: { th: "เช่น Opportunity", en: "e.g. Opportunity 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 เฉพาะของ Opportunity
  - name: Campaign
    title: { th: "Campaign", en: "Campaign" }
    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: "เช่น Campaign", en: "e.g. Campaign 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 เฉพาะของ Campaign
  - name: UserAccount
    title: { th: "User account", en: "User account" }
    display: name
    fields:
      - { name: code, type: string, length: 30, required: true, unique: true, searchable: true, label: { th: รหัส, en: Code }, placeholder: { th: "เช่น UA-0001", en: "e.g. UA-0001" } }
      - { name: name, type: string, length: 200, required: true, searchable: true, label: { th: ชื่อ, en: Name }, placeholder: { th: "เช่น UserAccount", en: "e.g. User account 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 เฉพาะของ UserAccount
  - name: Device
    title: { th: "Device", en: "Device" }
    display: name
    fields:
      - { name: code, type: string, length: 30, required: true, unique: true, searchable: true, label: { th: รหัส, en: Code }, placeholder: { th: "เช่น DE-0001", en: "e.g. DE-0001" } }
      - { name: name, type: string, length: 200, required: true, searchable: true, label: { th: ชื่อ, en: Name }, placeholder: { th: "เช่น Device", en: "e.g. Device 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 เฉพาะของ Device
  - name: PushToken
    title: { th: "Push token", en: "Push token" }
    display: name
    fields:
      - { name: code, type: string, length: 30, required: true, unique: true, searchable: true, label: { th: รหัส, en: Code }, placeholder: { th: "เช่น PT-0001", en: "e.g. PT-0001" } }
      - { name: name, type: string, length: 200, required: true, searchable: true, label: { th: ชื่อ, en: Name }, placeholder: { th: "เช่น PushToken", en: "e.g. Push token 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 เฉพาะของ PushToken
  - name: UserPreference
    title: { th: "User preference", en: "User preference" }
    display: name
    fields:
      - { name: code, type: string, length: 30, required: true, unique: true, searchable: true, label: { th: รหัส, en: Code }, placeholder: { th: "เช่น UP-0001", en: "e.g. UP-0001" } }
      - { name: name, type: string, length: 200, required: true, searchable: true, label: { th: ชื่อ, en: Name }, placeholder: { th: "เช่น UserPreference", en: "e.g. User preference 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 เฉพาะของ UserPreference

screens:
  - { id: home, type: kpi-dashboard, title: { th: ภาพรวม, en: Overview } }
  - { id: customers, type: crud, entity: Customer, title: { th: "Customer", en: "Customer" }, defaultSort: { field: code, dir: asc } }
  - { id: contacts, type: crud, entity: Contact, title: { th: "Contact", en: "Contact" }, defaultSort: { field: code, dir: asc } }
  - { id: interactions, type: crud, entity: Interaction, title: { th: "Interaction", en: "Interaction" }, defaultSort: { field: code, dir: asc } }
  - { id: opportunities, type: crud, entity: Opportunity, title: { th: "Opportunity", en: "Opportunity" }, defaultSort: { field: code, dir: asc } }
  - { id: campaigns, type: crud, entity: Campaign, title: { th: "Campaign", en: "Campaign" }, defaultSort: { field: code, dir: asc } }
  - { id: user-accounts, type: crud, entity: UserAccount, title: { th: "User account", en: "User account" }, defaultSort: { field: code, dir: asc } }
  - { id: devices, type: crud, entity: Device, title: { th: "Device", en: "Device" }, defaultSort: { field: code, dir: asc } }
  - { id: push-tokens, type: crud, entity: PushToken, title: { th: "Push token", en: "Push token" }, defaultSort: { field: code, dir: asc } }
  - { id: user-preferences, type: crud, entity: UserPreference, title: { th: "User preference", en: "User preference" }, defaultSort: { field: code, dir: asc } }

Details

Code
SYS-027
Domain
Enterprise & Business
Entities
9
Source
Excel import
Status
Has TODO — generates fine, replace the default fields before real use
Description
ระบบลูกค้าออนไลน์

Theme

Sky Blue · Mega menu · Tinted menu · home page Split screen · Soft corners · Comfortable

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

Remove