Skip to content

Commit 381fef2

Browse files
authored
Merge pull request #21 from pythonkr/feature/sponsor
feat: 후원사 관련 API 구현
2 parents 8e2bb47 + a484577 commit 381fef2

16 files changed

Lines changed: 501 additions & 3 deletions

app/core/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@
159159
"cms",
160160
"event",
161161
"event.presentation",
162+
"event.sponsor",
162163
"admin_api",
163164
# django-constance
164165
"constance",

app/event/admin.py

Lines changed: 0 additions & 1 deletion
This file was deleted.

app/event/sponsor/__init__.py

Whitespace-only changes.

app/event/sponsor/apps.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import importlib
2+
3+
from django.apps import AppConfig
4+
5+
6+
class SponsorConfig(AppConfig):
7+
name = "event.sponsor"
8+
9+
def ready(self):
10+
importlib.import_module("event.sponsor.translation")
11+
12+
from event.sponsor.models import Sponsor, SponsorTier
13+
from simple_history import register
14+
15+
register(SponsorTier)
16+
register(Sponsor)
Lines changed: 322 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,322 @@
1+
# Generated by Django 5.2 on 2025-06-07 10:17
2+
3+
import uuid
4+
5+
import core.fields
6+
import django.db.models.deletion
7+
import simple_history.models
8+
from django.conf import settings
9+
from django.db import migrations, models
10+
11+
12+
class Migration(migrations.Migration):
13+
initial = True
14+
15+
dependencies = [
16+
("event", "0001_initial"),
17+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
18+
]
19+
20+
operations = [
21+
migrations.CreateModel(
22+
name="HistoricalSponsor",
23+
fields=[
24+
("id", models.UUIDField(db_index=True, default=uuid.uuid4, editable=False)),
25+
("created_at", models.DateTimeField(blank=True, editable=False)),
26+
("updated_at", models.DateTimeField(blank=True, editable=False)),
27+
("deleted_at", models.DateTimeField(blank=True, null=True)),
28+
("name", models.CharField(blank=True, max_length=256, null=True)),
29+
("name_ko", models.CharField(blank=True, max_length=256, null=True)),
30+
("name_en", models.CharField(blank=True, max_length=256, null=True)),
31+
("logo", models.URLField(blank=True, null=True)),
32+
("description", models.CharField(blank=True, max_length=1000, null=True)),
33+
("description_ko", models.CharField(blank=True, max_length=1000, null=True)),
34+
("description_en", models.CharField(blank=True, max_length=1000, null=True)),
35+
("history_id", models.AutoField(primary_key=True, serialize=False)),
36+
("history_date", models.DateTimeField(db_index=True)),
37+
("history_change_reason", models.CharField(max_length=100, null=True)),
38+
(
39+
"history_type",
40+
models.CharField(choices=[("+", "Created"), ("~", "Changed"), ("-", "Deleted")], max_length=1),
41+
),
42+
(
43+
"created_by",
44+
models.ForeignKey(
45+
blank=True,
46+
db_constraint=False,
47+
null=True,
48+
on_delete=django.db.models.deletion.DO_NOTHING,
49+
related_name="+",
50+
to=settings.AUTH_USER_MODEL,
51+
),
52+
),
53+
(
54+
"deleted_by",
55+
models.ForeignKey(
56+
blank=True,
57+
db_constraint=False,
58+
null=True,
59+
on_delete=django.db.models.deletion.DO_NOTHING,
60+
related_name="+",
61+
to=settings.AUTH_USER_MODEL,
62+
),
63+
),
64+
(
65+
"event",
66+
models.ForeignKey(
67+
blank=True,
68+
db_constraint=False,
69+
null=True,
70+
on_delete=django.db.models.deletion.DO_NOTHING,
71+
related_name="+",
72+
to="event.event",
73+
),
74+
),
75+
(
76+
"history_user",
77+
models.ForeignKey(
78+
null=True,
79+
on_delete=django.db.models.deletion.SET_NULL,
80+
related_name="+",
81+
to=settings.AUTH_USER_MODEL,
82+
),
83+
),
84+
(
85+
"updated_by",
86+
models.ForeignKey(
87+
blank=True,
88+
db_constraint=False,
89+
null=True,
90+
on_delete=django.db.models.deletion.DO_NOTHING,
91+
related_name="+",
92+
to=settings.AUTH_USER_MODEL,
93+
),
94+
),
95+
],
96+
options={
97+
"verbose_name": "historical sponsor",
98+
"verbose_name_plural": "historical sponsors",
99+
"ordering": ("-history_date", "-history_id"),
100+
"get_latest_by": ("history_date", "history_id"),
101+
},
102+
bases=(simple_history.models.HistoricalChanges, models.Model),
103+
),
104+
migrations.CreateModel(
105+
name="HistoricalSponsorTier",
106+
fields=[
107+
("id", models.UUIDField(db_index=True, default=uuid.uuid4, editable=False)),
108+
("created_at", models.DateTimeField(blank=True, editable=False)),
109+
("updated_at", models.DateTimeField(blank=True, editable=False)),
110+
("deleted_at", models.DateTimeField(blank=True, null=True)),
111+
("name", models.CharField(blank=True, max_length=256, null=True)),
112+
("name_ko", models.CharField(blank=True, max_length=256, null=True)),
113+
("name_en", models.CharField(blank=True, max_length=256, null=True)),
114+
("order", models.IntegerField(blank=True, null=True)),
115+
("history_id", models.AutoField(primary_key=True, serialize=False)),
116+
("history_date", models.DateTimeField(db_index=True)),
117+
("history_change_reason", models.CharField(max_length=100, null=True)),
118+
(
119+
"history_type",
120+
models.CharField(choices=[("+", "Created"), ("~", "Changed"), ("-", "Deleted")], max_length=1),
121+
),
122+
(
123+
"created_by",
124+
models.ForeignKey(
125+
blank=True,
126+
db_constraint=False,
127+
null=True,
128+
on_delete=django.db.models.deletion.DO_NOTHING,
129+
related_name="+",
130+
to=settings.AUTH_USER_MODEL,
131+
),
132+
),
133+
(
134+
"deleted_by",
135+
models.ForeignKey(
136+
blank=True,
137+
db_constraint=False,
138+
null=True,
139+
on_delete=django.db.models.deletion.DO_NOTHING,
140+
related_name="+",
141+
to=settings.AUTH_USER_MODEL,
142+
),
143+
),
144+
(
145+
"event",
146+
models.ForeignKey(
147+
blank=True,
148+
db_constraint=False,
149+
null=True,
150+
on_delete=django.db.models.deletion.DO_NOTHING,
151+
related_name="+",
152+
to="event.event",
153+
),
154+
),
155+
(
156+
"history_user",
157+
models.ForeignKey(
158+
null=True,
159+
on_delete=django.db.models.deletion.SET_NULL,
160+
related_name="+",
161+
to=settings.AUTH_USER_MODEL,
162+
),
163+
),
164+
(
165+
"updated_by",
166+
models.ForeignKey(
167+
blank=True,
168+
db_constraint=False,
169+
null=True,
170+
on_delete=django.db.models.deletion.DO_NOTHING,
171+
related_name="+",
172+
to=settings.AUTH_USER_MODEL,
173+
),
174+
),
175+
],
176+
options={
177+
"verbose_name": "historical sponsor tier",
178+
"verbose_name_plural": "historical sponsor tiers",
179+
"ordering": ("-history_date", "-history_id"),
180+
"get_latest_by": ("history_date", "history_id"),
181+
},
182+
bases=(simple_history.models.HistoricalChanges, models.Model),
183+
),
184+
migrations.CreateModel(
185+
name="Sponsor",
186+
fields=[
187+
("id", models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
188+
("created_at", models.DateTimeField(auto_now_add=True)),
189+
("updated_at", models.DateTimeField(auto_now=True)),
190+
("deleted_at", models.DateTimeField(blank=True, null=True)),
191+
("name", models.CharField(blank=True, max_length=256, null=True)),
192+
("name_ko", models.CharField(blank=True, max_length=256, null=True)),
193+
("name_en", models.CharField(blank=True, max_length=256, null=True)),
194+
("logo", models.URLField(blank=True, null=True)),
195+
("description", models.CharField(blank=True, max_length=1000, null=True)),
196+
("description_ko", models.CharField(blank=True, max_length=1000, null=True)),
197+
("description_en", models.CharField(blank=True, max_length=1000, null=True)),
198+
(
199+
"created_by",
200+
models.ForeignKey(
201+
null=True,
202+
on_delete=django.db.models.deletion.PROTECT,
203+
related_name="%(class)s_created_by",
204+
to=settings.AUTH_USER_MODEL,
205+
),
206+
),
207+
(
208+
"deleted_by",
209+
models.ForeignKey(
210+
null=True,
211+
on_delete=django.db.models.deletion.PROTECT,
212+
related_name="%(class)s_deleted_by",
213+
to=settings.AUTH_USER_MODEL,
214+
),
215+
),
216+
(
217+
"event",
218+
models.ForeignKey(
219+
on_delete=django.db.models.deletion.PROTECT, related_name="sponsors", to="event.event"
220+
),
221+
),
222+
(
223+
"updated_by",
224+
models.ForeignKey(
225+
null=True,
226+
on_delete=django.db.models.deletion.PROTECT,
227+
related_name="%(class)s_updated_by",
228+
to=settings.AUTH_USER_MODEL,
229+
),
230+
),
231+
],
232+
options={
233+
"abstract": False,
234+
},
235+
),
236+
migrations.CreateModel(
237+
name="SponsorTier",
238+
fields=[
239+
("id", models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
240+
("created_at", models.DateTimeField(auto_now_add=True)),
241+
("updated_at", models.DateTimeField(auto_now=True)),
242+
("deleted_at", models.DateTimeField(blank=True, null=True)),
243+
("name", models.CharField(blank=True, max_length=256, null=True)),
244+
("name_ko", models.CharField(blank=True, max_length=256, null=True)),
245+
("name_en", models.CharField(blank=True, max_length=256, null=True)),
246+
("order", models.IntegerField(blank=True, null=True)),
247+
(
248+
"created_by",
249+
models.ForeignKey(
250+
null=True,
251+
on_delete=django.db.models.deletion.PROTECT,
252+
related_name="%(class)s_created_by",
253+
to=settings.AUTH_USER_MODEL,
254+
),
255+
),
256+
(
257+
"deleted_by",
258+
models.ForeignKey(
259+
null=True,
260+
on_delete=django.db.models.deletion.PROTECT,
261+
related_name="%(class)s_deleted_by",
262+
to=settings.AUTH_USER_MODEL,
263+
),
264+
),
265+
(
266+
"event",
267+
models.ForeignKey(
268+
on_delete=django.db.models.deletion.PROTECT, related_name="sponsor_tiers", to="event.event"
269+
),
270+
),
271+
(
272+
"updated_by",
273+
models.ForeignKey(
274+
null=True,
275+
on_delete=django.db.models.deletion.PROTECT,
276+
related_name="%(class)s_updated_by",
277+
to=settings.AUTH_USER_MODEL,
278+
),
279+
),
280+
],
281+
options={
282+
"abstract": False,
283+
},
284+
),
285+
migrations.CreateModel(
286+
name="SponsorTierSponsorRelation",
287+
fields=[
288+
(
289+
"id",
290+
core.fields.UUIDAutoField(
291+
auto_created=True,
292+
default=uuid.uuid4,
293+
editable=False,
294+
primary_key=True,
295+
serialize=False,
296+
verbose_name="ID",
297+
),
298+
),
299+
(
300+
"sponsor",
301+
models.ForeignKey(
302+
on_delete=django.db.models.deletion.CASCADE,
303+
related_name="sponsor_tier_sponsor_relations",
304+
to="sponsor.sponsor",
305+
),
306+
),
307+
(
308+
"sponsor_tier",
309+
models.ForeignKey(
310+
on_delete=django.db.models.deletion.CASCADE,
311+
related_name="sponsor_tier_sponsor_relations",
312+
to="sponsor.sponsortier",
313+
),
314+
),
315+
],
316+
),
317+
migrations.AddField(
318+
model_name="sponsor",
319+
name="sponsor_tier",
320+
field=models.ManyToManyField(through="sponsor.SponsorTierSponsorRelation", to="sponsor.sponsortier"),
321+
),
322+
]
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Generated by Django 5.2 on 2025-06-07 10:28
2+
3+
from django.db import migrations
4+
5+
6+
class Migration(migrations.Migration):
7+
dependencies = [
8+
("sponsor", "0001_initial"),
9+
]
10+
11+
operations = [
12+
migrations.RenameField(
13+
model_name="sponsor",
14+
old_name="sponsor_tier",
15+
new_name="sponsor_tiers",
16+
),
17+
]

0 commit comments

Comments
 (0)