Skip to content

Commit 8e54abb

Browse files
committed
Feat: 후원 혜택 모델 추가
1 parent 30c09b7 commit 8e54abb

File tree

1 file changed

+42
-10
lines changed

1 file changed

+42
-10
lines changed

sponsor/models.py

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,13 @@ class Meta:
1515
verbose_name = "후원사 등급"
1616
verbose_name_plural = "후원사 등급"
1717

18-
name = models.CharField(max_length=255, blank=True, default="", help_text="후원 등급명")
18+
name = models.CharField(
19+
max_length=255, blank=True, default="", help_text="후원 등급명"
20+
)
1921
desc = models.TextField(
20-
null=True, blank=True, help_text="후원 혜택을 입력하면 될 거 같아요 :) 후원사가 등급을 정할 때 볼 문구입니다."
22+
null=True,
23+
blank=True,
24+
help_text="후원 혜택을 입력하면 될 거 같아요 :) 후원사가 등급을 정할 때 볼 문구입니다.",
2125
)
2226
visible = models.BooleanField(default=True)
2327
price = models.IntegerField(default=0)
@@ -50,6 +54,24 @@ def __str__(self):
5054
return self.name
5155

5256

57+
class SponsorBenefit(models.Model):
58+
class Meta:
59+
verbose_name = "후원사 등급 별 혜택"
60+
verbose_name_plural = "후원사 등급 별 혜택 목록"
61+
62+
name = models.CharField(max_length=255, help_text="혜택 이름")
63+
desc = models.TextField(null=True, blank=True, help_text="기타")
64+
offer = models.PositiveIntegerField(help_text="제공 하는 혜택 개수")
65+
unit = models.CharField(max_length=10, help_text="혜택 단위")
66+
is_countable = models.BooleanField(
67+
default=True, help_text="제공 하는 혜택이 셀 수 있는지 여부"
68+
)
69+
70+
sponsor_level = models.ForeignKey(
71+
SponsorLevel, related_name="benefits", on_delete=models.CASCADE
72+
)
73+
74+
5375
def registration_file_upload_to(instance, filename):
5476
return f"sponsor/business_registration/{instance.id}/{filename}"
5577

@@ -77,7 +99,8 @@ class Meta:
7799
related_name="sponsor_creator",
78100
)
79101
name = models.CharField(
80-
max_length=255, help_text="후원사의 이름입니다. 서비스나 회사 이름이 될 수 있습니다."
102+
max_length=255,
103+
help_text="후원사의 이름입니다. 서비스나 회사 이름이 될 수 있습니다.",
81104
)
82105
level = models.ForeignKey(
83106
SponsorLevel,
@@ -87,13 +110,18 @@ class Meta:
87110
help_text="후원을 원하시는 등급을 선택해주십시오. 모두 판매된 등급은 선택할 수 없습니다.",
88111
)
89112
desc = models.TextField(
90-
null=True, blank=True, help_text="후원사 설명입니다. 이 설명은 국문 홈페이지에 게시됩니다."
113+
null=True,
114+
blank=True,
115+
help_text="후원사 설명입니다. 이 설명은 국문 홈페이지에 게시됩니다.",
91116
)
92117
eng_desc = models.TextField(
93-
null=True, blank=True, help_text="후원사 영문 설명입니다. 이 설명은 영문 홈페이지에 게시됩니다."
118+
null=True,
119+
blank=True,
120+
help_text="후원사 영문 설명입니다. 이 설명은 영문 홈페이지에 게시됩니다.",
94121
)
95122
manager_name = models.CharField(
96-
max_length=100, help_text="준비위원회와 후원과 관련된 논의를 진행할 담당자의 이름을 입력해주십시오."
123+
max_length=100,
124+
help_text="준비위원회와 후원과 관련된 논의를 진행할 담당자의 이름을 입력해주십시오.",
97125
)
98126
manager_email = models.CharField(
99127
max_length=100,
@@ -148,10 +176,13 @@ class Meta:
148176
help_text="사용자가 제출했는지 여부를 저장합니다. 요청이 제출되면 준비위원회에서 검토하고 받아들일지를 결정합니다.",
149177
)
150178
accepted = models.BooleanField(
151-
default=False, help_text="후원사 신청이 접수되었고, 입금 대기 상태인 경우 True로 설정됩니다."
179+
default=False,
180+
help_text="후원사 신청이 접수되었고, 입금 대기 상태인 경우 True로 설정됩니다.",
152181
)
153182
paid_at = models.DateTimeField(
154-
null=True, blank=True, help_text="후원금이 입금된 일시입니다. 아직 입금되지 않았을 경우 None이 들어갑니다."
183+
null=True,
184+
blank=True,
185+
help_text="후원금이 입금된 일시입니다. 아직 입금되지 않았을 경우 None이 들어갑니다.",
155186
)
156187
created_at = models.DateTimeField(auto_now_add=True)
157188
updated_at = models.DateTimeField(auto_now=True)
@@ -160,7 +191,6 @@ def __str__(self):
160191
return f"{self.name}/{self.level}"
161192

162193

163-
164194
class Patron(models.Model):
165195
class Meta:
166196
ordering = ["-total_contribution", "contribution_datetime"]
@@ -176,7 +206,9 @@ class Meta:
176206
help_text="개인후원을 등록한 유저",
177207
related_name="patron_user",
178208
)
179-
total_contribution = models.IntegerField(default=0, help_text="개인후원한 금액입니다.")
209+
total_contribution = models.IntegerField(
210+
default=0, help_text="개인후원한 금액입니다."
211+
)
180212
contribution_datetime = models.DateTimeField(
181213
help_text="개인후원 결제한 일시입니다."
182214
)

0 commit comments

Comments
 (0)