Skip to content

Commit 070d955

Browse files
committed
티켓-결제 관련 모듈 수정
1 parent faf7392 commit 070d955

File tree

5 files changed

+189
-10
lines changed

5 files changed

+189
-10
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Generated by Django 4.1.5 on 2023-05-15 13:40
2+
3+
from django.db import migrations, models
4+
import django.db.models.deletion
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
("ticket", "0002_rename_conferencetickettype_tickettype"),
11+
("payment", "0001_initial"),
12+
]
13+
14+
operations = [
15+
migrations.RenameField(
16+
model_name="payment",
17+
old_name="user_id",
18+
new_name="user",
19+
),
20+
migrations.AddField(
21+
model_name="payment",
22+
name="status",
23+
field=models.IntegerField(
24+
choices=[
25+
(1, "결제 전"),
26+
(2, "결제 실패"),
27+
(3, "결제 성공"),
28+
(4, "환불 실패"),
29+
(5, "환불 완료"),
30+
],
31+
default=0,
32+
),
33+
preserve_default=False,
34+
),
35+
migrations.AddField(
36+
model_name="payment",
37+
name="ticket_type",
38+
field=models.ForeignKey(
39+
default=1,
40+
on_delete=django.db.models.deletion.PROTECT,
41+
to="ticket.tickettype",
42+
),
43+
preserve_default=False,
44+
),
45+
migrations.AlterField(
46+
model_name="paymenthistory",
47+
name="status",
48+
field=models.IntegerField(
49+
choices=[
50+
(1, "결제 전"),
51+
(2, "결제 실패"),
52+
(3, "결제 성공"),
53+
(4, "환불 실패"),
54+
(5, "환불 완료"),
55+
]
56+
),
57+
),
58+
]

payment/models.py

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,37 @@
11
from django.db import models
22
from django.contrib.auth import get_user_model
33

4-
from ticket.models import TicketType
5-
64
User = get_user_model()
75

86

97
class Payment(models.Model):
108
payment_key = models.CharField(max_length=32) # TODO: uuid 처리
11-
user_id = models.ForeignKey(User, on_delete=models.PROTECT)
12-
ticket_type = models.ForeignKey(TicketType, on_delete=models.PROTECT)
9+
user = models.ForeignKey(User, on_delete=models.PROTECT)
10+
ticket_type = models.ForeignKey("ticket.TicketType", on_delete=models.PROTECT)
1311
money = models.IntegerField()
12+
status = models.IntegerField(
13+
choices=(
14+
(1, "결제 전"),
15+
(2, "결제 실패"),
16+
(3, "결제 성공"),
17+
(4, "환불 실패"),
18+
(5, "환불 완료"),
19+
)
20+
)
1421
create_at = models.DateTimeField(auto_now_add=True)
1522
update_at = models.DateTimeField(auto_now=True)
1623

1724

1825
class PaymentHistory(models.Model):
1926
payment_key = models.CharField(max_length=32)
20-
status = models.IntegerField()
27+
status = models.IntegerField(
28+
choices=(
29+
(1, "결제 전"),
30+
(2, "결제 실패"),
31+
(3, "결제 성공"),
32+
(4, "환불 실패"),
33+
(5, "환불 완료"),
34+
)
35+
)
2136
create_at = models.DateTimeField(auto_now_add=True)
2237
update_at = models.DateTimeField(auto_now=True)
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Generated by Django 4.1.5 on 2023-05-15 13:40
2+
3+
from django.db import migrations
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
("sponsor", "0003_alter_sponsor_bank_book_file_and_more"),
10+
]
11+
12+
operations = [
13+
migrations.AlterModelOptions(
14+
name="sponsor",
15+
options={
16+
"ordering": ["paid_at", "id"],
17+
"verbose_name": "후원사",
18+
"verbose_name_plural": "후원사 목록",
19+
},
20+
),
21+
migrations.AlterModelOptions(
22+
name="sponsorlevel",
23+
options={"verbose_name": "후원사 등급", "verbose_name_plural": "후원사 등급"},
24+
),
25+
]
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# Generated by Django 4.1.5 on 2023-05-15 13:40
2+
3+
from django.conf import settings
4+
from django.db import migrations, models
5+
import django.db.models.deletion
6+
import ticket.models
7+
8+
9+
class Migration(migrations.Migration):
10+
11+
dependencies = [
12+
("payment", "0002_rename_user_id_payment_user_payment_status_and_more"),
13+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
14+
("ticket", "0002_rename_conferencetickettype_tickettype"),
15+
]
16+
17+
operations = [
18+
migrations.CreateModel(
19+
name="Ticket",
20+
fields=[
21+
(
22+
"id",
23+
models.BigAutoField(
24+
auto_created=True,
25+
primary_key=True,
26+
serialize=False,
27+
verbose_name="ID",
28+
),
29+
),
30+
("bought_at", models.DateTimeField()),
31+
(
32+
"ticket_code",
33+
models.CharField(
34+
db_index=True,
35+
default=ticket.models.make_ticket_code,
36+
max_length=25,
37+
unique=True,
38+
),
39+
),
40+
("is_refunded", models.BooleanField(default=False)),
41+
("refunded_at", models.DateTimeField(null=True)),
42+
("created_at", models.DateTimeField(auto_now_add=True)),
43+
("updated_at", models.DateTimeField(auto_now=True)),
44+
(
45+
"payment",
46+
models.ForeignKey(
47+
null=True,
48+
on_delete=django.db.models.deletion.PROTECT,
49+
to="payment.payment",
50+
),
51+
),
52+
],
53+
),
54+
migrations.RemoveField(
55+
model_name="tickettype",
56+
name="code",
57+
),
58+
migrations.AddField(
59+
model_name="tickettype",
60+
name="is_refundable",
61+
field=models.BooleanField(default=True),
62+
),
63+
migrations.DeleteModel(
64+
name="ConferenceTicket",
65+
),
66+
migrations.AddField(
67+
model_name="ticket",
68+
name="ticket_type",
69+
field=models.ForeignKey(
70+
on_delete=django.db.models.deletion.RESTRICT, to="ticket.tickettype"
71+
),
72+
),
73+
migrations.AddField(
74+
model_name="ticket",
75+
name="user",
76+
field=models.ForeignKey(
77+
on_delete=django.db.models.deletion.RESTRICT,
78+
to=settings.AUTH_USER_MODEL,
79+
),
80+
),
81+
]

ticket/models.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,10 @@
55
from django.contrib.auth import get_user_model
66
from django.db import models
77

8-
from payment.models import Payment
9-
108
User = get_user_model()
119

1210

1311
class TicketType(models.Model):
14-
code = models.CharField(max_length=50)
1512
name = models.CharField(max_length=100)
1613
price = models.IntegerField()
1714
min_price = models.IntegerField(null=True, blank=True)
@@ -24,6 +21,8 @@ class TicketType(models.Model):
2421
("WEEKEND", "토/일요일"),
2522
),
2623
)
24+
# program = models.ForeignKey() # TODO
25+
is_refundable = models.BooleanField(default=True)
2726

2827
def __str__(self):
2928
return self.name
@@ -77,8 +76,9 @@ class Ticket(models.Model):
7776
max_length=25, default=make_ticket_code, unique=True, db_index=True
7877
)
7978
# 결제 정보
80-
payment = models.ForeignKey(Payment, on_delete=models.PROTECT)
81-
79+
payment = models.ForeignKey("payment.Payment", on_delete=models.PROTECT, null=True)
80+
is_refunded = models.BooleanField(default=False)
81+
refunded_at = models.DateTimeField(null=True)
8282
created_at = models.DateTimeField(auto_now_add=True)
8383
updated_at = models.DateTimeField(auto_now=True)
8484

0 commit comments

Comments
 (0)