Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

attribute와 reaction 스키마 #65

Open
leegwae opened this issue Jan 26, 2021 · 1 comment
Open

attribute와 reaction 스키마 #65

leegwae opened this issue Jan 26, 2021 · 1 comment

Comments

@leegwae
Copy link
Member

leegwae commented Jan 26, 2021

1. attribute value pair

  • pair의 생성 방식 : 사용자로부터 속성 이름, 속성 타입을 받아 생성된다. 이후 사용자가 value field에 값을 입력한다.
  • 즉 속성 이름/속성 타입/속성 값을 저장해야한다.
  • 한편 작성자, 생성일자와 같은 pair의 경우 속성 이름/속성 타입/속성 값은 사용자가 수정할 수 없고 미리 만들어져 제공된다.

1.1 현재 프론트엔드 구현

  • 사용자는 메뉴를 통해 속성 이름을 입력하고 속성 타입을 선택한다.
  • 작성자, 생성일자는 속성 타입으로 제공되며 이를 선택하면 사용자가 입력한 속성 이름은 무시된다.
  • 선택 결과로 만들어진 pair는 만들어진 순서대로 위에서부터 아래로 쌓인다.

1.2 논의해야할 점

(1) pair의 정렬은 어떻게 이루어져야하는가

  • 사용자가 만든 순서대로 (이후 드래그 앤 드롭으로 사용자가 pair 정렬 가능)
  • 프론트엔드쪽에서 정렬 기준을 세워 해당 정렬 기준에 따라 정렬

(1-1) 테스크 생성사 작성자, 생성일자와 같은 pair는 기본적으로 생성해주기로 했는데, 이 pair들은 위 두가지 선택지에 따라 어떻게 정렬할 것인가.

  • 첫번째 선택지로 정렬할 때 : 사용자가 드래그 앤 드롭으로 정렬할 수 있게 한다 / 정렬할 수 없게 한다
  • 두번째 선택지로 정렬할 때 : 해당 기준에 따라 정렬하면 됨

(2) pair의 생성 제한하기

  • 작성자, 생성일자와 같은 pair는 단 한 개만 생성할 수 있게 해야 한다.
  • 모든 pair는 사용자가 제한 없이 만들 수 있어야한다.

(3) 위 논의에 따라 스키마 결정하기

2. reaction

  • 이모지는 사용자가 선택된 순서대로 나열된다.
  • 단, 이전에 해당 이모지를 선택한 사용자가 있는 경우 해당 이모지 옆의 숫자가 늘어난다.
  • slack의 reaction 디스플레이 방식과 동일함

2.1 논의해야할 점

(1) 어떻게 나열할 것인가

  • 스키마 value에 time field를 추가해서 최초로 눌렸던 시점 저장하고 정렬하기
{ [emoji : string] : {users: array<string>, time: string } }
  • 배열이나 맵으로 순서 보장하기
@leegwae
Copy link
Member Author

leegwae commented Feb 9, 2021

  • attribute에 순서가 저장되어야하므로 배열로 저장되어야 함
    • id로 dnd 조절
[{
    "id" : 1
    "type" : "checkbox",
    "name" : "check",
    "value" : ~~~
}, {
    
}]

  • attribute type에 따라 여러 개를 생성할 수 있는지 정해야 함

    • 기본 : 여러 개 생성 x
    • 생성 : 여러 개 생성 o
    • 기타 : 여러 개 생성 x
  • // value의 모양도 달라지므로 정해야 함

    • member : string array
    • state : (name, boolean, color)
    • single-select : (name, boolean, color)
    • multi-select : //
    • checkbox : (boolean)
type Attribute struct {
    id uint
    type string
    name string
    value json
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant