여기서 초안을 잡고 erd 클라우드에서 제대로 그릴 예정

블록체인 일단 안드에서 한다고 가정하고 짜기


User

일반 유저는 카카오 로그인으로 가져온 정보로 자동회원가입/로그인을 진행합니다.

후원처 유저는 초대코드를 입력하여 로그인을 진행합니다.

둘이 안겹치는게 너무 많으면 후원처 유저를 따로 뺄 수도 있음

칼럼명 타입 비고
유저번호 user_id int pk, auto increameant
로그인아이디 login_id varchar(50) 일반 유저는 이메일을 아이디로 대체.
비밀번호 password varchar(100) 일반 유저는 이메일 혹은 이름을 비번으로 대체. 암호화는 담당자 판단에 따라..
이름 name varchar(50) 후원처 유저는 후원처 이름을 입력.
유저타입 type char 후원처 s 일반유저 n (special, normal)
프로필 profile varchar(2500) 이미지 스토리지에 올리고 그 링크를 저장
누적기부액 total_donate int

Wallet

일단 Wallet 테이블로 빼는 방향으로 진행

칼럼명 타입 비고
지갑번호 wallet_id int pk, auto increament
유저 아이디 user_id int fk
계좌주소 account varchar(100) 공개 주소
비밀번호 keystore_pwd varchar(100) 키스토어 비밀번호
지갑 유형 type 일반지갑,저금통, 캠페인지갑1, 캠페인지갑2, 챌린지 참가비(공용)

Campaign

조회 : 사진, 제목, 내용, 담당자, 후원처 이름, 목표 금액, 누적 금액, 달성 퍼센트, 사용내역(영수증), 후원자 댓글, 공유, 좋아요

기부 : 기부 금액, 메세지(기부처 상세 페이지 하단에 댓글 형태로 나타남)

칼럼명 타입 비고
캠페인 아이디 campaign_id int pk, auto increameant
캠페인 담당자 user_id int fk
후원처 이름 name varchar(100) 굳이 따지자면 fk 될수 있지만 그냥 insert 할때 넣기
캠페인 지갑 주소 wallet_address 월렛 주소를 넣는다.
출금완료되면 null로 입력 → 종료된 캠페인
fk: not Null이여서 불가능

처음 글 생성 시 2개 지갑 주소 중 어떤것을 선택할지

  1. 프론트에서 후원처의 지갑 2개를 조회 후
  2. KAS로 두가지에 대해서 BALANCE 조회 한 뒤
  3. BALANCE가 0인 계좌가 나오면 기부처 등록 계좌로 설정해서
  4. 기부처 글 등록 API 날리기 | | 캠페인 사진 | thumbnail | varchar(2500) | 이미지스토리지 | | 캠페인 제목 | title | varchar(100) | | | 캠페인 목표 금액 | target_amount | int | 목표금액과 누적금액을 확인하여 새로 입금 기록이 들어올때 종료 여부를 확인한다 | | 캠페인 누적 금액 | collect_amount | int | | | 출금 누적 금액 | withdraw_amount | | 후원처에서 영수증 인증으로 출금시 누적금액이 올라간다. | | 생성일 | regist_date | date | | | 모금 종료 여부 | is_end | boolean | 목표금액을 달성하거나 후원처에서 강제 종료시 모금종료 된다. |
// 기부 탭(누적금액순, 최신순, 좋아요 순) : 모금 종료 여부, 생성일
    // 내가 응원한 캠페인
    // 내가 참여한 캠페인
    // 후원처 탭 : 모금 종료여부, 생성일, 종료일, 출금 누적금액
    
    // 기본 정보
    // 썸네일, 제목, 보호소, 응원수, 누적금액, 목표금액

    // 필요없는 거
    // 캠페인 아이디, 후원처 아이디, 캠페인 지갑 주소, 출금 누적 금액