коммит
This commit is contained in:
parent
cb69d513e0
commit
aa53f465f0
@ -80,7 +80,7 @@ private fun FlightListItem(
|
|||||||
flight: Flight, modifier: Modifier = Modifier
|
flight: Flight, modifier: Modifier = Modifier
|
||||||
) {
|
) {
|
||||||
Card(
|
Card(
|
||||||
modifier = modifier.fillMaxWidth(),
|
modifier = modifier.fillMaxWidth().padding(10.dp),
|
||||||
elevation = CardDefaults.cardElevation(defaultElevation = 2.dp),
|
elevation = CardDefaults.cardElevation(defaultElevation = 2.dp),
|
||||||
colors = CardDefaults.cardColors(containerColor = colorResource(id = R.color.lightlightBlue))
|
colors = CardDefaults.cardColors(containerColor = colorResource(id = R.color.lightlightBlue))
|
||||||
) {
|
) {
|
||||||
|
@ -3,15 +3,11 @@ package ru.ulstu.`is`.airticketrentservice.screen.auth
|
|||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.compose.foundation.Image
|
import androidx.compose.foundation.Image
|
||||||
import androidx.compose.foundation.background
|
|
||||||
import androidx.compose.foundation.layout.Box
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.navigationBarsPadding
|
import androidx.compose.foundation.layout.navigationBarsPadding
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.requiredHeight
|
|
||||||
import androidx.compose.foundation.layout.requiredWidth
|
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.foundation.text.KeyboardOptions
|
import androidx.compose.foundation.text.KeyboardOptions
|
||||||
@ -59,9 +55,9 @@ import ru.ulstu.`is`.airticketrentservice.viewModel.AppViewModelProvider
|
|||||||
import ru.ulstu.`is`.airticketrentservice.viewModel.CurrentUserViewModel
|
import ru.ulstu.`is`.airticketrentservice.viewModel.CurrentUserViewModel
|
||||||
import ru.ulstu.`is`.airticketrentservice.viewModel.LoginViewModel
|
import ru.ulstu.`is`.airticketrentservice.viewModel.LoginViewModel
|
||||||
import ru.ulstu.`is`.airticketrentservice.R
|
import ru.ulstu.`is`.airticketrentservice.R
|
||||||
import ru.ulstu.`is`.airticketrentservice.api.repository.RestUserRepository
|
|
||||||
import ru.ulstu.`is`.airticketrentservice.graphs.AuthScreen
|
import ru.ulstu.`is`.airticketrentservice.graphs.AuthScreen
|
||||||
import ru.ulstu.`is`.airticketrentservice.graphs.Graph
|
import ru.ulstu.`is`.airticketrentservice.graphs.Graph
|
||||||
|
import androidx.compose.material3.AlertDialog
|
||||||
|
|
||||||
@SuppressLint("UnrememberedMutableState")
|
@SuppressLint("UnrememberedMutableState")
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@ -75,7 +71,23 @@ fun Login(navController: NavController, modifier: Modifier = Modifier, loginView
|
|||||||
val argument = currentUserViewModel.argument.value
|
val argument = currentUserViewModel.argument.value
|
||||||
var passwordVisibility by rememberSaveable { mutableStateOf(false) }
|
var passwordVisibility by rememberSaveable { mutableStateOf(false) }
|
||||||
val emailRegex = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+".toRegex()
|
val emailRegex = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+".toRegex()
|
||||||
val coroutineScope = rememberCoroutineScope()
|
|
||||||
|
val showInvalidPasswordDialog = remember { mutableStateOf(false) }
|
||||||
|
|
||||||
|
if (showInvalidPasswordDialog.value) {
|
||||||
|
AlertDialog(
|
||||||
|
onDismissRequest = { showInvalidPasswordDialog.value = false },
|
||||||
|
title = { Text(text = "Ошибка") },
|
||||||
|
text = { Text(text = "Такого пользователя не существует.") },
|
||||||
|
confirmButton = {
|
||||||
|
Button(
|
||||||
|
onClick = { showInvalidPasswordDialog.value = false },
|
||||||
|
) {
|
||||||
|
Text(text = "ОК")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
Column(
|
Column(
|
||||||
Modifier
|
Modifier
|
||||||
@ -145,13 +157,18 @@ fun Login(navController: NavController, modifier: Modifier = Modifier, loginView
|
|||||||
shape = RoundedCornerShape(15.dp),
|
shape = RoundedCornerShape(15.dp),
|
||||||
onClick = {
|
onClick = {
|
||||||
if (passwordValue.isNotEmpty() && isValidEmail(emailValue)) {
|
if (passwordValue.isNotEmpty() && isValidEmail(emailValue)) {
|
||||||
|
var userExists = false
|
||||||
users.value.forEach { user ->
|
users.value.forEach { user ->
|
||||||
if (user.password == passwordValue && user.email == emailValue) {
|
if (user.password == passwordValue && user.email == emailValue) {
|
||||||
currentUserViewModel.setArgument(user.id.toString())
|
currentUserViewModel.setArgument(user.id.toString())
|
||||||
navController.navigate(route = Graph.passUserId(user.id.toString()))
|
navController.navigate(route = Graph.passUserId(user.id.toString()))
|
||||||
Log.d("CurrentUserViewModel", "Текущий пользователь: $user")
|
Log.d("CurrentUserViewModel", "Текущий пользователь: $user")
|
||||||
|
userExists = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!userExists) {
|
||||||
|
showInvalidPasswordDialog.value = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
colors = ButtonDefaults.buttonColors(containerColor = colorResource(R.color.lightBlue)),
|
colors = ButtonDefaults.buttonColors(containerColor = colorResource(R.color.lightBlue)),
|
||||||
@ -179,3 +196,4 @@ fun Login(navController: NavController, modifier: Modifier = Modifier, loginView
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
252
server/data.json
252
server/data.json
@ -4,186 +4,28 @@
|
|||||||
"id": 1,
|
"id": 1,
|
||||||
"passengers_count": 1,
|
"passengers_count": 1,
|
||||||
"ticket_cost": 2680,
|
"ticket_cost": 2680,
|
||||||
"flightId": 6
|
"flightId": 5
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"passengers_count": 2,
|
"passengers_count": 2,
|
||||||
"ticket_cost": 4870,
|
"ticket_cost": 4870,
|
||||||
"flightId": 5
|
"flightId": 6
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"passengers_count": 5,
|
"passengers_count": 6,
|
||||||
"ticket_cost": 54000,
|
"ticket_cost": 21420,
|
||||||
"flightId": 10,
|
"flightId": 14,
|
||||||
"id": 3
|
"id": 3
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"passengers_count": 1,
|
"passengers_count": 3,
|
||||||
"ticket_cost": 2680,
|
"ticket_cost": 15000,
|
||||||
"flightId": 6,
|
"flightId": 12,
|
||||||
"id": 4
|
"id": 4
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 5,
|
|
||||||
"passengers_count": 2,
|
|
||||||
"ticket_cost": 17440,
|
|
||||||
"flightId": 8
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 4,
|
|
||||||
"ticket_cost": 71200,
|
|
||||||
"flightId": 9,
|
|
||||||
"id": 7
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 6,
|
|
||||||
"ticket_cost": 106800,
|
|
||||||
"flightId": 9,
|
|
||||||
"id": 9
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 6,
|
|
||||||
"ticket_cost": 106800,
|
|
||||||
"flightId": 9,
|
|
||||||
"id": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 11,
|
|
||||||
"ticket_cost": 29480,
|
|
||||||
"flightId": 6,
|
|
||||||
"id": 12
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 3,
|
|
||||||
"ticket_cost": 8040,
|
|
||||||
"flightId": 6,
|
|
||||||
"id": 13
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 8,
|
|
||||||
"ticket_cost": 142400,
|
|
||||||
"flightId": 9,
|
|
||||||
"id": 14
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 1,
|
|
||||||
"ticket_cost": 2680,
|
|
||||||
"flightId": 6,
|
|
||||||
"id": 15
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 1,
|
|
||||||
"ticket_cost": 2680,
|
|
||||||
"flightId": 6,
|
|
||||||
"id": 16
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 1,
|
|
||||||
"ticket_cost": 2680,
|
|
||||||
"flightId": 6,
|
|
||||||
"id": 17
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 1,
|
|
||||||
"ticket_cost": 17800,
|
|
||||||
"flightId": 9,
|
|
||||||
"id": 18
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 5,
|
|
||||||
"ticket_cost": 5000,
|
|
||||||
"flightId": 2,
|
|
||||||
"id": 19
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 6,
|
|
||||||
"ticket_cost": 6000,
|
|
||||||
"flightId": 2,
|
|
||||||
"id": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 3,
|
|
||||||
"ticket_cost": 3000,
|
|
||||||
"flightId": 2,
|
|
||||||
"id": 21
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 10,
|
|
||||||
"ticket_cost": 10000,
|
|
||||||
"flightId": 2,
|
|
||||||
"id": 22
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 6,
|
|
||||||
"ticket_cost": 6000,
|
|
||||||
"flightId": 2,
|
|
||||||
"id": 23
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 9,
|
|
||||||
"ticket_cost": 160200,
|
|
||||||
"flightId": 9,
|
|
||||||
"id": 24
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 8,
|
|
||||||
"ticket_cost": 142400,
|
|
||||||
"flightId": 9,
|
|
||||||
"id": 25
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 3,
|
|
||||||
"ticket_cost": 53400,
|
|
||||||
"flightId": 9,
|
|
||||||
"id": 26
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 6,
|
|
||||||
"ticket_cost": 106800,
|
|
||||||
"flightId": 9,
|
|
||||||
"id": 27
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 5,
|
|
||||||
"ticket_cost": 89000,
|
|
||||||
"flightId": 9,
|
|
||||||
"id": 28
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 3,
|
|
||||||
"ticket_cost": 20610,
|
|
||||||
"flightId": 7,
|
|
||||||
"id": 29
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 5,
|
|
||||||
"ticket_cost": 5000,
|
|
||||||
"flightId": 2,
|
|
||||||
"id": 30
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 2,
|
|
||||||
"ticket_cost": 5360,
|
|
||||||
"flightId": 6,
|
|
||||||
"id": 31
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 3,
|
|
||||||
"ticket_cost": 7305,
|
|
||||||
"flightId": 5,
|
|
||||||
"id": 32
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"flights": [
|
"flights": [
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"direction_from": "a",
|
|
||||||
"direction_to": "b",
|
|
||||||
"departure_date": "1-1-2024",
|
|
||||||
"arrival_date": "1-1-2024",
|
|
||||||
"one_ticket_cost": 1000
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"direction_from": "Санкт-Петербург",
|
"direction_from": "Санкт-Петербург",
|
||||||
"direction_to": "Сочи",
|
"direction_to": "Сочи",
|
||||||
@ -276,46 +118,6 @@
|
|||||||
"password": "usertt",
|
"password": "usertt",
|
||||||
"role": "User"
|
"role": "User"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"surname": "а",
|
|
||||||
"name": "а",
|
|
||||||
"patronymic": "а",
|
|
||||||
"date_of_birth": "17-5-2000",
|
|
||||||
"email": "user@mail.ru",
|
|
||||||
"password": "user",
|
|
||||||
"role": "User",
|
|
||||||
"id": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"surname": "ыщылы",
|
|
||||||
"name": "шчшчгч",
|
|
||||||
"patronymic": "шчшчшч",
|
|
||||||
"date_of_birth": "10-12-2015",
|
|
||||||
"email": "aaa@mail.ru",
|
|
||||||
"password": "aaa",
|
|
||||||
"role": "User",
|
|
||||||
"id": 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"surname": "фффф",
|
|
||||||
"name": "ффф",
|
|
||||||
"patronymic": "ффф",
|
|
||||||
"date_of_birth": "7-5-2005",
|
|
||||||
"email": "userff@mail.ru",
|
|
||||||
"password": "password",
|
|
||||||
"role": "User",
|
|
||||||
"id": 6
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"surname": "ккк",
|
|
||||||
"name": "ккк",
|
|
||||||
"patronymic": "ккк",
|
|
||||||
"date_of_birth": "23-12-2011",
|
|
||||||
"email": "kkk@mail.ru",
|
|
||||||
"password": "kkk",
|
|
||||||
"role": "User",
|
|
||||||
"id": 7
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"id": 8,
|
"id": 8,
|
||||||
"surname": "Артамонова",
|
"surname": "Артамонова",
|
||||||
@ -347,50 +149,20 @@
|
|||||||
{
|
{
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"status": "Ожидает подтверждения",
|
"status": "Ожидает подтверждения",
|
||||||
"userId": 2,
|
"userId": 8,
|
||||||
"ticketId": 2
|
"ticketId": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"status": "Ожидает подтверждения",
|
"status": "Ожидает подтверждения",
|
||||||
"userId": 2,
|
"userId": 2,
|
||||||
"ticketId": 24,
|
"ticketId": 3,
|
||||||
"id": 3
|
"id": 3
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"status": "Ожидает подтверждения",
|
|
||||||
"userId": 2,
|
|
||||||
"ticketId": 25,
|
|
||||||
"id": 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"status": "Ожидает подтверждения",
|
|
||||||
"userId": 2,
|
|
||||||
"ticketId": 26,
|
|
||||||
"id": 5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"status": "Ожидает подтверждения",
|
|
||||||
"userId": 2,
|
|
||||||
"ticketId": 28,
|
|
||||||
"id": 7
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"status": "Ожидает подтверждения",
|
"status": "Ожидает подтверждения",
|
||||||
"userId": 8,
|
"userId": 8,
|
||||||
"ticketId": 29,
|
"ticketId": 4,
|
||||||
"id": 8
|
"id": 4
|
||||||
},
|
|
||||||
{
|
|
||||||
"status": "Ожидает подтверждения",
|
|
||||||
"userId": 9,
|
|
||||||
"ticketId": 30,
|
|
||||||
"id": 9
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"status": "Ожидает подтверждения",
|
|
||||||
"userId": 2,
|
|
||||||
"ticketId": 31,
|
|
||||||
"id": 10
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
@ -25,16 +25,10 @@
|
|||||||
"id": 4
|
"id": 4
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"passengers_count": 3,
|
"id": 5,
|
||||||
"ticket_cost": 26160,
|
"passengers_count": 2,
|
||||||
"flightId": 8,
|
"ticket_cost": 17440,
|
||||||
"id": 5
|
"flightId": 8
|
||||||
},
|
|
||||||
{
|
|
||||||
"passengers_count": 5,
|
|
||||||
"ticket_cost": 54000,
|
|
||||||
"flightId": 10,
|
|
||||||
"id": 6
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"passengers_count": 4,
|
"passengers_count": 4,
|
||||||
@ -54,12 +48,6 @@
|
|||||||
"flightId": 9,
|
"flightId": 9,
|
||||||
"id": 10
|
"id": 10
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"passengers_count": 6,
|
|
||||||
"ticket_cost": 106800,
|
|
||||||
"flightId": 9,
|
|
||||||
"id": 11
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"passengers_count": 11,
|
"passengers_count": 11,
|
||||||
"ticket_cost": 29480,
|
"ticket_cost": 29480,
|
||||||
@ -167,6 +155,30 @@
|
|||||||
"ticket_cost": 20610,
|
"ticket_cost": 20610,
|
||||||
"flightId": 7,
|
"flightId": 7,
|
||||||
"id": 29
|
"id": 29
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"passengers_count": 5,
|
||||||
|
"ticket_cost": 5000,
|
||||||
|
"flightId": 2,
|
||||||
|
"id": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"passengers_count": 2,
|
||||||
|
"ticket_cost": 5360,
|
||||||
|
"flightId": 6,
|
||||||
|
"id": 31
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"passengers_count": 3,
|
||||||
|
"ticket_cost": 7305,
|
||||||
|
"flightId": 5,
|
||||||
|
"id": 32
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"passengers_count": 3,
|
||||||
|
"ticket_cost": 15000,
|
||||||
|
"flightId": 12,
|
||||||
|
"id": 33
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"flights": [
|
"flights": [
|
||||||
@ -225,6 +237,38 @@
|
|||||||
"arrival_date": "15-1-2024",
|
"arrival_date": "15-1-2024",
|
||||||
"one_ticket_cost": 10800,
|
"one_ticket_cost": 10800,
|
||||||
"id": 10
|
"id": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"direction_from": "Москва",
|
||||||
|
"direction_to": "Крым",
|
||||||
|
"departure_date": "24-12-2023",
|
||||||
|
"arrival_date": "31-12-2023",
|
||||||
|
"one_ticket_cost": 3850,
|
||||||
|
"id": 11
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"direction_from": "Кострома",
|
||||||
|
"direction_to": "Хабаровск",
|
||||||
|
"departure_date": "29-12-2023",
|
||||||
|
"arrival_date": "29-12-2023",
|
||||||
|
"one_ticket_cost": 5000,
|
||||||
|
"id": 12
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"direction_from": "Москва",
|
||||||
|
"direction_to": "Кострома",
|
||||||
|
"departure_date": "6-1-2024",
|
||||||
|
"arrival_date": "6-1-2024",
|
||||||
|
"one_ticket_cost": 35740,
|
||||||
|
"id": 13
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"direction_from": "Москва",
|
||||||
|
"direction_to": "Ульяновск",
|
||||||
|
"departure_date": "13-1-2024",
|
||||||
|
"arrival_date": "14-1-2024",
|
||||||
|
"one_ticket_cost": 3570,
|
||||||
|
"id": 14
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"users": [
|
"users": [
|
||||||
@ -287,6 +331,16 @@
|
|||||||
"email": "admin@mail.ru",
|
"email": "admin@mail.ru",
|
||||||
"password": "admin",
|
"password": "admin",
|
||||||
"role": "Admin"
|
"role": "Admin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"surname": "user",
|
||||||
|
"name": "user",
|
||||||
|
"patronymic": "user",
|
||||||
|
"date_of_birth": "13-9-2012",
|
||||||
|
"email": "user66@mail.ru",
|
||||||
|
"password": "user66",
|
||||||
|
"role": "User",
|
||||||
|
"id": 9
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"rents": [
|
"rents": [
|
||||||
@ -320,12 +374,6 @@
|
|||||||
"ticketId": 26,
|
"ticketId": 26,
|
||||||
"id": 5
|
"id": 5
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"status": "Ожидает подтверждения",
|
|
||||||
"userId": 2,
|
|
||||||
"ticketId": 27,
|
|
||||||
"id": 6
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"status": "Ожидает подтверждения",
|
"status": "Ожидает подтверждения",
|
||||||
"userId": 2,
|
"userId": 2,
|
||||||
@ -337,6 +385,24 @@
|
|||||||
"userId": 8,
|
"userId": 8,
|
||||||
"ticketId": 29,
|
"ticketId": 29,
|
||||||
"id": 8
|
"id": 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"status": "Ожидает подтверждения",
|
||||||
|
"userId": 9,
|
||||||
|
"ticketId": 30,
|
||||||
|
"id": 9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"status": "Ожидает подтверждения",
|
||||||
|
"userId": 2,
|
||||||
|
"ticketId": 31,
|
||||||
|
"id": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"status": "Ожидает подтверждения",
|
||||||
|
"userId": 2,
|
||||||
|
"ticketId": 33,
|
||||||
|
"id": 11
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user